switch back to plasma handling keyboard layout

This commit is contained in:
Joel Beckmeyer 2024-12-11 11:21:03 -05:00
parent 28fd1bd233
commit 6b22272eb1
2 changed files with 36 additions and 4 deletions

View File

@ -1,7 +1,8 @@
#!/bin/sh
current_layer=$(timeout 0.1s keyd listen | grep -m 1 '^/' | sed 's/^\///')
if [ "$current_layer" = "qwerty" ]; then
current_layer="basic"
fi
current_layer=$(get_plasma_keyboard_layout)
#current_layer=$(timeout 0.1s keyd listen | grep -m 1 '^/' | sed 's/^\///')
#if [ "$current_layer" = "qwerty" ]; then
# current_layer="basic"
#fi
DOTOOL_XKB_LAYOUT=us DOTOOL_XKB_VARIANT=$current_layer /usr/bin/dotool "$@"

View File

@ -0,0 +1,31 @@
#!/usr/bin/env python3
import dbus
def get_keyboard_info():
bus = dbus.SessionBus()
keyboard = bus.get_object('org.kde.keyboard', '/Layouts')
keyboard_interface = dbus.Interface(keyboard, dbus_interface='org.kde.KeyboardLayouts')
layouts_list = keyboard_interface.getLayoutsList()
current_layout_index = keyboard_interface.getLayout()
return layouts_list, current_layout_index
def set_keyboard_layout_env(layouts_list, current_layout_index):
current_layout = layouts_list[current_layout_index]
_, _, name = current_layout
if "Dvorak" in name:
keyboard_layout = "dvorak"
elif "US" in name:
keyboard_layout = "basic"
else:
keyboard_layout = "unknown"
return keyboard_layout
if __name__ == "__main__":
layouts_list, current_layout_index = get_keyboard_info()
keyboard_layout = set_keyboard_layout_env(layouts_list, current_layout_index)
print(keyboard_layout)