- PVSM.RU - https://www.pvsm.ru -




Конвертировать последнее слово перед курсором.
Конвертировать выделенное.
Конвертировать последнее слово в строке терминала Gnome.
Конвертировать выделенное в строке терминала Gnome.
Направление конвертации (ru_to_us или us_to_ru) и менять ли раскладку после, определяется автоматически. Зависит от количества совпадений с раскладкой в конвертируемом слове, если это не удалось определить, то от текущй раскладки.
Всего должно быть 2 раскладки (но легко переделать и под более, чем 2). Все соответствия настраиваются в ru_to_us и us_to_ru в src/functions.sh. Даже не важно какие 2 раскладки у Вас в системе... В ru_to_us и us_to_ru можно настроить любые 2.
Как правило - все ок, но:
Скрипт (или часть логики) может не заработать даже если у Вас, как и у меня - Linux Mint 22.1 Cinnamon...
По сути скрипт делает то, что Вы сами сделали бы нажатиями клавиш, т.е. - автоматизацию...
В src/functions.sh много пауз (sleep) значения которых, как мне кажется, могут быть у Вас немного другими.
Значения пауз зависит от конкретного железа, драйверов, ПО и т.д.
По этому, сразу наберитесь сил и терпения т.к., возможно, придется лезть в код, если с ходу не заработает.
Далее я попробую описать так, чтоб Вам было как можно легче все настроить и разобраться...
sudo apt install -y xautomation # xte
sudo apt install -y xsel xdotool xbindkeys
cd ./punto_switcher
chmod u=rwx,g=rwx,o=rx ./switch_last.sh
chmod u=rwx,g=rwx,o=rx ./switch_select.sh
Сочетания клавиш, для работы скриптов, нужно указывать именно через xbindkeys. Т.к. в xbindkeys можно указать тип события "Release", т.е. когда все клавиши были отпущены. Иначе, работать точно не будет. Отпускать клавиши надо в обратном порядке. Сначала z, а потом остальные.
1. Добавляем в конец ~/.xbindkeysrc (если нету, то нужно создать):
"~/my_soft_path/punto_switcher/switch_last.sh"
Release + Pause
"~/my_soft_path/punto_switcher/switch_select.sh"
Release + Control + Alt + z
2. Меняем ~/my_soft_path на свой путь до папки punto_switcher.
3. Можно выбрать свои свободные комбинации клавиш:
У меня это Pause - для конвертации последнего слова.
И Control + Alt + z - для выделенного текста.
Можно посмотреть "xbindkeys --defaults", там есть примеры и описание:
xbindkeys --defaults
4. Перезапускаем xbindkeys:
killall xbindkeys
xbindkeys
's/on/ru_lng/g; s/off/us_lng/g' на 's/on/us_lng/g; s/off/ru_lng/g' в src/functions.sh...
Нужно будет заняться отладкой.
На всякий случай -> Что такое отладка? [3]
Скрипты можно запускать в консоли и (или) делать вывод результатов в файл.
Стоит обратить внимание на значения пауз (sleep) в коде. Возможно, нужно будет увеличивать время пауз или добавлять новые.
Соответствия символов можно переопределить в us_to_ru и ru_to_us.
Все делается в src/functions.sh.
В моем случае это оказалось 14... Как определить свой ID смори далее.
xinput list

xinput test 14
Если ID верный, мы будем видеть подобное, нажимая на клавиши:

xmodmap -pke

Смотрим что выводит:
xprop -id "$(xdotool getactivewindow)" WM_CLASS | awk -F '"' '{print $4}'
Если команда, выполненная в активном окне Gnome terminal, выводит не "Gnome-terminal", то найдите в src/functions.sh "Gnome-terminal" и исправьте на нужное значение.

Автор: mi8888
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/435182
Ссылки в тексте:
[1] Punto Switcher для Linux: https://alternativeto.net/software/punto-switcher-for-linux/about/
[2] Домашняя страница: https://github.com/mizuhomizuho/punto-switcher-for-linux
[3] Что такое отладка?: https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B
[4] Источник: https://habr.com/ru/articles/962140/?utm_source=habrahabr&utm_medium=rss&utm_campaign=962140
Нажмите здесь для печати.