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
+56
View File
@@ -0,0 +1,56 @@
# ─────────────────────────────────────────────────────────────────────────────
# uwsm environment — general (toolkit / theming / cursor)
#
# Why this file exists, and why it duplicates hypr/env.lua:
#
# The session logs in via "Hyprland (uwsm-managed)", which runs the compositor
# under the systemd user manager. Variables set with hl.env() in hyprland.lua
# are exported into the COMPOSITOR's environment -- but NOT into the systemd
# user manager. Anything started as a user unit (vicinae.service,
# hyprpolkitagent.service, hyprpaper.service, hyprsunset.service) and every app
# those units launch would therefore not see them.
#
# uwsm sources this file into the systemd activation environment before the
# session starts, which covers both. Keep the two in sync; hypr/env.lua remains
# the fallback for the plain (non-uwsm) "Hyprland" session.
#
# Format is plain shell: `export KEY=VALUE`.
# ─────────────────────────────────────────────────────────────────────────────
# ── Cursor ───────────────────────────────────────────────────────────────────
# No HYPRCURSOR_THEME: oreo_blue_cursors is a plain XCursor theme with no
# hyprcursors/ directory, so hyprcursor would resolve it to nothing.
export XCURSOR_THEME=oreo_blue_cursors
export XCURSOR_SIZE=24
# ── Toolkits ─────────────────────────────────────────────────────────────────
export QT_QPA_PLATFORM="wayland;xcb"
# Derives the Qt palette from the live GTK3 theme (adw-gtk3-dark). Single
# value, not a list -- Qt splits on ":" and uses only the first token.
export QT_QPA_PLATFORMTHEME=gtk3
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export GDK_BACKEND=wayland,x11
export SDL_VIDEODRIVER=wayland
export CLUTTER_BACKEND=wayland
export MOZ_ENABLE_WAYLAND=1
# Electron apps (Slack, Obsidian, Claude, Codex, BlueBubbles, Podman Desktop)
# pick Wayland from this rather than needing per-app flags.
export ELECTRON_OZONE_PLATFORM_HINT=auto
# The systemd user manager can survive a GNOME logout, leaving this stale as
# `gnome` even after uwsm updates XDG_CURRENT_DESKTOP. Vicinae checks both and
# otherwise waits for a GNOME clipboard extension before falling back to the
# native Wayland data-control backend.
export XDG_SESSION_DESKTOP=Hyprland
export DESKTOP_SESSION=hyprland
export GDMSESSION=hyprland
# ── Selection overlay theming ────────────────────────────────────────────────
# slurp is used by screenshot tooling; match Tokyo Night Moon so the region
# picker doesn't flash a default-blue box.
export SLURP_ARGS="-d -c 82aaffff -b 2e2f3d99 -s 82aaff22 -B 2e2f3d55 -w 2"
# XDG_CURRENT_DESKTOP and XDG_SESSION_TYPE are set by uwsm itself.
+28
View File
@@ -0,0 +1,28 @@
# ─────────────────────────────────────────────────────────────────────────────
# uwsm environment — Hyprland-specific (HYPR* and AQ_*)
#
# uwsm sources this only for the Hyprland session, after ./env. Keeping the
# compositor-specific variables separate means the general env file stays
# reusable if another compositor is ever added.
#
# See ./env for why these live here instead of in hypr/env.lua.
# ─────────────────────────────────────────────────────────────────────────────
# ── GPU selection ────────────────────────────────────────────────────────────
# Discrete RX 7800 XT first (it drives DP-2), integrated second so anything
# plugged into its outputs still works.
#
# These are the colon-free stable symlinks created by the udev rule at
# config/copy/etc/udev/rules.d/99-panama-gpu.rules -- /dev/dri/cardN numbering
# is not stable across boots, and the /dev/dri/by-path/ names contain colons,
# which AQ_DRM_DEVICES itself uses as a separator.
#
# Guarded, because pointing this at a device that does not exist stops Hyprland
# from starting at all.
if [ -e /dev/dri/amd-dgpu ]; then
if [ -e /dev/dri/amd-igpu ]; then
export AQ_DRM_DEVICES=/dev/dri/amd-dgpu:/dev/dri/amd-igpu
else
export AQ_DRM_DEVICES=/dev/dri/amd-dgpu
fi
fi