d05b9f8a0e
Replace the workspace-based minimize (declared 'minimized' workspace + +1 offset + window-restore.py) with a native Sway-style scratchpad built into niri. Ships as niri-patches/0001-scratchpad.patch + a niri-scratchpad PKGBUILD. Mod+M stashes; Mod+Shift+M shows/toggles/cycles. Mod+1..9 no longer offset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
81 lines
3.4 KiB
Bash
Executable File
81 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
echo "==> Detecting AUR helper"
|
|
if command -v yay &>/dev/null; then
|
|
AUR_HELPER=yay
|
|
elif command -v paru &>/dev/null; then
|
|
AUR_HELPER=paru
|
|
else
|
|
echo "ERROR: No AUR helper found. Install yay or paru first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "==> Installing packages (using $AUR_HELPER)"
|
|
$AUR_HELPER -S --needed - < packages.txt
|
|
|
|
echo "==> Creating config directories"
|
|
mkdir -p ~/.config/{niri,waybar,wofi,mako,alacritty,gtk-3.0,gtk-4.0,fish} ~/.config/environment.d ~/.config/xdg-desktop-portal
|
|
|
|
echo "==> Linking configs"
|
|
|
|
mkdir -p ~/.config/networkmanager-dmenu
|
|
ln -sf "$(pwd)/networkmanager-dmenu/config.ini" ~/.config/networkmanager-dmenu/config.ini
|
|
ln -sf "$(pwd)/niri/config.kdl" ~/.config/niri/config.kdl
|
|
ln -sf "$(pwd)/waybar/config.jsonc" ~/.config/waybar/config.jsonc
|
|
ln -sf "$(pwd)/waybar/style.css" ~/.config/waybar/style.css
|
|
mkdir -p ~/.config/theme
|
|
echo "==> Generating theme artifacts from colors.json"
|
|
python3 "$(pwd)/theme/generate-theme.py"
|
|
ln -sf "$(pwd)/wofi/config" ~/.config/wofi/config
|
|
ln -sf "$(pwd)/wofi/style.css" ~/.config/wofi/style.css
|
|
mkdir -p ~/.config/hypr
|
|
ln -sf "$(pwd)/hyprlock/hyprlock.conf" ~/.config/hypr/hyprlock.conf
|
|
ln -sf "$(pwd)/hypridle/hypridle.conf" ~/.config/hypr/hypridle.conf
|
|
ln -sf "$(pwd)/fish/config.fish" ~/.config/fish/config.fish
|
|
ln -sf "$(pwd)/starship/starship.toml" ~/.config/starship.toml
|
|
ln -sf "$(pwd)/alacritty/alacritty.toml" ~/.config/alacritty/alacritty.toml
|
|
ln -sf "$(pwd)/gtk-3.0/settings.ini" ~/.config/gtk-3.0/settings.ini
|
|
ln -sf "$(pwd)/gtk-4.0/settings.ini" ~/.config/gtk-4.0/settings.ini
|
|
ln -sf "$(pwd)/xdg/mimeapps.list" ~/.config/mimeapps.list
|
|
ln -sf "$(pwd)/environment.d/wayland.conf" ~/.config/environment.d/wayland.conf
|
|
ln -sf "$(pwd)/xdg-desktop-portal/portals.conf" ~/.config/xdg-desktop-portal/portals.conf
|
|
ln -sf "$(pwd)/mako/config" ~/.config/mako/config
|
|
ln -sf "$(pwd)/gamemode.ini" ~/.config/gamemode.ini
|
|
|
|
echo "==> Installing scripts"
|
|
mkdir -p ~/.local/bin
|
|
ln -sf "$(pwd)/scripts/powermenu.sh" ~/.local/bin/powermenu
|
|
ln -sf "$(pwd)/scripts/clipboard.sh" ~/.local/bin/clipboard-picker
|
|
ln -sf "$(pwd)/scripts/power-profile.sh" ~/.local/bin/power-profile
|
|
ln -sf "$(pwd)/scripts/fan-profile.sh" ~/.local/bin/fan-profile
|
|
ln -sf "$(pwd)/scripts/waybar-restart.sh" ~/.local/bin/waybar-restart
|
|
ln -sf "$(pwd)/scripts/screenshot.sh" ~/.local/bin/screenshot
|
|
ln -sf "$(pwd)/scripts/volume.sh" ~/.local/bin/volume
|
|
ln -sf "$(pwd)/scripts/gamemode-session.sh" ~/.local/bin/gamemode-session
|
|
ln -sf "$(pwd)/scripts/gamemode-watch.py" ~/.local/bin/gamemode-watch
|
|
|
|
echo "==> Building/installing patched niri (native scratchpad)"
|
|
if ! pacman -Q niri-scratchpad &>/dev/null; then
|
|
(cd "$(pwd)/pkg/niri-scratchpad" \
|
|
&& cp ../../niri-patches/0001-scratchpad.patch . \
|
|
&& makepkg -si --noconfirm)
|
|
fi
|
|
|
|
echo "==> Enabling systemd user services"
|
|
mkdir -p ~/.config/systemd/user
|
|
|
|
echo "==> Deploying greetd config"
|
|
sudo cp "$(pwd)/greetd/config.toml" /etc/greetd/config.toml
|
|
sudo cp "$(pwd)/greetd/regreet.toml" /etc/greetd/regreet.toml
|
|
|
|
echo "==> Deploying suspend/hibernate config"
|
|
sudo install -Dm644 "$(pwd)/logind/lid.conf" /etc/systemd/logind.conf.d/lid.conf
|
|
sudo install -Dm644 "$(pwd)/sleep/hibernate-delay.conf" /etc/systemd/sleep.conf.d/hibernate-delay.conf
|
|
|
|
echo "==> Deploying NetworkManager config"
|
|
sudo install -Dm644 "$(pwd)/NetworkManager/conf.d/wifi-backend.conf" /etc/NetworkManager/conf.d/wifi-backend.conf
|
|
|
|
echo "==> Done. Start Niri with: niri-session"
|