aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjakobst1n <jakob.stendahl@outlook.com>2024-02-12 18:00:19 +0100
committerjakobst1n <jakob.stendahl@outlook.com>2024-02-12 18:00:19 +0100
commitbf5df2e802df4a46378855fd7ef0b0a4979d8c27 (patch)
tree585452940d94790a10dcce5cd94ffe5d3d1c9b03
parentda4f994bec2f9a0927195c7bbc84d44f4b8384fb (diff)
downloaddotfiles-bf5df2e802df4a46378855fd7ef0b0a4979d8c27.tar.gz
dotfiles-bf5df2e802df4a46378855fd7ef0b0a4979d8c27.zip
Improve some config stuff
-rw-r--r--.gitignore1
-rw-r--r--Common/bashrc.m48
-rw-r--r--Common/zshrc.m49
-rw-r--r--Makefile.m4116
-rwxr-xr-xconfigure247
-rw-r--r--linux/sway/autostart.m43
-rw-r--r--linux/sway/config.m43
-rw-r--r--linux/sway/hid.m44
-rw-r--r--linux/tmux.conf.m411
9 files changed, 225 insertions, 177 deletions
diff --git a/.gitignore b/.gitignore
index 3b5d930..789363c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,3 +85,4 @@ linux/sway/config
linux/sway/autostart
linux/sway/hid
Makefile
+config
diff --git a/Common/bashrc.m4 b/Common/bashrc.m4
index 6f64138..2340348 100644
--- a/Common/bashrc.m4
+++ b/Common/bashrc.m4
@@ -12,9 +12,9 @@ esac
# Check if env setup file exists
if [ ! -f ~/.dotfiles_env ]; then
echo "DEFAULT_USER=$USER" >> ~/.zsh_env_setup
- echo "export GIT_EDITOR=\"DEFAULT_EDITOR\"" >> ~/.dotfiles_env
- echo "export GIT_AUTHOR_NAME=\"GIT_USER\"" >> ~/.dotfiles_env
- echo "export GIT_AUTHOR_EMAIL=\"GIT_EMAIL\"" >> ~/.dotfiles_env
+ echo "export GIT_EDITOR=\"DT_EDITOR\"" >> ~/.dotfiles_env
+ echo "export GIT_AUTHOR_NAME=\"DT_GIT_USER\"" >> ~/.dotfiles_env
+ echo "export GIT_AUTHOR_EMAIL=\"DT_GIT_EMAIL\"" >> ~/.dotfiles_env
fi
# Source env setup file
@@ -28,7 +28,7 @@ export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
# Set editor
-export EDITOR="DEFAULT_EDITOR"
+export EDITOR="DT_EDITOR"
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
diff --git a/Common/zshrc.m4 b/Common/zshrc.m4
index 2cafd8e..36e2857 100644
--- a/Common/zshrc.m4
+++ b/Common/zshrc.m4
@@ -1,4 +1,3 @@
-m4_include(`system.m4')m4_dnl
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
@@ -14,9 +13,9 @@ export KEYTIMEOUT=1
if [ ! -f ~/.dotfiles_env ]; then
echo "export ZSH=$HOME/.oh-my-zsh" > ~/.dotfiles_env
echo "DEFAULT_USER=$USER" >> ~/.dotfiles_env
- echo "export GIT_EDITOR=\"DEFAULT_EDITOR\"" >> ~/.dotfiles_env
- echo "export GIT_AUTHOR_NAME=\"GIT_USER\"" >> ~/.dotfiles_env
- echo "export GIT_AUTHOR_EMAIL=\"GIT_EMAIL\"" >> ~/.dotfiles_env
+ echo "export GIT_EDITOR=\"DT_EDITOR\"" >> ~/.dotfiles_env
+ echo "export GIT_AUTHOR_NAME=\"DT_GIT_USER\"" >> ~/.dotfiles_env
+ echo "export GIT_AUTHOR_EMAIL=\"DT_GIT_EMAIL\"" >> ~/.dotfiles_env
fi
# Source env setup file
@@ -60,7 +59,7 @@ export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
# Set editor
-export EDITOR="DEFAULT_EDITOR"
+export EDITOR="DT_EDITOR"
# Enable vim keybindings (This is enabled using zsh-vi-mode now.
# bindkey -v
diff --git a/Makefile.m4 b/Makefile.m4
index 2646ded..aa913f8 100644
--- a/Makefile.m4
+++ b/Makefile.m4
@@ -1,14 +1,15 @@
-m4_include(`system.m4')m4_dnl
+CONFIG_FILE := config
M4 := m4
M4_OPTS := -P
-M4_COMMON_DEPS = system.m4
-SRC_DIR := DOTFILES_DIR
-HOME_DIR := HOME_DIRECTORY
+M4_SYSFILE := system.m4
+M4_COMMON_DEPS = $(M4_SYSFILE)
+SRC_DIR := DT_DOTFILES_DIR
+HOME_DIR := DT_HOME_DIRECTORY
.PHONY: install_packages update_packages
define M4_EXEC
- ${M4} ${M4_OPTS} $< > $@
+ echo "`m4_include'(\``system.m4'')`m4_dnl'" | cat - $< | ${M4} ${M4_OPTS} > $@
endef
define create_symlink
@@ -25,30 +26,37 @@ define create_dotfile_symlink
$(call create_symlink,${SRC_DIR}/$(1),${HOME_DIR}/$(2))
endef
-all: install_packages m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.vimrc') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.vim') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/rofi') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/deadd') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/waybar') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/foot') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/alacritty') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/powerline') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/sxhkd') m4_dnl
-m4_ifdef(`DT_OTHER_SYMLINKS', `$(HOME_DIR)/.config/bspwm') m4_dnl
-m4_ifdef(`DT_HOMEBIN', `$(HOME_DIR)/bin') m4_dnl
-m4_ifdef(`DT_ZSH', `$(HOME_DIR)/.zshrc') m4_dnl
-m4_ifdef(`DT_ZSH', `$(HOME_DIR)/.p10k.zsh') m4_dnl
-m4_ifdef(`DT_BASH', `$(HOME_DIR)/.bashrc') m4_dnl
-m4_ifdef(`DT_TMUX', `$(HOME_DIR)/.tmux.conf') m4_dnl
-m4_ifdef(`DT_QTILE', `$(HOME_DIR)/.config/qtile/config.py') m4_dnl
-m4_ifdef(`DT_SWAY', `$(HOME_DIR)/.config/sway/config') m4_dnl
-m4_ifdef(`DT_SWAY', `$(HOME_DIR)/.config/sway/hid') m4_dnl
-m4_ifdef(`DT_SWAY', `$(HOME_DIR)/.config/sway/autostart') m4_dnl
-m4_ifdef(`DT_NEOVIM', `$(HOME_DIR)/.config/nvim') m4_dnl
-
-
-m4_ifdef(`DT_OTHER_SYMLINKS', `m4_dnl
+all: system.m4 install_packages m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.vimrc') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.vim') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/rofi') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/deadd') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/waybar') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/foot') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/alacritty') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/powerline') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/sxhkd') m4_dnl
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `$(HOME_DIR)/.config/bspwm') m4_dnl
+m4_ifelse(DT_HOMEBIN, `yes', `$(HOME_DIR)/bin') m4_dnl
+m4_ifelse(DT_ZSH, `yes', `$(HOME_DIR)/.zshrc') m4_dnl
+m4_ifelse(DT_ZSH, `yes', `$(HOME_DIR)/.p10k.zsh') m4_dnl
+m4_ifelse(DT_BASH, `yes', `$(HOME_DIR)/.bashrc') m4_dnl
+m4_ifelse(DT_TMUX, `yes', `$(HOME_DIR)/.tmux.conf') m4_dnl
+m4_ifelse(DT_QTILE, `yes', `$(HOME_DIR)/.config/qtile/config.py') m4_dnl
+m4_ifelse(DT_SWAY, `yes', `$(HOME_DIR)/.config/sway/config') m4_dnl
+m4_ifelse(DT_SWAY, `yes', `$(HOME_DIR)/.config/sway/hid') m4_dnl
+m4_ifelse(DT_SWAY, `yes', `$(HOME_DIR)/.config/sway/autostart') m4_dnl
+m4_ifelse(DT_NEOVIM, `yes', `$(HOME_DIR)/.config/nvim') m4_dnl
+
+
+$(M4_SYSFILE): $(CONFIG_FILE)
+ @echo "Generating $(M4_SYSFILE) from $(CONFIG_FILE)"
+ @> $(M4_SYSFILE)
+ @while IFS='=' read -r key value; do \
+ echo "`m4_define'(\``$$key'', \``$$value'')`m4_dnl'" >> $(M4_SYSFILE); \
+ done < $(CONFIG_FILE)
+
+m4_ifelse(DT_OTHER_SYMLINKS, `yes', `m4_dnl
$(HOME_DIR)/.vimrc: Common/vimrc
$(call create_dotfile_symlink,Common/vimrc,.vimrc)
@@ -78,23 +86,23 @@ $(HOME_DIR)/.config/sxhkd: linux/sxhkd
$(HOME_DIR)/.config/bspwm: linux/bspwm
$(call create_dotfile_symlink,linux/bspwm,.config/bspwm)
-')
-m4_ifdef(`DT_HOMEBIN', `m4_dnl
+')m4_dnl
+m4_ifelse(DT_HOMEBIN, `yes', `m4_dnl
$(HOME_DIR)/bin: bin
$(call create_dotfile_symlink,bin,bin)
-')
-m4_ifdef(`DT_BASH', `m4_dnl
+')m4_dnl
+m4_ifelse(DT_BASH, `yes', `m4_dnl
Common/bashrc: Common/bashrc.m4 \
${M4_COMMON_DEPS}
$(call M4_EXEC)
$(HOME_DIR)/.bashrc: Common/bashrc
$(call create_dotfile_symlink,Common/bashrc,.bashrc)
-')
-m4_ifdef(`DT_ZSH', `m4_dnl
+')m4_dnl
+m4_ifelse(DT_ZSH, `yes', `m4_dnl
Common/zshrc: Common/zshrc.m4 \
${M4_COMMON_DEPS}
$(call M4_EXEC)
@@ -102,13 +110,13 @@ Common/zshrc: Common/zshrc.m4 \
$(HOME_DIR)/.zshrc: Common/zshrc
$(call create_dotfile_symlink,Common/zshrc,.zshrc)
-m4_ifdef(`DT_ZSH', `m4_dnl
+m4_ifelse(DT_ZSH, `yes', `m4_dnl
$(HOME_DIR)/.p10k.zsh: Common/vim
$(call create_dotfile_symlink,Common/p10k.zsh,.p10k.zsh)
-')
-')
-m4_ifdef(`DT_TMUX', `m4_dnl
+')m4_dnl
+')m4_dnl
+m4_ifelse(DT_TMUX, `yes', `m4_dnl
linux/tmux.conf: linux/tmux.conf.m4 \
${M4_COMMON_DEPS}
$(call M4_EXEC)
@@ -116,9 +124,9 @@ linux/tmux.conf: linux/tmux.conf.m4 \
$(HOME_DIR)/.tmux.conf: linux/tmux.conf
$(call create_dotfile_symlink,linux/tmux.conf,.tmux.conf)
-')
-m4_ifdef(`DT_SWAY', `m4_dnl
+')m4_dnl
+m4_ifelse(DT_SWAY, `yes', `m4_dnl
linux/sway/%: linux/sway/%.m4 \
${M4_COMMON_DEPS}
$(call M4_EXEC)
@@ -127,8 +135,7 @@ $(HOME_DIR)/.config/sway/%: linux/sway/config linux/sway/hid linux/sway/autostar
$(call create_symlink,${SRC_DIR}/linux/sway,$(HOME_DIR)/.config/sway)
')m4_dnl
-
-m4_ifdef(`DT_QTILE', `m4_dnl
+m4_ifelse(DT_QTILE, `yes', `m4_dnl
linux/qtile/config/config.py: linux/qtile/config/config.py.m4 \
linux/qtile/config/screen.m4.py \
linux/qtile/config/group.m4.py \
@@ -141,9 +148,9 @@ $(HOME_DIR)/.config/qtile/config.py: linux/qtile/config/config.py
$(call create_symlink,$(SRC_DIR)/linux/qtile/config/,$(HOME_DIR)/.config/qtile/)
sudo cp linux/qtile/qtile.desktop /usr/share/xsessions/qtile.desktop
sudo cp linux/qtile/qtile-wayland.desktop /usr/share/wayland-sessions/qtile-wayland.desktop
-')m4_dnl
-m4_ifdef(`DT_NEOVIM', `m4_dnl
+')m4_dnl
+m4_ifelse(DT_NEOVIM, `yes', `m4_dnl
/usr/local/bin/nvim:
git clone https://github.com/neovim/neovim /tmp/neovim
git -C /tmp/neovim checkout tags/v0.9.5
@@ -151,20 +158,21 @@ m4_ifdef(`DT_NEOVIM', `m4_dnl
$(HOME_DIR)/.config/nvim/: /usr/local/bin/nvim
$(call create_symlink,$(SRC_DIR)/Common/nvim,$(HOME_DIR)/.config/nvim)
+
')m4_dnl
-# Genereal package manager stuff
-m4_ifelse(DISTRO, `debian', m4_dnl
+# General package manager stuff
+m4_ifelse(DT_DISTRO, `debian', m4_dnl
DPKG_DEPENDENCIES := m4_dnl
-m4_ifdef(`DT_TOOLS', `highlight atool w3m mediainfo curl zsh vim git python3-pip zsh tmux nodejs catimg ripgrep silversearcher-ag',) m4_dnl
-m4_ifdef(`DT_GREETD_TUIGREET', `greetd',) m4_dnl
-m4_ifdef(`DT_TLP', `tlp',) m4_dnl
+m4_ifelse(DT_TOOLS, `yes', `highlight atool w3m mediainfo curl zsh vim git python3-pip zsh tmux nodejs catimg ripgrep silversearcher-ag',) m4_dnl
+m4_ifelse(DT_GREETD_TUIGREET', `yes', `greetd',) m4_dnl
+m4_ifelse(DT_TLP, `yes', `tlp',) m4_dnl
m4_dnl
-m4_ifdef(`DT_SWAY', `sway swayidle physlock alacritty blueman network-manager-gnome wob wlogout wofi brightnessctl clipman xwayland seahorse fcitx5',) m4_dnl
+m4_ifelse(DT_SWAY, `yes', `sway swayidle physlock alacritty blueman network-manager-gnome wob wlogout wofi brightnessctl clipman xwayland seahorse fcitx5',) m4_dnl
m4_dnl
-m4_ifdef(`DT_QTILE', `python3-cffi python3-cairocffi pango pango-devel python3-dbus-next',) m4_dnl qtile core
-m4_ifdef(`DT_QTILE', `python3_xcffib xsecurelock',) m4_dnl qtile x11
-m4_ifdef(`DT_QTILE', `wlroots python3-wlroots python3-pywayland python3-xkbcommon xwayland',) m4_dnl qtile wayland
+m4_ifelse(DT_QTILE, `yes', `python3-cffi python3-cairocffi pango pango-devel python3-dbus-next',) m4_dnl qtile core
+m4_ifelse(DT_QTILE, `yes', `python3_xcffib xsecurelock',) m4_dnl qtile x11
+m4_ifelse(DT_QTILE, `yes', `wlroots python3-wlroots python3-pywayland python3-xkbcommon xwayland',) m4_dnl qtile wayland
install_packages:
diff --git a/configure b/configure
index 154fc76..4a2d17e 100755
--- a/configure
+++ b/configure
@@ -1,165 +1,210 @@
#!/bin/bash
-set -o pipefail
-M4_DEF_FILE="system.m4"
-
-if [ -f "${M4_DEF_FILE}" ]; then
+set -uo pipefail
+CONFIG_FILE="config"
+
+function generate_makefile {
+ rm Makefile
+ m4 -P Makefile.m4 > Makefile
+ rm system.m4
+ make system.m4
+ echo 'm4_include(`system.m4'"'"')m4_dnl' | cat - Makefile.m4 | m4 -P > Makefile
+}
+
+if [ -f "${CONFIG_FILE}" ]; then
dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Overwrite settings?" \
--defaultno \
--yesno "A system.m4 file already exists, do you want to make that file over again? If you press No, the Makefile will be processed again based on the current system.m4 file." 0 0
if [ "$?" -eq 1 ]; then
- m4 -P Makefile.m4 > Makefile
+ generate_makefile
exit 0
fi
+ source ${CONFIG_FILE}
fi
-HOME_DIRECTORY=$(dialog \
+: "${DT_DOTFILES_DIR:=$(pwd)}"
+: "${DT_HOME_DIRECTORY:=${HOME:-}}"
+: "${DT_SHELL:=${SHELL:-}}"
+: "${DT_EDITOR:=${EDITOR:-}}"
+: "${DT_SYSID:=1}"
+: "${DT_DISTRO:=}"
+: "${DT_OS:=linux}"
+: "${DT_DOTFILES_TYPE:=local}"
+: "${DT_GIT_USER:=${DT_GIT_AUTHOR_NAME:-}}"
+: "${DT_GIT_EMAIL:=${DT_GIT_AUTHOR_EMAIL:-}}"
+: "${DT_TOOLS:=yes}"
+: "${DT_OTHER_SYMLINKS:=yes}"
+: "${DT_NEOVIM:=yes}"
+: "${DT_ZSH:=no}"
+: "${DT_TLP:=no}"
+: "${DT_AUTORANDR:=no}"
+: "${DT_GREETD_TUIGREET:=no}"
+: "${DT_POWERLINE_P10K:=no}"
+: "${DT_SWAY:=no}"
+: "${DT_QTILE:=no}"
+: "${DT_BASH:=yes}"
+: "${DT_HOMEBIN:=no}"
+: "${DT_TMUX:=yes}"
+
+radiolist_on() {
+ local value="$1"
+ if [[ "$value" == "$2" ]]; then
+ echo "on"
+ else
+ echo "off"
+ fi
+}
+
+checklist_on() {
+ local value="$1"
+ if [[ "$value" == "yes" ]]; then
+ echo "on"
+ else
+ echo "off"
+ fi
+}
+
+DT_HOME_DIRECTORY=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--inputbox "Home directory" \
- 0 0 "${HOME}" \
+ 0 0 "${DT_HOME_DIRECTORY}" \
3>&1 1>&2 2>&3 3>&-)
+if [ "$?" -eq 1 ]; then exit 0; fi
-DEFAULT_SHELL=$(dialog \
+DT_SHELL=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--inputbox "Default shell" \
- 0 0 "${SHELL}" \
+ 0 0 "${DT_SHELL}" \
3>&1 1>&2 2>&3 3>&-)
+if [ "$?" -eq 1 ]; then exit 0; fi
-DEFAULT_EDITOR=$(dialog \
+DT_EDITOR=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--inputbox "Default editor" \
- 0 0 "nvim" \
+ 0 0 "${DT_EDITOR}" \
3>&1 1>&2 2>&3 3>&-)
+if [ "$?" -eq 1 ]; then exit 0; fi
-SYSID=$(dialog \
+DT_SYSID=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--inputbox "System id (magical number)" \
- 0 0 "1" \
+ 0 0 "${DT_SYSID}" \
3>&1 1>&2 2>&3 3>&-)
+if [ "$?" -eq 1 ]; then exit 0; fi
SYSTEM_TYPE=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--radiolist "System type" \
0 0 0 \
- 0 "Local" on \
- 1 "Remote" off \
+ 0 "Local" $(radiolist_on "${DT_DOTFILES_TYPE}" "local") \
+ 1 "Remote" $(radiolist_on "${DT_DOTFILES_TYPE}" "remote") \
3>&1 1>&2 2>&3 3>&-)
+if [ "$?" -eq 1 ]; then exit 0; fi
+
+case $SYSTEM_TYPE in
+ 0) DT_DOTFILES_TYPE=local;;
+ 1) DT_DOTFILES_TYPE=remote;;
+esac
DISTRO=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--radiolist "Distro" \
0 0 0 \
- 0 "Debian" on \
- 1 "Fedora" off \
+ 0 "Debian" $(radiolist_on "${DT_DISTRO}" "debian") \
+ 1 "Fedora" $(radiolist_on "${DT_DISTRO}" "fedora") \
3>&1 1>&2 2>&3 3>&-)
+if [ "$?" -eq 1 ]; then exit 0; fi
+
+case $DISTRO in
+ 0) DT_DISTRO=debian;;
+ 1) DT_DISTRO=fedora;;
+esac
GIT_VALUES=$(dialog \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
--form "Git settings" \
0 50 0 \
- "Username:" 1 1 "$GIT_AUTHOR_NAME" 1 10 255 0 \
+ "Username:" 1 1 "$GIT_AUTHOR_NAME" 1 10 255 0 \
"Email:" 2 1 "$GIT_AUTHOR_EMAIL" 2 10 255 0 \
3>&1 1>&2 2>&3 3>&-)
GIT_VALUES=($GIT_VALUES)
+if [ "$?" -eq 1 ]; then exit 0; fi
+
+DT_GIT_USER=${GIT_VALUES[0]}
+DT_GIT_EMAIL=${GIT_VALUES[1]}
FEATURES="$(dialog --stdout \
+ --keep-tite \
--backtitle "Dotfile configuration" \
--title "Configure" \
- --checklist "Change dotfile features:" 0 0 0 \
- 1 "General tools (highligt, mediainfo, git, ripgrep...)" on \
- 2 "Other dotfile symlinks (Not for specific features below)" on \
- 3 "neovim" on \
- 4 "ZSH and Oh-My-Zsh" off \
- 5 "tlp" off \
- 6 "autorandr" off \
- 7 "greetd and tuigreet" off \
- 8 "Powerline and P10K" off \
- 9 "Sway" off \
- 10 "QTile" off \
- 11 "Bash" on \
- 12 "home folder bin dir" off \
- 13 "tmux" on)"
-
-
-# Write all to file
-echo "m4_define(\`DOTFILES_DIR', \`$(pwd)')m4_dnl" > ${M4_DEF_FILE}
-echo "m4_define(\`HOME_DIRECTORY', \`${HOME_DIRECTORY}')m4_dnl" >> ${M4_DEF_FILE}
-echo "m4_define(\`DEFAULT_SHELL', \`${DEFAULT_SHELL}')m4_dnl" >> ${M4_DEF_FILE}
-echo "m4_define(\`DEFAULT_EDITOR', \`${DEFAULT_EDITOR}')m4_dnl" >> ${M4_DEF_FILE}
-echo "m4_define(\`SYSID', \`${SYSID}')m4_dnl" >> ${M4_DEF_FILE}
-
-case $SYSTEM_TYPE in
- 0)
- echo "m4_define(\`DOTFILES_TYPE', \`local')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 1)
- echo "m4_define(\`DOTFILES_TYPE', \`remote')m4_dnl" >> ${M4_DEF_FILE}
- ;;
-esac
-
-case $DISTRO in
- 0)
- echo "m4_define(\`DISTRO', \`debian')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 1)
- echo "m4_define(\`DISTRO', \`fedora')m4_dnl" >> ${M4_DEF_FILE}
- ;;
-esac
-
-echo "m4_define(\`GIT_USER', \`${GIT_VALUES[0]}')m4_dnl" >> ${M4_DEF_FILE}
-echo "m4_define(\`GIT_EMAIL', \`${GIT_VALUES[1]}')m4_dnl" >> ${M4_DEF_FILE}
+ --checklist "Change dotfile features (be aware that turning them off is not really possible):" 0 0 0 \
+ 1 "General tools (highligt, mediainfo, git, ripgrep...)" $(checklist_on "${DT_TOOLS}") \
+ 2 "Other dotfile symlinks (Not for specific features below)" $(checklist_on "${DT_OTHER_SYMLINKS}") \
+ 3 "neovim" $(checklist_on "${DT_NEOVIM}") \
+ 4 "ZSH and Oh-My-Zsh" $(checklist_on "${DT_ZSH}") \
+ 5 "tlp" $(checklist_on "${DT_TLP}") \
+ 6 "autorandr" $(checklist_on "${DT_AUTORANDR}") \
+ 7 "greetd and tuigreet" $(checklist_on "${DT_GREETD_TUIGREET}") \
+ 8 "Powerline and P10K" $(checklist_on "${DT_POWERLINE_P10K}") \
+ 9 "Sway" $(checklist_on "${DT_SWAY}") \
+ 10 "QTile" $(checklist_on "${DT_QTILE}") \
+ 11 "Bash" $(checklist_on "${DT_BASH}") \
+ 12 "home folder bin dir" $(checklist_on "${DT_HOMEBIN}") \
+ 13 "tmux" $(checklist_on "${DT_NEOVIM}"))"
+if [ "$?" -eq 1 ]; then exit 0; fi
+
+DT_TOOLS=no
+DT_OTHER_SYMLINKS=no
+DT_NEOVIM=no
+DT_ZSH=no
+DT_TLP=no
+DT_AUTORANDR=no
+DT_GREETD_TUIGREET=no
+DT_POWERLINE_P10K=no
+DT_SWAY=no
+DT_QTILE=no
+DT_BASH=no
+DT_HOMEBIN=no
+DT_TMUX=no
for choice in ${FEATURES}; do
case $choice in
- 1)
- echo "m4_define(\`DT_TOOLS', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 2)
- echo "m4_define(\`DT_OTHER_SYMLINKS', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 3)
- echo "m4_define(\`DT_NEOVIM', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 4)
- echo "m4_define(\`DT_ZSH', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 5)
- echo "m4_define(\`DT_TLP', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 6)
- echo "m4_define(\`DT_AUTORANDR', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 7)
- echo "m4_define(\`DT_GREETD_TUIGREET', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 8)
- echo "m4_define(\`DT_POWERLINE_P10K', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 9)
- echo "m4_define(\`DT_SWAY', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 10)
- echo "m4_define(\`DT_QTILE', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 11)
- echo "m4_define(\`DT_BASH', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 12)
- echo "m4_define(\`DT_HOMEBIN', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
- 13)
- echo "m4_define(\`DT_TMUX', \`1')m4_dnl" >> ${M4_DEF_FILE}
- ;;
+ 1) DT_TOOLS=yes;;
+ 2) DT_OTHER_SYMLINKS=yes;;
+ 3) DT_NEOVIM=yes;;
+ 4) DT_ZSH=yes;;
+ 5) DT_TLP=yes;;
+ 6) DT_AUTORANDR=yes;;
+ 7) DT_GREETD_TUIGREET=yes;;
+ 8) DT_POWERLINE_P10K=yes;;
+ 9) DT_SWAY=yes;;
+ 10) DT_QTILE=yes;;
+ 11) DT_BASH=yes;;
+ 12) DT_HOMEBIN=yes;;
+ 13) DT_TMUX=yes;;
esac
done
-m4 -P Makefile.m4 > Makefile
+# write config to file
+printf "" > "${CONFIG_FILE}"
+set | grep '^DT_' | awk -F '=' '{print $1"="$2""}' >> "${CONFIG_FILE}"
+
+# generate makefile
+generate_makefile
diff --git a/linux/sway/autostart.m4 b/linux/sway/autostart.m4
index 68045e2..828fe06 100644
--- a/linux/sway/autostart.m4
+++ b/linux/sway/autostart.m4
@@ -1,10 +1,9 @@
-m4_include(`system.m4')m4_dnl
# Fix GTK+ application slow start
exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
# screen locking
m4_changequote({, })m4_dnl
-m4_ifelse(SYSID, {1}, {m4_dnl
+m4_ifelse(DT_SYSID, {1}, {m4_dnl
#exec swayidle -w \
# timeout 300 'swaymsg "output * dpms off"' \
# timeout 3600 physlock \
diff --git a/linux/sway/config.m4 b/linux/sway/config.m4
index 60f9d06..cba1ae2 100644
--- a/linux/sway/config.m4
+++ b/linux/sway/config.m4
@@ -1,4 +1,3 @@
-m4_include(`system.m4')m4_dnl
include autostart
include hid
@@ -48,7 +47,7 @@ bindsym $Mod+Return exec alacritty
bindsym $Mod+w exec firefox
bindsym $Mod+f exec thunar
bindsym $Mod+c exec swaync-client -t
-bindsym Mod1+l exec m4_ifelse(SYSID, `2', `nwg-lock', physlock)
+bindsym Mod1+l exec m4_ifelse(DT_SYSID, `2', `nwg-lock', physlock)
bindsym $Mod+d exec wofi --show=drun
# Exit menu
diff --git a/linux/sway/hid.m4 b/linux/sway/hid.m4
index 762be21..b420f94 100644
--- a/linux/sway/hid.m4
+++ b/linux/sway/hid.m4
@@ -1,7 +1,5 @@
-m4_include(`system.m4')m4_dnl
-
output eDP-1 {
- scale m4_ifelse(SYSID, `1', `1.4', `1.0')
+ scale m4_ifelse(DT_SYSID, `1', `1.4', `1.0')
}
input "type:keyboard" {
diff --git a/linux/tmux.conf.m4 b/linux/tmux.conf.m4
index 90df21a..f88153a 100644
--- a/linux/tmux.conf.m4
+++ b/linux/tmux.conf.m4
@@ -1,4 +1,3 @@
-m4_include(`system.m4')m4_dnl
# -- general -------------------------------------------------------------------
#set -g default-terminal "screen-256color"
#set -g default-terminal "screen-256color-bce"
@@ -23,7 +22,7 @@ set -g display-time 1000 # slightly longer status messages display time
set -g status-interval 10 # redraw status linebg every 10 seconds
set-option -g history-limit 5000
-set-option -g default-shell DEFAULT_SHELL
+set-option -g default-shell DT_SHELL
# -- navigation ----------------------------------------------------------------
@@ -31,7 +30,7 @@ set-option -g default-shell DEFAULT_SHELL
setw -g monitor-activity on
set -g visual-activity off
-m4_ifelse(DOTFILES_TYPE, `local', `m4_dnl
+m4_ifelse(DT_DOTFILES_TYPE, `local', `m4_dnl
unbind C-b
set -g prefix C-a
bind C-a send-prefix
@@ -63,7 +62,7 @@ set -g mouse on
bind-key = set-window-option synchronize-panes
# -- macros --------------------------------------------------------------------
-bind-key s send-keys "GIT_USER <GIT_EMAIL>"
+bind-key s send-keys "DT_GIT_USER <DT_GIT_EMAIL>"
# -- vim-tmux-navigator --------------------------------------------------------
# Smart pane switching with awareness of Vim splits.
@@ -95,7 +94,7 @@ bind -n M-C-w display-popup -E "nvim -c VimwikiMakeDiaryNote -c Calendar -c 'win
bind -n M-C-i display-popup -E "nvim -c 'e ~/Nextcloud/wiki/I45/Hendelser.md' -c 'call append(1, strftime(\"- **%d.%m.%Y (%T)** - **\"))' -c 'call append(2, \"\")' -c 'execute \"normal! 2GA\"'"
# -- Theme --------------------------------------------------------------------
-m4_ifelse(DOTFILES_TYPE, `local', `m4_dnl
+m4_ifelse(DT_DOTFILES_TYPE, `local', `m4_dnl
set -g status-justify left
set -g status-interval 2
set -g status-position bottom
@@ -118,7 +117,7 @@ setw -g window-status-bell-style "bg=colour23,fg=colour15"
#setw -g window-status-activity-style "bg=colour23,fg=colour15"
setw -g window-status-activity-style "bg=colour243,fg=colour15"
')m4_dnl
-m4_ifelse(DOTFILES_TYPE, `remote', `m4_dnl
+m4_ifelse(DT_DOTFILES_TYPE, `remote', `m4_dnl
set -g status-bg "purple"
set -g status-fg "white"
')m4_dnl