четверг, 3 декабря 2015 г.

Переключеие раскладки в Emacs системной (!) комбинацией клавиш

Сложно это или просто? Судите сами, я на это убил целый вечер.

1. Скрипт, который переключает системную раскладку в Xfce ИЛИ метод ввода ("язык") в Emacs:

#!/bin/sh
if xdotool getwindowfocus getwindowname | grep -q emacs
then
    emacsclient -e '(lang-switch)'
else
    xkb-switch -n
fi

NB

  1. "Или" тут ключевой момент - очевидно, что после переключения языка средствами Xkb в самом Emacs уже ничего работать не будет. 
  2.  В настройках xkb-plugin должно стоять "Управление раскладками: для каждого приложения [отдельно]", по тем же причинам. Ну и просто потому, что так удобнее))

2. Функция (lang-switch) для самого Emacs:
(defun lang-switch ()            
  ""              
  (interactive)              
  (with-current-buffer (window-buffer (selected-window))   ;; emacsclient!! 
    (toggle-input-method)))

xkb-switch

0 коммент. :

Отправить комментарий

Следующее Предыдущее Главная страница

Blogger Template by Blogcrowds