This is an incredibly long, incredibly narcissistic, and probably to most an incredibly boring post but I said I'd write an overview of every single one of my custom shortcuts so... here we are! I think even though this setup has developed organically over the years, it mostly stays pretty consistent philosophically... and some of it is pretty neat.
One of my main principles when choosing shortcuts was... while everything should be doable with just the keyboard, everything should also be doable with left hand on the keyboard and right hand on the mouse – which is a very common mode for me.
(Picture not of me, obviously - for illustrative purposes.)
I would also love if mouse-only operation were possible, and I do have an on-screen keyboard installed – but it’s very, very inconvenient and clunky so it’s really solely a backup.
Shortcuts are basically never chosen with this in mind, even though most right-handed people do it all the time. My laptop only has a Super/Windows key on the left side, and so Super+S for example is much easier to type than Super+P, which requires both hands to coordinate. But vendors almost always pick letters based on mnemonic reasons that don’t consider usability.
The "Windows" key is for window management
By far the greatest number of my shortcuts go through the Super key and are used for window management. Look at the diagram below—most of them are meant to be typed left-handed.
Super+Esc: closes a window
Super+` (backtick): makes a window visible on all three of my workspaces
Super+Tab: makes a window on top of all others and disables its transparency
Super+Q: maximizes a window
Super+W: saves the current position of a window
Super+A: unmaximizes a window and moves it to the saved position, if any
Super+Z: minimizes a window
Super+S: toggles minimizing all windows on a workspace, showing the desktop
Super+Space: moves a window between workspaces 2 and 3
Super+Alt+Space: application launcher
Super+X/E/D/C/R/F/V/T/G/B: moves and resizes a window to different set positions
I won’t go through all of that last set, but they let me split my screen vertically, horizontally, or set up a master-stack layout with 2 or 3 windows in the stack, even though I don't use a tiling window manager.
Super+F1/F2/F3: go to workspace 1/2/3
Super+1/2/3/4/5: activate window 1/2/3/4/5
The number of a window is decided by where it is on my taskbar (which is always visible at the bottom of my screen, Windows-style). I find this way of switching windows way more convenient than Alt+Tab (which is enabled by default on Openbox). I wasn’t smart enough to hook in to the taskbar’s code directly so instead I just emulated its sorting algorithm as best as I could.
Super+6/7/8/9/0: activate window 6/7/8/9/10
Super+Alt+1/2/3/4/5: activate window 6/7/8/9/10
The pair of shortcuts to the same function, again is for being convenient in both left-handed and two-handed modes.
Next are my shortcuts for moving and resizing windows “manually”, which aren’t doable left-handed—because if I have a hand on the mouse I might as well use that instead. These aren’t very convenient but I make some use of them.
Super+H/J/K/L: shrinks a window 10px towards the relevant direction
Super+Alt+H/J/K/L: shrinks a window 1px towards the relevant direction
Super+Arrow Keys: grows a window in the relevant direction, stopping at the nearest other window or edge of the screen
Super+Alt+Arrow Keys: grows a window 1px in the relevant direction
Super+Numpad (except 0 and 5): moves a window without resizing to the edge/corner of the screen in the relevant direction
Super+Numpad 5: centers a window without resizing
Super+Alt+Numpad (except 0 and 5): moves a window 1px without resizing in the relevant direction
Note the consistency, even though I’m using three separate parts of the keyboard to define the directions—Alt is always part of the more fine-grained action.
Linux is just Windows with penguins, I guess
Next I have a bunch of shortcuts that I define in .xbindkeysrc. Most of these are functions available on Windows by default that I need to add manually in Linux.
Fn+F1: toggle volume mute
Fn+F2: volume down
Fn+F3: volume up
Fn+F4: toggle mic mute
Fn+F5: brightness down
Fn+F6: brightness up
Fn+F11: launches an application with specific settings for my laptop model
Fn+F12: launches calc in a terminal window
All of those are basically identical to Windows... except for F11, because windows uses F9. But I have a specific reason I need to use F9 for something else which we’ll get to.
PrtSc: launches flameshot to take screenshot
Shift+PrtSc: takes full-screen screenshot
I think this is the inverse of what Windows does, but to me the more convenient option should be the one I use more.
Text input, security, and more
The rest of my shortcuts depend on boot scripts run by systemd services, for the most part (a couple are run in .xinitrc when X starts). A few of them are for extra options with text input:
Shift+F11: opens dmenu to insert any Unicode character I like
Shift+F12 - the "dead_greek" key, which turns the next key pressed into a Greek letter
Shift+AltGr - the Compose key, which is called the "multi_key" by X
Note that all of these are right-hand only! If I'm using these I'm probably fully committed to typing so requiring both hands is fine. I also have a few custom additions to the Compose key - I never have to look up how to type ( ͡° ͜ʖ ͡°).
Fn+S: locks screen
Fn+Shift+S: toggles VPN on and off
These have no connection with each other, which bothers me a bit aesthetically. Some day I'll find an improvement. Just a few commits away from my perfect setup...
Fn+F9: toggles keyboard on and off
My favorite shortcut. It doesn't fully turn off power to the keyboard, but it disables the main virtual keyboard in xinput, which means nothing will respond except for the very small number of shortcuts that run through a different virtual device - which happen to include Fn+F9. I use it to clean cat hair off my laptop, and also to disable the keyboard when I lock the screen. And now of course if you've read all the way down here, you now know how to break into my laptop. Whoops.
Num Lock: toggles numlock on and off
Well, yes, that's what it usually does. But I actually changed things so that when num lock is off, my numpad can be used to control the mouse (a setting in setxkbmap called "mousekeys"). It's useful to be able to count pixels if nothing else.
A mouse infestation?
Finally, I have a few mousebinds, which apply only to my mouse, not the trackpad. Note that right click is my primary—I reversed the main buttons.
Right click + 1st side button: Inputs "Home"
Right click + 2nd side button: Inputs "End"
Right click + Middle click: Inputs "Delete"
Right click + Left click: Inputs "Enter"
These are 4 keys that are way off to the right of my keyboard and inconvenient to hit with my left hand. I think there's some logic to them—middle click closes tabs in Firefox, and the first side button usually is for "Back"—compare to the Home key going back to the beginning of a line or a webpage.
There are many, many other key combinations that I could bind, especially with a 101-key keyboard, but I think this is enough for me to remember for now—let alone to figure out how to set up on a new system. So many of these depend on quirks of my laptop's firmware (like Fn+F9) so it's not like it's guaranteed they'd work anywhere else.
Not included: any default keyboard shortcuts of Openbox, Xorg, and of my applications.















