🔧 Where my dotfiles lives in harmony and peace, most of the time

✨ Refactor setup scripts

Changed files
+88 -196
code
codex
desktop
fonts
hypr
system
terminal
+5 -30
Makefile
··· 15 15 16 16 .PHONY: fonts 17 17 fonts: 18 - @ $(DOTFILES)/fonts/packages.sh 18 + @ $(DOTFILES)/fonts/setup.sh 19 19 20 20 .PHONY: code 21 21 code: 22 - @ $(DOTFILES)/code/packages.sh 23 - @ mkdir -p "$(HOME)/.config/Code/User/" 24 - @ ln -snf $(DOTFILES)/code/settings.json "$(HOME)/.config/Code/User/settings.json" 25 - @ ln -snf $(DOTFILES)/code/keybindings.json "$(HOME)/.config/Code/User/keybindings.json" 26 - @ ln -snf $(DOTFILES)/code/tasks.json "$(HOME)/.config/Code/User/tasks.json" 27 - @ ln -snf $(DOTFILES)/code/code-flags.conf $(HOME)/.config/code-flags.conf 22 + @ $(DOTFILES)/code/setup.sh 28 23 29 24 .PHONY: claude 30 25 claude: ··· 37 32 38 33 .PHONY: codex 39 34 codex: 40 - @ mkdir -p "$(HOME)/.codex/" 41 - @ ln -sf $(DOTFILES)/codex/config.toml "$(HOME)/.codex/config.toml" 42 - @ ln -sf $(DOTFILES)/codex/AGENTS.md "$(HOME)/.codex/AGENTS.md" 43 - @ ln -sfT $(DOTFILES)/codex/prompts "$(HOME)/.codex/prompts" 35 + @ $(DOTFILES)/codex/setup.sh 44 36 45 37 .PHONY: cursor 46 38 cursor: ··· 59 51 60 52 .PHONY: terminal 61 53 terminal: 62 - @ $(DOTFILES)/terminal/packages.sh 54 + @ $(DOTFILES)/terminal/setup.sh 63 55 64 56 .PHONY: hypr 65 57 hypr: 66 - @ mkdir -p "$(HOME)/.config/hypr" "$(HOME)/.config/waybar" "$(HOME)/.config/mako" "$(HOME)/.config/fuzzel" 67 58 @ ${DOTFILES}/hypr/setup.sh 68 - @ ln -sf $(DOTFILES)/hypr/wallpaper.png $(HOME)/Pictures/wallpaper.png 69 - @ ln -sf $(DOTFILES)/hypr/frappe.conf $(HOME)/.config/hypr/frappe.conf 70 - @ ln -sf $(DOTFILES)/hypr/hyprland.conf $(HOME)/.config/hypr/hyprland.conf 71 - @ ln -sf $(DOTFILES)/hypr/hyprpaper.conf $(HOME)/.config/hypr/hyprpaper.conf 72 - @ ln -sf $(DOTFILES)/hypr/hypridle.conf $(HOME)/.config/hypr/hypridle.conf 73 - @ ln -sf $(DOTFILES)/hypr/hyprlock.conf $(HOME)/.config/hypr/hyprlock.conf 74 - @ ln -sf $(DOTFILES)/hypr/xdph.conf $(HOME)/.config/hypr/xdph.conf 75 - @ ln -sf $(DOTFILES)/hypr/waybar/config.jsonc $(HOME)/.config/waybar/config 76 - @ ln -sf $(DOTFILES)/hypr/waybar/style.css $(HOME)/.config/waybar/style.css 77 - @ ln -sf $(DOTFILES)/hypr/waybar/frappe.css $(HOME)/.config/waybar/frappe.css 78 - @ ln -sf $(DOTFILES)/hypr/mako/config $(HOME)/.config/mako/config 79 - @ ln -sf $(DOTFILES)/hypr/fuzzel/fuzzel.ini $(HOME)/.config/fuzzel/fuzzel.ini 80 59 81 60 .PHONY: desktop 82 61 desktop: 83 - @ ${DOTFILES}/desktop/packages.sh 84 - @ ln -sf $(DOTFILES)/desktop/brave-flags.conf $(HOME)/.config/brave-flags.conf 85 - @ ln -sf $(DOTFILES)/desktop/electron-flags.conf $(HOME)/.config/electron-flags.conf 62 + @ ${DOTFILES}/desktop/setup.sh 86 63 87 64 .PHONY: system 88 65 system: 89 - @ sudo rm -f /etc/sysctl.d/99-swappiness.conf 90 - @ sudo cp $(DOTFILES)/system/99-swappiness.conf /etc/sysctl.d/99-swappiness.conf 91 66 @ $(DOTFILES)/system/setup.sh 92 67 93 68 .PHONY: maintenance
-4
code/packages.sh
··· 1 - #!/usr/bin/env bash 2 - set -euo pipefail 3 - 4 - paru -S --needed --noconfirm visual-studio-code-bin
+15
code/setup.sh
··· 1 + #!/usr/bin/env bash 2 + set -euo pipefail 3 + 4 + DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 + CODE_CONFIG_DIR="${HOME}/.config/Code/User" 6 + CODE_FLAGS_PATH="${HOME}/.config/code-flags.conf" 7 + 8 + paru -S --needed --noconfirm visual-studio-code-bin 9 + 10 + mkdir -p "${CODE_CONFIG_DIR}" 11 + 12 + ln -snf "${DOTFILES}/code/settings.json" "${CODE_CONFIG_DIR}/settings.json" 13 + ln -snf "${DOTFILES}/code/keybindings.json" "${CODE_CONFIG_DIR}/keybindings.json" 14 + ln -snf "${DOTFILES}/code/tasks.json" "${CODE_CONFIG_DIR}/tasks.json" 15 + ln -snf "${DOTFILES}/code/code-flags.conf" "${CODE_FLAGS_PATH}"
+13
codex/setup.sh
··· 1 + #!/usr/bin/env bash 2 + set -euo pipefail 3 + 4 + DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 + CODEX_DIR="${HOME}/.codex" 6 + 7 + paru -S --needed --noconfirm openai-codex-autoup-bin 8 + 9 + mkdir -p "${CODEX_DIR}" 10 + 11 + ln -sf "${DOTFILES}/codex/config.toml" "${CODEX_DIR}/config.toml" 12 + ln -sf "${DOTFILES}/codex/AGENTS.md" "${CODEX_DIR}/AGENTS.md" 13 + ln -sfT "${DOTFILES}/codex/prompts" "${CODEX_DIR}/prompts"
-19
desktop/packages.sh
··· 1 - #!/usr/bin/env bash 2 - set -euo pipefail 3 - 4 - packages=( 5 - brave-bin 6 - file-roller 7 - gvfs 8 - gvfs-mtp 9 - mpv 10 - ntfs-3g 11 - thunar 12 - tumbler 13 - thunar-archive-plugin 14 - catppuccin-gtk-theme-frappe 15 - papirus-icon-theme 16 - nwg-look 17 - ) 18 - 19 - paru -S --needed --noconfirm "${packages[@]}"
+27
desktop/setup.sh
··· 1 + #!/usr/bin/env bash 2 + set -euo pipefail 3 + 4 + DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 + CONFIG_DIR="${HOME}/.config" 6 + 7 + packages=( 8 + brave-bin 9 + file-roller 10 + gvfs 11 + gvfs-mtp 12 + mpv 13 + ntfs-3g 14 + thunar 15 + tumbler 16 + thunar-archive-plugin 17 + catppuccin-gtk-theme-frappe 18 + papirus-icon-theme 19 + nwg-look 20 + ) 21 + 22 + paru -S --needed --noconfirm "${packages[@]}" 23 + 24 + mkdir -p "${CONFIG_DIR}" 25 + 26 + ln -sf "${DOTFILES}/desktop/brave-flags.conf" "${CONFIG_DIR}/brave-flags.conf" 27 + ln -sf "${DOTFILES}/desktop/electron-flags.conf" "${CONFIG_DIR}/electron-flags.conf"
-142
fonts/local.conf
··· 1 - <?xml version='1.0'?> 2 - <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> 3 - <fontconfig> 4 - 5 - <!-- Font rendering settings --> 6 - <match target="font"> 7 - <edit mode="assign" name="antialias"> 8 - <bool>true</bool> 9 - </edit> 10 - <edit mode="assign" name="hinting"> 11 - <bool>true</bool> 12 - </edit> 13 - <edit mode="assign" name="hintstyle"> 14 - <const>hintslight</const> 15 - </edit> 16 - <edit mode="assign" name="rgba"> 17 - <const>rgb</const> 18 - </edit> 19 - <edit mode="assign" name="lcdfilter"> 20 - <const>lcddefault</const> 21 - </edit> 22 - <edit mode="assign" name="embeddedbitmap"> 23 - <bool>false</bool> 24 - </edit> 25 - </match> 26 - 27 - <!-- Default font families --> 28 - <alias> 29 - <family>sans-serif</family> 30 - <prefer> 31 - <family>Inter</family> 32 - <family>Noto Sans</family> 33 - <family>DejaVu Sans</family> 34 - <family>Liberation Sans</family> 35 - </prefer> 36 - </alias> 37 - 38 - <alias> 39 - <family>serif</family> 40 - <prefer> 41 - <family>Noto Serif</family> 42 - <family>DejaVu Serif</family> 43 - <family>Liberation Serif</family> 44 - </prefer> 45 - </alias> 46 - 47 - <alias> 48 - <family>monospace</family> 49 - <prefer> 50 - <family>JetBrainsMono Nerd Font</family> 51 - <family>JetBrainsMono NF</family> 52 - <family>Fira Code</family> 53 - <family>DejaVu Sans Mono</family> 54 - <family>Liberation Mono</family> 55 - </prefer> 56 - </alias> 57 - 58 - <!-- Emoji support --> 59 - <alias> 60 - <family>emoji</family> 61 - <prefer> 62 - <family>Noto Color Emoji</family> 63 - <family>Twemoji</family> 64 - </prefer> 65 - </alias> 66 - 67 - <!-- Add emoji to all font families --> 68 - <match target="pattern"> 69 - <test qual="any" name="family"> 70 - <string>sans-serif</string> 71 - </test> 72 - <edit name="family" mode="append" binding="weak"> 73 - <string>Noto Color Emoji</string> 74 - </edit> 75 - </match> 76 - 77 - <match target="pattern"> 78 - <test qual="any" name="family"> 79 - <string>serif</string> 80 - </test> 81 - <edit name="family" mode="append" binding="weak"> 82 - <string>Noto Color Emoji</string> 83 - </edit> 84 - </match> 85 - 86 - <match target="pattern"> 87 - <test qual="any" name="family"> 88 - <string>monospace</string> 89 - </test> 90 - <edit name="family" mode="append" binding="weak"> 91 - <string>Noto Color Emoji</string> 92 - </edit> 93 - </match> 94 - 95 - <!-- Prefer color emoji --> 96 - <match target="font"> 97 - <test name="family" compare="contains"> 98 - <string>emoji</string> 99 - </test> 100 - <edit name="embeddedbitmap" mode="assign"> 101 - <bool>true</bool> 102 - </edit> 103 - </match> 104 - 105 - <!-- Font substitutions for common fonts --> 106 - <match target="pattern"> 107 - <test qual="any" name="family"> 108 - <string>Arial</string> 109 - </test> 110 - <edit name="family" mode="assign" binding="same"> 111 - <string>sans-serif</string> 112 - </edit> 113 - </match> 114 - 115 - <match target="pattern"> 116 - <test qual="any" name="family"> 117 - <string>Helvetica</string> 118 - </test> 119 - <edit name="family" mode="assign" binding="same"> 120 - <string>sans-serif</string> 121 - </edit> 122 - </match> 123 - 124 - <match target="pattern"> 125 - <test qual="any" name="family"> 126 - <string>Times New Roman</string> 127 - </test> 128 - <edit name="family" mode="assign" binding="same"> 129 - <string>serif</string> 130 - </edit> 131 - </match> 132 - 133 - <match target="pattern"> 134 - <test qual="any" name="family"> 135 - <string>Courier New</string> 136 - </test> 137 - <edit name="family" mode="assign" binding="same"> 138 - <string>monospace</string> 139 - </edit> 140 - </match> 141 - 142 - </fontconfig>
fonts/packages.sh fonts/setup.sh
+22
hypr/setup.sh
··· 1 1 #!/usr/bin/env bash 2 2 set -euo pipefail 3 3 4 + DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 + HYPR_CONFIG_DIR="${HOME}/.config/hypr" 6 + WAYBAR_CONFIG_DIR="${HOME}/.config/waybar" 7 + MAKO_CONFIG_DIR="${HOME}/.config/mako" 8 + FUZZEL_CONFIG_DIR="${HOME}/.config/fuzzel" 9 + PICTURES_DIR="${HOME}/Pictures" 10 + 4 11 packages=( 5 12 bemoji 6 13 cliphist ··· 36 43 if ! systemctl --user is-active --quiet hyprpolkitagent.service; then 37 44 systemctl --user enable --now hyprpolkitagent.service 38 45 fi 46 + 47 + mkdir -p "${HYPR_CONFIG_DIR}" "${WAYBAR_CONFIG_DIR}" "${MAKO_CONFIG_DIR}" "${FUZZEL_CONFIG_DIR}" "${PICTURES_DIR}" 48 + 49 + ln -sf "${DOTFILES}/hypr/wallpaper.png" "${PICTURES_DIR}/wallpaper.png" 50 + ln -sf "${DOTFILES}/hypr/frappe.conf" "${HYPR_CONFIG_DIR}/frappe.conf" 51 + ln -sf "${DOTFILES}/hypr/hyprland.conf" "${HYPR_CONFIG_DIR}/hyprland.conf" 52 + ln -sf "${DOTFILES}/hypr/hyprpaper.conf" "${HYPR_CONFIG_DIR}/hyprpaper.conf" 53 + ln -sf "${DOTFILES}/hypr/hypridle.conf" "${HYPR_CONFIG_DIR}/hypridle.conf" 54 + ln -sf "${DOTFILES}/hypr/hyprlock.conf" "${HYPR_CONFIG_DIR}/hyprlock.conf" 55 + ln -sf "${DOTFILES}/hypr/xdph.conf" "${HYPR_CONFIG_DIR}/xdph.conf" 56 + ln -sf "${DOTFILES}/hypr/waybar/config.jsonc" "${WAYBAR_CONFIG_DIR}/config" 57 + ln -sf "${DOTFILES}/hypr/waybar/style.css" "${WAYBAR_CONFIG_DIR}/style.css" 58 + ln -sf "${DOTFILES}/hypr/waybar/frappe.css" "${WAYBAR_CONFIG_DIR}/frappe.css" 59 + ln -sf "${DOTFILES}/hypr/mako/config" "${MAKO_CONFIG_DIR}/config" 60 + ln -sf "${DOTFILES}/hypr/fuzzel/fuzzel.ini" "${FUZZEL_CONFIG_DIR}/fuzzel.ini"
+6 -1
system/setup.sh
··· 1 1 #!/usr/bin/env bash 2 2 set -euo pipefail 3 3 4 + DOTFILES=$(dirname "$(dirname "$(realpath "$0")")") 5 + 4 6 packages=( 5 7 bind 6 8 blueman ··· 23 25 xdg-user-dirs 24 26 ) 25 27 26 - # Install Hyprland and related packages 28 + # Install system packages 27 29 paru -S --needed --noconfirm "${packages[@]}" 30 + 31 + sudo rm -f /etc/sysctl.d/99-swappiness.conf 32 + sudo cp "${DOTFILES}/system/99-swappiness.conf" /etc/sysctl.d/99-swappiness.conf 28 33 29 34 # Network Manager 30 35 if ! systemctl is-enabled --quiet NetworkManager.service; then
terminal/packages.sh terminal/setup.sh