This article provides a list of (not commonly known) default keyboard shortcuts and provides information about user customization.
There are several low level shortcuts that are implemented in the kernel which can be used for debugging and recovering from an unresponsive system. Whenever possible, it is recommended that you use these shortcuts instead of doing a hard shutdown (holding down the power button to completely power off the system).
To use these, they must first be activated with either
sysctl kernel.sysrq=1 or
echo "1" > /proc/sys/kernel/sysrq. If you wish to have it enabled during boot, add
kernel.sysrq = 1 to your sysctl configuration. If you want to make sure it will be enabled even before the partitions are mounted and in the initrd, then add
sysrq_always_enabled=1 to your kernel parameters.
A common idiom to remember this is "Reboot Even If System Utterly Broken" (also referred to as "REISUB"). Alternatively, think of it as "BUSIER" backwards.
||Take control of keyboard back from X.|
||Send SIGTERM to all processes, allowing them to terminate gracefully.|
||Send SIGKILL to all processes, forcing them to terminate immediately.|
||Flush data to disk.|
||Unmount and remount all filesystems read-only.|
- If you are using a display manager and after
Alt+SysRq+eyou are presented with the login screen (or full desktop if autologin is enabled), it is most likely caused by
Restart=alwaysdirective in the relevant service file. If necessary, edit the unit, however this should not prevent the "REISUB" sequence from working.
- If all the above combinations work except
Alt+SysRq+b, try using the contralateral
- On laptops that use
Fnkey to differentiate
PrtScrn, it may not actually be necessary to use the
- On Lenovo laptops
SysRqis often configured as
Fn+S. To use it press and hold
Altfollowed by the keys above.
- You may need to press
Alt. So for example, full key shortcut would be
See Wikipedia:Magic SysRq key for more details.
Readline is a commonly used library for line-editing; it is used for example by Bash, FTP, and many more (see the details of package under "Required By" for more examples). Readline is also customizable, see examples on the readline page.
||Clear the screen|
||Move cursor one character to the left|
||Move cursor one character to the right|
||Move cursor one word to the left|
||Move cursor one word to the right|
||Move cursor to start of the line|
||Move cursor to end of the line|
|Copy & Paste|
||Cut everything from line start to cursor|
||Cut everything from the cursor to end of the line|
||Cut the current word after the cursor|
||Cut the current word before the cursor|
||Paste the previous cut text|
||Paste the second latest cut text|
||Paste the first argument of the previous command|
||Paste the last argument of the previous command|
||Move to the previous line|
||Move to the next line|
||Abort search (restores original line)|
||Restores all changes made to line|
||Auto-complete a name|
||List all possible completions|
||Insert all possible completions|
Xorg and Wayland
||Switch to n-th virtual console||If it does not work, try |
||Paste text from the PRIMARY buffer||By default, Qt maps |
See Xorg/Keyboard configuration#Frequently used XKB options for some common shortcuts, that are disabled by default.
When we are in a graphical environment we may want to execute a command when certain key combination is pressed (i.e. bind a command to a keysym). There are multiple ways to do that:
- The most portable way using low level tools, such as acpid. Not all keys are supported, but configuration in uniform way is possible for keyboard keys, power adapter connection and even headphone jack (un)plugging events. It is also difficult to run programs inside X session correctly.
- The universal way using Xorg utilities (e.g. xbindkeys) and eventually your desktop environment or window manager tools.
- The quicker way using a third-party program to do everything in GUI, such as the Gnome Control Center.
A simple X hotkey daemon with a powerful and compact configuration syntax. See sxhkd for details.
From actkbd home page:
- AUR) is a simple daemon that binds actions to keyboard events. It recognises key combinations and can handle press, repeat and release events. Currently it only supports the linux-2.6 evdev interface. It uses a plain-text configuration file which contains all the bindings. AUR (available in
A sample configuration and guide is available here.
xbindkeys allows advanced mapping of keysyms to actions independently of the Desktop Environment.
xbindkeysdifficult to use, try the graphical manager AUR from the AUR.
Key binding for X-selection-paste
Users that prefer to work with the keyboard rather than the mouse may benefit from a key binding for the paste operation of the middle mouse button. This is especially useful in a keyboard-centered environment. So, rather than moving the mouse pointer to the field and center-click to paste, it would be ideal to have a key binding to the middle mouse button:
- In Firefox, select a string you want to google for (with the mouse).
Ctrl+Kto enter the "search engine" field.
Ctrl+Vwill paste the clipboard selection, but to insert the X-selection-paste there needs to be a key binding say
Shift+Insertinserts the clipboard buffer on most GTK applications, not the X-selection-paste buffer (X-selection-paste buffer refers to primary buffer). In other applications such as ,
Shift+Insertdoes insert the X-selection-paste buffer.
The method suggested here uses three packages available in the official repositories:
- to give access to the X-selection-buffer content.
- Xbindkeys to bind a key-stroke to an action.
- AUR to pass the buffer string to the application by emulating keyboard input.
This example binds the X-selection-paste operation to the
"xvkbd -no-jump-pointer -xsendevent -text "\D1`xsel`" 2>/dev/null" F12
"\D1" code prefixes a 100 ms pause to inserting the selection buffer (see the xvkbd home page).
-xsendeventargument to xvkbd.
The key codes for keys other than
F12 can be determined using
XMonad Window Manager
Insert key) the following configuration can be used:
import XMonad.Util.Paste ... -- X-selection-paste buffer , ((0, xK_Insert), pasteSelection) ]
Tips and tricks
- If you like a keyboard-centered workflow, you might also appreciate a tiling window manager.