Move to a setup using GNU Stow instead of my system which copied files and kept a .lock dir
This commit is contained in:
parent
26d27dc457
commit
6a7885bdbb
7 changed files with 50 additions and 158 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,2 @@
|
|||
.DS_Store
|
||||
/.lock
|
||||
|
||||
|
|
|
|||
30
.zshrc
30
.zshrc
|
|
@ -1,30 +0,0 @@
|
|||
# CodeWhisperer pre block. Keep at the top of this file.
|
||||
[[ -f "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.pre.zsh" ]] && builtin source "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.pre.zsh"
|
||||
|
||||
# Created by Zap installer
|
||||
[ -f "${XDG_DATA_HOME:-$HOME/.local/share}/zap/zap.zsh" ] && source "${XDG_DATA_HOME:-$HOME/.local/share}/zap/zap.zsh"
|
||||
plug "zsh-users/zsh-autosuggestions"
|
||||
plug "zap-zsh/supercharge"
|
||||
plug "zap-zsh/zap-prompt"
|
||||
plug "zsh-users/zsh-syntax-highlighting"
|
||||
plug "jeffreytse/zsh-vi-mode"
|
||||
|
||||
# Load and initialise completion system
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
|
||||
# Neovim
|
||||
export PATH=$HOME/local/nvim/bin:$PATH
|
||||
|
||||
# Aliases
|
||||
## Eza
|
||||
alias ls="eza -a"
|
||||
alias ll="eza --long --header -a"
|
||||
alias tree="eza --tree --level=2"
|
||||
## Pygments
|
||||
alias cat="pygmentize -g"
|
||||
## Neovim
|
||||
alias vim="nvim"
|
||||
|
||||
# CodeWhisperer post block. Keep at the bottom of this file.
|
||||
[[ -f "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.post.zsh" ]] && builtin source "${HOME}/Library/Application Support/codewhisperer/shell/zshrc.post.zsh"
|
||||
39
restore.sh
39
restore.sh
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/zsh
|
||||
|
||||
source ./util_lib.sh
|
||||
|
||||
latest_lock=$(get_latest_lock)
|
||||
has_lock=$(has_lock $latest_lock)
|
||||
|
||||
if [ $has_lock -eq 0 ]; then
|
||||
echo "No lock exists, nothing to restore."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
lock_dir="$LOCK_ROOT"/"$latest_lock"
|
||||
|
||||
# Iterate through the array of key-value pairs
|
||||
for mapping in "${mappings[@]}"; do
|
||||
current_mapping=("${(@s:|:)mapping}")
|
||||
|
||||
src="$lock_dir/$(basename "${current_mapping[1]}")"
|
||||
dest="${current_mapping[2]}"
|
||||
|
||||
# If src exists at all? No matter if it's a file or directory
|
||||
if [ ! -e "$src" ]; then
|
||||
echo "$src does not exist, skipping."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Remove destination if it is a directory
|
||||
if [ -d "$src" ] && [ -d "$dest/${current_mapping[1]}" ]; then
|
||||
echo "Removing $dest/${current_mapping[1]}"
|
||||
rm -rf "$dest/${current_mapping[2]}"
|
||||
fi
|
||||
|
||||
# Create destination directory
|
||||
mkdir -p "$dest"
|
||||
|
||||
# Copy source to destination
|
||||
cp -r "$src" "$dest"
|
||||
done
|
||||
31
upgrade.sh
31
upgrade.sh
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/zsh
|
||||
|
||||
source ./util_lib.sh
|
||||
|
||||
# Create a lock dir for our current configs.
|
||||
((latest_lock=$(get_latest_lock) + 1))
|
||||
lock_dir="$LOCK_ROOT"/"$latest_lock"
|
||||
mkdir -p "$lock_dir"
|
||||
|
||||
# Iterate through the array of key-value pairs
|
||||
for mapping in "${mappings[@]}"; do
|
||||
current_mapping=("${(@s:|:)mapping}")
|
||||
|
||||
src="${current_mapping[1]}"
|
||||
dest="${current_mapping[2]}"
|
||||
lock_dest="$lock_dir/$(basename "$src")"
|
||||
|
||||
# Check if destination directory exists
|
||||
final="$dest/$src"
|
||||
if [ -e "$final" ]; then
|
||||
# mv "$final"/* "$lock_dest"
|
||||
mv "$final" "$lock_dest"
|
||||
echo "Moved \"$final\" to \"$lock_dest\""
|
||||
fi
|
||||
|
||||
# Create destination directory
|
||||
mkdir -p "$dest"
|
||||
|
||||
# Copy source to destination
|
||||
cp -r "$src" "$dest"
|
||||
done
|
||||
51
util_lib.sh
51
util_lib.sh
|
|
@ -1,51 +0,0 @@
|
|||
#!/bin/zsh
|
||||
|
||||
LOCK_ROOT=".lock"
|
||||
|
||||
# Enable the NULL_GLOB option to handle cases where no subdirectories exist
|
||||
setopt NULL_GLOB
|
||||
|
||||
# Define a function to create key-value pairs
|
||||
create_mapping() {
|
||||
local input="$1"
|
||||
local output="$2"
|
||||
echo "$input|$output"
|
||||
}
|
||||
|
||||
# Define an array of key-value pairs
|
||||
mappings=(
|
||||
$(create_mapping "nvim" "$HOME/.config")
|
||||
$(create_mapping "kitty" "$HOME/.config")
|
||||
$(create_mapping ".zshrc" "$HOME")
|
||||
$(create_mapping "yabai" "$HOME/.config")
|
||||
$(create_mapping "yabai_launcher" "/private/etc/sudoers.d")
|
||||
)
|
||||
|
||||
function get_latest_lock() {
|
||||
local latest_lock=0
|
||||
for subdir in "$LOCK_ROOT"/*/; do
|
||||
subdir_name=${subdir%"${subdir##*[!/]}"}
|
||||
subdir_name=${subdir_name##*/}
|
||||
|
||||
if [[ $subdir_name =~ ^[0-9]+$ ]] && ((subdir_name > latest_lock)); then
|
||||
latest_lock=$subdir_name
|
||||
fi
|
||||
done
|
||||
|
||||
echo $latest_lock
|
||||
}
|
||||
|
||||
function has_lock() {
|
||||
local latest_lock=$1
|
||||
|
||||
# if first parameter does not exist, call get_latest_lock
|
||||
if [[ -z $latest_lock ]]; then
|
||||
latest_lock=$(get_latest_lock)
|
||||
fi
|
||||
|
||||
if [[ $latest_lock -ne 0 ]]; then
|
||||
echo 1
|
||||
else
|
||||
echo 0
|
||||
fi
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# replace <user> with your username (output of: whoami).
|
||||
# replace <hash> with the sha256 hash of the yabai binary (output of: shasum -a 256 $(which yabai)).
|
||||
# this hash must be updated manually after running brew upgrade.
|
||||
# replace <yabai> with the path to the yabai binary (output of: which yabai).
|
||||
|
||||
larssonmartin1998 ALL=(root) NOPASSWD: sha256:5c729cfc728ec8780c14d6fe0bfd74376bd2f057960b542c41106d8e8c5df787 /opt/homebrew/bin/yabai --load-sa
|
||||
50
zsh/.zshrc
Normal file
50
zsh/.zshrc
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Created by Zap installer
|
||||
[ -f "${XDG_DATA_HOME:-$HOME/.local/share}/zap/zap.zsh" ] && source "${XDG_DATA_HOME:-$HOME/.local/share}/zap/zap.zsh"
|
||||
plug "zsh-users/zsh-autosuggestions"
|
||||
plug "zap-zsh/supercharge"
|
||||
plug "zap-zsh/zap-prompt"
|
||||
plug "zsh-users/zsh-syntax-highlighting"
|
||||
plug "jeffreytse/zsh-vi-mode"
|
||||
|
||||
# Load and initialise completion system
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
|
||||
# Neovim
|
||||
export PATH=$HOME/local/nvim/bin:$PATH
|
||||
|
||||
# Catppuccin for zsh-syntax-highlighting
|
||||
source ~/.zsh/catppuccin_macchiato-zsh-syntax-highlighting.zsh
|
||||
# Catppuccin for fzf
|
||||
export FZF_DEFAULT_OPTS=" \
|
||||
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
|
||||
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
|
||||
--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
|
||||
# Make sure to use the nightly version of Neovim in user space (still running pacman install as root)
|
||||
export PATH="$HOME/.local/nvim/bin:$PATH"
|
||||
|
||||
# Aliases
|
||||
## Eza
|
||||
alias ls="eza -a"
|
||||
alias ll="eza --long --header -a"
|
||||
alias tree="eza --tree --level=2"
|
||||
## Pygments
|
||||
alias cat="pygmentize -g"
|
||||
## Neovim
|
||||
alias vim="nvim"
|
||||
## Lazygit
|
||||
alias lgit="lazygit"
|
||||
## Fastfetch
|
||||
alias neofetch="fastfetch"
|
||||
## Bat
|
||||
alias cat="bat"
|
||||
## fzf
|
||||
alias fzf='fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'
|
||||
|
||||
eval "$(zoxide init zsh --cmd cd)"
|
||||
|
||||
fastfetch
|
||||
|
||||
if [[ -z $ZELLIJ ]]; then
|
||||
zellij
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue