clone of my dotfiles.ssp.sh
1# Linking dotfiles with Stow
2#
3.DEFAULT_GOAL := arch
4
5# Shared packages (work on both platforms)
6SHARED = nvim git zsh tmux kitty ghostty lazygit k9s btop fzf helix presenterm ruff sesh mutt msmtp lazydocker yazi
7
8# Platform-specific packages
9MACOS = karabiner yabai skhd alfred
10LINUX = kanata hypr walker waybar obsidian mako mise XCompose clipse OBS
11
12.PHONY: mac linux shared clean
13
14# Install shared dotfiles
15shared:
16 stow $(SHARED)
17
18# TODO: Does not yet work on Mac, just the preparation
19mac: shared
20 stow $(MACOS)
21
22# Install Linux-specific setup
23linux: shared
24 stow $(LINUX)
25
26# Remove all symlinks
27clean:
28 stow -D $(SHARED) $(MACOS) $(LINUX)
29
30# Remove only macOS symlinks
31clean-mac:
32 stow -D $(MACOS)
33
34# Remove only Linux symlinks
35clean-linux:
36 stow -D $(LINUX)
37
38install-kanata:
39 sudo cp systemd/.config/systemd/system/kanata.service /etc/systemd/system/
40 sudo systemctl daemon-reload
41 sudo systemctl enable kanata.service
42
43uninstall-kanata:
44 sudo systemctl stop kanata.service
45 sudo systemctl disable kanata.service
46 sudo rm /etc/systemd/system/kanata.service
47
48arch:
49 pacman -Qqm > yay_aur.txt
50 pacman -Qqen | grep -v -f <(pacman -Qqm) > pacman.txt
51 pacman -Qen | grep -v -f <(pacman -Qqm) > pacman-versions.txt
52
53
54## how it works:
55# make arch-orphans # List orphaned packages → arch-orphans.txt
56# make arch-cleanup # Remove orphaned packages (after review)
57# make arch-package-check # Analyze all packages → arch-package-analysis.txt
58# make arch-check-deps # Check what depends on a package
59# make arch-clean-cache # Clean package cache (keeps 3 versions)
60arch-orphans:
61 ./_utils/arch-maintenance.sh orphans
62
63arch-cleanup:
64 ./_utils/arch-maintenance.sh cleanup
65
66arch-package-check:
67 ./_utils/arch-maintenance.sh package-check
68
69arch-check-deps:
70 ./_utils/arch-maintenance.sh check-deps
71
72arch-clean-cache:
73 ./_utils/arch-maintenance.sh clean-cache
74
75oh-my-zsh:
76 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" #install oh-my-zsh
77 git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
78
79#TODO
80post-omarchy-install:
81 arch-install
82 cp ~/stow/.stowrc ~/.stowrc
83 linux
84 oh-my-zsh
85 sudo systemctl enable --now sshd
86 rsync TODO _post-scripts/rsync.sh (take from readme)
87 sudo systemctl enable --now sshd
88 install-kanata
89
90
91
92arch-install:
93 sudo pacman -S --needed - < pacman.txt
94 yay -S --needed --noconfirm - < yay_aur.txt
95
96tmux-init-install:
97 rm -rf ~/.tmux/plugins
98 tmux new-session -d && tmux kill-session
99 mkdir -p ~/.tmux/plugins
100 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm 2>/dev/null || true
101 ~/.tmux/plugins/tpm/bin/install_plugins