Переключение раскладки по событию


angel2s2 аватар

angel2s2 - Posted on 30 Июнь 2010

Приветствую. Возникла не типичная задачка, никак не могу решить...

Например, в Google Reader'е я расшариваю запись (Shift+S), потом пишу коммент (c), потом его сохраняю (Tab + Enter). Так вот, когда я пишу коммент, то переключаюсь на русский, а после сохранения на английский. Порой просто забываю, после сохранения, снова нажать CapsLoack.
Вот и хочу сделать так, чтобы раскладка переключалась по правилам, т.е. сделал я ей правило:

  если активно окно "Google Reader - Vimperator" и
    если нажата клавиша "c"
      то переключить раскладку на русский
    если нажата клавиша "Tab"
      то переключить раскладку на английский

и она его выполняет.

Или, другой пример, если появилось окно "Gmail - Vimperator", то послать ему "Control + z", что отключить вимператора, т.к. у GMail'а свои хоткеи есть, а как только это окно исчезнет, послать "Esc", чтобы снова включить вимператора.

Может кто сталкивался с подобным софтом или делал подобные настройки?
Буду благодарен любым идеям.

Пример из хелпа вимператора:

Enable passthrough mode on all Google sites:
 
:autocmd LocationChange .* js modes.passAllKeys = /google\.com/.test(buffer.URL)
 
Enable passthrough mode on some Google sites:
 
:autocmd LocationChange .* js modes.passAllKeys = /(www|mail)\.google\.com/.test(buffer.URL)

Помоему как раз то что тебе нужно Ж:-)
Эта фича была еще в первых вимператорах, как раз из-за gmail
у которого свои собственные хоткеи.

Про вимператор я знаю :) Пример не удачно выбрал.
Вообщем дело в том, что нежно это не только для вимператора, а вообщем для любой проги.

ЗЫЖ Сорри, что долго не отвечал.

это разве что xneur расширить..

Я об этом думал. Но не по зубам мне это %)

Я посмотел, там в принципе все что нужно есть.
Как у тебя с С? Ж:-)

Там уже есть возможность вешатся на какую нибуть клавишу (в нашем случае это 'c').
Так уже есть можность определять какая прикладуха сейчас активна. Как читать заголовок окна можно подсмотреть в wmctl.

Первым этапом можно забить это прямо в коде. А потом, если устраивает тебя, можно сделать какую нибуть вменяемую опцию в конфиг (какую нибуть смесь между AddAction и SetAutoApp). И поделится этим с остальными Ж:-)

Вот например такое в ~/.xneur/xneurrc

SetAppAction Iceweasel -t "Google Reader - Vimperator" c EnableLayout1
SetAppAction Iceweasel -t "Google Reader - Vimperator" Tab EnableLayout2

или так

SetTitleAction "Google Reader - Vimperator" c EnableLayout1
SetTitleAction "Google Reader - Vimperator" Tab EnableLayout2

В том то и проблема, что в сях я почти на нулях :( Но все же на днях гляну код, может чего и получится сварганить.

Спасибо за советы, помощь и идеи :)

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

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.