Skip to content

Instantly share code, notes, and snippets.

@i026e
Created October 24, 2020 13:39
Show Gist options
  • Save i026e/21c1b041ebf78a76dc64907bba32e967 to your computer and use it in GitHub Desktop.
Save i026e/21c1b041ebf78a76dc64907bba32e967 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# install xclip xdotool xkb-switch
function fix_layout {
# сохраняем выделение в файл
xclip -o -selection primary > /tmp/~sel.tmp
# сохраняем буфер обмена в файл
xclip -o -selection clipboard > /tmp/~clip.tmp
# чтобы не напечатать содержимое буфера обмена, если ничего не выделено, мы его очистим
echo "" | xclip -i -selection clipboard
# очищаем выделение
xdotool key Delete
# записываем обработанный выделенный текст в буфер обмена
cat /tmp/~sel.tmp | sed "y/\`~\!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,.\/QWERTYUIOP{}ASDFGHJKL:\"|ZXCVBNM<>?ёЁ\!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ\/ЯЧСМИТЬБЮ,/ёЁ\!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ\/ЯЧСМИТЬБЮ,\`~\!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,.\/QWERTYUIOP{}ASDFGHJKL:\"|ZXCVBNM<>?/" | xclip -selection clipboard
# при проблемах установить задержку по вкусу:
sleep 0.1
# вставляем содержимое буфера обмена
xdotool key Shift+Insert
# восстанавливаем буфер обмена из файла
cat /tmp/~clip.tmp | xclip -in -selection clipboard
# удаляем временные файлы
rm /tmp/~clip.tmp /tmp/~sel.tmp
}
fix_layout
# изменить раскладку
xkb-switch -n
# setxkbmap -layout us,ru -model pc105 -option "lv3:ralt_alt,grp:caps_toggle,terminate:ctrl_alt_bksp"
# xkb-switch -s us
# xkb-switch -s ru
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment