add jj to prompt status and direnv to installed packages
This commit is contained in:
@@ -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
|
||||||
|
|||||||
11
dot_config/jj/config.toml.tmpl
Normal file
11
dot_config/jj/config.toml.tmpl
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[user]
|
||||||
|
name = {{ .name | quote }}
|
||||||
|
email = {{ .email | quote }}
|
||||||
|
|
||||||
|
[ui]
|
||||||
|
editor = "nvim"
|
||||||
|
merge-editor = "vscode"
|
||||||
|
pager = "delta"
|
||||||
|
|
||||||
|
[ui.diff]
|
||||||
|
format = "git"
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
18
dot_config/private_fish/functions/_insert_jj_after_git.fish
Normal file
18
dot_config/private_fish/functions/_insert_jj_after_git.fish
Normal 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
|
||||||
33
dot_config/private_fish/functions/_tide_item_jj.fish
Normal file
33
dot_config/private_fish/functions/_tide_item_jj.fish
Normal 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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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 -}}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user