Expand description
Keyboard layout indicator
Six drivers are available:
xkbevent
which can read asynchronous updates from the x11 eventssetxkbmap
(alias forxkbevent
) DEPRECATEDxkbswitch
(alias forxkbevent
) DEPRECATEDlocalebus
which can read asynchronous updates from the systemdorg.freedesktop.locale1
D-Bus pathkbddbus
which uses kbdd to monitor per-window layout changes via DBussway
which can read asynchronous updates from the sway IPC
setxkbmap
and xkbswitch
are deprecated and will be removed in v0.35.0.
Which of these methods is appropriate will depend on your system setup.
§Configuration
Key | Values | Default |
---|---|---|
driver | One of "xkbevent" , "setxkbmap" , "xkbswitch" , "localebus" , "kbddbus" or "sway" , depending on your system. | "xkbevent" |
interval DEPRECATED | Update interval, in seconds. Only used by the "setxkbmap" driver. | 60 |
format | A string to customise the output of this block. See below for available placeholders. | " $layout " |
sway_kb_identifier | Identifier of the device you want to monitor, as found in the output of swaymsg -t get_inputs . | Defaults to first input found |
mappings | Map layout (variant) to custom short name. | None |
interval
is deprecated and will be removed in v0.35.0.
Key | Value | Type |
---|---|---|
layout | Keyboard layout name | String |
variant | Keyboard variant name or N/A if not applicable | String |
§Examples
Listen to D-Bus for changes:
[[block]]
block = "keyboard_layout"
driver = "localebus"
Listen to kbdd for changes, the text is in the following format: “English (US)” - {$layout ($variant)} use block.mappings to override with shorter names as shown below. Also use format = “ $layout ($variant) “ to see the full text to map, or you can use: dbus-monitor interface=ru.gentoo.kbdd to see the exact variant spelling
[[block]]
block = "keyboard_layout"
driver = "kbddbus"
[block.mappings]
"English (US)" = "us"
"Bulgarian (new phonetic)" = "bg"
Listen to sway for changes:
[[block]]
block = "keyboard_layout"
driver = "sway"
sway_kb_identifier = "1133:49706:Gaming_Keyboard_G110"
Listen to sway for changes and override mappings:
[[block]]
block = "keyboard_layout"
driver = "sway"
format = " $layout "
[block.mappings]
"English (Workman)" = "EN"
"Russian (N/A)" = "RU"
Listen to xkb events for changes:
[[block]]
block = "keyboard_layout"
driver = "xkbevent"