diff --git a/.config/fish/aliases.fish b/.config/fish/aliases.fish new file mode 100644 index 0000000..7038fcf --- /dev/null +++ b/.config/fish/aliases.fish @@ -0,0 +1,43 @@ +function mv + command mv -iv $argv +end + +function cp + command cp -riv $argv +end + +function mkdir + command mkdir -pv $argv +end + +function ls + command ls --color=auto --group-directories-first $argv +end + +function nvim + command nvim --startuptime /tmp/nvim-startuptime $argv +end + +function open + command xdg-open $argv +end + +function gitprune + git --no-pager branch --format='%(refname:short)' | xargs -n1 -I{} git branch -d {} 2>/dev/null +end + +function gitfix + git diff --name-only | uniq | xargs $EDITOR +end + +function screenshot + grim -g "(slurp)" +end + +function podrun + podman run --rm --interactive --tty --volume "(pwd):/pwd" --workdir /pwd $argv +end + +function rga + rg --glob='*' --glob='!.git' --glob='!build' $argv +end diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..b18ac84 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,7 @@ +if status is-interactive + source $XDG_CONFIG_HOME/fish/aliases.fish + source $XDG_CONFIG_HOME/fish/gpg-agent.fish + set -U fish_color_cwd f9e2af + set -g fish_sheme "Catppuccin Mocha" + set -g fish_greeting "" +end diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins new file mode 100644 index 0000000..bb38f5b --- /dev/null +++ b/.config/fish/fish_plugins @@ -0,0 +1,2 @@ +catppuccin/fish +patrickf1/fzf.fish diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..6285193 --- /dev/null +++ b/.config/fish/functions/fish_prompt.fish @@ -0,0 +1,33 @@ +function fish_prompt --description 'Write out the prompt' + set -l last_pipestatus $pipestatus + set -lx __fish_last_status $status # Export for __fish_print_pipestatus. + set -l normal (set_color normal) + set -q fish_color_status + or set -g fish_color_status red + + # Color the prompt differently when we're root + set -l color_cwd $fish_color_cwd + set -l suffix '$' + if functions -q fish_is_root_user; and fish_is_root_user + if set -q fish_color_cwd_root + set color_cwd $fish_color_cwd_root + end + set suffix '#' + end + + # Write pipestatus + # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it. + set -l bold_flag --bold + set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation + if test $__fish_prompt_status_generation = $status_generation + set bold_flag + end + set __fish_prompt_status_generation $status_generation + set -l status_color (set_color $fish_color_status) + set -l statusb_color (set_color $bold_flag $fish_color_status) + set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus) + set -l current_time (date "+%H:%M:%S") + + echo -n -s (set_color "#fab387") $current_time " " (set_color $color_cwd) (prompt_pwd) $normal \ + (fish_vcs_prompt) $normal " "$prompt_status " " $suffix " " +end diff --git a/.config/fish/gpg-agent.fish b/.config/fish/gpg-agent.fish new file mode 100644 index 0000000..269d80d --- /dev/null +++ b/.config/fish/gpg-agent.fish @@ -0,0 +1,5 @@ +set -x GPG_TTY (tty) +set -e SSH_AGENT_PID +if test "$gnupg_SSH_AUTH_SOCK_by" != $fish_pid + set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket) +end diff --git a/.config/nvim/lua/plugins/ale.lua b/.config/nvim/lua/plugins/ale.lua index 2e03945..f3809dd 100644 --- a/.config/nvim/lua/plugins/ale.lua +++ b/.config/nvim/lua/plugins/ale.lua @@ -26,6 +26,7 @@ return { cmake = { "cmakeformat" }, cpp = { "clang-format" }, css = { "prettier" }, + fish = { "fish_indent" }, go = { "gofmt" }, html = { "prettier" }, javascript = { "prettier" }, diff --git a/.local/bin/update-everything b/.local/bin/update-everything index cfdd01d..6a8d39d 100755 --- a/.local/bin/update-everything +++ b/.local/bin/update-everything @@ -5,17 +5,19 @@ command -v sudo >> /dev/null && sudo cat /dev/null command -v rustup >> /dev/null && rustup update command -v flatpak >> /dev/null && flatpak update --assumeyes -[ -f /etc/os-release ] && grep --quiet 'ID=arch' /etc/os-release && { - aur sync --upgrades --sign --remove - sudo pacman -Syu --noconfirm -} +[ -f /etc/os-release ] && grep --quiet 'ID=arch' /etc/os-release \ + && aur sync --upgrades --sign --remove \ + && sudo pacman -Syu --noconfirm [ "$(uname)" = Darwin ] && command -v brew >> /dev/null \ && brew update \ && brew upgrade -command -v nvim >> /dev/null && nvim --headless "+Lazy! sync" +qa -command -v nvim >> /dev/null && nvim --headless "TSUpdate" +qa +command -v fish >> /dev/null && fish -c "fisher update" + +command -v nvim >> /dev/null \ + && nvim --headless "+Lazy! sync" +qa \ + && nvim --headless "TSUpdate" +qa dotfiles_repo="$HOME/repos/github.com/carlsmedstad/dotfiles" [ -d "$dotfiles_repo" ] \ diff --git a/dotbot/common.conf.yaml b/dotbot/common.conf.yaml index 9f986f6..0ad63a4 100644 --- a/dotbot/common.conf.yaml +++ b/dotbot/common.conf.yaml @@ -20,6 +20,11 @@ ~/.config/bat/config: .config/bat/config ~/.config/bat/themes/Catppuccin-mocha.tmTheme: .config/bat/themes/Catppuccin-mocha.tmTheme ~/.config/black: .config/black + ~/.config/fish/aliases.fish: .config/fish/aliases.fish + ~/.config/fish/config.fish: .config/fish/config.fish + ~/.config/fish/fish_plugins: .config/fish/fish_plugins + ~/.config/fish/functions/fish_prompt.fish: .config/fish/functions/fish_prompt.fish + ~/.config/fish/gpg-agent.fish: .config/fish/gpg-agent.fish ~/.config/gdb/gdbinit: .config/gdb/gdbinit ~/.config/git/config: .config/git/config ~/.config/git/ignore: .config/git/ignore