{ lib, ... }: { programs.kitty = lib.mkForce { enable = true; settings = { themeFile = "Catppuccin-Mocha"; confirm_os_window_close = 0; dynamic_background_opacity = true; enable_audio_bell = false; mouse_hide_wait = "-1.0"; window_padding_width = 10; background_opacity = "0.8"; background_blur = 5; tab_bar_min_tabs = 1; tab_bar_edge = "bottom"; tab_bar_style = "powerline"; tab_powerline_style = "slanted"; tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}"; symbol_map = let mappings = [ "U+23FB-U+23FE" "U+2B58" "U+E200-U+E2A9" "U+E0A0-U+E0A3" "U+E0B0-U+E0BF" "U+E0C0-U+E0C8" "U+E0CC-U+E0CF" "U+E0D0-U+E0D2" "U+E0D4" "U+E700-U+E7C5" "U+F000-U+F2E0" "U+2665" "U+26A1" "U+F400-U+F4A8" "U+F67C" "U+E000-U+E00A" "U+F300-U+F313" "U+E5FA-U+E62B" ]; in (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font"; }; }; programs.starship = { enable = true; settings = { add_newline = true; command_timeout = 500; format = "$username$hostname $directory $git_branch$git_status\n$character "; right_format = "$cmd_duration"; username = { style_user = "bold #cba6f7"; style_root = "bold #f38ba8"; format = "[┌](bold #a6e3a1)[$user]($style)"; show_always = true; }; hostname = { style = "bold #74c7ec"; format = "[@](bold #fab387)[$hostname]($style)"; ssh_only = false; }; directory = { style = "bold #a6e3a1"; truncation_length = 0; truncation_symbol = ""; format = "[⤇ ](bold #f38ba8)[《$path》]($style)"; }; git_branch = { format = "[⟦$branch⟧]($style)"; style = "bold #f9e2af"; }; # Git status module settings git_status = { format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)"; style = "bold #a6e3a1"; conflicted = ""; untracked = ""; modified = ""; staged = ""; renamed = ""; deleted = ""; }; # Command duration module cmd_duration = { format = "[$duration]($style)"; style = "bold #cdd6f4"; min_time = 5000; # Only show if command takes longer than 5 seconds }; # Character module (prompt symbol) character = { success_symbol = "[└──────⇴ ](bold #a6e3a1)"; error_symbol = "[└──────⇴ ](bold #f38ba8)"; }; nix_shell = { format = "[$symbol$state( \($name\))]($style)"; symbol = "U+02744"; style = "bold #89dceb"; }; }; }; }