#!/usr/bin/env bash declare -A mapper=( [".e"]="$HOME/.bin/.e" [".t"]="$HOME/.bin/.t" ["alacritty"]="$HOME/.config/alacritty/alacritty.toml" ["autoinstall.conf"]="$HOME/.config/autoinstall.conf" ["autorestic"]="$HOME/.config/autorestic/.autorestic.yml" ["autostart.toml"]="$HOME/.config/autostart.toml" ["bash"]="$HOME/.bashrc" ["bspwm"]="$HOME/.config/bspwm/bspwmrc" ["completions"]="$HOME/.config/completionsrc" ["env"]="$HOME/.config/environment" ["env.d"]="$HOME/.config/env.d/" ["git"]="$HOME/.config/git/config" ["git-ignore"]="$HOME/.config/git/ignore" ["git-credentials"]="$HOME/.config/git/credentials" ["home-manager"]="$HOME/.config/home-manager/home.nix" ["host-mode"]="$HOME/.bin/host-mode" ["hyprland"]="$HOME/.config/hypr/hyprland.conf" ["nvim"]="$HOME/.config/astronvim/lua/user/" ["polybar"]="$HOME/.config/polybar" ["qutebrowser"]="$HOME/.config/qutebrowser/config.py" ["qutebrowser-kiosk"]="$HOME/.config/qutebrowser/config_kiosk.py" ["rclone"]="$HOME/.config/rclone/rclone.conf" ["ssh"]="$HOME/.ssh/config" ["starship"]="$HOME/.config/starship.toml" ["sway"]="$HOME/.config/sway/config" ["sway.d"]="$HOME/.config/sway/config.d" ["sxhkd"]="$HOME/.config/sxhkd/sxhkdrc" ["vim"]="$HOME/.config/vim/vimrc" ["wakatime"]="$HOME/.config/wakatime/.wakatime.cfg##template" ["waybar"]="$HOME/.config/waybar/" ["xprofile"]="$HOME/.xprofile" ["yadm"]="$HOME/.local/share/yadm/repo.git/config" ["yadm-encrypt"]="$HOME/.config/yadm/encrypt" ["zellij"]="$HOME/.config/zellij/" ["zsh"]="$HOME/.config/zsh/.zshrc" ) declare -A directory=( ["bspwm"]="$HOME/.config/bspwm/" ["env.d"]="$HOME/.config/env.d/" ["home-manager"]="$HOME/.config/home-manager/" ["hyprland"]="$HOME/.config/hypr/" ["nvim"]="$HOME/.config/astronvim/lua/user/" ["polybar"]="$HOME/.config/polybar/" ["qutebrowser"]="$HOME/.config/qutebrowser/" ["waybar"]="$HOME/.config/waybar/" ["zsh"]="$HOME/.config/zsh/" ) declare -A hooks=( ["qutebrowser"]="qutebrowser :config-source" ["qutebrowser-kiosk"]="qutebrowser-kiosk :config-source" # broken due to qutebrowser-kiosk being an alias ["sway"]="sway reload" ["sway.d"]="sway reload" ["waybar"]="killall -SIGUSR2 waybar" ["yadm"]="yadm alt" ["yadm-encrypt"]="yadm alt" ) if [ -z "$1" ] then echo "No argument given. Use --list (-l) to show all options." exit 1 fi if [ "$1" = "-l" ] || [ "$1" = "--list" ] then echo "${!mapper[@]}" exit 0 fi target="${mapper["$1"]}" if [ -z "$target" ] then echo "Dotfile not found. Use --list (-l) to show all options." exit 1 fi working_dir="${directory["$1"]}" if [ -n "$working_dir" ] then # shellcheck disable=SC2164 cd "$working_dir" fi $EDITOR "$target" hook="${hooks["$1"]}" if [ -n "$hook" ] then echo "Running hook: $hook" eval "$hook" fi