Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
f8915bc79a
split makefiles into multiple parts 2025-01-14 09:45:42 +01:00
6 changed files with 186 additions and 184 deletions

188
Makefile
View file

@ -1,31 +1,7 @@
# Version control
VC = git
# Util
RM = rm -f
MKDIR = mkdir -p
SED = sed -i
# Downloaders
REPO_SRC = https://git.mylloon.fr/Anri/confOS/raw/branch/main
WGET = wget -q --show-progress
CURL = curl -s
# Hide some verbose messages from Make
MAKEFLAGS += --no-print-directory
# Location
WIN_USER = anri
PFx86 = /mnt/c/Program\ Files\ \(x86\)
PF = /mnt/c/Program\ Files
WIN_HOME = /mnt/c/Users/$(WIN_USER)
APPDATA = $(WIN_HOME)/AppData/Roaming
LOCALAPPDATA = $(WIN_HOME)/AppData/Local
# Locations aliases
CS2_CFG = $(PFx86)/Steam/steamapps/common/Counter-Strike\ Global\ Offensive/game/csgo/cfg
OBS_CFG = $(PF)/obs-studio/config/obs-studio
include makefiles/Arch.mk
include makefiles/Termux.mk
include makefiles/Windows.mk
include makefiles/Wsl.mk
# Checkers
ARCH = $(shell grep -c "archlinux" /proc/version 2> /dev/null)
@ -36,7 +12,6 @@ ADMIN_WIN = $(shell touch $(PF) 2> /dev/null; echo $$?)
all: full-sync
# Pull latest changes
refresh:
@echo "Pull latest changes from repository..."
@ -116,161 +91,6 @@ sync-dotfiles:
@echo "Clang formatter settings synced!"
@echo
# Arch distro specific
sync-arch:
# .config
@$(WGET) $(REPO_SRC)/.config/update_theme.sh -O $(HOME)/.config/update_theme.sh
@echo "Theme script synced!"
@echo
# Fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/abbr_arch.fish >> $(HOME)/.config/fish/conf.d/abbr.fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/alias_arch.fish >> $(HOME)/.config/fish/conf.d/alias.fish
@echo "Fish specific settings synced!"
@echo
# Emoji Picker
@$(WGET) $(REPO_SRC)/.config/gazatu.xyz/emoji-picker.ini -O $(HOME)/.config/gazatu.xyz/emoji-picker.ini
@echo "Emoji picker settings synced!"
@echo
# Firefox
-@$(RM) $(HOME)/.mozilla/firefox/*.default-release/user.js
@$(WGET) $(REPO_SRC)/.mozilla/firefox/user.js -P $(HOME)/.mozilla/firefox/*.default-release
@$(CURL) $(REPO_SRC)/.mozilla/firefox/user-arch.js >> $(wildcard $(HOME)/.mozilla/firefox/*.default-release)/user.js
@echo "Firefox settings synced!"
@echo
# VSCodium
@$(WGET) $(REPO_SRC)/.config/VSCodium/product.json -O $(HOME)/.config/VSCodium/product.json
@echo "VSCodium settings synced!"
@echo
# s-tui
@$(WGET) $(REPO_SRC)/.config/s-tui/s-tui.conf -O $(HOME)/.config/s-tui/s-tui.conf
@echo "s-tui settings synced!"
@echo
# gpu-screen-recorder
@$(WGET) $(REPO_SRC)/.config/gpu-screen-recorder.env -O $(HOME)/.config/gpu-screen-recorder.env
@echo "ADDITIONAL_ARGS=-a $$(pactl get-default-source)" >> $(HOME)/.config/gpu-screen-recorder.env
@echo "gpu-screen-recorder settings synced!"
@echo
# Blackbox
@$(WGET) $(REPO_SRC)/.local/share/blackbox/user-keymap.json -O $(HOME)/.local/share/blackbox/user-keymap.json
@echo "Blackbox keymap synced!"
@echo
# Pacman hooks
@sudo $(MKDIR) /etc/pacman.d/hooks
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/stop-wine-associations.hook -O /etc/pacman.d/hooks/stop-wine-associations.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/gnome-terminal-shortcut.hook -O /etc/pacman.d/hooks/gnome-terminal-shortcut.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/blackbox-shortcut.hook -O /etc/pacman.d/hooks/blackbox-shortcut.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/honkai-shortcut.hook -O /etc/pacman.d/hooks/honkai-shortcut.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/vesktop.hook -O /etc/pacman.d/hooks/vesktop.hook
@echo "Pacman hooks synced!"
@echo
# Windows Subsystem for Linux specific
sync-wsl:
# Fish
@$(CURL) $(REPO_SRC)/.config/fish/config_wsl.fish >> $(HOME)/.config/fish/config.fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/abbr_wsl.fish >> $(HOME)/.config/fish/conf.d/abbr.fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/alias_wsl.fish >> $(HOME)/.config/fish/conf.d/alias.fish
@$(WGET) $(REPO_SRC)/.config/fish/functions/trash.fish -O $(HOME)/.config/fish/functions/trash.fish
@$(WGET) $(REPO_SRC)/.config/fish/functions/trash-empty.fish -O $(HOME)/.config/fish/functions/trash-empty.fish
@echo "Fish specific settings synced!"
@echo
# Unison
@$(MKDIR) $(HOME)/.unison
@$(WGET) $(REPO_SRC)/.unison/default.prf -O $(HOME)/.unison/default.prf
@echo "Unison settings synced!"
@echo
# Windows through WSL
WIN = (Windows) # specific prefix since we're running it from WSL for windows
sync-windows:
# Scripts
@$(WGET) $(REPO_SRC)/windows/update.bat -O $(WIN_HOME)/Documents/Local/update.bat
@$(WGET) $(REPO_SRC)/windows/clean.bat -O $(WIN_HOME)/Documents/Local/ctmpf.bat
@$(WGET) $(REPO_SRC)/windows/installers/spotify.bat -O $(WIN_HOME)/Documents/Local/blockthespot.bat
@$(WGET) $(REPO_SRC)/windows/installers/vencord.bat -O $(WIN_HOME)/Documents/Local/vencord_installer.bat
# @$(WGET) $(REPO_SRC)/windows/fix_nvidia_wsl.bat -O $(WIN_HOME)/Documents/Local/fix_nvidia_wsl.bat
@$(WGET) $(REPO_SRC)/windows/start_obs_as_shadowplay.bat -O $(LOCALAPPDATA)/start_obs_as_shadowplay.bat
@$(WGET) $(REPO_SRC)/windows/reg_fixes.bat -O $(WIN_HOME)/Documents/Local/reg_fixes.bat
@echo "$(WIN) Scripts synced!"
@echo
# CS2 (only if installed)
@if [ -d $(CS2_CFG) ]; then \
$(WGET) $(REPO_SRC)/games/cs2/autoexec.cfg -O $(CS2_CFG)/autoexec.cfg; \
$(WGET) $(REPO_SRC)/games/cs2/myconfig.cfg -O $(CS2_CFG)/myconfig.cfg; \
$(WGET) $(REPO_SRC)/games/cs2/customgame.cfg -O $(CS2_CFG)/customgame.cfg; \
$(WGET) $(REPO_SRC)/games/cs2/normalgame.cfg -O $(CS2_CFG)/normalgame.cfg; \
echo "$(WIN) CS2 configs synced!"; \
echo; \
fi
# Firefox
-@$(RM) $(APPDATA)/Mozilla/Firefox/Profiles/*.default-release/user.js
@$(WGET) $(REPO_SRC)/.mozilla/firefox/user.js -P $(APPDATA)/Mozilla/Firefox/Profiles/*.default-release
@$(CURL) $(REPO_SRC)/.mozilla/firefox/user-windows.js >> $(wildcard $(APPDATA)/Mozilla/Firefox/Profiles/*.default-release)/user.js
@echo "$(WIN) Firefox settings synced!"
@echo
# WindowsAutoNightMode
@$(WGET) $(REPO_SRC)/.config/WindowsAutoNightMode/config.yaml -O $(APPDATA)/AutoDarkMode/config.yaml
@$(WGET) $(REPO_SRC)/.config/WindowsAutoNightMode/scripts.yaml -O $(APPDATA)/AutoDarkMode/scripts.yaml
@echo "$(WIN) WindowsAutoNightMode settings synced!"
@echo
# Xournal++
@$(MKDIR) $(LOCALAPPDATA)/xournalpp
@$(WGET) $(REPO_SRC)/.config/xournalpp/settings.xml -O $(LOCALAPPDATA)/xournalpp/settings.xml
@echo "$(WIN) Xournal++ settings synced!"
@echo
# OpenTabletDriver presets
@$(MKDIR) $(LOCALAPPDATA)/OpenTabletDriver/Presets
@$(WGET) $(REPO_SRC)/opentabletdriver/vertical-main.json -O $(LOCALAPPDATA)/OpenTabletDriver/Presets/vertical-main.json
@$(WGET) $(REPO_SRC)/opentabletdriver/vertical-second.json -O $(LOCALAPPDATA)/OpenTabletDriver/Presets/vertical-second.json
@echo "$(WIN) OpenTabletDriver presets synced!"
@echo
# # Topgrade
# @$(WGET) $(REPO_SRC)/.config/topgrade/topgrade.toml -O $(APPDATA)/topgrade.toml
# @echo "$(WIN) Topgrade settings synced!"
# @echo
# OBS config
ifeq ($(ADMIN_WIN),1)
@echo "$(WIN) Can't update OBS configuration, use elevated terminal to do so"
@echo
else
@$(MKDIR) $(OBS_CFG)/basic/profiles/ReplayBuffer
@$(MKDIR) $(OBS_CFG)/basic/scenes
@$(WGET) $(REPO_SRC)/.config/obs/global.ini -O $(OBS_CFG)/global.ini
@$(WGET) $(REPO_SRC)/.config/obs/basic/profiles/ReplayBuffer/basic.ini -O $(OBS_CFG)/basic/profiles/ReplayBuffer/basic.ini
@$(WGET) $(REPO_SRC)/.config/obs/basic/profiles/ReplayBuffer/recordEncoder.json -O $(OBS_CFG)/basic/profiles/ReplayBuffer/recordEncoder.json
@$(WGET) $(REPO_SRC)/.config/obs/basic/scenes/ReplayBuffer.json -O $(OBS_CFG)/basic/scenes/ReplayBuffer.json
@echo "$(WIN) OBS configuration synced! Check your OBS to see if the screen is correctly picked up (could have turned black due to the update)"
@echo
endif
# Termux distro specific
sync-termux:
@$(SED) "/fish_ssh_agent/d" $(HOME)/.config/fish/config.fish
@$(SED) "/topgrade/d" $(HOME)/.config/fish/conf.d/abbr.fish
@echo "Fix-for-Termux applied!"
@echo
sync:
# Check if at least the platform is supported
ifneq (1, $(filter 1, $(ARCH) $(WSL) $(TERMUX)))

57
makefiles/Arch.mk Normal file
View file

@ -0,0 +1,57 @@
include makefiles/Utils.mk
# Arch distro specific
sync-arch:
# .config
@$(WGET) $(REPO_SRC)/.config/update_theme.sh -O $(HOME)/.config/update_theme.sh
@echo "Theme script synced!"
@echo
# Fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/abbr_arch.fish >> $(HOME)/.config/fish/conf.d/abbr.fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/alias_arch.fish >> $(HOME)/.config/fish/conf.d/alias.fish
@echo "Fish specific settings synced!"
@echo
# Emoji Picker
@$(WGET) $(REPO_SRC)/.config/gazatu.xyz/emoji-picker.ini -O $(HOME)/.config/gazatu.xyz/emoji-picker.ini
@echo "Emoji picker settings synced!"
@echo
# Firefox
-@$(RM) $(HOME)/.mozilla/firefox/*.default-release/user.js
@$(WGET) $(REPO_SRC)/.mozilla/firefox/user.js -P $(HOME)/.mozilla/firefox/*.default-release
@$(CURL) $(REPO_SRC)/.mozilla/firefox/user-arch.js >> $(wildcard $(HOME)/.mozilla/firefox/*.default-release)/user.js
@echo "Firefox settings synced!"
@echo
# VSCodium
@$(WGET) $(REPO_SRC)/.config/VSCodium/product.json -O $(HOME)/.config/VSCodium/product.json
@echo "VSCodium settings synced!"
@echo
# s-tui
@$(WGET) $(REPO_SRC)/.config/s-tui/s-tui.conf -O $(HOME)/.config/s-tui/s-tui.conf
@echo "s-tui settings synced!"
@echo
# gpu-screen-recorder
@$(WGET) $(REPO_SRC)/.config/gpu-screen-recorder.env -O $(HOME)/.config/gpu-screen-recorder.env
@echo "ADDITIONAL_ARGS=-a $$(pactl get-default-source)" >> $(HOME)/.config/gpu-screen-recorder.env
@echo "gpu-screen-recorder settings synced!"
@echo
# Blackbox
@$(WGET) $(REPO_SRC)/.local/share/blackbox/user-keymap.json -O $(HOME)/.local/share/blackbox/user-keymap.json
@echo "Blackbox keymap synced!"
@echo
# Pacman hooks
@sudo $(MKDIR) /etc/pacman.d/hooks
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/stop-wine-associations.hook -O /etc/pacman.d/hooks/stop-wine-associations.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/gnome-terminal-shortcut.hook -O /etc/pacman.d/hooks/gnome-terminal-shortcut.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/blackbox-shortcut.hook -O /etc/pacman.d/hooks/blackbox-shortcut.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/honkai-shortcut.hook -O /etc/pacman.d/hooks/honkai-shortcut.hook
@sudo $(WGET) $(REPO_SRC)/pacman.d/hooks/vesktop.hook -O /etc/pacman.d/hooks/vesktop.hook
@echo "Pacman hooks synced!"
@echo

8
makefiles/Termux.mk Normal file
View file

@ -0,0 +1,8 @@
include makefiles/Utils.mk
# Termux distro specific
sync-termux:
@$(SED) "/fish_ssh_agent/d" $(HOME)/.config/fish/config.fish
@$(SED) "/topgrade/d" $(HOME)/.config/fish/conf.d/abbr.fish
@echo "Fix-for-Termux applied!"
@echo

15
makefiles/Utils.mk Normal file
View file

@ -0,0 +1,15 @@
# Version control
VC = git
# Util
RM = rm -f
MKDIR = mkdir -p
SED = sed -i
# Downloaders
REPO_SRC = https://git.mylloon.fr/Anri/confOS/raw/branch/main
WGET = wget -q --show-progress
CURL = curl -s
# Hide some verbose messages from Make
MAKEFLAGS += --no-print-directory

84
makefiles/Windows.mk Normal file
View file

@ -0,0 +1,84 @@
include makefiles/Utils.mk
# Location
WIN_USER = anri
PFx86 = /mnt/c/Program\ Files\ \(x86\)
PF = /mnt/c/Program\ Files
WIN_HOME = /mnt/c/Users/$(WIN_USER)
APPDATA = $(WIN_HOME)/AppData/Roaming
LOCALAPPDATA = $(WIN_HOME)/AppData/Local
# Locations aliases
CS2_CFG = $(PFx86)/Steam/steamapps/common/Counter-Strike\ Global\ Offensive/game/csgo/cfg
OBS_CFG = $(PF)/obs-studio/config/obs-studio
WIN = ($(MAKEFILE_LIST))
# Windows through WSL
sync-windows:
# Scripts
@$(WGET) $(REPO_SRC)/windows/update.bat -O $(WIN_HOME)/Documents/Local/update.bat
@$(WGET) $(REPO_SRC)/windows/clean.bat -O $(WIN_HOME)/Documents/Local/ctmpf.bat
@$(WGET) $(REPO_SRC)/windows/installers/spotify.bat -O $(WIN_HOME)/Documents/Local/blockthespot.bat
@$(WGET) $(REPO_SRC)/windows/installers/vencord.bat -O $(WIN_HOME)/Documents/Local/vencord_installer.bat
# @$(WGET) $(REPO_SRC)/windows/fix_nvidia_wsl.bat -O $(WIN_HOME)/Documents/Local/fix_nvidia_wsl.bat
@$(WGET) $(REPO_SRC)/windows/start_obs_as_shadowplay.bat -O $(LOCALAPPDATA)/start_obs_as_shadowplay.bat
@$(WGET) $(REPO_SRC)/windows/reg_fixes.bat -O $(WIN_HOME)/Documents/Local/reg_fixes.bat
@echo "$(WIN) Scripts synced!"
@echo
# CS2 (only if installed)
@if [ -d $(CS2_CFG) ]; then \
$(WGET) $(REPO_SRC)/games/cs2/autoexec.cfg -O $(CS2_CFG)/autoexec.cfg; \
$(WGET) $(REPO_SRC)/games/cs2/myconfig.cfg -O $(CS2_CFG)/myconfig.cfg; \
$(WGET) $(REPO_SRC)/games/cs2/customgame.cfg -O $(CS2_CFG)/customgame.cfg; \
$(WGET) $(REPO_SRC)/games/cs2/normalgame.cfg -O $(CS2_CFG)/normalgame.cfg; \
echo "$(WIN) CS2 configs synced!"; \
echo; \
fi
# Firefox
-@$(RM) $(APPDATA)/Mozilla/Firefox/Profiles/*.default-release/user.js
@$(WGET) $(REPO_SRC)/.mozilla/firefox/user.js -P $(APPDATA)/Mozilla/Firefox/Profiles/*.default-release
@$(CURL) $(REPO_SRC)/.mozilla/firefox/user-windows.js >> $(wildcard $(APPDATA)/Mozilla/Firefox/Profiles/*.default-release)/user.js
@echo "$(WIN) Firefox settings synced!"
@echo
# WindowsAutoNightMode
@$(WGET) $(REPO_SRC)/.config/WindowsAutoNightMode/config.yaml -O $(APPDATA)/AutoDarkMode/config.yaml
@$(WGET) $(REPO_SRC)/.config/WindowsAutoNightMode/scripts.yaml -O $(APPDATA)/AutoDarkMode/scripts.yaml
@echo "$(WIN) WindowsAutoNightMode settings synced!"
@echo
# Xournal++
@$(MKDIR) $(LOCALAPPDATA)/xournalpp
@$(WGET) $(REPO_SRC)/.config/xournalpp/settings.xml -O $(LOCALAPPDATA)/xournalpp/settings.xml
@echo "$(WIN) Xournal++ settings synced!"
@echo
# OpenTabletDriver presets
@$(MKDIR) $(LOCALAPPDATA)/OpenTabletDriver/Presets
@$(WGET) $(REPO_SRC)/opentabletdriver/vertical-main.json -O $(LOCALAPPDATA)/OpenTabletDriver/Presets/vertical-main.json
@$(WGET) $(REPO_SRC)/opentabletdriver/vertical-second.json -O $(LOCALAPPDATA)/OpenTabletDriver/Presets/vertical-second.json
@echo "$(WIN) OpenTabletDriver presets synced!"
@echo
# # Topgrade
# @$(WGET) $(REPO_SRC)/.config/topgrade/topgrade.toml -O $(APPDATA)/topgrade.toml
# @echo "$(WIN) Topgrade settings synced!"
# @echo
# OBS config
ifeq ($(ADMIN_WIN),1)
@echo "$(WIN) Can't update OBS configuration, use elevated terminal to do so"
@echo
else
@$(MKDIR) $(OBS_CFG)/basic/profiles/ReplayBuffer
@$(MKDIR) $(OBS_CFG)/basic/scenes
@$(WGET) $(REPO_SRC)/.config/obs/global.ini -O $(OBS_CFG)/global.ini
@$(WGET) $(REPO_SRC)/.config/obs/basic/profiles/ReplayBuffer/basic.ini -O $(OBS_CFG)/basic/profiles/ReplayBuffer/basic.ini
@$(WGET) $(REPO_SRC)/.config/obs/basic/profiles/ReplayBuffer/recordEncoder.json -O $(OBS_CFG)/basic/profiles/ReplayBuffer/recordEncoder.json
@$(WGET) $(REPO_SRC)/.config/obs/basic/scenes/ReplayBuffer.json -O $(OBS_CFG)/basic/scenes/ReplayBuffer.json
@echo "$(WIN) OBS configuration synced! Check your OBS to see if the screen is correctly picked up (could have turned black due to the update)"
@echo
endif

18
makefiles/Wsl.mk Normal file
View file

@ -0,0 +1,18 @@
include makefiles/Utils.mk
# Windows Subsystem for Linux specific
sync-wsl:
# Fish
@$(CURL) $(REPO_SRC)/.config/fish/config_wsl.fish >> $(HOME)/.config/fish/config.fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/abbr_wsl.fish >> $(HOME)/.config/fish/conf.d/abbr.fish
@$(CURL) $(REPO_SRC)/.config/fish/conf.d/alias_wsl.fish >> $(HOME)/.config/fish/conf.d/alias.fish
@$(WGET) $(REPO_SRC)/.config/fish/functions/trash.fish -O $(HOME)/.config/fish/functions/trash.fish
@$(WGET) $(REPO_SRC)/.config/fish/functions/trash-empty.fish -O $(HOME)/.config/fish/functions/trash-empty.fish
@echo "Fish specific settings synced!"
@echo
# Unison
@$(MKDIR) $(HOME)/.unison
@$(WGET) $(REPO_SRC)/.unison/default.prf -O $(HOME)/.unison/default.prf
@echo "Unison settings synced!"
@echo