LINUX.ORG.RU

Переключение раскладки, емакс


0

0

Хочу сделать так: Русский = Ctrl-9 English = Ctrl-0 Окну Emacs-а эти сочетания должны посылаться в обычном виде а не как спецсимволы (для того, чтобы в нём я мог использовать его собственную раскладку. Как это сделать? xxkb умеет спецопции для емакса, насколько я знаю, но он не умеет кастомные переключатели раскладок. kkbswitch вообще удобно сделан, но в нём я не нашёл спецопций для отдельного окна.

★★★★★

Re: Переключение раскладки, емакс

Не то?

(global-set-key (kbd "C-9") '(lambda () (interactive) (inactivate-input-method)))
(global-set-key (kbd "C-0") '(lambda () (interactive) (unless current-input-method (toggle-input-method))))
(define-key isearch-mode-map (kbd "C-9") '(lambda () (interactive) (if current-input-method (isearch-toggle-input-method) (isearch-update))))
(define-key isearch-mode-map (kbd "C-0") '(lambda () (interactive) (if current-input-method (isearch-update) (isearch-toggle-input-method))))

Zubok ★★★★★ ()
Ответ на: Re: Переключение раскладки, емакс от Zubok

Re: Переключение раскладки, емакс

Спасибо, в принципе это тоже будет полезно. Но принципиальный вопрос в том, как сделать, чтобы те же клавиши переключали (так же) обычную иксовую раскладку, когда я работаю не с емаксом (ну нет там нормального браузера :) ). Попробую конкретизировать вопрос, если это получится, то наверное и остальное получится - как сделать, чтобы иксовая раскладка переключалась на английский по Ctrl-9, на русский по Ctrl-0, средствами xkb (т.е. чем то что прописывается в ./etc/xorg.conf ) ? Документации по этому вопросу я практически не нашёл, по Ctrl-Shift или Caps Lock-у могу делать переключение, но это неудобно.

Legioner ★★★★★ ()
Ответ на: Re: Переключение раскладки, емакс от Legioner

Re: Переключение раскладки, емакс

Если нет желания копать внутренности xkb, можно написать простенькую программу с вызовом XkbLockGroup(3)

sergej ★★★★★ ()
Ответ на: Re: Переключение раскладки, емакс от Legioner

Re: Переключение раскладки, емакс

В КДЕ можно использовать input actions

triggers > shorcut trigger > ctr+9
actions > dcop call > kxkb kxkb setLayout us
conditions > not active window > window class Emacs

triggers > shorcut trigger > ctr+o
actions > dcop call > kxkb kxkb setLayout ru(winkeys)
conditions > not active window > window class Emacs

ip ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.