Restores plugin management after the v0.12 config rewrite dropped the earlier `vim.pack.add` calls. Plugins now live in `config/plugins/`, one file per plugin, so adding the next is a single require. Sets `<leader>` to Space for the gitsigns hunk mappings, and pins 'signcolumn' open so git and diagnostic signs don't shift text. The lockfile moves into the repo and is symlinked by bootstrap.sh, as the vim.pack docs recommend, giving reproducible plugin revisions across machines and a rollback path via git. vim.pack writes it with a truncating open, so it follows the symlink rather than replacing it. Drops the orphaned nvim-tree entry, unreferenced since the rewrite. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
60 lines
3 KiB
Shell
Executable file
60 lines
3 KiB
Shell
Executable file
#!/usr/bin/env zsh
|
|
|
|
# Current dir
|
|
BASEDIR=$(pwd)
|
|
|
|
# ln the various files
|
|
echo "Sym-linking the various config files"
|
|
test -L $HOME/.gitignore || ln -f -s $BASEDIR/gitignore $HOME/.gitignore
|
|
test -L $HOME/.hushlogin || ln -f -s $BASEDIR/hushlogin $HOME/.hushlogin
|
|
test -L $HOME/.tmux.conf || ln -f -s $BASEDIR/tmux $HOME/.tmux.conf
|
|
test -d $HOME/.config/sheldon || mkdir $HOME/.config/sheldon
|
|
test -L $HOME/.config/sheldon/plugins.toml || ln -f -s $BASEDIR/sheldon.toml $HOME/.config/sheldon/plugins.toml
|
|
test -L $HOME/.zsh || ln -f -s $BASEDIR/zsh $HOME/.zsh
|
|
test -L $HOME/.zshrc || ln -f -s $BASEDIR/zshrc.zsh $HOME/.zshrc
|
|
test -d $HOME/.config/delta || mkdir $HOME/.config/delta
|
|
test -L $HOME/.config/delta/themes.gitconfig || ln -f -s $BASEDIR/delta-themes.gitconfig $HOME/.config/delta/themes.gitconfig
|
|
|
|
# If ghostty is installed on the system then setup the config
|
|
if (( ${+commands[ghostty]} )); then
|
|
test -d $HOME/.config/ghostty || mkdir $HOME/.config/ghostty
|
|
test -L $HOME/.config/ghostty/config || ln -f -s $BASEDIR/ghostty/config $HOME/.config/ghostty/config
|
|
test -d $HOME/.config/ghostty/themes || mkdir $HOME/.config/ghostty/themes
|
|
test -L $HOME/.config/ghostty/themes/tangere-dark.conf || ln -f -s $BASEDIR/ghostty/themes/tangere-dark $HOME/.config/ghostty/themes/tangere-dark.conf
|
|
test -L $HOME/.config/ghostty/themes/tangere-light.conf || ln -f -s $BASEDIR/ghostty/themes/tangere-light $HOME/.config/ghostty/themes/tangere-light.conf
|
|
fi
|
|
|
|
# setup gpg conf
|
|
test -d $HOME/.gnupg || mkdir $HOME/.gnupg
|
|
cp -f $BASEDIR/gnupg/common.conf $HOME/.gnupg/common.conf
|
|
cp -f $BASEDIR/gnupg/dirmngr.conf $HOME/.gnupg/dirmngr.conf
|
|
cp -f $BASEDIR/gnupg/gpg.conf $HOME/.gnupg/gpg.conf
|
|
chmod 700 $HOME/.gnupg
|
|
chmod 640 $HOME/.gnupg/common.conf
|
|
chmod 640 $HOME/.gnupg/dirmngr.conf
|
|
chmod 640 $HOME/.gnupg/gpg.conf
|
|
|
|
echo "Setting up NeoVim"
|
|
test -d $HOME/.config/nvim || mkdir -p $HOME/.config/nvim
|
|
test -d $HOME/.local/share/nvim || mkdir -p $HOME/.local/share/nvim
|
|
test -L $HOME/.config/nvim/init.lua || ln -f -s $BASEDIR/neovim/init.lua $HOME/.config/nvim/init.lua
|
|
test -L $HOME/.config/nvim/nvim-pack-lock.json || ln -f -s $BASEDIR/neovim/nvim-pack-lock.json $HOME/.config/nvim/nvim-pack-lock.json
|
|
test -d $HOME/.config/nvim/lua || mkdir -p $HOME/.config/nvim/lua
|
|
test -L $HOME/.config/nvim/lua/config || ln -f -s $BASEDIR/neovim/config $HOME/.config/nvim/lua/config
|
|
test -d $HOME/.config/nvim/lsp || mkdir -p $HOME/.config/nvim/lsp
|
|
test -L $HOME/.config/nvim/lsp/phpactor.lua || ln -f -s $BASEDIR/neovim/lsp/phpactor.lua $HOME/.config/nvim/lsp/phpactor.lua
|
|
|
|
# Claude Code statusline
|
|
test -d $HOME/.claude || mkdir $HOME/.claude
|
|
ln -f -s $BASEDIR/claude/statusline.isaacaudet.sh $HOME/.claude/statusline.sh
|
|
|
|
# .gitconfig gets edited by .extra so we won't symlink it, but copy it
|
|
echo "For compatibility we shall copy the global gitconfig"
|
|
cp $BASEDIR/gitconfig $HOME/.gitconfig
|
|
|
|
# Copy the progs into the local bin dir
|
|
rsync -av --chmod=+x $BASEDIR/bin/ $HOME/.local/bin/
|
|
|
|
# Source zshrc
|
|
echo "And finally, source the .zshrc"
|
|
source $HOME/.zshrc
|