Полезный скрипт "преобразование раскладки c En2Ru"

Со всеми случалось, что приходят сообщения подобные этому "ghbdtn rfr ltkf&" и сидишь гадаешь, что автор имел ввиду, когда-то давно я пользовался Punto Switcher да qip'ом тоже, и там была функция преобразование раскладки, a в Linux'e мне ее очень не хватало. Сказано сделано, я не особо знаток perl'a, но все же смог наваять небольшой скриптик.


Вот сам скрипт
convert.pl
#!/usr/bin/perl
use locale;

my %array = ( 
	'q' => 'й',
	'w' => 'ц',
	'e' => 'у',
	'r' => 'к',
	't' => 'е',
	'y' => 'н',
	'u' => 'г',
	'i' => 'ш',
	'o' => 'щ',
	'p' => 'з',
	'[' => 'х',
	']' => 'ъ',
	'a' => 'ф',
	's' => 'ы',
	'd' => 'в',
	'f' => 'а',
	'g' => 'п',
	'h' => 'р',
	'j' => 'о',
	'k' => 'л',
	'l' => 'д',
	';' => 'ж',
	'\'' => 'э',
	'z' => 'я',
	'x' => 'ч',
	'c' => 'с',
	'v' => 'м',
	'b' => 'и',
	'n' => 'т',
	'm' => 'ь',
	',' => 'б',
	'.' => 'ю',
	'&' => '?'
);

$select = lc `xsel -o`;
my @text = split(//, $select);
my $newtext = '';
if ($select =~ /[\dA-z]/){
 foreach my $en (@text){
 	if($en =~ /[\s]/){
 		$newtext .= +' ';
 	}
	elsif($en =~ /[^A-z^\'\;\[\]\,\.]/){
		$newtext .= +$en;
	}
 	else{
 		$newtext .= +$array{$en};
 	}
 }
};
my $cmd = "notify-send -i gtk-info -u critical 'Преобразовали' '$newtext'";
system($cmd);
Учтите что у вас должен быть установлен libnotify и xsel.
Ну, а дальше делаете данный файл исполняемым chmox +x convert.plназначаете его на комбинацию клавиш, у меня например alt+2, выделяете текст и нажимаете alt+2 и если все хорошо у вас появится всплывающее сообщение с преобразованным текстом.

Комментарии ()

    Есть вопрос или предложение пиши в Telegram @cloudsv

    Прямой эфир

    cloudsv 24 октября 2018, 00:27
    О жизни Обновление Scala Rider G4 0
    cloudsv 21 октября 2018, 23:16
    Arch Linux Памятка по основным утилитам Linux 0
    cloudsv 01 июня 2018, 01:39
    Telegram Настройка прокси mtproto для Telegram 28
    cloudsv 22 января 2018, 21:59
    Web Локальное зеркало обновлений Dr.web 0
    cloudsv 03 октября 2017, 10:55
    Web Пароль от резервной копии Bitrix 1
    cloudsv 09 июля 2017, 23:02
    Arch Linux Let's Encrypt это легко и просто 0