add jj to prompt status and direnv to installed packages
This commit is contained in:
@@ -4,22 +4,26 @@ packages:
|
||||
- git
|
||||
- curl
|
||||
- fish
|
||||
- direnv
|
||||
linux:
|
||||
dnfs:
|
||||
- git-all
|
||||
- curl
|
||||
- bash
|
||||
- fish
|
||||
- direnv
|
||||
apts:
|
||||
- git
|
||||
- curl
|
||||
- bash
|
||||
- fish
|
||||
- direnv
|
||||
apks:
|
||||
- git
|
||||
- curl
|
||||
- bash
|
||||
- fish
|
||||
- direnv
|
||||
webman:
|
||||
pkgs:
|
||||
- bat
|
||||
@@ -27,5 +31,6 @@ packages:
|
||||
- fzf
|
||||
- zellij
|
||||
- nvim
|
||||
- jj
|
||||
groups:
|
||||
- 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
|
||||
# Commands to run in interactive sessions can go here
|
||||
functions -q _insert_jj_after_git; and _insert_jj_after_git
|
||||
if type -q zoxide
|
||||
zoxide init fish | source
|
||||
end
|
||||
if type -q atuin
|
||||
atuin init fish | source
|
||||
end
|
||||
if type -q direnv
|
||||
direnv hook fish | source
|
||||
end
|
||||
|
||||
if test -f ~/.config/fish/config.fish.local
|
||||
source ~/.config/fish/config.fish.local
|
||||
@@ -17,7 +21,5 @@ end
|
||||
|
||||
alias ls="lsd"
|
||||
|
||||
fish_add_path $HOME/.webman/bin
|
||||
|
||||
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"
|
||||
fi
|
||||
|
||||
sudo sh -c "echo $(which fish) >> /etc/shells"
|
||||
|
||||
{{- end }}
|
||||
|
||||
# check if $SHELL is fish already
|
||||
|
||||
@@ -26,7 +26,7 @@ sudo apt install -y {{ . | quote }}
|
||||
{{- else if eq .osid "darwin" }}
|
||||
echo "[-] Updating brews [-]"
|
||||
{{ range .packages.darwin.brews -}}
|
||||
brew install {{ . | quote }}
|
||||
/opt/homebrew/bin/brew install {{ . | quote }}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user