Когда Вы создаете свои собственные файлы журнала, я думаю, что необходимо создать собственный API также.
Ваши клавиатурные привязки не работают, потому что Ваша клавиатура больше не имеет те keysyms.
Если Вы хотите иметь, например, Alt+F делают что-то, то Вам нужен "F" в некотором ключе. Но если Вы загружаете один только "рутений", затем нет никакого "F" вообще (ни никакая латинская буква).
Я думаю, особенно когда необходимо обработать несколько разметок, что намного лучше позволить X11 (через setxkbmap), делают задание для Вас; путем менеджеры окон делают это намного более ограничено, поскольку Вы обнаружили.
Можно также попробовать, поскольку ужасный виджет, кажется, называет setxkbmap, изменяет "рутений" с "рутением, нас", например:
kbdcfg.layout = { { "us", "" }, { "ru,us", "phonetic" } }
тем путем "мы", расположение будет сложено сверху того "рутения" при загрузке, и keysysms "нас" расположение, в то время как все еще не непосредственно typeable будут замечены уровнем X11, который обрабатывает привязки клавиш.
О AwesomeWM, от его FAQ:
Необходимо использовать коды клавиши, вместо keynames, как это:
xev
.Считайте вывод
KeyPress event, serial 34, synthetic NO, window 0x1200002,
root 0x291, subw 0x0, time 1510129, (471,293), root:(472,316),
state 0x0, keycode **107** (keysym 0xff61, Print), same_screen YES,
...
Создайте ~ / снимки экрана, установите scrot и добавьте следующее к rc.lua:
awful.key({ }, "#107", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),
Теперь можно протестировать, что можно создать снимки экрана с любой раскладкой клавиатуры.
Мне только что пришлось решить ту же проблему, и решение, указанное здесь, не сработало. В конце концов я нашел xkb-switch , который нормально работал с awesome. Он имеет дополнительный бонус в виде упрощенного кода в файле rc.lua
.
-- language switcher
kbdcfg = {}
kbdcfg.cmd = "xkb-switch -n"
kbdcfg.widget = wibox.widget.textbox()
kbdcfg.current = io.popen("xkb-switch"):read("*a")
kbdcfg.widget:set_text(kbdcfg.current)
kbdcfg.switch = function()
os.execute(kbdcfg.cmd)
kbdcfg.current = io.popen("xkb-switch"):read("*a")
kbdcfg.widget:set_text(kbdcfg.current)
end
Не уверен, предполагается, что это комментарий или нет: после прочтения и использования комментария @ yotam (спасибо! Вы получили мой голос за).
Я решил перейти на следующий уровень, установив патч xkb-switch, чтобы разрешить использование флагов -n и -p, и тем самым сделать возможным переключение на следующий макет и его печать. до слияния можно клонировать из здесь . наконец-то слились! можно найти на здесь .
Теперь можно сделать переключатель немного чище и быстрее :)
-- Language switcher
kbdcfg = {}
kbdcfg.widget = wibox.widget.textbox()
kbdcfg.switch = function ()
current_kb = io.popen("xkb-switch -p -n"):read("*a")
kbdcfg.widget:set_text(current_kb)
end
kbdcfg.switch()
РЕДАКТИРОВАТЬ: чтобы setxkbmap не мешал переключению макета потрясающими привязками клавиш, используйте такую команду для настройки макета:
setxkbmap -layout "us,il" -option ""
Это убедится, что от предыдущей конфигурации не осталось никаких дополнительных опций.