LINUX.ORG.RU

Сочетания клавиш на разных раскладках


0

1

Есть такая связка: gentoo+awesome+setxkbmap. Есть vicious виджет для перкелючения с клавиатуры - все нормально. Вопрос, как сделать, чтобы а русской расскалдке работали сочетания ctrl+a(v,c,x) в различных приложениях? Там в огнелисе,офисе. Предполагаю, что нужно смотреть в строну или rc.lua или xkbmap.

setxkbmap

Как вызываешь? Надо, чтобы была хотя бы одна английская раскладка (просто была, не обязательно активная), кроме других, чтобы работали хоткеи.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root
icious.register(cpuwidget, vicious.widgets.cpu, "$1")
    kbdcfg = {}
    kbdcfg.cmd = "setxkbmap"
    kbdcfg.layout = { { "us", "" }, { "ru", "" } }
    kbdcfg.current = 1  -- us is our default layout
    kbdcfg.widget = widget({ type = "textbox", align = "right" })
    kbdcfg.widget.text = " " .. kbdcfg.layout[kbdcfg.current][1] .. " "
    kbdcfg.switch = function ()
       kbdcfg.current = kbdcfg.current % #(kbdcfg.layout) + 1
       local t = kbdcfg.layout[kbdcfg.current]
       kbdcfg.widget.text = " " .. t[1] .. " "
       os.execute( kbdcfg.cmd .. " " .. t[1] .. " " .. t[2] )
    end

Вот примерно так.

morpheus
() автор топика
Ответ на: комментарий от morpheus

kbdcfg.layout = { { «us», «» }, { «ru», «» } }

По логике, будет вызываться при смене раскладок либо «setxkbmap -layout us», либо «setxkbmap -layout ru», поэтому в русской раскладке не будут работать хоткеи. Чтобы они работали, надо вызвать что-то вроде «setxkbmap -layout us,ru», причём us должен быть первым. В этом случае будут работать хоткеи, но будет неправильно работать переключалка раскладок в awesome (после вызова «setxkbmap -layout us,ru» будет включена английская раскладка, поскольку она первая в списке, иначе хоткеи не заработают).

Переключаться можно и просто с помощью setxkbmap, т.е. отображения раскладки на панели не будет, можно только светодиодом клавиатуры показывать раскладку. Как сделать переключалку с индикатором, чтобы работали хоткеи, я не придумал. Думаю, проще запилить просто индикатор (типа xxkb), а переключаться средствами X-сервера, один раз в начале вызвав setxkbmap.

gentoo_root ★★★★★
()
Ответ на: комментарий от morpheus

Может быть использовать просто xkb-switch из xfce? Я слышал о совместимости.

Можно использовать любую переключалку, почему бы нет. Ещё есть xxkb или что-то типа «setxkbmap -layout us,ru -option grp_led:scroll,grp:caps_toggle» один раз при загрузке.

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