#!/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)