kitty: make extraConfig obey mkOrder

this change makes kitty.extraConfig obey the lib.mkOrder function so
that text can be inserted at the right place.
This commit is contained in:
Ivan Kirilov Dimitrov
2025-05-28 22:17:42 +02:00
committed by Austin Horstman
parent 115344f32b
commit ad88262f06
6 changed files with 104 additions and 28 deletions

View File

@@ -12,6 +12,8 @@ let
mkOption
optionalString
types
mkMerge
mkOrder
;
cfg = config.programs.kitty;
@@ -275,32 +277,37 @@ in
home.packages = [ cfg.package ] ++ optionalPackage cfg.font;
programs.kitty.extraConfig = mkMerge [
(mkIf (cfg.font != null) (
mkOrder 510 ''
font_family ${cfg.font.name}
${optionalString (cfg.font.size != null) "font_size ${toString cfg.font.size}"}
''
))
(mkIf (cfg.themeFile != null) (
mkOrder 520 ''
include ${pkgs.kitty-themes}/share/kitty-themes/themes/${cfg.themeFile}.conf
''
))
(mkIf (cfg.shellIntegration.mode != null) (
mkOrder 530 ''
# Shell integration is sourced and configured manually
shell_integration ${cfg.shellIntegration.mode}
''
))
(mkOrder 540 (toKittyConfig cfg.settings))
(mkOrder 550 (toKittyActionAliases cfg.actionAliases))
(mkOrder 560 (toKittyKeybindings cfg.keybindings))
(mkOrder 570 (toKittyEnv cfg.environment))
];
xdg.configFile."kitty/kitty.conf" =
{
text =
''
# Generated by Home Manager.
# See https://sw.kovidgoyal.net/kitty/conf.html
''
+ lib.concatStringsSep "\n" [
(optionalString (cfg.font != null) ''
font_family ${cfg.font.name}
${optionalString (cfg.font.size != null) "font_size ${toString cfg.font.size}"}
'')
(optionalString (cfg.themeFile != null) ''
include ${pkgs.kitty-themes}/share/kitty-themes/themes/${cfg.themeFile}.conf
'')
(optionalString (cfg.shellIntegration.mode != null) ''
# Shell integration is sourced and configured manually
shell_integration ${cfg.shellIntegration.mode}
'')
(toKittyConfig cfg.settings)
(toKittyActionAliases cfg.actionAliases)
(toKittyKeybindings cfg.keybindings)
(toKittyEnv cfg.environment)
cfg.extraConfig
];
text = ''
# Generated by Home Manager.
# See https://sw.kovidgoyal.net/kitty/conf.html
${cfg.extraConfig}
'';
}
// lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
onChange = ''