LEFTEROS / PERSONAL NOTES
Kitty now follows the theme in Chris Titus's dwm
11 October 2026 / Lefteris Iliadis / SomniusX

dwm-titus is Chris Titus's dwm setup: the window manager plus a full desktop around it, with themes you switch from its Settings. Change the theme and everything follows. Everything except kitty, which stayed on Nord no matter what.
Menk1l had already found why, in issue #367. kitty keeps the last value it reads for each setting. The shipped kitty.conf read the theme file first, then set its own colors, then included nord.conf at the very end. So the theme was loaded and then overwritten, every time. Alacritty didn't have the problem because its config has no palette of its own.
The issue had been sitting for a week with nobody on it, so I picked it up and sent pull request #377. Chris merged it on 10 October.

Before: the theme was included first and then overwritten by kitty.conf's own colors and nord.conf. Now: one include of the theme, at the end.
What changed
- New installs. The shipped
kitty.confno longer has its own palette, border and tab colors, or thenord.confinclude.include active-theme.confis now the last line. - Existing installs.
make installdoesn't overwrite yourkitty.conf, so fixing the shipped file wasn't enough. Now, the first time a theme is applied (directly or from Settings), the old file gets cleaned up: the palette, border and tab lines shipped up to v0.7.2 and thenord.confinclude go, and the theme include ends up last, once. Everything else in your file stays. - Only untouched lines go. A color line is removed only if it's exactly what dwm-titus shipped. If you changed a value yourself, it stays.
- A backup. The original is saved as
kitty.conf.dwm-titus.bak, with the same permissions as your file.
One thing I learned along the way: you can't just add a second include at the end. kitty ignores a file it has already included, so the include has to move, not be copied. I checked that on kitty 0.48.2.
The review
Abs313a tested it closely and found three real problems: the backup didn't keep the file's permissions, a Settings apply didn't put the backup in ~/.config/kitty, and the old border and tab colors survived the cleanup. All three were right, and all three got fixed, with tests for both ways of applying a theme.
How it was tested
With kitty's own config loader: the old file resolves to Nord, and a fresh kitty.conf and a cleaned-up v0.7.2 one come out with no difference in any option under the same theme. Plus the project's theme and appearance tests, with new cases for the migration, and shellcheck and shfmt, in a Fedora 44 container. I didn't run the full test gate, and I didn't try it in a live X11 session.
It's merged into main and will be in the next dwm-titus release; the latest one, v0.7.2, came out before it. Thanks to Chris for merging it, to Menk1l for the clear bug report, and to Abs313a for the review.