Move to UWSM

This commit is contained in:
ItsDrike 2025-02-24 22:27:49 +01:00
parent 510d01ef47
commit 3993fb896d
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
41 changed files with 79 additions and 101 deletions

View file

@ -1,11 +1,4 @@
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE GTK_THEME QT_QPA_PLATFORMTHEME QT_STYLE_OVERRIDE
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP GTK_THEME QT_QPA_PLATFORMTHEME QT_STYLE_OVERRIDE
# Hyprland socket sometimes isn't yet loaded, sleep for sec
exec-once = sleep 1 && systemctl --user start wayland-session.target
exec-once = sleep 3 && vesktop
# exec-once = sleep 3 && discord
# exec-once = sleep 3 && webcord --start-minimized
exec-once = uwsm finalize
exec-once = uwsm app vesktop
# vi: ft=hyprlang

View file

@ -1,13 +1,15 @@
[Unit]
Description="Show a notification when the battery is low"
Description=Show a notification when the battery is low
Requires=graphical-session.target
PartOf=graphical-session.target
[Service]
ExecStart=%h/.local/bin/scripts/gui/battery-notification
Type=oneshot
ExecStart=%h/.local/bin/scripts/gui/battery-notification
RemainAfterExit=false
Restart=on-failure
RestartSec=3s
Slice=background-graphical.slice
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -1,9 +1,12 @@
[Unit]
Description="Timer for low battery notification sendout"
Description=Timer for low battery notification sendout
After=graphical-session.target
Requires=graphical-session.target
PartOf=graphical-session.target
[Timer]
OnUnitActiveSec=20s
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -1,10 +1,14 @@
[Unit]
Description="Clipboard clipboard manager"
Description=Clipman clipboard manager
After=graphical-session.target
Requires=graphical-session.target
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/wl-paste -t text --watch /usr/bin/clipman store --no-persist
Restart=on-failure
Slice=background-graphical.slice
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/systemd-lock-handler.service

View file

@ -1,10 +0,0 @@
[Unit]
Description="Dunst daemon"
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/dunst
Restart=on-failure
[Install]
WantedBy=wm-ready.target

View file

@ -1,17 +1,15 @@
[Unit]
Description="Open %I eww window"
PartOf=graphical-session.target
Description=Open %I eww window
After=eww.service
PartOf=eww.service
[Service]
Type=oneshot
ExecStartPre=/usr/bin/eww ping
ExecStart=/usr/bin/eww open %i
ExecStop=/usr/bin/eww close %i
Type=oneshot
RemainAfterExit=true
Restart=on-failure
RestartSec=3s
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -1,11 +1,11 @@
[Unit]
Description="Eww daemon"
Description=Eww daemon
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/eww daemon --no-daemonize
Restart=always
RestartSec=3s
Slice=background-graphical.slice
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -1,14 +1,15 @@
[Unit]
Description="Show unread GitHub notifications"
Description=Show unread GitHub notifications
Requires=graphical-session.target
PartOf=graphical-session.target
After=dunst.service
[Service]
ExecStart=%h/.local/bin/scripts/gui/gh-notification -vv
Type=oneshot
ExecStart=%h/.local/bin/scripts/gui/gh-notification -vv
RemainAfterExit=false
Restart=on-failure
RestartSec=3s
Slice=background-graphical.slice
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -1,9 +1,12 @@
[Unit]
Description="Timer for GitHub notification sendout"
Description=Timer for GitHub notification sendout
After=graphical-session.target
Requires=graphical-session.target
PartOf=graphical-session.target
[Timer]
OnUnitActiveSec=1m
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -0,0 +1,2 @@
[Service]
Environment="GNUPGHOME=%h/.local/share/gnupg"

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/hypridle.service

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/swaync.service

View file

@ -1,10 +0,0 @@
[Unit]
Description="Idle management daemon"
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/stdbuf -oL /usr/bin/hypridle
Restart=on-failure
[Install]
WantedBy=wayland-session.target

View file

@ -0,0 +1,2 @@
[Service]
Slice=background-graphical.slice

View file

@ -1,10 +1,13 @@
[Unit]
Description="Daemon watching for Hyprland monitor updates"
PartOf=graphical-session.target
Description=Daemon watching for Hyprland monitor updates
After=wayland-session@hyprland.desktop.target
Requires=wayland-session@hyprland.desktop.target
PartOf=wayland-session@hyprland.desktop.target
[Service]
ExecStart=%h/.local/bin/scripts/gui/hyprland/hyprland-monitord
Restart=on-failure
Slice=background-graphical.slice
[Install]
WantedBy=wayland-session.target
WantedBy=wayland-session@hyprland.desktop.target

View file

@ -1,6 +1,6 @@
[Unit]
Description=Run hyprlock screenlocker on lock dbus event (using systemd-lock-handler)
Requisite=wm-ready.target
Requisite=graphical-session.target
# if hyprlock exists cleanly, enter a 'unlock' target
OnSuccess=unlock.target
# When lock.target is stopped, stop this unit too
@ -9,9 +9,10 @@ PartOf=lock.target
[Service]
ExecStart=/usr/bin/hyprlock
StandardOutput=journal
ExecStop=/bin/kill -s SIGUSR1 $MAINPID
ExecStopPost=/bin/loginctl unlock-session
Restart=on-failure
Slice=background-graphical.slice
[Install]
WantedBy=lock.target

View file

@ -1,12 +0,0 @@
[Unit]
Description="Hyprpaper (Hyprland wallpaper daemon"
PartOf=graphical-session.target
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/hyprpaper
Restart=on-failure
[Install]
WantedBy=wayland-session.target

View file

@ -0,0 +1,3 @@
[Service]
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "Hyprland" ""
Slice=background-graphical.slice

View file

@ -1,10 +1,13 @@
[Unit]
Description="PolicyKit authentication agent"
After=graphical-session.target
Requires=graphical-session.target
PartOf=graphical-session.target
[Service]
ExecStart=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
Restart=on-failure
Slice=background-graphical.slice
[Install]
WantedBy=wm-ready.target
WantedBy=graphical-session.target

View file

@ -4,8 +4,10 @@ Requisite=swaync.service
Before=lock.target
[Service]
ExecStart=/usr/bin/swaync-client --inhibitor-add screen-locker
Type=oneshot
ExecStart=/usr/bin/swaync-client --inhibitor-add screen-locker
Slice=background-graphical.slice
[Install]
WantedBy=lock.target

View file

@ -4,8 +4,9 @@ Requisite=swaync.service
After=unlock.target
[Service]
ExecStart=/usr/bin/swaync-client --inhibitor-remove screen-locker
Type=oneshot
ExecStart=/usr/bin/swaync-client --inhibitor-remove screen-locker
Slice=background-graphical.slice
[Install]
WantedBy=unlock.target

View file

@ -1,10 +0,0 @@
[Unit]
Description="Swaync daemon"
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/swaync
Restart=on-failure
[Install]
WantedBy=wayland-session.target

View file

@ -0,0 +1,2 @@
[Service]
Slice=background-graphical.slice

View file

@ -1,6 +0,0 @@
[Unit]
Description=Waylnad compositor loaded and ready
BindsTo=wm-ready.target
Wants=xdg-desktop-portal.service
Wants=xdg-desktop-portal-hyprland.service
Wants=systemd-lock-handler.service

View file

@ -1 +0,0 @@
/home/itsdrike/.config/systemd/user/hypridle.service

View file

@ -1,10 +1,13 @@
[Unit]
Description="Redshift and brightness control for Wayland"
BindsTo=wayland-session.target
Description=Redshift and brightness control for Wayland
After=graphical-session.target
Requires=graphical-session.target
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/wl-gammarelay-rs run
Restart=on-failure
Slice=background-graphical.slice
[Install]
WantedBy=wayland-session.target
WantedBy=graphical-session.target

View file

@ -1,7 +0,0 @@
[Unit]
Description=Window Manager loaded and ready
BindsTo=graphical-session.target
Wants=wireplumber.service
Wants=pipewire-pulse.socket
Wants=usbguard-notifier.service
Wants=gnome-keyring-daemon.service

View file

@ -0,0 +1 @@
hyprland-uwsm.desktop

3
home/.config/uwsm/env Normal file
View file

@ -0,0 +1,3 @@
#!/bin/bash
source "$HOME"/.config/shell/environment

View file

@ -99,7 +99,8 @@ paru -S --noconfirm --needed \
# Wayland WM essentials
paru -S --noconfirm --needed \
wl-clipboard xdg-desktop-portal xdg-desktop-portal-gtk qt5-wayland qt6-wayland wev wl-gammarelay-rs wdisplays
wl-clipboard xdg-desktop-portal xdg-desktop-portal-gtk qt5-wayland qt6-wayland wev wl-gammarelay-rs wdisplays \
uwsm
# Utilities
paru -S --noconfirm --needed \

View file

@ -7,7 +7,7 @@ vt = 1
# If the user logs out, greetd will render the default session
[initial_session]
user = "itsdrike"
command = "/usr/local/bin/greetd-session-wrapper Hyprland"
command = "/usr/local/bin/greetd-session-wrapper uwsm start hyprland.desktop"
# The default session, also known as the greeter.
[default_session]