Skip to main content

PBKittyConfigStudio

Release CI Coverage PyPI

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 as font_features/modify_font.
  • A sidebar tree, not a flat list — a subgroup (e.g. the color table under "Color scheme", mouse actions under "Mouse") is its own entry with its own settings page, so a category with a lot of settings never turns into one giant scrolling page burying part of it below the fold.
  • 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, with one-click buttons to reset it to that default or revert it to the value currently saved on disk (without rereading the whole file and losing other unsaved edits).
  • 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 SIGUSR1 to running kitty instances after a save.
  • Restore default configuration — regenerates kitty's own pristine, fully-commented example kitty.conf (via a throwaway kitty instance) and overwrites the current file, behind a confirmation dialog and the usual timestamped backup.
  • Translated UI — English and many other languages 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

  • Python 3.12+
  • kitty terminal
  • pixi (recommended) to manage the development environment

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.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PBKittyConfigStudio 0.3.0
File Size Uploaded
pbkittyconfigstudio-0.3.0.tar.gz 1.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for PBKittyConfigStudio 0.3.0
File Interpreter ABI Platform
pbkittyconfigstudio-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.8 MB

Release files / pbkittyconfigstudio-0.3.0.tar.gz

Download URL pbkittyconfigstudio-0.3.0.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
2d784f243f0e1f445eb35baaeb830ff4e991d3b4d4bba9f25613e1aa30f4e19b
BLAKE2b-256 checksum
How to use checksums
c4fcf4d252e66c9580a51128e9e405417f96800bc4138f52631dc0d26dab45ed
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.3.0-py3-none-any.whl

Download URL pbkittyconfigstudio-0.3.0-py3-none-any.whl
Size 1.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
e2096c0604d24904508b965973cbce58addb8546730fb58088cea3c33057241a
BLAKE2b-256 checksum
How to use checksums
62fdcf54b1a4d0a3fa56043613ea53a44dcda10d5710a1c91f39008f24bd59cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

0.5.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page