What is the KKSRC file format?
A .kksrc file is a keyboard shortcut scheme exported from KDE Plasma, the desktop environment used on many Linux distributions. It is plain text in an INI style, so it reads cleanly in any editor. Group headers sit in square brackets and name the component they configure, such as [kwin][Global Shortcuts] for the window manager or [plasmashell][Global Shortcuts] for the desktop shell. Under each header, every line maps an action to a key sequence, for example Walk Through Windows=Alt+Tab. An action can carry several alternative bindings separated by semicolons, and the value none marks an action with no shortcut assigned.
The file is a portable snapshot. Your live bindings run from ~/.config/kglobalshortcutsrc, and a .kksrc scheme is what System Settings writes when you export those bindings to share, back up, or copy to another machine. The format is close to a plain .ini file, and you will often find .kksrc files sitting alongside other dotfiles in version control.
Security & safety
RISK: LOWA .kksrc file is plain text that lists action names and key sequences. It holds no executable code and cannot run on its own. The only caution is that importing an unknown scheme will overwrite your existing shortcut bindings, so review the file first if it came from someone else.
Format details
in a nutshell- KHotKeys custom shortcut data - The older KDE KHotKeys engine handled custom hotkeys and gestures via [khotkeys] groups; it is unmaintained after the Plasma 5.27 branch.
Programs that open KKSRC files
.kksrc file to read its plain-text shortcut entries, though the file only applies inside KDE Plasma. .kksrc file contains. .kksrc file to read and edit the bracketed groups and action=shortcut lines directly as text. kcmshell6 keys (or kcmshell5 keys) to launch the Shortcuts control module, then import the scheme file. Technical details
deep spec| Encoding | UTF-8 plain text |
| Byte order | N/A (text, no byte-order marker) |
| Container | INI-style key=value groups |
| Structure | Grouped INI file. Each group header takes the form [ComponentName][Global Shortcuts] (for example [kwin][Global Shortcuts] or [plasmashell][Global Shortcuts]). Under each header, lines follow ActionName=KeySequence, such as Walk Through Windows=Alt+Tab. Multiple alternative bindings for one action are separated by semicolons, and the value none marks an unbound action. |
| Typical size | A few kilobytes; commonly 2 KB to 30 KB depending on how many components and actions are exported |
| Integrity | None built in; integrity relies on the plain-text file being well formed |
| Platforms | Linux, BSD |
| Notes | Produced by the Shortcuts module in KDE System Settings when a shortcut scheme is exported. It mirrors the on-disk kglobalshortcutsrc data but is packaged as a portable, importable scheme file. The runtime configuration itself lives in ~/.config/kglobalshortcutsrc, which uses the same INI grouping but a richer value syntax (action=binding,default,friendly name). |
| Editability | Fully human-readable and editable in any text editor |
| Line Format | action name = key sequence |
| Released | KDE 4 / Plasma era (KDE global shortcuts framework) |
| Specification | docs.kde.org |
KKSRC conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about KKSRC files.
Frequently asked questions
How do I open a .kksrc file?
kcmshell6 keys. To just read or edit the contents, open it in any text editor such as Kate, VS Code, or Notepad.Where does KDE store my actual shortcuts?
~/.config/kglobalshortcutsrc. A .kksrc file is a portable scheme exported from that data through System Settings, meant for sharing or backup.Can I import a .kksrc file from the command line?
kcmshell6 keys and import from there, or manage full profiles with a tool like Konsave. Some users script edits to kglobalshortcutsrc directly instead.Will importing a .kksrc file delete my current shortcuts?
Does .kksrc work on Windows or macOS?
Why does a shortcut show the value none?
none means the action currently has no key assigned. It is a normal placeholder for actions that are intentionally left unbound.