diff --git a/.config/zsh/plugins/fzf-tab b/.config/zsh/plugins/fzf-tab deleted file mode 160000 index 7fed01af..00000000 --- a/.config/zsh/plugins/fzf-tab +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7fed01afba9392b6392408b9a0cf888522ed7a10 diff --git a/.gitignore b/.gitignore index f753648e..5bda120a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -.config/zsh/.zcompdump -.config/zsh/completions/_kube -.config/zsh/configs/host-setup -.config/nvim/lazyvim.json -.config/nvim/lua/config/secrets.lua -.local/share/xkb/compiled/keymap -.local/share/service/**/supervise/** +common/.config/zsh/.zcompdump +common/.config/zsh/completions/_kube +common/.config/zsh/configs/host-setup +common/.config/nvim/lazyvim.json +common/.config/nvim/lua/config/secrets.lua +common/.local/share/xkb/compiled/keymap +common/.local/share/service/**/supervise/** diff --git a/.gitmodules b/.gitmodules index e61ac911..43216e51 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule ".config/zsh/plugins/fzf-tab"] - path = .config/zsh/plugins/fzf-tab +[submodule "common/.config/zsh/plugins/fzf-tab"] + path = common/.config/zsh/plugins/fzf-tab url = https://github.com/Aloxaf/fzf-tab diff --git a/.local/bin/dotsync b/.local/bin/dotsync deleted file mode 100755 index 1002f6de..00000000 --- a/.local/bin/dotsync +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh - -BOLD="$(tput bold)" -RED="$(tput setaf 1)" -GREEN="$(tput setaf 2)" -BLUE="$(tput setaf 4)" -NC="$(tput sgr0)" - -mkdir -p "$STOW_DIR/$DOTS_PACKAGE" - -# First run -if [ ! -e "$STOW_DIR/$DOTS_PACKAGE/.git" ]; then - printf "%b" "${BOLD}${BLUE}Cloning dotfiles...$NC\n\n" - git clone -j4 --recursive "$DOTS_REPO" "$STOW_DIR/$DOTS_PACKAGE" - stow --no-fold -d "$STOW_DIR" -t "$HOME" "$DOTS_PACKAGE" || printf "%b" "${RED}Failed to run stow!$NC\n" - exit 0 -fi - -dgit() { - git -C "$STOW_DIR/$DOTS_PACKAGE" "$@" -} - -printf "%b" "${BOLD}${BLUE}Removing dotfile symlinks...$NC\n\n" -stow -D -d "$STOW_DIR" -t "$HOME" "$DOTS_PACKAGE" || printf "%b" "${RED}Failed to run stow!$NC\n" - -printf "%b" "${BOLD}${BLUE}Stashing existing changes...$NC\n" -stash_result=$(dgit stash push) -needs_pop=1 -if [ "$stash_result" = "No local changes to save" ]; then - needs_pop=0 -fi -printf "\n" - -printf "%b" "${BOLD}${BLUE}Pulling updates from dotfiles repo...$NC\n" -old_commit="$(dgit rev-parse HEAD)" -dgit pull origin main -dgit submodule update --remote --merge -printf "\n" - -if [ $needs_pop -eq 1 ]; then - printf "%b" "${BOLD}${BLUE}Popping stashed changes...$NC\n" - dgit stash pop -fi -printf "\n" - -unmerged_files=$(dgit diff --name-only --diff-filter=U) -if [ -n "$unmerged_files" ]; then - printf "%b" "${RED}The following files have merge conflicts after popping the stash:$NC\n\n" - printf "%s" "$unmerged_files\n\n" - printf "%s" "${BOLD}${BLUE}Reverting to previous commit...$NC" - dgit checkout "$old_commit" -fi - -printf "%b" "${BOLD}${BLUE}Symlinking dotfiles...$NC\n\n" -stow --no-fold -d "$STOW_DIR" -t "$HOME" "$DOTS_PACKAGE" || printf "%b" "${RED}Failed to run stow!$NC\n" - -printf "%b" "${BOLD}${GREEN}Dotfiles synced successfully!$NC\n" diff --git a/.stow-local-ignore b/.stow-local-ignore deleted file mode 100644 index b9a183ef..00000000 --- a/.stow-local-ignore +++ /dev/null @@ -1,8 +0,0 @@ -README\.md -TODO\.md -\.editorconfig -\.git -\.gitignore -\.gitmodules -\.local/share/service -\.local/share/xkb/compiled/keymap diff --git a/README.md b/README.md index eb0eff55..249af52f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ can use parts of them as well. I've written a [script](https://github.com/ssnailed/bootstrapper) that will configure a fresh void installation to be used with these dotfiles. You can -also clone the repo to `~/.local/share/stow/dots` and run +also clone the repo to `~/.local/share/stow` and run `~/.local/share/stow/dots/.local/bin/dotsync` to install them on an existing installation, but I'm sure that a few things would break. @@ -16,6 +16,6 @@ installation, but I'm sure that a few things would break. My [.zprofile](.config/zsh/profile) automatically runs xinit if logged in on TTY1 and no other X server is running. This is because I use the default -[getty](https://en.wikipedia.org/wiki/Getty_(Unix)) and want to automatically +[getty]() and want to automatically start dwm after logging in. If any key mappings seem strange, it's because I use the dvorak keyboard layout. diff --git a/.config/X11/xinitrc b/common/.config/X11/xinitrc similarity index 100% rename from .config/X11/xinitrc rename to common/.config/X11/xinitrc diff --git a/.config/X11/xprofile b/common/.config/X11/xprofile similarity index 100% rename from .config/X11/xprofile rename to common/.config/X11/xprofile diff --git a/.config/X11/xresources b/common/.config/X11/xresources similarity index 100% rename from .config/X11/xresources rename to common/.config/X11/xresources diff --git a/.config/bat/config b/common/.config/bat/config similarity index 100% rename from .config/bat/config rename to common/.config/bat/config diff --git a/.config/bottom/bottom.toml b/common/.config/bottom/bottom.toml similarity index 100% rename from .config/bottom/bottom.toml rename to common/.config/bottom/bottom.toml diff --git a/.config/clonedev/config.yml b/common/.config/clonedev/config.yml similarity index 100% rename from .config/clonedev/config.yml rename to common/.config/clonedev/config.yml diff --git a/.config/clonedev/hooks/clone/infrastruktur:ansible b/common/.config/clonedev/hooks/clone/infrastruktur:ansible similarity index 100% rename from .config/clonedev/hooks/clone/infrastruktur:ansible rename to common/.config/clonedev/hooks/clone/infrastruktur:ansible diff --git a/.config/clonedev/hooks/clone/snailed:ansible-homelab b/common/.config/clonedev/hooks/clone/snailed:ansible-homelab similarity index 100% rename from .config/clonedev/hooks/clone/snailed:ansible-homelab rename to common/.config/clonedev/hooks/clone/snailed:ansible-homelab diff --git a/.config/clonedev/hooks/clone/spantaleev:matrix-docker-ansible-deploy b/common/.config/clonedev/hooks/clone/spantaleev:matrix-docker-ansible-deploy similarity index 100% rename from .config/clonedev/hooks/clone/spantaleev:matrix-docker-ansible-deploy rename to common/.config/clonedev/hooks/clone/spantaleev:matrix-docker-ansible-deploy diff --git a/.config/clonedev/hooks/clone/void-linux:void-packages b/common/.config/clonedev/hooks/clone/void-linux:void-packages similarity index 100% rename from .config/clonedev/hooks/clone/void-linux:void-packages rename to common/.config/clonedev/hooks/clone/void-linux:void-packages diff --git a/.config/clonedev/hooks/pull/spantaleev:matrix-docker-ansible-deploy b/common/.config/clonedev/hooks/pull/spantaleev:matrix-docker-ansible-deploy similarity index 100% rename from .config/clonedev/hooks/pull/spantaleev:matrix-docker-ansible-deploy rename to common/.config/clonedev/hooks/pull/spantaleev:matrix-docker-ansible-deploy diff --git a/.config/clonedev/hooks/pull/void-linux:void-packages b/common/.config/clonedev/hooks/pull/void-linux:void-packages similarity index 100% rename from .config/clonedev/hooks/pull/void-linux:void-packages rename to common/.config/clonedev/hooks/pull/void-linux:void-packages diff --git a/.config/directories b/common/.config/directories similarity index 92% rename from .config/directories rename to common/.config/directories index 9837c529..04e44f11 100644 --- a/.config/directories +++ b/common/.config/directories @@ -4,7 +4,7 @@ co $XDG_DOCUMENTS_DIR/dev dk $XDG_DESKTOP_DIR dl $XDG_DOWNLOAD_DIR dm $XDG_DOCUMENTS_DIR -ds $STOW_DIR/$DOTS_PACKAGE +ds $STOW_DIR dt $XDG_DATA_HOME e /etc h $HOME diff --git a/.config/dunst/dunstrc b/common/.config/dunst/dunstrc similarity index 100% rename from .config/dunst/dunstrc rename to common/.config/dunst/dunstrc diff --git a/.config/dwm/autorun.d/setup b/common/.config/dwm/autorun.d/setup similarity index 100% rename from .config/dwm/autorun.d/setup rename to common/.config/dwm/autorun.d/setup diff --git a/.config/git/config b/common/.config/git/config similarity index 100% rename from .config/git/config rename to common/.config/git/config diff --git a/.config/git/excludes b/common/.config/git/excludes similarity index 100% rename from .config/git/excludes rename to common/.config/git/excludes diff --git a/.config/git/gpg-fallback-keys b/common/.config/git/gpg-fallback-keys similarity index 100% rename from .config/git/gpg-fallback-keys rename to common/.config/git/gpg-fallback-keys diff --git a/.config/glow/glow.yml b/common/.config/glow/glow.yml similarity index 100% rename from .config/glow/glow.yml rename to common/.config/glow/glow.yml diff --git a/.config/glow/style.json b/common/.config/glow/style.json similarity index 100% rename from .config/glow/style.json rename to common/.config/glow/style.json diff --git a/.config/gnupg/gpg-agent.conf b/common/.config/gnupg/gpg-agent.conf similarity index 100% rename from .config/gnupg/gpg-agent.conf rename to common/.config/gnupg/gpg-agent.conf diff --git a/.config/gnupg/scdaemon.conf b/common/.config/gnupg/scdaemon.conf similarity index 100% rename from .config/gnupg/scdaemon.conf rename to common/.config/gnupg/scdaemon.conf diff --git a/.config/gtk-2.0/gtkrc-2.0 b/common/.config/gtk-2.0/gtkrc-2.0 similarity index 100% rename from .config/gtk-2.0/gtkrc-2.0 rename to common/.config/gtk-2.0/gtkrc-2.0 diff --git a/.config/gtk-3.0/settings.ini b/common/.config/gtk-3.0/settings.ini similarity index 100% rename from .config/gtk-3.0/settings.ini rename to common/.config/gtk-3.0/settings.ini diff --git a/.config/lazygit/config.yml b/common/.config/lazygit/config.yml similarity index 100% rename from .config/lazygit/config.yml rename to common/.config/lazygit/config.yml diff --git a/.config/lf/colors b/common/.config/lf/colors similarity index 100% rename from .config/lf/colors rename to common/.config/lf/colors diff --git a/.config/lf/icons b/common/.config/lf/icons similarity index 100% rename from .config/lf/icons rename to common/.config/lf/icons diff --git a/.config/lf/lfrc b/common/.config/lf/lfrc similarity index 99% rename from .config/lf/lfrc rename to common/.config/lf/lfrc index 8d14a09d..e0c2416e 100644 --- a/.config/lf/lfrc +++ b/common/.config/lf/lfrc @@ -49,7 +49,7 @@ cmd lazygit ${{ if git --noglob-pathspecs -C $dir status >/dev/null 2>&1; then lf -remote "send $id \$cd '$dir' && lazygit" else - lazygit -p "$STOW_DIR/$DOTS_PACKAGE" + lazygit -p "$STOW_DIR" fi }} diff --git a/.config/lf/preview/clean b/common/.config/lf/preview/clean similarity index 100% rename from .config/lf/preview/clean rename to common/.config/lf/preview/clean diff --git a/.config/lf/preview/preview b/common/.config/lf/preview/preview similarity index 100% rename from .config/lf/preview/preview rename to common/.config/lf/preview/preview diff --git a/.config/lf/preview/vidthumb b/common/.config/lf/preview/vidthumb similarity index 100% rename from .config/lf/preview/vidthumb rename to common/.config/lf/preview/vidthumb diff --git a/.config/lf/rifle.conf b/common/.config/lf/rifle.conf similarity index 100% rename from .config/lf/rifle.conf rename to common/.config/lf/rifle.conf diff --git a/.config/lf/shortcuts b/common/.config/lf/shortcuts similarity index 92% rename from .config/lf/shortcuts rename to common/.config/lf/shortcuts index 957d95db..54bbb63d 100644 --- a/.config/lf/shortcuts +++ b/common/.config/lf/shortcuts @@ -5,7 +5,7 @@ map gco cd /home/luca/Documents/dev map gdk cd /home/luca/Desktop map gdl cd /home/luca/Downloads map gdm cd /home/luca/Documents -map gds cd /home/luca/.local/share/stow/dots +map gds cd /home/luca/.local/share/stow map gdt cd /home/luca/.local/share map ge cd /etc map gh cd /home/luca diff --git a/.config/mpv/input.conf b/common/.config/mpv/input.conf similarity index 100% rename from .config/mpv/input.conf rename to common/.config/mpv/input.conf diff --git a/.config/mpv/mpv.conf b/common/.config/mpv/mpv.conf similarity index 100% rename from .config/mpv/mpv.conf rename to common/.config/mpv/mpv.conf diff --git a/.config/mpv/script-opts/osc.conf b/common/.config/mpv/script-opts/osc.conf similarity index 100% rename from .config/mpv/script-opts/osc.conf rename to common/.config/mpv/script-opts/osc.conf diff --git a/.config/nsxiv/exec/image-info b/common/.config/nsxiv/exec/image-info similarity index 100% rename from .config/nsxiv/exec/image-info rename to common/.config/nsxiv/exec/image-info diff --git a/.config/nsxiv/exec/key-handler b/common/.config/nsxiv/exec/key-handler similarity index 100% rename from .config/nsxiv/exec/key-handler rename to common/.config/nsxiv/exec/key-handler diff --git a/.config/nsxiv/exec/thumb-info b/common/.config/nsxiv/exec/thumb-info similarity index 100% rename from .config/nsxiv/exec/thumb-info rename to common/.config/nsxiv/exec/thumb-info diff --git a/.config/nsxiv/exec/win-title b/common/.config/nsxiv/exec/win-title similarity index 100% rename from .config/nsxiv/exec/win-title rename to common/.config/nsxiv/exec/win-title diff --git a/.config/nvim/init.lua b/common/.config/nvim/init.lua similarity index 98% rename from .config/nvim/init.lua rename to common/.config/nvim/init.lua index 7ca42033..f049d85f 100644 --- a/.config/nvim/init.lua +++ b/common/.config/nvim/init.lua @@ -31,7 +31,7 @@ require("lazy").setup({ { import = "lazyvim.plugins.extras.lang.docker" }, { import = "lazyvim.plugins.extras.lang.git" }, { import = "lazyvim.plugins.extras.lang.gleam" }, - { import = "lazyvim.plugins.extras.lang.helm" }, + -- { import = "lazyvim.plugins.extras.lang.helm" }, { import = "lazyvim.plugins.extras.lang.json" }, { import = "lazyvim.plugins.extras.lang.markdown" }, { import = "lazyvim.plugins.extras.lang.php" }, diff --git a/.config/nvim/lua/config/keymaps.lua b/common/.config/nvim/lua/config/keymaps.lua similarity index 100% rename from .config/nvim/lua/config/keymaps.lua rename to common/.config/nvim/lua/config/keymaps.lua diff --git a/.config/nvim/lua/config/options.lua b/common/.config/nvim/lua/config/options.lua similarity index 100% rename from .config/nvim/lua/config/options.lua rename to common/.config/nvim/lua/config/options.lua diff --git a/.config/nvim/lua/config/shortcuts.lua b/common/.config/nvim/lua/config/shortcuts.lua similarity index 93% rename from .config/nvim/lua/config/shortcuts.lua rename to common/.config/nvim/lua/config/shortcuts.lua index 8bbcdcb2..d4270940 100644 --- a/.config/nvim/lua/config/shortcuts.lua +++ b/common/.config/nvim/lua/config/shortcuts.lua @@ -6,7 +6,7 @@ return { ["dk"] = "/home/luca/Desktop", ["dl"] = "/home/luca/Downloads", ["dm"] = "/home/luca/Documents", - ["ds"] = "/home/luca/.local/share/stow/dots", + ["ds"] = "/home/luca/.local/share/stow", ["dt"] = "/home/luca/.local/share", ["e"] = "/etc", ["h"] = "/home/luca", diff --git a/.config/nvim/lua/lib.lua b/common/.config/nvim/lua/lib.lua similarity index 100% rename from .config/nvim/lua/lib.lua rename to common/.config/nvim/lua/lib.lua diff --git a/.config/nvim/lua/plugins/editor.lua b/common/.config/nvim/lua/plugins/editor.lua similarity index 100% rename from .config/nvim/lua/plugins/editor.lua rename to common/.config/nvim/lua/plugins/editor.lua diff --git a/.config/nvim/lua/plugins/language.lua b/common/.config/nvim/lua/plugins/language.lua similarity index 100% rename from .config/nvim/lua/plugins/language.lua rename to common/.config/nvim/lua/plugins/language.lua diff --git a/.config/nvim/lua/plugins/ui.lua b/common/.config/nvim/lua/plugins/ui.lua similarity index 100% rename from .config/nvim/lua/plugins/ui.lua rename to common/.config/nvim/lua/plugins/ui.lua diff --git a/.config/nvim/spell/en.utf-8.add b/common/.config/nvim/spell/en.utf-8.add similarity index 100% rename from .config/nvim/spell/en.utf-8.add rename to common/.config/nvim/spell/en.utf-8.add diff --git a/.config/nvim/stylua.toml b/common/.config/nvim/stylua.toml similarity index 100% rename from .config/nvim/stylua.toml rename to common/.config/nvim/stylua.toml diff --git a/.config/picom/picom.conf b/common/.config/picom/picom.conf similarity index 100% rename from .config/picom/picom.conf rename to common/.config/picom/picom.conf diff --git a/.config/task/hooks/on-modify.timewarrior b/common/.config/task/hooks/on-modify.timewarrior similarity index 100% rename from .config/task/hooks/on-modify.timewarrior rename to common/.config/task/hooks/on-modify.timewarrior diff --git a/.config/task/taskrc b/common/.config/task/taskrc similarity index 95% rename from .config/task/taskrc rename to common/.config/task/taskrc index ceea4d02..bb6cb5e9 100644 --- a/.config/task/taskrc +++ b/common/.config/task/taskrc @@ -9,3 +9,4 @@ context.work.write=+work include /usr/share/doc/task/rc/dark-16.theme include /usr/share/doc/task/rc/holidays.de-DE.rc +context=work diff --git a/.config/user-dirs.dirs b/common/.config/user-dirs.dirs similarity index 100% rename from .config/user-dirs.dirs rename to common/.config/user-dirs.dirs diff --git a/.config/wget/wgetrc b/common/.config/wget/wgetrc similarity index 100% rename from .config/wget/wgetrc rename to common/.config/wget/wgetrc diff --git a/.config/zathura/zathurarc b/common/.config/zathura/zathurarc similarity index 100% rename from .config/zathura/zathurarc rename to common/.config/zathura/zathurarc diff --git a/.config/zk/config.toml b/common/.config/zk/config.toml similarity index 100% rename from .config/zk/config.toml rename to common/.config/zk/config.toml diff --git a/.config/zsh/.zprofile b/common/.config/zsh/.zprofile similarity index 98% rename from .config/zsh/.zprofile rename to common/.config/zsh/.zprofile index 92861afb..43cc025d 100644 --- a/.config/zsh/.zprofile +++ b/common/.config/zsh/.zprofile @@ -42,9 +42,9 @@ export LESSOPEN="| /usr/bin/bat -f %s 2>/dev/null" export ANSIBLE_NOCOWS=1 # Stop those fucking cows in Ansible # dotfiles management -export DOTS_PACKAGE="dots" export STOW_DIR="$XDG_DATA_HOME/stow" -export DOTS_REPO="git@git.snaile.de:luca/dotfiles" +export STOW_REPO="git@git.snaile.de:luca/dotfiles" +export STOW_BRANCH="main" # Color palette for console dialogs in tools such as nmtui and whiptail export NEWT_COLORS=' diff --git a/.config/zsh/.zshrc b/common/.config/zsh/.zshrc similarity index 100% rename from .config/zsh/.zshrc rename to common/.config/zsh/.zshrc diff --git a/.config/zsh/configs/1-functions b/common/.config/zsh/configs/1-functions similarity index 100% rename from .config/zsh/configs/1-functions rename to common/.config/zsh/configs/1-functions diff --git a/.config/zsh/configs/2-setup b/common/.config/zsh/configs/2-setup similarity index 97% rename from .config/zsh/configs/2-setup rename to common/.config/zsh/configs/2-setup index 4a7fef96..695f7a77 100644 --- a/.config/zsh/configs/2-setup +++ b/common/.config/zsh/configs/2-setup @@ -58,8 +58,8 @@ workon_cwd() { if [ -r "$PROJECT_ROOT/.venv" ]; then local ENV_NAME="$(cat $PROJECT_ROOT/.venv)" - # else - # ENV_NAME="$(basename "$PROJECT_ROOT")" + else + local ENV_NAME="$(basename "$PROJECT_ROOT")" fi [ -n "$CD_VIRTUAL_ENV" ] && [ "$ENV_NAME" != "$CD_VIRTUAL_ENV" ] && { diff --git a/.config/zsh/configs/aliases b/common/.config/zsh/configs/aliases similarity index 100% rename from .config/zsh/configs/aliases rename to common/.config/zsh/configs/aliases diff --git a/.config/zsh/configs/bindings b/common/.config/zsh/configs/bindings similarity index 100% rename from .config/zsh/configs/bindings rename to common/.config/zsh/configs/bindings diff --git a/.config/zsh/configs/hashes b/common/.config/zsh/configs/hashes similarity index 92% rename from .config/zsh/configs/hashes rename to common/.config/zsh/configs/hashes index e9933181..378a5553 100644 --- a/.config/zsh/configs/hashes +++ b/common/.config/zsh/configs/hashes @@ -5,7 +5,7 @@ hash -d co=/home/luca/Documents/dev hash -d dk=/home/luca/Desktop hash -d dl=/home/luca/Downloads hash -d dm=/home/luca/Documents -hash -d ds=/home/luca/.local/share/stow/dots +hash -d ds=/home/luca/.local/share/stow hash -d dt=/home/luca/.local/share hash -d e=/etc hash -d h=/home/luca diff --git a/.local/bin/cam b/common/.local/bin/cam similarity index 100% rename from .local/bin/cam rename to common/.local/bin/cam diff --git a/.local/bin/cht b/common/.local/bin/cht similarity index 100% rename from .local/bin/cht rename to common/.local/bin/cht diff --git a/.local/bin/clonedev b/common/.local/bin/clonedev similarity index 100% rename from .local/bin/clonedev rename to common/.local/bin/clonedev diff --git a/.local/bin/crontog b/common/.local/bin/crontog similarity index 100% rename from .local/bin/crontog rename to common/.local/bin/crontog diff --git a/common/.local/bin/dotsync b/common/.local/bin/dotsync new file mode 100755 index 00000000..66742c7a --- /dev/null +++ b/common/.local/bin/dotsync @@ -0,0 +1,73 @@ +#!/bin/sh + +BOLD="$(tput bold)" +RED="$(tput setaf 1)" +GREEN="$(tput setaf 2)" +BLUE="$(tput setaf 4)" +NC="$(tput sgr0)" + +stow_git() { + git -C "$STOW_DIR" "$@" +} + +multi_stow() { + ret=0 + for package in common "$(hostname)"; do + [ -n "$package" ] && { + stow --no-folding -d "$STOW_DIR" -t "$HOME" "$@" "$package" + ret=$((ret + $?)) + } + done + return $ret +} + +{ [ -n "$STOW_DIR" ] && [ -n "$STOW_REPO" ] && [ -n "$STOW_BRANCH" ]; } || { + echo "Please set STOW_DIR, STOW_REPO, and STOW_BRANCH" + exit 1 +} + +mkdir -p "$STOW_DIR" + +# First run +if [ ! -e "$STOW_DIR/.git" ]; then + printf "%b" "${BOLD}${BLUE}Cloning dotfiles...$NC\n\n" + git clone -j4 --recursive "$STOW_REPO" "$STOW_DIR" + multi_stow || printf "%b" "${RED}Failed to run stow!$NC\n" + exit 0 +fi + +printf "%b" "${BOLD}${BLUE}Removing dotfile symlinks...$NC\n\n" +multi_stow -D || printf "%b" "${RED}Failed to run stow!$NC\n" + +printf "%b" "${BOLD}${BLUE}Stashing existing changes...$NC\n" +stash_result=$(stow_git stash push) +needs_pop=1 +if [ "$stash_result" = "No local changes to save" ]; then + needs_pop=0 +fi +printf "\n" + +printf "%b" "${BOLD}${BLUE}Pulling updates from dotfiles repo...$NC\n" +old_commit="$(stow_git rev-parse HEAD)" +stow_git pull origin "$STOW_BRANCH" +stow_git submodule update --remote --merge +printf "\n" + +if [ $needs_pop -eq 1 ]; then + printf "%b" "${BOLD}${BLUE}Popping stashed changes...$NC\n" + stow_git stash pop +fi +printf "\n" + +unmerged_files=$(stow_git diff --name-only --diff-filter=U) +if [ -n "$unmerged_files" ]; then + printf "%b" "${RED}The following files have merge conflicts after popping the stash:$NC\n\n" + printf "%s" "$unmerged_files\n\n" + printf "%s" "${BOLD}${BLUE}Reverting to previous commit...$NC" + stow_git checkout "$old_commit" +fi + +printf "%b" "${BOLD}${BLUE}Symlinking dotfiles...$NC\n\n" +multi_stow || printf "%b" "${RED}Failed to run stow!$NC\n" + +printf "%b" "${BOLD}${GREEN}Dotfiles synced successfully!$NC\n" diff --git a/.local/bin/ffwork b/common/.local/bin/ffwork similarity index 100% rename from .local/bin/ffwork rename to common/.local/bin/ffwork diff --git a/.local/bin/lfX b/common/.local/bin/lfX similarity index 100% rename from .local/bin/lfX rename to common/.local/bin/lfX diff --git a/.local/bin/logwrap b/common/.local/bin/logwrap similarity index 100% rename from .local/bin/logwrap rename to common/.local/bin/logwrap diff --git a/.local/bin/opener b/common/.local/bin/opener similarity index 100% rename from .local/bin/opener rename to common/.local/bin/opener diff --git a/.local/bin/remaps b/common/.local/bin/remaps similarity index 100% rename from .local/bin/remaps rename to common/.local/bin/remaps diff --git a/.local/bin/setbg b/common/.local/bin/setbg similarity index 100% rename from .local/bin/setbg rename to common/.local/bin/setbg diff --git a/.local/bin/shortcuts b/common/.local/bin/shortcuts similarity index 100% rename from .local/bin/shortcuts rename to common/.local/bin/shortcuts diff --git a/.local/bin/upgrades b/common/.local/bin/upgrades similarity index 100% rename from .local/bin/upgrades rename to common/.local/bin/upgrades diff --git a/.local/bin/xmenulayout b/common/.local/bin/xmenulayout similarity index 100% rename from .local/bin/xmenulayout rename to common/.local/bin/xmenulayout diff --git a/.local/libexec/cron/checkup b/common/.local/libexec/cron/checkup similarity index 100% rename from .local/libexec/cron/checkup rename to common/.local/libexec/cron/checkup diff --git a/.local/libexec/daemons/lf-dbus b/common/.local/libexec/daemons/lf-dbus similarity index 100% rename from .local/libexec/daemons/lf-dbus rename to common/.local/libexec/daemons/lf-dbus diff --git a/.local/libexec/daemons/remapd b/common/.local/libexec/daemons/remapd similarity index 100% rename from .local/libexec/daemons/remapd rename to common/.local/libexec/daemons/remapd diff --git a/.local/libexec/daemons/sbd-battery b/common/.local/libexec/daemons/sbd-battery similarity index 100% rename from .local/libexec/daemons/sbd-battery rename to common/.local/libexec/daemons/sbd-battery diff --git a/.local/libexec/daemons/sbd-music b/common/.local/libexec/daemons/sbd-music similarity index 100% rename from .local/libexec/daemons/sbd-music rename to common/.local/libexec/daemons/sbd-music diff --git a/.local/libexec/daemons/sbd-playerctl b/common/.local/libexec/daemons/sbd-playerctl similarity index 100% rename from .local/libexec/daemons/sbd-playerctl rename to common/.local/libexec/daemons/sbd-playerctl diff --git a/.local/libexec/dwm/brightness-notify b/common/.local/libexec/dwm/brightness-notify similarity index 100% rename from .local/libexec/dwm/brightness-notify rename to common/.local/libexec/dwm/brightness-notify diff --git a/.local/libexec/dwm/dmenuhandler b/common/.local/libexec/dwm/dmenuhandler similarity index 100% rename from .local/libexec/dwm/dmenuhandler rename to common/.local/libexec/dwm/dmenuhandler diff --git a/.local/libexec/dwm/dmenumaim b/common/.local/libexec/dwm/dmenumaim similarity index 100% rename from .local/libexec/dwm/dmenumaim rename to common/.local/libexec/dwm/dmenumaim diff --git a/.local/libexec/dwm/dmenumount b/common/.local/libexec/dwm/dmenumount similarity index 100% rename from .local/libexec/dwm/dmenumount rename to common/.local/libexec/dwm/dmenumount diff --git a/.local/libexec/dwm/dmenumountcifs b/common/.local/libexec/dwm/dmenumountcifs similarity index 100% rename from .local/libexec/dwm/dmenumountcifs rename to common/.local/libexec/dwm/dmenumountcifs diff --git a/.local/libexec/dwm/dmenupass b/common/.local/libexec/dwm/dmenupass similarity index 100% rename from .local/libexec/dwm/dmenupass rename to common/.local/libexec/dwm/dmenupass diff --git a/.local/libexec/dwm/dmenurecord b/common/.local/libexec/dwm/dmenurecord similarity index 100% rename from .local/libexec/dwm/dmenurecord rename to common/.local/libexec/dwm/dmenurecord diff --git a/.local/libexec/dwm/dmenusys b/common/.local/libexec/dwm/dmenusys similarity index 100% rename from .local/libexec/dwm/dmenusys rename to common/.local/libexec/dwm/dmenusys diff --git a/.local/libexec/dwm/dmenuumount b/common/.local/libexec/dwm/dmenuumount similarity index 100% rename from .local/libexec/dwm/dmenuumount rename to common/.local/libexec/dwm/dmenuumount diff --git a/.local/libexec/dwm/dmenuunicode b/common/.local/libexec/dwm/dmenuunicode similarity index 100% rename from .local/libexec/dwm/dmenuunicode rename to common/.local/libexec/dwm/dmenuunicode diff --git a/.local/libexec/dwm/pamixer-notify b/common/.local/libexec/dwm/pamixer-notify similarity index 100% rename from .local/libexec/dwm/pamixer-notify rename to common/.local/libexec/dwm/pamixer-notify diff --git a/.local/libexec/dwm/togcompositor b/common/.local/libexec/dwm/togcompositor similarity index 100% rename from .local/libexec/dwm/togcompositor rename to common/.local/libexec/dwm/togcompositor diff --git a/.local/libexec/dwm/togtouchpad b/common/.local/libexec/dwm/togtouchpad similarity index 100% rename from .local/libexec/dwm/togtouchpad rename to common/.local/libexec/dwm/togtouchpad diff --git a/.local/libexec/lf_prompt b/common/.local/libexec/lf_prompt similarity index 100% rename from .local/libexec/lf_prompt rename to common/.local/libexec/lf_prompt diff --git a/.local/libexec/statusbar/libsb b/common/.local/libexec/statusbar/libsb similarity index 100% rename from .local/libexec/statusbar/libsb rename to common/.local/libexec/statusbar/libsb diff --git a/.local/libexec/statusbar/sb-battery b/common/.local/libexec/statusbar/sb-battery similarity index 100% rename from .local/libexec/statusbar/sb-battery rename to common/.local/libexec/statusbar/sb-battery diff --git a/.local/libexec/statusbar/sb-cpu b/common/.local/libexec/statusbar/sb-cpu similarity index 100% rename from .local/libexec/statusbar/sb-cpu rename to common/.local/libexec/statusbar/sb-cpu diff --git a/.local/libexec/statusbar/sb-date b/common/.local/libexec/statusbar/sb-date similarity index 100% rename from .local/libexec/statusbar/sb-date rename to common/.local/libexec/statusbar/sb-date diff --git a/.local/libexec/statusbar/sb-disk b/common/.local/libexec/statusbar/sb-disk similarity index 100% rename from .local/libexec/statusbar/sb-disk rename to common/.local/libexec/statusbar/sb-disk diff --git a/.local/libexec/statusbar/sb-forecast b/common/.local/libexec/statusbar/sb-forecast similarity index 100% rename from .local/libexec/statusbar/sb-forecast rename to common/.local/libexec/statusbar/sb-forecast diff --git a/.local/libexec/statusbar/sb-internet b/common/.local/libexec/statusbar/sb-internet similarity index 100% rename from .local/libexec/statusbar/sb-internet rename to common/.local/libexec/statusbar/sb-internet diff --git a/.local/libexec/statusbar/sb-ip b/common/.local/libexec/statusbar/sb-ip similarity index 100% rename from .local/libexec/statusbar/sb-ip rename to common/.local/libexec/statusbar/sb-ip diff --git a/.local/libexec/statusbar/sb-memory b/common/.local/libexec/statusbar/sb-memory similarity index 100% rename from .local/libexec/statusbar/sb-memory rename to common/.local/libexec/statusbar/sb-memory diff --git a/.local/libexec/statusbar/sb-music b/common/.local/libexec/statusbar/sb-music similarity index 100% rename from .local/libexec/statusbar/sb-music rename to common/.local/libexec/statusbar/sb-music diff --git a/.local/libexec/statusbar/sb-nettraf b/common/.local/libexec/statusbar/sb-nettraf similarity index 100% rename from .local/libexec/statusbar/sb-nettraf rename to common/.local/libexec/statusbar/sb-nettraf diff --git a/.local/libexec/statusbar/sb-packages b/common/.local/libexec/statusbar/sb-packages similarity index 100% rename from .local/libexec/statusbar/sb-packages rename to common/.local/libexec/statusbar/sb-packages diff --git a/.local/libexec/statusbar/sb-playerctl b/common/.local/libexec/statusbar/sb-playerctl similarity index 100% rename from .local/libexec/statusbar/sb-playerctl rename to common/.local/libexec/statusbar/sb-playerctl diff --git a/.local/share/bg b/common/.local/share/bg similarity index 100% rename from .local/share/bg rename to common/.local/share/bg diff --git a/.local/share/city.jpeg b/common/.local/share/city.jpeg similarity index 100% rename from .local/share/city.jpeg rename to common/.local/share/city.jpeg diff --git a/.local/share/cronprofile b/common/.local/share/cronprofile similarity index 100% rename from .local/share/cronprofile rename to common/.local/share/cronprofile diff --git a/.local/share/emoji b/common/.local/share/emoji similarity index 100% rename from .local/share/emoji rename to common/.local/share/emoji diff --git a/.local/share/service/clipmenud/log/run b/common/.local/share/service/clipmenud/log/run similarity index 100% rename from .local/share/service/clipmenud/log/run rename to common/.local/share/service/clipmenud/log/run diff --git a/.local/share/service/clipmenud/run b/common/.local/share/service/clipmenud/run similarity index 100% rename from .local/share/service/clipmenud/run rename to common/.local/share/service/clipmenud/run diff --git a/.local/share/service/dunst/log/run b/common/.local/share/service/dunst/log/run similarity index 100% rename from .local/share/service/dunst/log/run rename to common/.local/share/service/dunst/log/run diff --git a/.local/share/service/dunst/run b/common/.local/share/service/dunst/run similarity index 100% rename from .local/share/service/dunst/run rename to common/.local/share/service/dunst/run diff --git a/.local/share/service/dwmblocks/log/run b/common/.local/share/service/dwmblocks/log/run similarity index 100% rename from .local/share/service/dwmblocks/log/run rename to common/.local/share/service/dwmblocks/log/run diff --git a/.local/share/service/dwmblocks/run b/common/.local/share/service/dwmblocks/run similarity index 100% rename from .local/share/service/dwmblocks/run rename to common/.local/share/service/dwmblocks/run diff --git a/.local/share/service/gnome-keyring/log/run b/common/.local/share/service/gnome-keyring/log/run similarity index 100% rename from .local/share/service/gnome-keyring/log/run rename to common/.local/share/service/gnome-keyring/log/run diff --git a/.local/share/service/gnome-keyring/run b/common/.local/share/service/gnome-keyring/run similarity index 100% rename from .local/share/service/gnome-keyring/run rename to common/.local/share/service/gnome-keyring/run diff --git a/.local/share/service/lf-dbus/log/run b/common/.local/share/service/lf-dbus/log/run similarity index 100% rename from .local/share/service/lf-dbus/log/run rename to common/.local/share/service/lf-dbus/log/run diff --git a/.local/share/service/lf-dbus/run b/common/.local/share/service/lf-dbus/run similarity index 100% rename from .local/share/service/lf-dbus/run rename to common/.local/share/service/lf-dbus/run diff --git a/.local/share/service/picom/log/run b/common/.local/share/service/picom/log/run similarity index 100% rename from .local/share/service/picom/log/run rename to common/.local/share/service/picom/log/run diff --git a/.local/share/service/picom/run b/common/.local/share/service/picom/run similarity index 100% rename from .local/share/service/picom/run rename to common/.local/share/service/picom/run diff --git a/.local/share/service/pipewire-pulse/log/run b/common/.local/share/service/pipewire-pulse/log/run similarity index 100% rename from .local/share/service/pipewire-pulse/log/run rename to common/.local/share/service/pipewire-pulse/log/run diff --git a/.local/share/service/pipewire-pulse/run b/common/.local/share/service/pipewire-pulse/run similarity index 100% rename from .local/share/service/pipewire-pulse/run rename to common/.local/share/service/pipewire-pulse/run diff --git a/.local/share/service/pipewire/log/run b/common/.local/share/service/pipewire/log/run similarity index 100% rename from .local/share/service/pipewire/log/run rename to common/.local/share/service/pipewire/log/run diff --git a/.local/share/service/pipewire/run b/common/.local/share/service/pipewire/run similarity index 100% rename from .local/share/service/pipewire/run rename to common/.local/share/service/pipewire/run diff --git a/.local/share/service/remapd/run b/common/.local/share/service/remapd/run similarity index 100% rename from .local/share/service/remapd/run rename to common/.local/share/service/remapd/run diff --git a/.local/share/service/syncthing/check b/common/.local/share/service/syncthing/check similarity index 100% rename from .local/share/service/syncthing/check rename to common/.local/share/service/syncthing/check diff --git a/.local/share/service/syncthing/log/run b/common/.local/share/service/syncthing/log/run similarity index 100% rename from .local/share/service/syncthing/log/run rename to common/.local/share/service/syncthing/log/run diff --git a/.local/share/service/syncthing/run b/common/.local/share/service/syncthing/run similarity index 100% rename from .local/share/service/syncthing/run rename to common/.local/share/service/syncthing/run diff --git a/.local/share/service/unclutter/run b/common/.local/share/service/unclutter/run similarity index 100% rename from .local/share/service/unclutter/run rename to common/.local/share/service/unclutter/run diff --git a/.local/share/service/wireplumber/log/run b/common/.local/share/service/wireplumber/log/run similarity index 100% rename from .local/share/service/wireplumber/log/run rename to common/.local/share/service/wireplumber/log/run diff --git a/.local/share/service/wireplumber/run b/common/.local/share/service/wireplumber/run similarity index 100% rename from .local/share/service/wireplumber/run rename to common/.local/share/service/wireplumber/run diff --git a/.local/share/service/xss-lock/conf b/common/.local/share/service/xss-lock/conf similarity index 100% rename from .local/share/service/xss-lock/conf rename to common/.local/share/service/xss-lock/conf diff --git a/.local/share/service/xss-lock/log/run b/common/.local/share/service/xss-lock/log/run similarity index 100% rename from .local/share/service/xss-lock/log/run rename to common/.local/share/service/xss-lock/log/run diff --git a/.local/share/service/xss-lock/run b/common/.local/share/service/xss-lock/run similarity index 100% rename from .local/share/service/xss-lock/run rename to common/.local/share/service/xss-lock/run diff --git a/.local/share/timewarrior/time b/common/.local/share/timewarrior/time similarity index 100% rename from .local/share/timewarrior/time rename to common/.local/share/timewarrior/time diff --git a/.local/share/xkb/build.sh b/common/.local/share/xkb/build.sh similarity index 100% rename from .local/share/xkb/build.sh rename to common/.local/share/xkb/build.sh diff --git a/.local/share/xkb/compiled/de b/common/.local/share/xkb/compiled/de similarity index 100% rename from .local/share/xkb/compiled/de rename to common/.local/share/xkb/compiled/de diff --git a/.local/share/xkb/compiled/dvorak b/common/.local/share/xkb/compiled/dvorak similarity index 100% rename from .local/share/xkb/compiled/dvorak rename to common/.local/share/xkb/compiled/dvorak diff --git a/.local/share/xkb/compiled/ergodox b/common/.local/share/xkb/compiled/ergodox similarity index 100% rename from .local/share/xkb/compiled/ergodox rename to common/.local/share/xkb/compiled/ergodox diff --git a/.local/share/xkb/keymap/de b/common/.local/share/xkb/keymap/de similarity index 100% rename from .local/share/xkb/keymap/de rename to common/.local/share/xkb/keymap/de diff --git a/.local/share/xkb/keymap/dvorak b/common/.local/share/xkb/keymap/dvorak similarity index 100% rename from .local/share/xkb/keymap/dvorak rename to common/.local/share/xkb/keymap/dvorak diff --git a/.local/share/xkb/keymap/ergodox b/common/.local/share/xkb/keymap/ergodox similarity index 100% rename from .local/share/xkb/keymap/ergodox rename to common/.local/share/xkb/keymap/ergodox diff --git a/.local/share/xkb/symbols/custom b/common/.local/share/xkb/symbols/custom similarity index 100% rename from .local/share/xkb/symbols/custom rename to common/.local/share/xkb/symbols/custom diff --git a/common/.stow-local-ignore b/common/.stow-local-ignore new file mode 100644 index 00000000..40930032 --- /dev/null +++ b/common/.stow-local-ignore @@ -0,0 +1,2 @@ +\.local/share/service +\.local/share/xkb/compiled/keymap diff --git a/dijkstra/.config/git/host b/dijkstra/.config/git/host new file mode 100644 index 00000000..0d9abd27 --- /dev/null +++ b/dijkstra/.config/git/host @@ -0,0 +1,9 @@ +# vim: set ft=gitconfig: +[user] + email = luca@bil.ke + name = Luca Bilke + signingkey = F6E11C9BAA7C82F5 +[includeIf "hasconfig:remote.*.url:https://gitlab.tralios.de/**"] + path = ~/.config/git/tralios +[includeIf "hasconfig:remote.*.url:ssh://git@gitlab.tralios.de:10022/**"] + path = ~/.config/git/tralios diff --git a/dijkstra/.config/git/tralios b/dijkstra/.config/git/tralios new file mode 100644 index 00000000..386aa88e --- /dev/null +++ b/dijkstra/.config/git/tralios @@ -0,0 +1,5 @@ +# vim: set ft=gitconfig: +[user] + email = bilke@tralios.de + name = Luca Bilke + signingkey = B753481DA0B6FA47 diff --git a/dijkstra/.config/zsh/completions/_kube b/dijkstra/.config/zsh/completions/_kube new file mode 120000 index 00000000..9edc3f3b --- /dev/null +++ b/dijkstra/.config/zsh/completions/_kube @@ -0,0 +1 @@ +../../../../../../../Documents/dev/tralios/tralios-kube/_kube \ No newline at end of file diff --git a/dijkstra/.config/zsh/configs/host-setup b/dijkstra/.config/zsh/configs/host-setup new file mode 100644 index 00000000..e101a726 --- /dev/null +++ b/dijkstra/.config/zsh/configs/host-setup @@ -0,0 +1,21 @@ +export VAULT_ADDR=https://vault.tralios.de + +export KUBECONFIG_DIRS=" +/home/luca/Documents/dev/tralios/ansible/classes/kubeconfig +/home/luca/Documents/dev/schneiderfilz/sf-ansible/classes/kubeconfig +" + +alias vault_login_tralios="vault login -address=https://vault.tralios.de -token-only -method=userpass username=luca | tee /home/luca/Documents/dev/tralios/ansible/classes/../.tralios-vault-token" +function vault_tralios { + export VAULT_ADDR=https://vault.tralios.de + export VAULT_TOKEN=$(cat /home/luca/Documents/dev/tralios/ansible/classes/../.tralios-vault-token) + vault +} + +alias vault_login_schneiderfilz="VAULT_ADDR=https://vault.schneiderfilz.com vault login -address=https://vault.schneiderfilz.com -token-only -method=userpass username=luca | tee /home/luca/Documents/dev/schneiderfilz/sf-ansible/classes/../.schneiderfilz-vault-token" +function vault_schneiderfilz { + export VAULT_ADDR=https://vault.schneiderfilz.com + export VAULT_TOKEN=$(cat /home/luca/Documents/dev/schneiderfilz/sf-ansible/classes/../.schneiderfilz-vault-token) + vault $@ +} + diff --git a/dijkstra/.local/bin/elia b/dijkstra/.local/bin/elia new file mode 120000 index 00000000..bd66dc75 --- /dev/null +++ b/dijkstra/.local/bin/elia @@ -0,0 +1 @@ +../../../../pipx/venvs/elia-chat/bin/elia \ No newline at end of file diff --git a/dijkstra/.local/bin/kube b/dijkstra/.local/bin/kube new file mode 120000 index 00000000..ffcb7f43 --- /dev/null +++ b/dijkstra/.local/bin/kube @@ -0,0 +1 @@ +../../../../../../Documents/dev/tralios/tralios-kube/kube \ No newline at end of file