# ───────────────────────────────────────────────────────────────────────────── # 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.