Со всеми случалось, что приходят сообщения подобные этому "
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 и если все хорошо у вас появится всплывающее сообщение с преобразованным текстом.
Комментарии ()