#!/bin/sh set -e confdir="${XDG_CONFIG_HOME:-$HOME/.config}" bindir="${BINDIR:-$HOME/bin}" USE_X_SCRIPTS="${USE_X_SCRIPTS:-NO}" setLink() { src="" dest="" while [ $# -gt 0 ] ; do case $1 in -s) src="$2"; shift ; shift ;; -d) dest="$2"; shift ; shift ;; *) echo "unknown arg $1 invalid usage"; exit 1; ;; esac ; done if [ -e "$dest" ] && ! [ -L "$dest" ] ; then echo "Warning: $dest is not a link, no action taken" return fi if [ -L "$dest" ] || [ -e "$dest" ] ; then rm "$dest" fi ln -s "$src" "$dest" } for _f in dotfiles/* ; do src="$(pwd)/$_f" dest="$HOME/.$(basename "$_f")" if ! [ -f "$src" ] ; then continue fi setLink -s "$src" -d "$dest" done # if we're using plain vim, we may not have a modern version with xdg # support for ~/.config/vim setLink -s "$(pwd)/dotfiles/vim" -d "$HOME/.vim" setLink -s "$(pwd)/dotfiles/nvim" -d "${confdir}/nvim" _ghosttydir="${confdir}/ghostty" if ! [ -d "$_ghosttydir" ] ; then mkdir "$_ghosttydir" fi setLink -s "$(pwd)/dotfiles/ghostty/config" -d "$_ghosttydir/config" setLink -s "$(pwd)/dotfiles/ghostty/retro.glsl" -d "$_ghosttydir/retro.glsl" # if ! [ -d "$bindir" ] ; then mkdir "$bindir" ; fi # for _f in bin/* ; do # src="$(pwd)/$_f" # dest="${bindir}/$(basename "$_f")" # # setLink -s "$src" -d "$dest" # done if [ "$(uname)" != "Darwin" ] \ && [ -n "$DISPLAY" ] && [ "$XDG_SESSION_TYPE" != "wayland" ] \ && [ "$USE_X_SCRIPTS" = "YES" ] ; then if ! [ -d "$HOME/x" ] ; then mkdir "$HOME/x" ; fi for _f in x/* ; do src="$(pwd)/$_f" dest="$HOME/x/$(basename "$_f")" setLink -s "$src" -d "$dest" done fi