diff --git a/bashrc b/bashrc index c1c1812..d981ed6 100644 --- a/bashrc +++ b/bashrc @@ -1,4 +1,6 @@ +exec fish + # Get ourselves a nice prompt keep_status() { s="$?" diff --git a/config/fish/fishd.abysm b/config/fish/fishd.abysm new file mode 100644 index 0000000..f83d623 --- /dev/null +++ b/config/fish/fishd.abysm @@ -0,0 +1,32 @@ +# This file is automatically generated by the fish. +# Do NOT edit it directly, your changes will be overwritten. +SET __fish_classic_git_prompt_initialized:\x1d +SET __fish_init_2_39_8:\x1d +SET __fish_init_2_3_0:\x1d +SET fish_color_autosuggestion:555\x1ebrblack +SET fish_color_command:\x2d\x2dbold +SET fish_color_comment:red +SET fish_color_cwd:green +SET fish_color_cwd_root:red +SET fish_color_end:brmagenta +SET fish_color_error:brred +SET fish_color_escape:bryellow\x1e\x2d\x2dbold +SET fish_color_history_current:\x2d\x2dbold +SET fish_color_host:normal +SET fish_color_match:\x2d\x2dbackground\x3dbrblue +SET fish_color_normal:normal +SET fish_color_operator:bryellow +SET fish_color_param:cyan +SET fish_color_quote:yellow +SET fish_color_redirection:brblue +SET fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack +SET fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SET fish_color_status:red +SET fish_color_user:brgreen +SET fish_color_valid_path:\x2d\x2dunderline +SET fish_greeting:\x1d +SET fish_key_bindings:fish_default_key_bindings +SET fish_pager_color_completion:\x1d +SET fish_pager_color_description:B3A06D\x1eyellow +SET fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SET fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan diff --git a/config/fish/functions/agent.fish b/config/fish/functions/agent.fish new file mode 100644 index 0000000..cacf413 --- /dev/null +++ b/config/fish/functions/agent.fish @@ -0,0 +1,4 @@ +function agent --description 'Runs ssh-agent' + eval (ssh-agent -c) + and ssh-add +end diff --git a/config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..83dae5b --- /dev/null +++ b/config/fish/functions/fish_prompt.fish @@ -0,0 +1,94 @@ +function fish_prompt --description 'Write out the prompt' + if not set -q __fish_git_prompt_show_informative_status + set -g __fish_git_prompt_show_informative_status 1 + end + if not set -q __fish_git_prompt_hide_untrackedfiles + set -g __fish_git_prompt_hide_untrackedfiles 1 + end + + if not set -q __fish_git_prompt_color_branch + set -g __fish_git_prompt_color_branch magenta --bold + end + if not set -q __fish_git_prompt_showupstream + set -g __fish_git_prompt_showupstream "informative" + end + if not set -q __fish_git_prompt_char_upstream_ahead + set -g __fish_git_prompt_char_upstream_ahead "↑" + end + if not set -q __fish_git_prompt_char_upstream_behind + set -g __fish_git_prompt_char_upstream_behind "↓" + end + if not set -q __fish_git_prompt_char_upstream_prefix + set -g __fish_git_prompt_char_upstream_prefix "" + end + + if not set -q __fish_git_prompt_char_stagedstate + set -g __fish_git_prompt_char_stagedstate "●" + end + if not set -q __fish_git_prompt_char_dirtystate + set -g __fish_git_prompt_char_dirtystate "✚" + end + if not set -q __fish_git_prompt_char_untrackedfiles + set -g __fish_git_prompt_char_untrackedfiles "…" + end + if not set -q __fish_git_prompt_char_conflictedstate + set -g __fish_git_prompt_char_conflictedstate "✖" + end + if not set -q __fish_git_prompt_char_cleanstate + set -g __fish_git_prompt_char_cleanstate "✔" + end + + if not set -q __fish_git_prompt_color_dirtystate + set -g __fish_git_prompt_color_dirtystate blue + end + if not set -q __fish_git_prompt_color_stagedstate + set -g __fish_git_prompt_color_stagedstate yellow + end + if not set -q __fish_git_prompt_color_invalidstate + set -g __fish_git_prompt_color_invalidstate red + end + if not set -q __fish_git_prompt_color_untrackedfiles + set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal + end + if not set -q __fish_git_prompt_color_cleanstate + set -g __fish_git_prompt_color_cleanstate green --bold + end + + set -l last_status $status + + if not set -q __fish_prompt_normal + set -g __fish_prompt_normal (set_color normal) + end + + set -l color_cwd + set -l prefix + switch $USER + case root toor + if set -q fish_color_cwd_root + set color_cwd $fish_color_cwd_root + else + set color_cwd $fish_color_cwd + end + set suffix '#' + case '*' + set color_cwd $fish_color_cwd + set suffix '$' + end + + # time + echo -n (date +"[%T] ") + # PWD + set_color $color_cwd + echo -n (prompt_pwd) + set_color normal + + printf '%s ' (__fish_vcs_prompt) + + if not test $last_status -eq 0 + set_color $fish_color_error + end + + echo -n "$suffix " + + set_color normal +end diff --git a/config/fish/functions/go.fish b/config/fish/functions/go.fish new file mode 100644 index 0000000..7add49b --- /dev/null +++ b/config/fish/functions/go.fish @@ -0,0 +1,6 @@ +function go --description 'Jump to directories' + lr /home /data /etc -L -t '(name ~~ "^\." && prune || print) && type = d && !(name = ".git")' \ + | fzf \ + | read -l dir + [ "$dir" ]; and cd $dir; and clear +end diff --git a/config/fish/functions/ls.fish b/config/fish/functions/ls.fish new file mode 100644 index 0000000..44000a8 --- /dev/null +++ b/config/fish/functions/ls.fish @@ -0,0 +1,3 @@ +function ls --description 'List contents of directory' + lr -1FG $argv +end