How can I change the default keybinding for the Super key?

I’m trying to customize my Ubuntu Budgie 18.04 desktop to have a look and behaviour similar to MacOS.

I have successfully installed SlingSwarm, which is a GTK3 port of Slingscold, and it serves as a full screen launcher for my programs. I have placed this on my dock, and it works like a charm.

But now, I’m trying to figure out how can I change the Super key to launch this new menu instead of the default Budgie Menu.

I tried the most obvious solution of using the Dconf editor, and editing the org/gnome/mutter/overlay-key to disable the Super key.

But even with this, in the keyboard settings I can’t create a new keyboard shortcut, because the Super key is not accepted.

So I suppose that this function is hardcoded.

Is there any configuration text file that I can edit to change what program is activated with the Super key?

Thanks in advance.

Hi and welcome,

The Super (left) key is set in dconf-editor:

navigate to org.gnome.mutter.overlay_key and you will see that the default “Super_L” is defined. You can remove that or change the keybinding - so a little surprise you are having difficulty remapping it.

Thanks, but the thing that I want to change is not the Super key, but the action that invokes the super key.

Currently, when you press the super key, the Budgie Menu is launched.

But the thing that I want to configure, is that instead of launching the Budgie Menu, the Super key will launch the slingswarm-launcher command, opening the new full screen menu that I have installed.

In the dconf section that you are referring, you can set the value of the key. But you can’t change the action that is invoked.

The action invoked is a budgie action - the current menu applet responds to that action.

So what will be required is a tiny applet that responds to the same action and invokes slingswarm

Thanks for the detailed answer!

But my knowledge of code outside of some basic notions of HTML and CSS is zero, and this is my first time with a Linux desktop.

My skills to create a custom Budgie applet are not still there :slight_smile:

So I suppose that I will need to live without having my new menu activated with the super key.

Regards!

I’ve created a new “mini app” called budgie-extras-daemon over the weekend. It reads simple config files where you define a shortcut key combination and then invokes a command.

I’ll need to test if it can take as the shortcut “super_L” - will ping here later.

1 Like

A small dirty hack to re-bind the super key to whatever you like, which works for me:

  1. Open dconf-editor
  2. go to /com/solus-project/budgie-wm/experimental-enable-run-dialog-as-menu and enable this option
  3. Create a superkey.sh bash script in your preferred location, make it executable (chmod +x superkey.sh), and enter in it the command(s) you wish to be activated by the super key.
  4. Then, in a terminal, enter:
    sudo mv /usr/bin/budgie-run-dialog /usr/bin/budgie-run-dialog.old
    sudo ln -s /LOCATIONHERE/superkey.sh /usr/bin/budgie-run-dialog

This hack may not survive Ubuntu or Budgie upgrades, but doesn’t take too long to re-enable. It also breaks the Budgie Run menu (bound to F2 by default), but you can rebind Alt-F2 to /usr/bin/budgie-run-dialog.old or use any number of third party run menus or app launchers instead.

My friend this is the way on ubuntu budgie


# Example file for services that require global keybinding
# services drop a .bde extension file into
# /etc/budgie-extras-daemon/bde/ or the install location appended with bde
# either/both toggle / command need to be specified
#
# [Daemon]
# shortcut=key shortcut to bind e.g. <ctrl><alt>s
# toggle=GSettings full-gsettings-path key-is-bool-to-toggle-when-shortcut-activated
# command=command line to execute when shortcut activated
# onlyactivate=GSettings full-gsettings-path key-is-bool-bind-shortcut-only-when-true
# overlay=GSettings full-gsettings-path key-is-string-set-to-empty
#   used with onlyactivate to set key to '' if true or reset to default key
#   value if onlyactivate is false
# name=short name to describe what this shortcut is all about.