diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Common/bashrc.m4 | 8 | ||||
-rw-r--r-- | Common/zshrc.m4 | 9 | ||||
-rw-r--r-- | Makefile.m4 | 116 | ||||
-rwxr-xr-x | configure | 247 | ||||
-rw-r--r-- | linux/sway/autostart.m4 | 3 | ||||
-rw-r--r-- | linux/sway/config.m4 | 3 | ||||
-rw-r--r-- | linux/sway/hid.m4 | 4 | ||||
-rw-r--r-- | linux/tmux.conf.m4 | 11 |
9 files changed, 225 insertions, 177 deletions
@@ -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: @@ -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 |