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