Переключеие раскладки в Emacs системной (!) комбинацией клавиш
Сложно это или просто? Судите сами, я на это убил целый вечер.
1. Скрипт, который переключает системную раскладку в Xfce ИЛИ метод ввода ("язык") в Emacs:
2. Функция (lang-switch) для самого Emacs:
xkb-switch
1. Скрипт, который переключает системную раскладку в Xfce ИЛИ метод ввода ("язык") в Emacs:
#!/bin/sh
if xdotool getwindowfocus getwindowname | grep -q emacs
then
emacsclient -e '(lang-switch)'
else
xkb-switch -n
fi
NB
- "Или" тут ключевой момент - очевидно, что после переключения языка средствами Xkb в самом Emacs уже ничего работать не будет.
- В настройках xkb-plugin должно стоять "Управление раскладками: для каждого приложения [отдельно]", по тем же причинам. Ну и просто потому, что так удобнее))
2. Функция (lang-switch) для самого Emacs:
(defun lang-switch ()
""
(interactive)
(with-current-buffer (window-buffer (selected-window)) ;; emacsclient!!
(toggle-input-method)))
xkb-switch
Отправить комментарий