Expand description
Keyboard layout indicator
Four drivers are available:
setxkbmap
which polls setxkbmap to get the current layoutxkbswitch
which utilizes XkbSwitch to monitor and retrieve the current layout and variantlocalebus
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
Which of these methods is appropriate will depend on your system setup.
§Configuration
Key | Values | Default |
---|---|---|
driver | One of "setxkbmap" , "xkbswitch" , “localebus”, “kbddbus”or “sway”`, depending on your system. | "setxkbmap" |
interval | 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 |
Key | Value | Type |
---|---|---|
layout | Keyboard layout name | String |
variant | Keyboard variant name or N/A if not applicable | String |
§Examples
Check setxkbmap
every 15 seconds:
[[block]]
block = "keyboard_layout"
driver = "setxkbmap"
interval = 15
Check xkbswitch
every 15 seconds
[[block]]
block = "keyboard_layout"
driver = "xkbswitch"
interval = 15
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"