ds-voix / xswitcher

X switcher: fully customizable low-level keyboard helper for X.Org-based linux desktop
GNU Affero General Public License v3.0
69 stars 6 forks source link

можно ли переводить выделенный текст? #5

Open mshakurov opened 2 years ago

mshakurov commented 2 years ago

Можно ли xswitcher настроить так, чтобы он переводил выделенный текст?

Возможно вопрос покажется глупым, но я новичок в linux, и не знаю, существует ли универсальное понятие клипбоарда.

Если нет, то подскажите, как настроить конфиг, чтобы запускать приложение по нажатию на определенный набор клавиш? Что-то не пойму как это сделать. Тогда я бы вручную копировал выделенный текст, быстро запускал свое приложение (используя хоткей в вашей програме), там в своей программе тарнслитерировал бы текст, и обратно вставлял текст в исходное окно.

sclea commented 2 years ago

В xswitcher в данный момент нельзя. Я решил этот вопрос пока для себя с помощью шелл-скрипта (т.е. xswitcher для этого не используется) и настроив хоткей штатными средствами ОС (Linux Mint 19).

Текст скрипта:

#!/bin/sh
xdotool key Ctrl+Insert
#sleep 0.3s
xsel -bo | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -bi
#sleep 0.3s
xdotool key Shift+Insert

Скрипт не мой, взят отсюда и немного допилен (добавлены флаги -bo в первом вызове xsel). Зареманые строки sleep можно пробовать анремать, если будет глючить.

Для работы скрипта надо установить утилитки: $ sudo apt install xdotool xsel

ds-voix commented 2 years ago

Всё так. Xswitcher работает уровнем ниже (за счёт этого не глючит в терминалах) и ничего не знает про "выделение". Его можно использовать только как "запускалку", если хочется настроить очень особенную комбинацию клавиш. Для "запускалки", в конфиге есть пример. См. "Action.Hook1" = [ "OFF:(CTRL|R_ALT|META|SHIFT) SEQ:(L_ALT:1,L_ALT:0)" ] и ниже секция [Action.Hook1] с реализацией хука. В примере описывается короткое нажатие левого "ALT" при отпущенных остальных модификаторах. Сделать нужную строку для желаемой последовательности клавиш поможет запуск в терминале xswitcher -t

gitislab commented 1 year ago

Скрипт не мой, взят отсюда и немного допилен (добавлены флаги -bo в первом вызове xsel). Зареманые строки sleep можно пробовать анремать, если будет глючить.

скрипты из той темы не работают в ubuntu 22.04.1 Gnome 42.4 Wayland , но вот этот на питоне заработал, правда далеко не во всех приложениях, в браузере главное работает https://mikhailvinakov.blogspot.com/2019/08/layout-switcher-ru.html

ds-voix commented 1 month ago

Добавил экспериментальную возможность печатать на виртуальной клавиатуре текст из буфера обмена. На данный момент принимает только американскую латиницу (см. "scancodes/table.go"). Мне оно было надо, чтобы загнать некую "простыню" в тупой VNC. Но можно и организовать перенабор содержимого буфера в других раскладках. Включая "автонастройку" через нажатие всех букв и спец. знаков на нужном языке.