{ config, ... }: let metaLib = config.meta.lib; in { flake.modules.homeManager.terminal = { config, lib, pkgs, ... }: let repoTheme = metaLib.repo.theme.kanagawa; palette = repoTheme.palette; terminal = metaLib.resolveUserTerminal { inherit pkgs; user = config.meta.user; }; in { assertions = metaLib.mkTerminalAssertions { inherit terminal; user = config.meta.user; requireDesktopEntry = true; requireKitty = true; }; xdg.terminal-exec = { enable = true; settings.default = lib.optional (terminal.desktopId != null) terminal.desktopId; }; programs.kitty = { enable = true; font = { name = "JetBrains Mono"; size = 11; }; settings = { disable_ligatures = "always"; scrollback_lines = 10000; enable_audio_bell = false; confirm_os_window_close = 0; window_padding_width = 3; update_check_interval = 0; }; extraConfig = '' ## name: ${repoTheme.displayName} ## license: MIT ## author: Tommaso Laurenzi ## upstream: https://github.com/rebelot/kanagawa.nvim/ background ${palette.background} foreground ${palette.foreground} selection_background ${palette.selectionBackground} selection_foreground ${palette.selectionForeground} url_color ${palette.url} cursor ${palette.cursor} active_tab_background ${palette.background} active_tab_foreground ${palette.selectionForeground} inactive_tab_background ${palette.background} inactive_tab_foreground ${palette.muted} color0 ${palette.terminal.color0} color1 ${palette.terminal.color1} color2 ${palette.terminal.color2} color3 ${palette.terminal.color3} color4 ${palette.terminal.color4} color5 ${palette.terminal.color5} color6 ${palette.terminal.color6} color7 ${palette.terminal.color7} color8 ${palette.terminal.color8} color9 ${palette.terminal.color9} color10 ${palette.terminal.color10} color11 ${palette.terminal.color11} color12 ${palette.terminal.color12} color13 ${palette.terminal.color13} color14 ${palette.terminal.color14} color15 ${palette.terminal.color15} color16 ${palette.terminal.color16} color17 ${palette.terminal.color17} ''; }; }; }