summaryrefslogtreecommitdiff
path: root/host/software/fish.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/software/fish.nix')
-rw-r--r--host/software/fish.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/host/software/fish.nix b/host/software/fish.nix
new file mode 100644
index 0000000..d1e46c9
--- /dev/null
+++ b/host/software/fish.nix
@@ -0,0 +1,76 @@
+{ pkgs, ... }:
+
+{
+ programs.fish = {
+ enable = true;
+
+ shellInit = ''
+ set fish_greeting ""
+ '';
+
+ interactiveShellInit = ''
+ eval (dircolors -c ${./asset/dir_colors})
+
+ set fish_color_normal white
+ set fish_color_command magenta --bold
+ set fish_color_param green
+ set fish_color_error brred
+ set fish_color_operator cyan
+ set fish_color_comment white
+ set fish_color_cwd green
+ set fish_color_quote brown
+ set fish_color_autosuggestion 555
+ set fish_color_redirection white
+ '';
+
+ promptInit = ''
+ function fish_prompt
+ set last_status $status
+
+ if not set -q __fish_prompt_normal
+ set -g __fish_prompt_normal (set_color normal)
+ end
+
+ switch $USER
+ case root
+ if not set -q __fish_prompt_cwd
+ if set -q fish_color_cwd_root
+ set -g __fish_prompt_cwd (set_color $fish_color_cwd_root)
+ else
+ set -g __fish_prompt_cwd (set_color $fish_color_cwd)
+ end
+ end
+
+ case '*'
+ if not set -q __fish_prompt_cwd
+ set -g __fish_prompt_cwd (set_color $fish_color_cwd)
+ end
+ end
+
+ echo -n -s 'λ ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal"
+
+ if test $IN_NIX_SHELL
+ if test $NIX_SHELL_NAME
+ echo -n -s ' (' $NIX_SHELL_NAME ')'
+ else
+ echo -n -s ' (nix-shell)'
+ end
+ end
+
+ if test $last_status -gt 0
+ set_color $fish_color_cwd_root
+ echo -n -s ' ● '
+ set_color normal
+ else
+ echo -n -s ' ● '
+ end
+ end
+
+ function fish_right_prompt
+ set_color $fish_color_autosuggestion
+ date '+%H:%M:%S'
+ set_color normal
+ end
+ '';
+ };
+}