refactor(shell): modularize shell config into per-shell profiles and conf.d
Split bash config into dedicated aliases and profile files. Extract fish shell init from config.fish into composable conf.d fragments (setup, environment, ssh-auth-sock). Remove the generic profile in favor of the bash-specific one. Add a static SSH_AUTH_SOCK symlink so tmux sessions always see the current socket regardless of which shell spawned them.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
if command -q mise
|
||||
mise activate fish | source
|
||||
end
|
||||
|
||||
if command -q direnv
|
||||
direnv hook fish | source
|
||||
end
|
||||
|
||||
if command -q zoxide;
|
||||
zoxide init fish | source
|
||||
end
|
||||
|
||||
if command -q fzf
|
||||
fzf --fish | source
|
||||
end
|
||||
|
||||
if command -q jj
|
||||
jj util completion fish | source
|
||||
end
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fish_add_path "$HOME/.local/bin"
|
||||
fish_add_path "$HOME/.cargo/bin"
|
||||
|
||||
set -gx npm_config_prefix "$HOME/.local"
|
||||
|
||||
if command -q nvim
|
||||
set -gx EDITOR nvim
|
||||
end
|
||||
|
||||
set -gx VISUAL $EDITOR
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Create a predictable symlink to the current SSH auth socket.
|
||||
# tmux forces SSH_AUTH_SOCK to ~/.ssh/ssh_auth_sock globally
|
||||
# (see config/tmux/tmux.conf), so this symlink must exist for every
|
||||
# interactive shell -- not just bash login shells.
|
||||
set -l auth_sock "$HOME/.ssh/ssh_auth_sock"
|
||||
if set -q SSH_AUTH_SOCK; and test "$SSH_AUTH_SOCK" != "$auth_sock"; and test -S "$SSH_AUTH_SOCK"
|
||||
mkdir -p "$HOME/.ssh"
|
||||
ln -sf "$SSH_AUTH_SOCK" "$auth_sock"
|
||||
end
|
||||
@@ -12,27 +12,6 @@ if status is-interactive
|
||||
fish_config prompt choose default
|
||||
fish_hybrid_key_bindings
|
||||
|
||||
fish_add_path "$HOME/.local/bin"
|
||||
fish_add_path "$HOME/.cargo/bin"
|
||||
|
||||
set -gx npm_config_prefix "$HOME/.local"
|
||||
|
||||
if command -q mise
|
||||
/usr/bin/mise activate fish | source
|
||||
end
|
||||
|
||||
if command -q direnv
|
||||
/usr/bin/direnv hook fish | source
|
||||
end
|
||||
|
||||
if command -q zoxide
|
||||
/usr/bin/zoxide init fish | source
|
||||
end
|
||||
|
||||
if command -q fzf
|
||||
/usr/bin/fzf --fish | source
|
||||
end
|
||||
|
||||
command -q nmcli && alias nmlist "nmcli device wifi list"
|
||||
|
||||
if command -q tree
|
||||
@@ -51,7 +30,6 @@ if status is-interactive
|
||||
command -q zero.js && alias zero 'zero.js'
|
||||
|
||||
if command -q nvim
|
||||
set -gx EDITOR nvim
|
||||
alias oo "cd $SECOND_BRAIN"
|
||||
alias on "nvim '+Obsidian new'"
|
||||
alias os "nvim '+Obsidian search'"
|
||||
@@ -83,8 +61,6 @@ if status is-interactive
|
||||
command -q bat && alias cat "bat"
|
||||
command -q git && alias g git
|
||||
|
||||
set -gx VISUAL $EDITOR
|
||||
|
||||
if command -q jj
|
||||
/usr/bin/jj util completion fish | source
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user