Build the Panama Hyprland desktop

This commit is contained in:
Gabriel Brown
2026-08-17 10:32:55 -04:00
parent 67033f2a31
commit 5248883e4b
190 changed files with 18554 additions and 34 deletions
Regular → Executable
+57
View File
@@ -10,3 +10,60 @@ PANAMA_PATH="$HOME/.local/share/Panama"
echo -e "\n--- Copying System & User files ---"
log "Changing DNF Settings"
sudo cp -r "$PANAMA_PATH/config/copy/." "/"
# The GPU symlink rules land via the copy above. Apply them without a reboot so
# AQ_DRM_DEVICES resolves on the first Hyprland login rather than the second.
if [[ -f /etc/udev/rules.d/99-panama-gpu.rules ]]; then
log "Reloading udev rules for stable GPU symlinks"
sudo udevadm control --reload
sudo udevadm trigger --subsystem-match=drm
fi
echo -e "\n--- Desktop appearance ---"
# GTK and Qt apps read these directly from gsettings; there is no settings
# daemon outside GNOME, so they must be correct rather than merely overridden.
# These match config/dot/gtk-3.0/settings.ini and quickshell's Theme.qml.
if exists gsettings; then
log "Applying interface settings"
gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark'
gsettings set org.gnome.desktop.interface icon-theme 'Adwaita'
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.interface font-name 'Adwaita Sans 11'
gsettings set org.gnome.desktop.interface monospace-font-name 'VictorMono Nerd Font 10'
gsettings set org.gnome.desktop.interface cursor-theme 'oreo_blue_cursors'
# Deliberately NOT setting cursor-size. GNOME here is on 16 (smaller than
# GNOME's own default of 24) and changing it would visibly alter the working
# GNOME session. Hyprland uses XCURSOR_SIZE=24 from uwsm/env; if the cursor
# feels too large there, change that one value rather than this one.
fi
echo -e "\n--- Hyprland session services ---"
# Deliberately NOT enabling these.
#
# hyprpaper / hypridle / hyprpolkitagent / vicinae all ship units that are
# WantedBy=graphical-session.target -- and that target is active under GNOME
# too. Enabling them would start hypridle alongside GNOME's own idle handling
# (two daemons blanking and locking the screen on different timers) and start
# hyprpaper where there is no layer shell for it to draw on.
#
# Instead hypr/autostart.lua runs `systemctl --user start ...` on
# hyprland.start, which scopes them to the Hyprland session. They still get the
# correct uwsm activation environment and still stop in order, because they are
# PartOf=graphical-session.target.
log "Hyprland services are started per-session by hypr/autostart.lua, not enabled globally"
# Notification daemons must NOT be installed: mako, dunst and swaync all
# register Name=org.freedesktop.Notifications for D-Bus activation, which races
# Quickshell's own notification server at login. Whoever wins keeps the name.
for pkg in mako dunst SwayNotificationCenter; do
if rpm -q "$pkg" >/dev/null 2>&1; then
log "WARNING: $pkg is installed and will fight Quickshell for the notification D-Bus name."
log " Fix with: systemctl --user mask ${pkg,,}.service"
fi
done
# Select the launcher theme once vicinae exists.
if exists vicinae; then
log "Setting vicinae theme"
vicinae theme set tokyonight-moon >/dev/null 2>&1 || true
fi