рдЕрдВрдзреЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдШрдЯрдирд╛рдПрдВ рдЕрднреА рднреА рд╣реЛрддреА рд╣реИрдВред
рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдЕрдЧрд░ рдкрд╛рда рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рд╣реИред
1. рдпреВрдирд┐рдХреНрд╕ рддрд░реАрдХрд╛ рд╣реИ
рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╕реНрдЯрдбрдЖрдЙрдЯ рд╕реЗ рд╕реНрдЯрдбрдЖрдЙрдЯ рддрдХ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд░ рд▓рд┐рдЦрдирд╛ рд╣реИ:
#!/usr/bin/perl -CS
use utf8;
$lat=q(`~!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL:"|ZXCVBNM<>?);
$cyr=q(!"тДЦ;%:?./,);
while(<>) { eval "tr{$lat$cyr}{$cyr$lat}"; print; }
/ * '-CS' рдпрд╣рд╛рдБ stdin рдФрд░ stdout рдХреЗ рд▓рд┐рдП utf8 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, 'utf8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ' - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рда рдХрд╛ рд╣реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
perl -CS -Mutf8 -pe 'tr/qwerty....../...qwert.../;'
* /
рдпреБрдкреАрдбреА:
рдкрд░реНрд▓ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЕрдзрд┐рдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
sed -e 'y/qwerty....../...qwerty.../'
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, klipper рд╕реЗ kde рдореЗрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдХреНрд░реВ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ:
рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП
.*
(рдХреЛрдИ рднреА рдкрд╛рда), рдХрдорд╛рдВрдб:
echo -n "%s" | translit
echo -n "%s" | translit
рд╢рд╛рдпрдж рд╕реВрдХреНрддрд┐ рдореЗрдВ рднреА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реИред
рд╕рдЪ рд╣реИ, рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ klipper рд╣реЙрдЯрдХреАрдЬрд╝ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд▓рдЯрдХрд╛ рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ:
- рдкрд╛рда рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
- рдмрдлрд░ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛
- рдПрдХреНрд╢рди рдореЗрдиреВ рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ
- рдПрдХ рдХреНрд░рд┐рдпрд╛ (рдХрд░реНрд╕рд░) рдЪреБрдиреЗрдВ
- рдПрдХ рдмрдлрд░ рд╕реЗ рдкрд╛рда рдЪрд┐рдкрдХрд╛рдПрдБ
2. xclip
Xclip рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдмрдлрд░ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб (рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб) рдФрд░ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдЪрдпрдирд┐рдд рдкрд╛рда (рдкреНрд░рд╛рдердорд┐рдХ рдЪрдпрди) рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЬреНрдЮрд╛:
xclip -out | translit | xclip -in
xclip -out | translit | xclip -in
рдмрд╛рдПрдВ рдорд╛рдЙрд╕ рдмрдЯрди рдХреЗ рд╕рд╛рде рдЪрдпрди рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдХреЛ рдордзреНрдп рдорд╛рдЙрд╕ рдмрдЯрди рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдорд╛рдЙрд╕ рдЪрдпрди рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП:
xclip -out -sel clip| translit | xclip -in -sel clip
3. xdotool
рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЖрджреЗрд╢ рдирд╣реАрдВ рд╣реИ "рдПрдХреНрд╕ рдореЗрдВ рдмрдлрд░ рд╕реЗ / рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рдкрд╛рда рдбрд╛рд▓реЗрдВ"ред
рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдпрд╣ Ctrl-C / Ctrl-V рджрдмрд╛рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдиреЗ рд╕реЗ xdotool рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрджреЗрд╢ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
xdotool key 'ctrl+c'; xclip -out -sel clip | translit | xclip -in -sel clip; xdotool key 'ctrl+v'
рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЧрд░реНрдо рдХреБрдВрдЬреА рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
- рд╣реЙрдЯрдХреА рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдВ