diff --git a/bootstrap/packages_stable.tsv b/bootstrap/packages_stable.tsv
index b98f22d..17455fd 100644
--- a/bootstrap/packages_stable.tsv
+++ b/bootstrap/packages_stable.tsv
@@ -341,8 +341,6 @@ vifm A file manager with curses interface, which provides Vi[m]-like environment
vim-language-server VimScript language server A
vimiv-qt-git An image viewer with vim-like keybindings A
virt-manager Desktop user interface for managing virtual machines R
-virtualbox Powerful x86 virtualization for enterprise as well as home use R
-virtualbox-guest-iso The official VirtualBox Guest Additions ISO image R
visidata Terminal spreadsheet multitool for discovering and arranging data R
viu Simple terminal image viewer R
wallabag-client Command line client for the self hosted read-it-later app Wallabag A
diff --git a/desktop/.config/fontconfig/fonts.conf b/desktop/.config/fontconfig/fonts.conf
index 3dc933d..1fd66d3 100644
--- a/desktop/.config/fontconfig/fonts.conf
+++ b/desktop/.config/fontconfig/fonts.conf
@@ -11,7 +11,10 @@
monospace
- Iosevka Nerd Font
+
+ Iosevka Nerd Font
+ Iosevka
+
fantasy
diff --git a/desktop/.config/river/init b/desktop/.config/river/init
index dcf40a2..c219a99 100755
--- a/desktop/.config/river/init
+++ b/desktop/.config/river/init
@@ -3,11 +3,24 @@
mod="Mod4"
modemod="Mod1"
term=${TERMINAL:-foot}
-layout="filtile"
time_to_lockscreen=300
time_to_screendim=600
time_to_suspend=900
+layout_cmd="rivertile"
+layout_opt="-main-ratio 0.65\
+ -outer-padding 0\
+ -view-padding 6"
+
+if command -v filtile >/dev/null 2>&1; then
+ layout_cmd="filtile"
+ layout_opt="--tags all --output all main-ratio 0.65,\
+ --tags all --output all view-padding 6,\
+ --tags all --output all outer-padding 0,\
+ --tags all --output all smart-padding on,\
+ --tags all --output all smart-padding 0"
+fi
+
NO_RESTART="$1"
should_start() { # 1=program binary name
# not running, start
@@ -129,10 +142,10 @@ riverctl map normal $mod+Shift K swap previous
riverctl map normal $mod+Shift Return zoom
# change layout orientation
-riverctl map normal $mod Up send-layout-cmd $layout "main-location top"
-riverctl map normal $mod Right send-layout-cmd $layout "main-location right"
-riverctl map normal $mod Down send-layout-cmd $layout "main-location bottom"
-riverctl map normal $mod Left send-layout-cmd $layout "main-location left"
+riverctl map normal $mod Up send-layout-cmd $layout_cmd "main-location top"
+riverctl map normal $mod Right send-layout-cmd $layout_cmd "main-location right"
+riverctl map normal $mod Down send-layout-cmd $layout_cmd "main-location bottom"
+riverctl map normal $mod Left send-layout-cmd $layout_cmd "main-location left"
# snap views to screen edges
riverctl map normal $mod+Control H snap left
@@ -143,8 +156,8 @@ riverctl map normal $mod+Control L snap right
# Mod+F to toggle fullscreen
riverctl map normal $mod F toggle-fullscreen
# if we are running filtile we also have access to monocle mode
-if [ "$layout" = "filtile" ]; then
- riverctl map normal $mod+Shift F spawn "riverctl send-layout-cmd $layout monocle"
+if [ "$layout_cmd" = "filtile" ]; then
+ riverctl map normal $mod+Shift F spawn "riverctl send-layout-cmd $layout_cmd monocle"
fi
riverctl map normal $mod+Shift v toggle-float
@@ -153,8 +166,8 @@ riverctl map normal $mod+Shift v toggle-float
# Make all connected outputs show the desktop and no windows at all
riverctl map normal $mod+Shift M spawn 'for i in $(wlopm | wc -l); do riverctl set-focused-tags $((1 << 10)); riverctl focus-output next; done; riverctl set-focused-tags $((1 << 10)); riverctl focus-output next'
-riverctl map normal $mod+Shift F10 spawn "riverctl send-layout-cmd $layout '--tags all --output all view-padding 0'"
-riverctl map normal $mod F10 spawn "riverctl send-layout-cmd $layout '--tags all --output all view-padding 6'"
+riverctl map normal $mod+Shift F10 spawn "riverctl send-layout-cmd $layout_cmd '--tags all --output all view-padding 0'"
+riverctl map normal $mod F10 spawn "riverctl send-layout-cmd $layout_cmd '--tags all --output all view-padding 6'"
# Mod + Left Mouse Button to move views
riverctl map-pointer normal $mod BTN_LEFT move-view
@@ -179,11 +192,11 @@ riverctl map -repeat interact_float $mod J resize vertical 100
riverctl map -repeat interact_float $mod K resize vertical -100
riverctl map -repeat interact_float $mod L resize horizontal 100
# decrease/increase the main ratio of layout
-riverctl map interact_float $mod+Shift H send-layout-cmd $layout "main-ratio -0.05"
-riverctl map interact_float $mod+Shift L send-layout-cmd $layout "main-ratio +0.05"
+riverctl map interact_float $mod+Shift H send-layout-cmd $layout_cmd "main-ratio -0.05"
+riverctl map interact_float $mod+Shift L send-layout-cmd $layout_cmd "main-ratio +0.05"
# increment/decrement the main layout
-riverctl map interact_float $mod+Shift J send-layout-cmd $layout "main-count +1"
-riverctl map interact_float $mod+Shift K send-layout-cmd $layout "main-count -1"
+riverctl map interact_float $mod+Shift J send-layout-cmd $layout_cmd "main-count +1"
+riverctl map interact_float $mod+Shift K send-layout-cmd $layout_cmd "main-count -1"
# snap views to screen edges
riverctl map interact_float $mod+Control H snap left
riverctl map interact_float $mod+Control J snap down
@@ -330,16 +343,14 @@ should_start swayidle && riverctl spawn "swayidle \
should_start wl-paste && riverctl spawn "wl-paste -t text --watch clipman store"
+should_start pipewire && riverctl spawn pipewire
+
# bash ~/.config/bin/gtktheme # setting our gtk variables
# killall polkit-gnome-authentication-agent-1
# /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
# start layouting engine
-killall $layout
-riverctl spawn "$layout --tags all --output all main-ratio 0.65,\
- --tags all --output all view-padding 6,\
- --tags all --output all outer-padding 0,\
- --tags all --output all smart-padding on,\
- --tags all --output all smart-padding 0"
+killall $layout_cmd
+riverctl spawn "$layout_cmd $layout_opt"
# River will send the process group of the init executable SIGTERM on exit.
-riverctl default-layout $layout
+riverctl default-layout $layout_cmd
brightnessctl set 70%
diff --git a/multimedia/.config/mpv/mpv.conf b/multimedia/.config/mpv/mpv.conf
index 302d642..fd148db 100644
--- a/multimedia/.config/mpv/mpv.conf
+++ b/multimedia/.config/mpv/mpv.conf
@@ -35,7 +35,7 @@ screenshot-tag-colorspace=yes
osc=no
osd-bar=no
-osd-font='Iosevka Nerd Font'
+osd-font='Iosevka'
osd-font-size=15
### Subtitles
diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py
index a2d97ae..6697977 100644
--- a/qutebrowser/config/config.py
+++ b/qutebrowser/config/config.py
@@ -75,6 +75,10 @@ c.tabs.show = "multiple"
c.tabs.show_switching_delay = 2000
c.statusbar.show = "always"
+c.fonts.default_family = "Iosevka"
+c.fonts.web.family.fixed = "Iosevka"
+c.fonts.web.family.standard = "Iosevka"
+
c.colors.webpage.bg = "#555555"
# Prevents *all* tabs from being loaded on restore, only loads on activating them
diff --git a/qutebrowser/config/freedirect/freedirect.py b/qutebrowser/config/freedirect/freedirect.py
index 0b2999c..b32717d 100644
--- a/qutebrowser/config/freedirect/freedirect.py
+++ b/qutebrowser/config/freedirect/freedirect.py
@@ -48,7 +48,6 @@ def breezewiki_host_to_path(url: QUrl):
default_services = [
- Service(source=["youtube.com"], target=["invidious"]),
Service(source=["stackoverflow.com"], target=["anonymousoverflow"]),
Service(source=["odysee.com"], target=["librarian"]),
Service(source=["reddit.com"], target=["redlib"]),
@@ -68,6 +67,7 @@ default_services = [
Service(source=["translate.google.com"], target=["lingva", "simplytranslate"]),
Service(source=["deepl.com"], target=["simplytranslate"]),
Service(source=["bandcamp.com"], target=["tent"]),
+ Service(custom_targets=True, source=["youtube.com"], target=["inv.nadeko.net"]),
Service(
custom_targets=True,
source=["genius.com"],
diff --git a/qutebrowser/config/searchengines.py b/qutebrowser/config/searchengines.py
index 42dab38..e1f9824 100644
--- a/qutebrowser/config/searchengines.py
+++ b/qutebrowser/config/searchengines.py
@@ -22,8 +22,10 @@ c.url.searchengines = {
"pcw": "https://www.pcgamingwiki.com/w/index.php?search={}",
"py": "https://pypi.org/search/?q={}",
"r": "https://www.reddit.com/r/{}",
+ "sc": "https://www.shellcheck.net/wiki/SC{}",
"sci": "https://sci-hub.ru/{}",
"t": "https://www.thesaurus.com/browse/{}",
+ "void": "https://voidlinux.org/packages/?q={}",
"w": "https://en.wikipedia.org/w/index.php?search={}",
"yt": "https://yewtu.be/search?q={}",
}
diff --git a/sh/.config/sh/alias b/sh/.config/sh/alias
index 5ac00fa..21a296e 100644
--- a/sh/.config/sh/alias
+++ b/sh/.config/sh/alias
@@ -20,15 +20,15 @@ fi
alias :q="exit"
# ls defaults
-if exist exa; then
- alias l="exa -l --git --git-ignore --group-directories-first"
- alias L="exa -hal --grid --git --group-directories-first"
+if exist eza; then
+ alias l="eza -l --git --git-ignore --group-directories-first"
+ alias L="eza -hal --grid --git --group-directories-first"
# a recursive tree
# - usually want to change levels recursed with -L2 -L3 or similar
- alias ll="exa --tree -L2 --group-directories-first"
- alias LL="exa -a --tree -L2 --group-directories-first"
- alias lla="exa --tree --group-directories-first"
- alias LLA="exa -a --tree --group-directories-first"
+ alias ll="eza --tree -L2 --group-directories-first"
+ alias LL="eza -a --tree -L2 --group-directories-first"
+ alias lla="eza --tree --group-directories-first"
+ alias LLA="eza -a --tree --group-directories-first"
else
alias l="ls -lhF"
alias L="ls -lAhF"
diff --git a/sh/.config/sh/alias.d/batcat.sh b/sh/.config/sh/alias.d/batcat.sh
new file mode 100644
index 0000000..36403e7
--- /dev/null
+++ b/sh/.config/sh/alias.d/batcat.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env sh
+# Make cat actually call bat if it exists.
+# Give `rcat` as 'rawcat' replacement if needed.
+#
+# Mostly taken from https://github.com/fdellwing/zsh-bat
+# sans MANPAGER
+#
+# shellcheck disable=SC2139 # (Expands when defined not used)
+# We actively want it to check when defined so this is fine.
+
+# Save the original system `cat` under `rcat`
+alias rcat="$(which cat)"
+if command -v batcat >/dev/null 2>&1; then
+ # For Ubuntu and Debian-based `bat` packages
+ # the `bat` program is named `batcat` on these systems
+ alias cat="$(which batcat)"
+elif command -v bat >/dev/null 2>&1; then
+ # For all other systems
+ alias cat="$(which bat)"
+fi
diff --git a/terminal/.config/vifm/vifmrc b/terminal/.config/vifm/vifmrc
index 80e172f..a667bdb 100644
--- a/terminal/.config/vifm/vifmrc
+++ b/terminal/.config/vifm/vifmrc
@@ -613,7 +613,7 @@ filextype */
\ {View in thunar}
\ Thunar %f &,
fileviewer */
- \ exa --color always --tree -L2,
+ \ eza --color always --tree -L2,
\ tree -L 2,
" markdown text
diff --git a/terminal/.config/wezterm/wezterm.lua b/terminal/.config/wezterm/wezterm.lua
index 01ba9a5..eb70a5b 100644
--- a/terminal/.config/wezterm/wezterm.lua
+++ b/terminal/.config/wezterm/wezterm.lua
@@ -34,33 +34,34 @@ local settings = {
color_scheme = "Nord (base16)", -- will be overwritten by colors
-- default_prog = {"nu"},
scrollback_lines = 10000,
- font = wezterm.font("Iosevka Nerd Font"),
+ font = wezterm.font_with_fallback({
+ { family = "Iosevka", weight = "Regular", italic = false },
+ { family = "Iosevka Nerd Font", weight = "Regular", italic = false },
+ }),
-- add cursive italic font from Victor font for all weights
font_rules = {
{
- intensity = "Bold",
italic = true,
- font = wezterm.font({
- family = "VictorMono Nerd Font",
- weight = "Bold",
- style = "Italic",
+ intensity = "Bold",
+ font = wezterm.font_with_fallback({
+ { family = "Iosevka", weight = "Bold", italic = true },
+ { family = "VictorMono Nerd Font", weight = "Bold", style = "Italic" },
}),
},
{
italic = true,
intensity = "Half",
- font = wezterm.font({
- family = "VictorMono Nerd Font",
- weight = "DemiBold",
- style = "Italic",
+ font = wezterm.font_with_fallback({
+ { family = "Iosevka", weight = "DemiBold", italic = true },
+ { family = "VictorMono Nerd Font", weight = "DemiBold", style = "Italic" },
}),
},
{
italic = true,
intensity = "Normal",
- font = wezterm.font({
- family = "VictorMono Nerd Font",
- style = "Italic",
+ font = wezterm.font_with_fallback({
+ { family = "Iosevka", weight = "Bold", italic = true },
+ { family = "VictorMono Nerd Font", style = "Italic" },
}),
},
},
diff --git a/terminal/.config/zsh/.zshrc b/terminal/.config/zsh/.zshrc
index 898652b..77254c7 100644
--- a/terminal/.config/zsh/.zshrc
+++ b/terminal/.config/zsh/.zshrc
@@ -1,5 +1,4 @@
#!/usr/bin/env zsh
-#
CONFDIR="${XDG_CONFIG_HOME:-$HOME/.config}"
ZSHCONFDIR="$CONFDIR/zsh"
@@ -17,20 +16,36 @@ zstyle :compinstall filename "$ZSHCONFDIR/.zshrc"
compinit
# End of lines added by compinstall
-# load plugins
-[ -e /usr/share/oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh ] && source /usr/share/oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh
-[ -e /usr/share/oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh ] && source /usr/share/oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh
-[ -e /usr/share/fzf/key-bindings.zsh ] && source /usr/share/fzf/key-bindings.zsh
-#source /usr/share/nvm/init-nvm.sh
-## find the correct installed tab-completion version
-PLUG_FOLDER="/usr/share/zsh/plugins"
-[ -e $PLUG_FOLDER/fzf-tab/fzf-tab.plugin.zsh ] && source $PLUG_FOLDER/fzf-tab/fzf-tab.plugin.zsh
-[ -e $PLUG_FOLDER/fzf-tab-bin-git/fzf-tab.plugin.zsh ] && source $PLUG_FOLDER/fzf-tab-bin-git/fzf-tab.plugin.zsh
-# these need to be sourced after fzf-tab
-[ -e $PLUG_FOLDER/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh ] && source $PLUG_FOLDER/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
-[ -e $PLUG_FOLDER/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ] && source $PLUG_FOLDER/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
-[ -e $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh ] && source $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh
-[ -e $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh ] && source $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
+# load plugins with the zr plugin manager
+AUTO_NOTIFY_THRESHOLD=60
+TIPZ_TEXT='ALIAS:'
+if command -v zr >/dev/null 2>&1; then
+ . <(
+ zr \
+ molovo/tipz \
+ ael-code/zsh-colored-man-pages \
+ MichaelAquilina/zsh-auto-notify \
+ junegunn/fzf.git/shell/key-bindings.zsh \
+ Aloxaf/fzf-tab \
+ zdharma-continuum/fast-syntax-highlighting \
+ zsh-users/zsh-autosuggestions \
+ zsh-users/zsh-completions \
+ )
+
+else # or manually
+ [ -e /usr/share/oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh ] && source /usr/share/oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh
+ [ -e /usr/share/oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh ] && source /usr/share/oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh
+ [ -e /usr/share/fzf/key-bindings.zsh ] && source /usr/share/fzf/key-bindings.zsh
+ ## find the correct installed tab-completion version
+ PLUG_FOLDER="/usr/share/zsh/plugins"
+ [ -e $PLUG_FOLDER/fzf-tab/fzf-tab.plugin.zsh ] && source $PLUG_FOLDER/fzf-tab/fzf-tab.plugin.zsh
+ [ -e $PLUG_FOLDER/fzf-tab-bin-git/fzf-tab.plugin.zsh ] && source $PLUG_FOLDER/fzf-tab-bin-git/fzf-tab.plugin.zsh
+ # these need to be sourced after fzf-tab
+ [ -e $PLUG_FOLDER/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh ] && source $PLUG_FOLDER/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
+ [ -e $PLUG_FOLDER/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ] && source $PLUG_FOLDER/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+ [ -e $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh ] && source $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh
+ [ -e $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh ] && source $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
+fi
unset PLUG_FOLDER
# simple fzf-tab settings
@@ -39,7 +54,18 @@ zstyle ":fzf-tab:*" fzf-flags "--ansi" "--expect='$continuous_trigger,$print_que
zstyle ':fzf-tab:*' fzf-command fzf
# format colorful groups for different completion actions
zstyle ':completion:*:descriptions' format '[%d]'
-zstyle ':fzf-tab:*' show-group brief
+# set list-colors to enable filename colorizing
+
+zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
+# force zsh not to show completion menu, which allows fzf-tab to capture the unambiguous prefix
+zstyle ':completion:*' menu no
+
+# fzf-tab does not follow FZF_DEFAULT_OPTS by default since some setups can break completion
+zstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2
+zstyle ':fzf-tab:*' fzf-bindings 'ctrl-j:accept' 'ctrl-a:toggle-all' 'ctrl-d:preview-down' 'ctrl-u:preview-up'
+zstyle ':fzf-tab:*' continuous-trigger '/'
+zstyle ':fzf-tab:*' switch-group '<' '>'
+
# use input as query string when completing zlua
zstyle ':fzf-tab:complete:_zlua:*' query-string input
# (experimental, may change in the future)
@@ -55,10 +81,17 @@ local realpath=\${ctxt[IPREFIX]}\${ctxt[hpre]}\$in
realpath=\${(Qe)~realpath}
"
# give a preview of commandline arguments when completing `kill`
-zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm,cmd -w -w"
-zstyle ':fzf-tab:complete:kill:argument-rest' extra-opts --preview=$extract'ps --pid=$in[(w)1] -o cmd --no-headers -w -w' --preview-window=down:3:wrap
-# give a preview of directory by exa when completing cd
-zstyle ':fzf-tab:complete:cd:*' extra-opts --preview=$extract'exa -1 --color=always $realpath'
+zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
+zstyle ':fzf-tab:complete:(kill|ps):argument-rest' fzf-preview \
+ '[[ $group == "[process ID]" ]] && ps --pid=$word -o cmd --no-headers -w -w'
+zstyle ':fzf-tab:complete:(kill|ps):argument-rest' fzf-flags --preview-window=down:3:wrap
+# preview directory's content with eza when completing cd
+zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
+# show systemd unit status
+zstyle ':fzf-tab:complete:systemctl-*:*' fzf-preview 'SYSTEMD_COLORS=1 systemctl status $word'
+# env var contents
+zstyle ':fzf-tab:complete:(-command-|-parameter-|-brace-parameter-|export|unset|expand):*' \
+ fzf-preview 'echo ${(P)word}'
# show hostname if we are in a distrobox environment
if [ -n "$DISTROBOX_ENTER_PATH" ] && [ -f /run/.containerenv ]; then
@@ -154,21 +187,21 @@ bindkey -v
export KEYTIMEOUT=1
# Change cursor shape for different vi modes.
function zle-keymap-select {
- if [[ ${KEYMAP} == vicmd ]] ||
- [[ $1 = 'block' ]]; then
- echo -ne '\e[2 q'
+ if [[ ${KEYMAP} == vicmd ]] ||
+ [[ $1 = 'block' ]]; then
+ echo -ne '\e[2 q'
- elif [[ ${KEYMAP} == main ]] ||
- [[ ${KEYMAP} == viins ]] ||
- [[ ${KEYMAP} = '' ]] ||
- [[ $1 = 'beam' ]]; then
- echo -ne '\e[6 q'
- fi
+ elif [[ ${KEYMAP} == main ]] ||
+ [[ ${KEYMAP} == viins ]] ||
+ [[ ${KEYMAP} = '' ]] ||
+ [[ $1 = 'beam' ]]; then
+ echo -ne '\e[6 q'
+ fi
}
zle -N zle-keymap-select
# Use beam shape cursor on startup.
_fix_cursor() {
- echo -ne '\e[6 q'
+ echo -ne '\e[6 q'
}
precmd_functions+=(_fix_cursor)
diff --git a/vcs/git/config/git/config b/vcs/git/config/git/config
index 6164279..2135a29 100644
--- a/vcs/git/config/git/config
+++ b/vcs/git/config/git/config
@@ -1,5 +1,5 @@
[user]
- email = marty.oehme@gmail.com
+ email = contact@martyoeh.me
name = Marty Oehme
signingkey = 73BA40D5AFAF49C9
[init]
diff --git a/vcs/git/config/sh/alias.d/git.sh b/vcs/git/config/sh/alias.d/git.sh
index 29679c3..b4153f6 100644
--- a/vcs/git/config/sh/alias.d/git.sh
+++ b/vcs/git/config/sh/alias.d/git.sh
@@ -98,21 +98,28 @@ else
fi
if exist git-bug; then
- gb() {
- if [ "$#" -eq 1 ]; then
- git bug show "$1"
- else
- git bug ls "$@"
- fi
- }
- alias gbt='git bug termui'
+ # POSIX-compliant version of . <(cmd) substitution
+ # shellcheck source=/dev/null # but shellcheck can't access
+ git-bug completion zsh | . /dev/fd/0
- alias gba='git bug add'
- alias gbm='git bug comment add'
- alias gbc='git bug status close'
+ alias gbt='git-bug termui'
+ alias gb="git-bug bug"
+ alias gbw="git-bug bug show"
- alias gbp='git bug push'
- alias gbl='git bug pull'
+ alias gbn='git-bug bug new'
+ alias gbm='git-bug bug comment new'
+ alias gbte='git-bug bug title edit'
+
+ # TODO: Implement toggle function
+ # grab current status and then open or close accordingly
+ alias gbo='git-bug bug status close'
+
+ alias gbp='git-bug push'
+ alias gbl='git-bug pull'
+
+ alias gbu='git-bug user' # list users
+ # show primary user info
+ alias gbU='git-bug user user "$(git-bug user | cut -d" " -f1 | head -n1)"'
fi
unset -v git_version
diff --git a/vcs/jj/config/jj/config.toml b/vcs/jj/config/jj/config.toml
index 520db74..3b87200 100644
--- a/vcs/jj/config/jj/config.toml
+++ b/vcs/jj/config/jj/config.toml
@@ -1,5 +1,5 @@
[user]
-email = "marty.oehme@gmail.com"
+email = "contact@martyoeh.me"
name = "Marty Oehme"
[signing]
diff --git a/vcs/jj/config/sh/alias.d/jj.sh b/vcs/jj/config/sh/alias.d/jj.sh
index 8e1c841..c40349e 100644
--- a/vcs/jj/config/sh/alias.d/jj.sh
+++ b/vcs/jj/config/sh/alias.d/jj.sh
@@ -25,6 +25,13 @@ alias jen="jj next --edit"
alias jep="jj prev --edit"
alias jenn="jj next"
alias jepp="jj prev"
+# edit the 'newest' head descendant of current working copy
+# usually means 'get me to head of current branch'
+alias jed="jj edit -r 'latest(heads(descendants(@)))'"
+# go to the newest head of the trunk branch
+alias jet="jj edit -r 'latest(heads(descendants(trunk())))'"
+# simply go to the newest commit, i.e. our last change committed
+alias jel="jj edit -r 'latest(all())'"
# for squash-and-go workflows
# https://steveklabnik.github.io/jujutsu-tutorial/real-world-workflows/the-squash-workflow.html