Мне понравилось следующее (изменено для ваших нужд):
#!/usr/bin/env bash
#
killall kbdd 2>/dev/null
kbdd >/dev/null || exit 1
# Get initial state of layout
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
/ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
sed -un 's/^.*uint32 //p' )
# In case dbus service wasn't available yet, poll until service is ready
while [[ -z "$N" ]]; do
sleep .1
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
/ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
sed -un 's/^.*uint32 //p' )
done
dbus-send --print-reply=literal --dest=ru.gentoo.KbddService \
/ru/gentoo/KbddService ru.gentoo.kbdd.getLayoutName uint32:$N |\
sed -un 's:.*English.*:EN(US):p;s:.*German.*:DE:p'
# Parse dbus output
dbus-monitor "interface='ru.gentoo.kbdd',member='layoutNameChanged'" |\
sed -un 's:.*English.*:EN(US):p;s:.*German.*:DE:p'
Просто не забудьте настроить скрипт соответствующим образом, на случай, если вы измените макеты.
Собственно уже есть в дефолтном конфиге awesome 4.2:
Если вы нажмете Mod -l , вы получите обзор горячих клавиш . Это же меню доступно через потрясающее меню в верхнем левом углу экрана.
Однако учтите, что awesome претерпел огромные изменения по сравнению с версиями 3.4 и 3.5, а также с 3.5 до 4.x, поэтому у вас может быть более старая версия, не содержащая этой функции.
Если вы действительно хотите, чтобы это было на клавише Windows, вам нужно изменить ключ мода на Alt, изменив modkey=Mod4
на modkey=Mod1
, а затем отредактировав привязки клавиш
из:
globalkeys = gears.table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description="show help", group="awesome"}),
-
globalkeys = gears.table.join(
awful.key({ }, Mod4, hotkeys_popup.show_help,
{description="show help", group="awesome"}),