Seeing what all Cinnamon keyboard shortcuts are

August 20, 2021

The Cinnamon desktop has a wide collection of things that can have keyboard shortcuts assigned to them, and a somewhat smaller collection of keyboard shortcuts that are actually assigned to them by default. If you want to examine or change what any particular Cinnamon action is bound to, you can do this through the System Settings applet, in the "Shortcuts" tab of the Keyboard settings. Remember to click open the little triangles to reveal all of the setting categories.

Unfortunately, as far as I know Cinnamon doesn't have anything to tell you about all of the currently active keybindings in one place; there's built-in no way to get a list of keybindings with what they do. However, you can inspect or extract this information in a number of ways.

The simplest way, courtesy of this Ask Ubuntu question and answer, is to use dconf-editor to look at /org/cinnamon/desktop/keybindings and its sub-directories, which is where most of the desktop actions are. This will show both edited and default settings, and generally the names are fairly obvious. You want to look at /media-keys as well as /wm, because a number of interesting actions hide out there (such as 'new terminal'). However, /wm has all of the window and desktop manipulation actions, which may be what you care about (it's often what I care about).

If you want to see this information in text form in a command line (or in a way that's easy to see only set keys), life is less easy. The dconf command can be used to dump your own customizations with 'dconf dump /org/cinnamon/desktop/keybindings/', but this won't include the default values. If you want those too (and you probably do), you need to use gsettings with a blunt hammer:

gsettings list-recursively | fgrep org.cinnamon.desktop.keybindings

Any action with a keybinding that's set to '[]' (or I think '['']') has no keybinding set, so you can throw in a fgrep to exclude those. For me, the resulting list is pretty large. You can narrow this to the org.cinnamon.desktop.keybindings.wm sub-group for just window and desktop actions if that's what you're focusing on.

The one thing that the gsettings command won't include is any completely custom keybindings you've set up. For that, you need:

dconfig dump /org/cinnamon/desktop/keybindings/custom-keybindings/

Or you can just dump all of the desktop/keybindings tree, which is less to type and also gets you any additions and changes you've made.

The actual key bindings should be relatively obvious. The <Super> modifier is generally the left additional key (the 'Windows' key on many keyboards), and <Primary> seems to be another name for <Control>. Cinnamon can bind the same action to multiple keys, which is shown as a list of keybindings. And finally, the odd 'XF86...' key names are the names for the various special media and action keys on modern keyboards. There are quite a lot of them defined, not all of which may be present on your actual keyboard. Usually it's fairly clear which special key is which XF86 name, but in doubt you may need to turn to a tool like xev.

(They start with 'XF86' for historical reasons, and you can see the list here.)


Comments on this page:

From 193.219.181.219 at 2021-08-20 12:15:38:

Any action with a keybinding that's set to '[]' (or I think '['']') has no keybinding set

Arrays in GVariant are strongly typed, so the (de)stringifier rejects a plain "[]" as input because it cannot determine the array type from that. This often leads to people specifying "['']" as a workaround, as that's "obviously an array of strings" and GNOME Shell just ignores the invalid null keybinding. (The correct way to specify an empty array-of-strings is "@as []".)

Written on 20 August 2021.
« Configuration (and configuration files) is not and cannot be generic
A home UPS has been more handy and useful than I expected »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Aug 20 01:41:28 2021
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.