keystrokes are my personal shortcuts. I tend to optimize everything, so I have a lot, including bizarre ones (e.g., Alt Gr+Shift+U). I use keymapper as the linux application to control most of my keyboard shorcuts. Below I list the controllers in use, by controller keys, naming the keys as they are engraved on my French (AZERTY) keyboard—which is not always how they read in keymapper.conf: there, {A}, {W}, {Semicolon}, etc., are scan codes (US positions, unaffected by the layout), so {A} is my Q, {W} is my Z and {Semicolon} is my M, while quoted characters such as 'a' are read through the layout and mean the key that really types a.
Every Ctrl + Alt shortcut in one place, by the letter as it is engraved on the keyboard: the bare combination, and the two variants that add ShiftRight or Alt Gr.
| Key | Ctrl + Alt | + ShiftRight | + Alt Gr |
|---|---|---|---|
| A | the {{AI}} skeleton, laid out over five lines with the cursor waiting on the q= (that key is {Q} in keymapper.conf) |
||
| B | bibTeX sci.bib | bibTeX ISO4 | |
| C | {{cite|}} | {{onlinecite|}} | {{citet|}} |
| D | dates2wiki, the selected date becomes {{thisday|5|September|2024}} (a KDE shortcut, not keymapper) | ||
| E | the Spanish keyboard layout (a KDE shortcut, not keymapper) | ||
| F | the French layout, i.e., back home (idem) | ||
| G | <syntaxhighlight lang=""></syntaxhighlight> | ||
| H | html2md: the browser copy comes back as wikitext, ready to paste into a page (H for html) | html2md again, but as Markdown with every | written {{!}}: the form the a= of {{AI}} needs |
|
| I | EVE, the clipboard image goes to the local wiki as lw-stamp.jpg, squeezed under 800 kB (a KDE shortcut, not keymapper) | EVE again, but always with her dialog: preview, quality, tooltip (a KDE shortcut, so either Shift) | |
| J | free | ||
| K | this very page, in Chrome (the local wiki) | keymapper.conf | |
| L | LocalSettings.php of the local wiki | ||
| M | \mathbf{}, cursor between the braces (M for mathbf; it used to type ñ, which stays on Alt Gr + N) | \mathbb{}, cursor between the braces | |
| N | <nowiki></nowiki> | ||
| O | <blockquote></blockquote> | ||
| P | <pre></pre> | <poem></poem>, its block-level neighbour, cursor on the empty line between them | |
| Q | {{quote|}} | {{onlinequote|}} | |
| R | == References ==<references /> | {{citer|}} | |
| S | the Russian layout (idem) | ||
| T | <tt></tt> | <code></code>, the longer form of the same idea | |
| U | free | tex2uni, the selected LaTeX comes back as Unicode (a KDE shortcut, so either Shift) | |
| V | free | ||
| W | mdtable2wiki, the table on the clipboard—copied from a browser, from Claude or from the Claude Code console—comes back as a wikitable (that key is {Z} in keymapper.conf) | mdtable2wiki again, but with every structural pipe as {{!}}, so that the table can sit inside the a= of {{AI}} | |
| X | free | ||
| Y | free | gotoYouTube, jumps to the window (and tab) that is playing, typically YouTube | |
| Z | wz <wz tip="">(?!)</wz> | <wz tagtotip=></wz><span id=""></span> |
A plain keymapper rule matches with any extra modifier, so where the ShiftRight column is empty the bare action fires all the same: Ctrl+Alt+Shift+T is <tt></tt> just like Ctrl+Alt+T. Only the rows carrying a ShiftRight action of their own do something different. That is also why a ShiftRight rule has to sit above its plain counterpart in keymapper.conf.
Just V: BURN-E welds the link on the clipboard around the selected text—clipboard [[August_(2026)#Y-00hMp]] plus selected "this bit" pastes [[August_(2026)#Y-00hMp|this bit]], and puts the link back on the clipboard so the next bit can hang off the same anchor. The selection is read from PRIMARY, so nothing has to be copied first. Alt Gr is what keeps this clear of Ctrl+Shift+V above (paste primary, in KDE)—and is why it cannot be a KDE shortcut either: Qt has no Alt Gr modifier.
Everything the Win key does, gathered from the live KDE registry (kglobalaccel). The left and right Win keys are the same key: X puts Super_L and Super_R both in mod4, so every combination below fires from either. Note that none of these are mine — keymapper.conf has no Meta rule at all, so the Win key is entirely KDE's territory (unlike Ctrl+Alt, which is mine).
| Key | Meta + | + Ctrl | + Alt | + Shift | + Ctrl + Shift |
|---|---|---|---|---|---|
| ← | Quick Tile Window to the Left (KWin) | Switch One Desktop to the Left (KWin) | Switch to Window to the Left (KWin) | Move Window to Previous Screen (KWin) | Window One Desktop to the Left (KWin) |
| ↑ | Quick Tile Window to the Top (KWin) | Move Up (KWin) | Switch to Window Above (KWin) | Window One Desktop Up (KWin) | |
| → | Quick Tile Window to the Right (KWin) | Move Right (KWin) | Switch to Window to the Right (KWin) | Move Window to Next Screen (KWin) | Window One Desktop to the Right (KWin) |
| ↓ | Quick Tile Window to the Bottom (KWin) | Switch One Desktop Down (KWin) | Switch to Window Below (KWin) | Window One Desktop Down (KWin) | |
| PgUp | Maximize Window (KWin) | ||||
| PgDn | Minimize Window (KWin) | ||||
| Capture Active Window (Spectacle) | Capture Window Under Cursor (Spectacle) | Capture Rectangular Region (Spectacle) | |||
| Return | Konsole (Konsole) | ||||
| Esc | System Monitor (System Monitor) | Kill Window (KWin) | |||
| Space | |||||
| 1 … 9, 0 | Activate Task Manager Entry 1 … 10 (plasmashell) | ||||
| A | Walk through activities (plasmashell) | Activate Window Demanding Attention (KWin) | Walk through activities (Reverse) (plasmashell) | ||
| B | Switch Power Profile (Power Management) | ||||
| C | Toggle Cube (KWin) | ||||
| D | Peek at Desktop (KWin) | ||||
| E | Dolphin (Dolphin) | ||||
| F | Map to fullscreen (Wacom Tablet) | ||||
| G | Toggle Grid View (KWin) | ||||
| K | Switch to Next Keyboard Layout (Keyboard Layout Switcher) | ||||
| L | Lock Session (Session Management) | Switch to Last-Used Keyboard Layout (Keyboard Layout Switcher) | |||
| M | Toggle between all screens (Wacom Tablet) | ||||
| N | Next profile (Wacom Tablet) | ||||
| P | Switch Display (Display Configuration) | Previous Profile (Wacom Tablet) | Move keyboard focus between panels (plasmashell) | ||
| Q | Show Activity Switcher (plasmashell) | ||||
| R | Record Rectangular Region (Spectacle) | Record Window (Spectacle) | Record Screen (Spectacle) | Record Rectangular Region (Spectacle) | |
| S | Stop Current Activity (plasmashell) | Toggle the Stylus Tool Relative/Absolute (Wacom Tablet) | Toggle Screen Reader On and Off (Accessibility) | Launch Spectacle (Spectacle) | |
| T | Toggle Tiles Editor (KWin) | Enable/Disable the Touch Tool (Wacom Tablet) | |||
| V | Show Clipboard Items at Mouse Position (plasmashell) | ||||
| W | Toggle Overview (KWin) | ||||
| X | Automatic Action Popup Menu (plasmashell) | ||||
| F5 | Move Mouse to Focus (KWin) | ||||
| F6 | Move Mouse to Center (KWin) | ||||
| F9 | HTML to Markdown (HTML to Markdown) | ||||
| + | Zoom In (KWin) | ||||
| - | Zoom Out (KWin) | ||||
| = | Zoom In (KWin) | ||||
| . | Emoji Selector (Emoji Selector) |
Also Meta+Ctrl+Alt+Shift+Space for the Emoji Selector, the one combination that does not fit the columns above.
Still free on the bare Win key: H, I, J, O, U, Y, Z.
The Alt Gr shortcuts are sometimes good by default, but rarely so, e.g., one never needs ¬, ŧ, ø, ¤, ð, đ, ŋ, ̉ (the modifier for ả, ẻ, ỏ which are cute, but one also doesn't need those), ł (besides, mapped on two keys: l and z), ¢, „, “, ”,' (another modifier but as French I have the letters é, è, à, ù, etc.), •, ·, . ̣̣̣(the modifier for ạ, ẹ, etc.), and only very rarely needs æ (Læticia), ħ (not even the Physics one which is the tilted ℏ), etc.
This also applies to the Alg Gr + Shift keys: ¬⅛£$⅜⅝⅞™±°¿Æ<¢—Ŧ¥↑ıØÞΩẞЪŊĦ ̛&Łºǎ㦣>©‚‘’˝÷, etc.
Instead, my shorcuts are:
|
|
The bare function row is left to the applications, which is where those keys are worth most. My own applications sit on Alt Gr and other modifiers instead.
| Key | alone (the application's own) | Ctrl + | Alt + | Meta + | Alt Gr + | also |
|---|---|---|---|---|---|---|
| F1 | Help; in Emacs help-command | Switch to Desktop 1 | Application Launcher | Emacs | ||
| F2 | Rename, in Dolphin | Switch to Desktop 2 | KRunner | Inkscape | ||
| F3 | Find Next; in Emacs start recording a macro | Switch to Desktop 3 | Window Operations Menu | Mathematica | ||
| F4 | in Emacs end and replay the macro; terminal panel in Dolphin | Switch to Desktop 4 | Close Window | System Settings | ||
| F5 | Reload, in every browser and in Dolphin | Move Mouse to Focus | System Monitor | |||
| F6 | Move Mouse to Center | Kazam | ||||
| F7 | Spectacle—a global grab, so no application sees it | Present Windows (window class) | Spectacle also on Meta+Shift+S and Print | |||
| F8 | Chrome | |||||
| F9 | Places panel, in Dolphin | Present Windows (current desktop) | html2md | Firefox | ||
| F10 | Present Windows (all desktops) | Konsole | Konsole also on Meta+Return | |||
| F11 | fullscreen; in Emacs toggle-frame-fullscreen | Claude desktop | ||||
| F12 | developer tools, in Chrome and Firefox | Show Desktop | this very page, in Chrome | also on Ctrl+Alt+K; Alt+Shift+F12 suspends compositing |
The Fn layer proper—the brightness, volume and similar symbols printed on that same row, reached by holding the Fn key—is a different thing altogether: it is firmware and kernel business, emits XF86 keysyms, and is not configured here at all.
The Alt Gr column is the one thing on this page that cannot be a KDE shortcut: Qt has no Alt Gr modifier at all—QKeySequence("AltGr+F1") parses to an empty sequence—so keymapper, which sees the key as plain AltRight down at the evdev level, is the only thing able to bind it. Other things in the table are ordinary global shortcuts from kglobalshortcutsrc. Being global grabs, those are swallowed before the focused window ever sees them and no application can win one back; there is no per-application exception to configure, which is the whole reason for leaving the bare row alone. The Emacs bindings above were read out of Emacs itself rather than remembered; F5 to F9 and F12 are genuinely unbound there, which is what made F8 and F9 the cheap ones to take. F8 and F12 go through google-chrome-wrapper rather than Chrome itself, so they keep the fix for the omnibox race. Flameshot, which used to hold F11, now has no shortcut at all. Left free on this row, should I want them: all the plain Shift and Alt Gr + Shift combinations, Ctrl+F5 to F6, Ctrl+F8, Ctrl+F11, Alt+F5 through Alt+F12, and Meta+F1 to F4, F7, F8, F10 to F12.
Gaming keyboard keys mapped via xbindkeys (~/.xbindkeysrc) using keycode+modifier syntax.
| Key | Keycode | X11 Keysym | Binding | Behavior |
|---|---|---|---|---|
| ◯ (Circle) | 191 | XF86Tools | af-type | Types the current AF tag (5 base62 characters) where the cursor is. The tag changes every second, so af runs at press time and the result is injected through keymapperctl |
| △ (Triangle) | 192 | XF86Launch1 | Open Keystrokes | Opens this page in Chrome on current desktop (existing window if available, new session otherwise) |
| □ (Square) | 193 | XF86Launch2 | Unassigned | Ready for configuration |
| ✕ (X) | 194 | XF86Forward | texin.py | Opens the tex2uni window: type a TeX fragment, get the Unicode on the clipboard. Redundant with Ctrl+Alt+Shift+U, which stays |
Keymapper doesn't support XF86Launch5/6, XF86Tools, or XF86Forward directly. xbindkeys accepts them via c:keycode + m:modifier syntax. Keys work in Emacs, confirming X11 reach.