PBKittyConfigStudio
Although kitty is a keyboard-driven terminal for power users that also fully supports the mouse, editing its configuration file can be a chore: knowing the options, their possible values, their defaults... you need the documentation open in front of you.
This program is a graphical interface for configuring the kitty terminal. It covers a broad set of kitty's configuration options, pulled directly from kitty's own source (see CODING.md for how).
Built with Python and PySide6 (Qt6), the app needs nothing else.
Features
- ~237 settings across 12 categories, mirroring kitty's own grouping: fonts, cursor, scrollback, mouse, performance, terminal bell, window layout, tab bar, color scheme (including the 16 ANSI colors and mark colors), advanced, OS-specific tweaks, and the non-mapping keyboard shortcut settings.
- Real widgets for real values — color pickers, spin boxes, toggle
switches, dropdowns, a font picker built on Qt's own font database (no
shelling out to
fc-list), and a list editor for repeatable settings such asfont_features/modify_font. - Search — a search box above the sidebar filters settings by name or label across every category.
- Default vs. modified at a glance — every row is badged "default" or "modified" against kitty's own default value.
- Non-destructive — every save writes a timestamped backup
(
kitty.conf.bak_<date>) first, and rewrites existing lines (including commented-out ones) in place with a targeted regex, leaving comments and everything else in the file untouched. A value equal to its default is written back as a commented-out line, documenting it without forcing it. - Hot reload — best-effort
SIGUSR1to running kitty instances after a save. - Restore default configuration — regenerates kitty's own pristine,
fully-commented example
kitty.conf(via a throwawaykittyinstance) and overwrites the current file, behind a confirmation dialog and the usual timestamped backup. - Translated UI — English and French out of the box (see Development to add a language).
- Stays in sync with kitty — the settings schema is generated straight from kitty's own option definitions rather than hand-maintained; see CODING.md for the full pipeline.
Requirements
Quick Start
make venv # create the pixi environment (installs pixi if missing)
make run # launch PBKittyConfigStudio
Or, without pixi, in any Python 3.12+ environment:
pip install -e .
python -m pb_kitty_config_studio
Development
This project uses pixi for environment management and a
Makefile for all common tasks — see make help for the full list.
make venv # create/update the pixi environment
make install # editable install + pre-commit hooks
make test # run the test suite
make lint # ruff check + format --check
make format # ruff format + check --fix
See CODING.md for the architecture, the schema generation/ curation pipeline, and the i18n extraction details — start there before adding or changing a setting.
Translations
Strings are managed with pybabel (never
xgettext/msgfmt directly).
make translate # extract strings, update & compile .po/.mo
make new-lang LOCALE=de # scaffold a new language
python tools/po_check.py # translation stats / search untranslated entries
Packaging
make dist # standalone PyInstaller executable → dist/
make srcdist # source archive (git archive) → dist/
The PyInstaller build embeds the OS-level app icon (.ico on Windows,
.icns in the macOS .app bundle). Icons are sourced from the PBIcons
project; sync them with:
make update-icons
License
GNU General Public License v3.0 or later — see LICENSE.
Credits
- Kovid Goyal and the kitty development team — many thanks for building and maintaining the kitty terminal this app configures.
Author
Marcel Spock mrspock@cardolan.net PBMou
PBMou is a cross-language pun: "PB" stands for "Poilbarbe", and "Mou" is the French translation of "Soft" — so PBMou reads like "PBSoft" half-translated into French.
Release files for PBKittyConfigStudio 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pbkittyconfigstudio-0.1.1.tar.gz | 1.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pbkittyconfigstudio-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.7 MB
Release files / pbkittyconfigstudio-0.1.1.tar.gz
| Download URL | pbkittyconfigstudio-0.1.1.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0d56a76b844262077cf749577190f3563331bf435bda17e7f80b711b0ffb0989
|
|
BLAKE2b-256 checksum How to use checksums |
97429b3a49a5095d8461f17b92a0e41da5c6dc30f91c36ed1d56c5b5e31a948f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / pbkittyconfigstudio-0.1.1-py3-none-any.whl
| Download URL | pbkittyconfigstudio-0.1.1-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5d758c9756653f1463d3f44397b59d1de64276a80398760dcb3d41eb6d519c1d
|
|
BLAKE2b-256 checksum How to use checksums |
021a741ea5ca21d6e71b1dd4b15d0e642b6365025bf7410c6d3bd828626e088b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|