add jj to prompt status and direnv to installed packages

This commit is contained in:
2024-11-16 12:34:01 -07:00
parent 12663ac772
commit 49569cc127
7 changed files with 77 additions and 6 deletions

View File

@@ -4,22 +4,26 @@ packages:
- git - git
- curl - curl
- fish - fish
- direnv
linux: linux:
dnfs: dnfs:
- git-all - git-all
- curl - curl
- bash - bash
- fish - fish
- direnv
apts: apts:
- git - git
- curl - curl
- bash - bash
- fish - fish
- direnv
apks: apks:
- git - git
- curl - curl
- bash - bash
- fish - fish
- direnv
webman: webman:
pkgs: pkgs:
- bat - bat
@@ -27,5 +31,6 @@ packages:
- fzf - fzf
- zellij - zellij
- nvim - nvim
- jj
groups: groups:
- modern-unix - modern-unix

View File

@@ -0,0 +1,11 @@
[user]
name = {{ .name | quote }}
email = {{ .email | quote }}
[ui]
editor = "nvim"
merge-editor = "vscode"
pager = "delta"
[ui.diff]
format = "git"

View File

@@ -1,11 +1,15 @@
if status is-interactive if status is-interactive
# Commands to run in interactive sessions can go here # Commands to run in interactive sessions can go here
functions -q _insert_jj_after_git; and _insert_jj_after_git
if type -q zoxide if type -q zoxide
zoxide init fish | source zoxide init fish | source
end end
if type -q atuin if type -q atuin
atuin init fish | source atuin init fish | source
end end
if type -q direnv
direnv hook fish | source
end
if test -f ~/.config/fish/config.fish.local if test -f ~/.config/fish/config.fish.local
source ~/.config/fish/config.fish.local source ~/.config/fish/config.fish.local
@@ -17,7 +21,5 @@ end
alias ls="lsd" alias ls="lsd"
fish_add_path $HOME/.webman/bin
set -gx EDITOR nvim set -gx EDITOR nvim

View File

@@ -0,0 +1,18 @@
function _insert_jj_after_git
# Get current items
set -l current_items $tide_left_prompt_items
# Check if jj already exists
if not contains jj $current_items
# Find git's position
set -l git_pos (contains -i git $current_items)
if test $git_pos -gt 0
# Create new list: items before git + git + jj + items after git
set -l new_items $current_items[1..$git_pos] jj $current_items[(math $git_pos + 1)..-1]
# Update the universal variable
set -U tide_left_prompt_items $new_items
end
end
end

View File

@@ -0,0 +1,33 @@
function _tide_item_jj
if not command -sq jj; or not jj root --quiet &>/dev/null
return 1
end
set jj_status (jj log -r@ -n1 --ignore-working-copy --no-graph --color always -T '
separate(" ",
bookmarks.map(|x| if(
x.name().substr(0, 10).starts_with(x.name()),
x.name().substr(0, 10),
x.name().substr(0, 9) ++ "…")
).join(" "),
tags.map(|x| if(
x.name().substr(0, 10).starts_with(x.name()),
x.name().substr(0, 10),
x.name().substr(0, 9) ++ "…")
).join(" "),
surround("\"","\"",
if(
description.first_line().substr(0, 24).starts_with(description.first_line()),
description.first_line().substr(0, 24),
description.first_line().substr(0, 23) ++ "…"
)
),
change_id.shortest(),
commit_id.shortest(),
if(conflict, "conflict"),
if(divergent, "divergent"),
if(hidden, "hidden"),
)' | string trim)
set jj_info $jj_status
_tide_print_item jj $tide_jj_icon' ' "($(string join ', ' $jj_info))"
end

View File

@@ -44,6 +44,8 @@ else
echo "Failed to download GeistMono.zip" echo "Failed to download GeistMono.zip"
fi fi
sudo sh -c "echo $(which fish) >> /etc/shells"
{{- end }} {{- end }}
# check if $SHELL is fish already # check if $SHELL is fish already

View File

@@ -26,7 +26,7 @@ sudo apt install -y {{ . | quote }}
{{- else if eq .osid "darwin" }} {{- else if eq .osid "darwin" }}
echo "[-] Updating brews [-]" echo "[-] Updating brews [-]"
{{ range .packages.darwin.brews -}} {{ range .packages.darwin.brews -}}
brew install {{ . | quote }} /opt/homebrew/bin/brew install {{ . | quote }}
{{ end -}} {{ end -}}
{{ end -}} {{ end -}}