diff --git a/nix/modules/fish/default.nix b/nix/modules/fish/default.nix index 97da9ea..1c225db 100644 --- a/nix/modules/fish/default.nix +++ b/nix/modules/fish/default.nix @@ -8,6 +8,116 @@ let tide_conf = builtins.readFile ./tide_config.fish; in enableFishIntegration = false; }; + programs.starship = { + enable = true; + enableFishIntegration = true; + settings = { + palettes.thoom = { + directory_bg = "#3465A4"; + directory_fg = "#E4E4E4"; + git_bg = "#4E9A06"; + git_fg = "#000000"; + prog_bg = "#212736"; + prog_fg = "#769ff0"; + duration_bg = "#C4A000"; + duration_fg = "#000000"; + user_bg = "#394260"; + user_fg = ""; + time_bg = "#D3D7CF"; + time_fg = "#000000"; + prompt_fg = "#00ff00"; + prompt_bg = "none"; + }; + + palette = "thoom"; + + format = lib.concatStrings [ + "[](fg:directory_bg)" + "$directory" + "[](fg:directory_bg bg:git_bg)" + "$git_branch" + "$git_status" + "[](fg:git_bg bg:prog_bg)" + "$nodejs" + "$rust" + "[](fg:prog_bg)" + "$fill" + "[](fg:duration_bg bg:none)" + "$cmd_duration" + "[](bg:duration_bg fg:user_bg)" + "$username" + "$hostname" + "[](bg:user_bg fg:time_bg)" + "$time" + "[](fg:time_bg bg: none)" + "$line_break" + "$character" + ]; + + directory = { + style = "fg:directory_fg bg:directory_bg"; + format = "[ $path( $read_only) ]($style)"; + truncation_length = 5; + truncation_symbol = "…/"; + substitutions = { + "Documents" = "󰈙"; + "Downloads" = "󰇚"; + }; + }; + + git_branch = { + symbol = ""; + style = "fg:git_fg bg:git_bg"; + format = "[ $symbol $branch ]($style)"; + }; + + git_status = { + style = "fg:git_fg bg:git_bg"; + format = "[($all_status$ahead_behind )]($style)"; + }; + + nodejs = { + symbol = ""; + style = "bg:prog_bg fg:prog_fg"; + format = "[ $symbol ($version) ]($style)"; + }; + + rust = { + symbol = ""; + style = "fg:prog_fg bg:prog_bg"; + format = "[ $symbol ($version) ]($style)"; + }; + + cmd_duration = { + min_time = 5000; # Show for commands taking > 5 seconds + style = "bg:duration_bg fg:duration_fg"; + format = "[  took $duration ]($style)"; + }; + + username = { + show_always = false; + style_user = "bg:user_bg"; + style_root = "bg:user_bg"; + format = "[  $user@]($style)"; + disabled = false; + }; + + hostname = { + ssh_only = true; + style = "bg:user_bg"; + format = "[$hostname ]($style)"; + disabled = false; + }; + + time = { + disabled = false; + time_format = "%r"; + style = "fg:time_fg bg:time_bg"; + format = "[  $time ]($style)"; + }; + }; + }; + programs.fish = { enable = true; @@ -23,16 +133,6 @@ let tide_conf = builtins.readFile ./tide_config.fish; in }; } - { - # https://github.com/IlanCosman/tide - name = "tide"; - src = pkgs.fetchFromGitHub { - owner = "IlanCosman"; - repo = "tide"; - rev = "13fa55ef109009e04e6e5fabda0d0e662b4e6315"; - sha256 = "sha256-+6LdcFLqDzUcCmBoKO4LDH5+5odqVqUb1NmEVNMEMjs="; - }; - } { # https://github.com/PatrickF1/fzf.fish name = "fzf"; @@ -71,8 +171,6 @@ let tide_conf = builtins.readFile ./tide_config.fish; in if test -f $HOME/.local.fish source $HOME/.local.fish end - - ${builtins.readFile ./tide_config.fish} ''; shellAliases = { diff --git a/nix/modules/fish/tide_config.fish b/nix/modules/fish/tide_config.fish deleted file mode 100644 index cf8ab93..0000000 --- a/nix/modules/fish/tide_config.fish +++ /dev/null @@ -1,123 +0,0 @@ -set --universal tide_character_color 5FD700 -set --universal tide_character_color_failure FF0000 -set --universal tide_character_icon \u276f -set --universal tide_character_vi_icon_default \u276e -set --universal tide_character_vi_icon_replace \u25b6 -set --universal tide_character_vi_icon_visual V -set --universal tide_cmd_duration_bg_color C4A000 -set --universal tide_cmd_duration_color 000000 -set --universal tide_cmd_duration_decimals 0 -set --universal tide_cmd_duration_icon \x1d -set --universal tide_cmd_duration_threshold 3000 -set --universal tide_context_always_display false -set --universal tide_context_bg_color 444444 -set --universal tide_context_color_default D7AF87 -set --universal tide_context_color_root D7AF00 -set --universal tide_context_color_ssh D7AF87 -set --universal tide_crystal_bg_color FFFFFF -set --universal tide_crystal_color 000000 -set --universal tide_crystal_icon \u2b22 -set --universal tide_docker_bg_color 2496ED -set --universal tide_docker_color 000000 -set --universal tide_docker_default_contexts default\x1ecolima -set --universal tide_docker_icon \uf308 -set --universal tide_git_bg_color 4E9A06 -set --universal tide_git_bg_color_unstable C4A000 -set --universal tide_git_bg_color_urgent CC0000 -set --universal tide_git_color_branch 000000 -set --universal tide_git_color_conflicted 000000 -set --universal tide_git_color_dirty 000000 -set --universal tide_git_color_operation 000000 -set --universal tide_git_color_staged 000000 -set --universal tide_git_color_stash 000000 -set --universal tide_git_color_untracked 000000 -set --universal tide_git_color_upstream 000000 -set --universal tide_git_icon \x1d -set --universal tide_git_truncation_length 24 -set --universal tide_go_bg_color 00ACD7 -set --universal tide_go_color 000000 -set --universal tide_go_icon \ue627 -set --universal tide_java_bg_color ED8B00 -set --universal tide_java_color 000000 -set --universal tide_java_icon \ue256 -set --universal tide_jobs_bg_color 444444 -set --universal tide_jobs_color 4E9A06 -set --universal tide_jobs_icon \uf013 -set --universal tide_kubectl_bg_color 326CE5 -set --universal tide_kubectl_color 000000 -set --universal tide_kubectl_icon \u2388 -set --universal tide_left_prompt_frame_enabled false -set --universal tide_left_prompt_items pwd\x1egit\x1enewline\x1echaracter -set --universal tide_left_prompt_prefix \ue0b6 -set --universal tide_left_prompt_separator_diff_color \ue0b0 -set --universal tide_left_prompt_separator_same_color \ue0b1 -set --universal tide_left_prompt_suffix \ue0b0 -set --universal tide_nix_shell_bg_color 7EBAE4 -set --universal tide_nix_shell_color 000000 -set --universal tide_nix_shell_icon \uf313 -set --universal tide_node_bg_color 44883E -set --universal tide_node_color 000000 -set --universal tide_node_icon \u2b22 -set --universal tide_os_bg_color 333333 -set --universal tide_os_color D6D6D6 -set --universal tide_os_icon \uf179 -set --universal tide_php_bg_color 617CBE -set --universal tide_php_color 000000 -set --universal tide_php_icon \ue608 -set --universal tide_private_mode_bg_color F1F3F4 -set --universal tide_private_mode_color 000000 -set --universal tide_private_mode_icon \ufaf8 -set --universal tide_prompt_add_newline_before true -set --universal tide_prompt_color_frame_and_connection 6C6C6C -set --universal tide_prompt_color_separator_same_color 949494 -set --universal tide_prompt_icon_connection \x20 -set --universal tide_prompt_min_cols 34 -set --universal tide_prompt_pad_items true -set --universal tide_pwd_bg_color 3465A4 -set --universal tide_pwd_color_anchors E4E4E4 -set --universal tide_pwd_color_dirs E4E4E4 -set --universal tide_pwd_color_truncated_dirs BCBCBC -set --universal tide_pwd_icon \x1d -set --universal tide_pwd_icon_home \x1d -set --universal tide_pwd_icon_unwritable \uf023 -set --universal tide_pwd_markers \x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson -set --universal tide_right_prompt_frame_enabled false -set --universal tide_right_prompt_items status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1evirtual_env\x1erustc\x1ejava\x1ephp\x1echruby\x1ego\x1ekubectl\x1etoolbox\x1eterraform\x1eaws\x1enix_shell\x1ecrystal\x1etime -set --universal tide_right_prompt_prefix \ue0b2 -set --universal tide_right_prompt_separator_diff_color \ue0b2 -set --universal tide_right_prompt_separator_same_color \ue0b3 -set --universal tide_right_prompt_suffix \ue0b4 -set --universal tide_rustc_bg_color F74C00 -set --universal tide_rustc_color 000000 -set --universal tide_rustc_icon \ue7a8 -set --universal tide_shlvl_bg_color 808000 -set --universal tide_shlvl_color 000000 -set --universal tide_shlvl_icon \uf120 -set --universal tide_shlvl_threshold 1 -set --universal tide_status_bg_color 2E3436 -set --universal tide_status_bg_color_failure CC0000 -set --universal tide_status_color 4E9A06 -set --universal tide_status_color_failure FFFF00 -set --universal tide_status_icon \u2714 -set --universal tide_status_icon_failure \u2718 -set --universal tide_time_bg_color D3D7CF -set --universal tide_time_color 000000 -set --universal tide_time_format \x25r -set --universal tide_toolbox_bg_color 613583 -set --universal tide_toolbox_color 000000 -set --universal tide_toolbox_icon \u2b22 -set --universal tide_vi_mode_bg_color_default 949494 -set --universal tide_vi_mode_bg_color_insert 87AFAF -set --universal tide_vi_mode_bg_color_replace 87AF87 -set --universal tide_vi_mode_bg_color_visual FF8700 -set --universal tide_vi_mode_color_default 000000 -set --universal tide_vi_mode_color_insert 000000 -set --universal tide_vi_mode_color_replace 000000 -set --universal tide_vi_mode_color_visual 000000 -set --universal tide_vi_mode_icon_default D -set --universal tide_vi_mode_icon_insert I -set --universal tide_vi_mode_icon_replace R -set --universal tide_vi_mode_icon_visual V -set --universal tide_virtual_env_bg_color 444444 -set --universal tide_virtual_env_color 00AFAF -set --universal tide_virtual_env_icon \ue73c