Skip to content

Instantly share code, notes, and snippets.

@Qyriad
Created September 3, 2023 02:18
Show Gist options
  • Select an option

  • Save Qyriad/7f624ce164e03cb2c04b1310742f294a to your computer and use it in GitHub Desktop.

Select an option

Save Qyriad/7f624ce164e03cb2c04b1310742f294a to your computer and use it in GitHub Desktop.
kglobalaccel DBus Names to Friendly Names
#!/usr/bin/env xonsh
names = $(qdbus org.kde.kglobalaccel /component org.freedesktop.DBus.Introspectable.Introspect | rg r'\s*<node name="(.+)".?>' -r r'$1').splitlines()
friendly_names = dict()
longest_name_len = 0
for name in names:
longest_name_len = max(longest_name_len, len(name))
friendly_name = $(qdbus org.kde.kglobalaccel /component/@(name) org.kde.kglobalaccel.Component.friendlyName).strip()
friendly_names[name] = friendly_name
for name, friendly_name in friendly_names.items():
padding_amount = (longest_name_len - len(name)) + 4
padding = " " * padding_amount
print(f"/component/{name}{padding}{friendly_name}", flush=True)
# Output on my NixOS machine as of 2023/09/02.
/component/ActivityManager Activity Manager
/component/KDE_Keyboard_Layout_Switcher Keyboard Layout Switcher
/component/kaccess Accessibility
/component/kcm_touchpad Touchpad
/component/kded5 KDE Daemon
/component/khotkeys Custom Shortcuts Service
/component/kmix Audio Volume
/component/ksmserver Session Management
/component/kwin KWin
/component/mediacontrol Media Controller
/component/org_kde_dolphin_desktop Dolphin
/component/org_kde_konsole_desktop Konsole
/component/org_kde_krunner_desktop KRunner
/component/org_kde_plasma_emojier_desktop Emoji Selector
/component/org_kde_powerdevil Power Management
/component/org_kde_spectacle_desktop Spectacle
/component/plasmashell Plasma
/component/systemsettings_desktop System Settings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment