diff --git a/home/.config/hypr/hyprland.d/exec.conf b/home/.config/hypr/hyprland.d/exec.conf index e517ccb..ee6742e 100644 --- a/home/.config/hypr/hyprland.d/exec.conf +++ b/home/.config/hypr/hyprland.d/exec.conf @@ -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 diff --git a/home/.config/systemd/user/battery-notification.service b/home/.config/systemd/user/battery-notification.service index c63c50d..c9dfbd8 100644 --- a/home/.config/systemd/user/battery-notification.service +++ b/home/.config/systemd/user/battery-notification.service @@ -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 + diff --git a/home/.config/systemd/user/battery-notification.timer b/home/.config/systemd/user/battery-notification.timer index cdc31e1..ec0044a 100644 --- a/home/.config/systemd/user/battery-notification.timer +++ b/home/.config/systemd/user/battery-notification.timer @@ -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 + diff --git a/home/.config/systemd/user/clipman.service b/home/.config/systemd/user/clipman.service index 2c1b376..03ed28f 100644 --- a/home/.config/systemd/user/clipman.service +++ b/home/.config/systemd/user/clipman.service @@ -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 + diff --git a/home/.config/systemd/user/default.target.wants/systemd-lock-handler.service b/home/.config/systemd/user/default.target.wants/systemd-lock-handler.service new file mode 120000 index 0000000..b7c9720 --- /dev/null +++ b/home/.config/systemd/user/default.target.wants/systemd-lock-handler.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/systemd-lock-handler.service \ No newline at end of file diff --git a/home/.config/systemd/user/dunst.service b/home/.config/systemd/user/dunst.service deleted file mode 100644 index 7a67667..0000000 --- a/home/.config/systemd/user/dunst.service +++ /dev/null @@ -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 diff --git a/home/.config/systemd/user/eww-window@.service b/home/.config/systemd/user/eww-window@.service index 161113d..341cf31 100644 --- a/home/.config/systemd/user/eww-window@.service +++ b/home/.config/systemd/user/eww-window@.service @@ -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 diff --git a/home/.config/systemd/user/eww.service b/home/.config/systemd/user/eww.service index 185beb8..56fe6c3 100644 --- a/home/.config/systemd/user/eww.service +++ b/home/.config/systemd/user/eww.service @@ -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 diff --git a/home/.config/systemd/user/gh-notification.service b/home/.config/systemd/user/gh-notification.service index 4d6ec65..c72e9fe 100644 --- a/home/.config/systemd/user/gh-notification.service +++ b/home/.config/systemd/user/gh-notification.service @@ -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 + diff --git a/home/.config/systemd/user/gh-notification.timer b/home/.config/systemd/user/gh-notification.timer index b7e8ff4..8350a3c 100644 --- a/home/.config/systemd/user/gh-notification.timer +++ b/home/.config/systemd/user/gh-notification.timer @@ -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 + diff --git a/home/.config/systemd/user/gpg-agent.service.d/override.conf b/home/.config/systemd/user/gpg-agent.service.d/override.conf new file mode 100644 index 0000000..4a95f51 --- /dev/null +++ b/home/.config/systemd/user/gpg-agent.service.d/override.conf @@ -0,0 +1,2 @@ +[Service] +Environment="GNUPGHOME=%h/.local/share/gnupg" diff --git a/home/.config/systemd/user/wm-ready.target.wants/battery-notification.timer b/home/.config/systemd/user/graphical-session.target.wants/battery-notification.timer similarity index 100% rename from home/.config/systemd/user/wm-ready.target.wants/battery-notification.timer rename to home/.config/systemd/user/graphical-session.target.wants/battery-notification.timer diff --git a/home/.config/systemd/user/wm-ready.target.wants/clipman.service b/home/.config/systemd/user/graphical-session.target.wants/clipman.service similarity index 100% rename from home/.config/systemd/user/wm-ready.target.wants/clipman.service rename to home/.config/systemd/user/graphical-session.target.wants/clipman.service diff --git a/home/.config/systemd/user/wm-ready.target.wants/eww-window@bar0.service b/home/.config/systemd/user/graphical-session.target.wants/eww-window@bar0.service similarity index 100% rename from home/.config/systemd/user/wm-ready.target.wants/eww-window@bar0.service rename to home/.config/systemd/user/graphical-session.target.wants/eww-window@bar0.service diff --git a/home/.config/systemd/user/wm-ready.target.wants/eww.service b/home/.config/systemd/user/graphical-session.target.wants/eww.service similarity index 100% rename from home/.config/systemd/user/wm-ready.target.wants/eww.service rename to home/.config/systemd/user/graphical-session.target.wants/eww.service diff --git a/home/.config/systemd/user/wm-ready.target.wants/gh-notification.timer b/home/.config/systemd/user/graphical-session.target.wants/gh-notification.timer similarity index 100% rename from home/.config/systemd/user/wm-ready.target.wants/gh-notification.timer rename to home/.config/systemd/user/graphical-session.target.wants/gh-notification.timer diff --git a/home/.config/systemd/user/graphical-session.target.wants/hypridle.service b/home/.config/systemd/user/graphical-session.target.wants/hypridle.service new file mode 120000 index 0000000..55da293 --- /dev/null +++ b/home/.config/systemd/user/graphical-session.target.wants/hypridle.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/hypridle.service \ No newline at end of file diff --git a/home/.config/systemd/user/wayland-session.target.wants/hyprpaper.service b/home/.config/systemd/user/graphical-session.target.wants/hyprpaper.service similarity index 100% rename from home/.config/systemd/user/wayland-session.target.wants/hyprpaper.service rename to home/.config/systemd/user/graphical-session.target.wants/hyprpaper.service diff --git a/home/.config/systemd/user/wm-ready.target.wants/policykit-agent.service b/home/.config/systemd/user/graphical-session.target.wants/policykit-agent.service similarity index 100% rename from home/.config/systemd/user/wm-ready.target.wants/policykit-agent.service rename to home/.config/systemd/user/graphical-session.target.wants/policykit-agent.service diff --git a/home/.config/systemd/user/graphical-session.target.wants/swaync.service b/home/.config/systemd/user/graphical-session.target.wants/swaync.service new file mode 120000 index 0000000..9c6a60f --- /dev/null +++ b/home/.config/systemd/user/graphical-session.target.wants/swaync.service @@ -0,0 +1 @@ +/usr/lib/systemd/user/swaync.service \ No newline at end of file diff --git a/home/.config/systemd/user/wayland-session.target.wants/wl-gammarelay.service b/home/.config/systemd/user/graphical-session.target.wants/wl-gammarelay.service similarity index 100% rename from home/.config/systemd/user/wayland-session.target.wants/wl-gammarelay.service rename to home/.config/systemd/user/graphical-session.target.wants/wl-gammarelay.service diff --git a/home/.config/systemd/user/hypridle.service b/home/.config/systemd/user/hypridle.service deleted file mode 100644 index f4721b5..0000000 --- a/home/.config/systemd/user/hypridle.service +++ /dev/null @@ -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 diff --git a/home/.config/systemd/user/hypridle.service.d/override.conf b/home/.config/systemd/user/hypridle.service.d/override.conf new file mode 100644 index 0000000..e639392 --- /dev/null +++ b/home/.config/systemd/user/hypridle.service.d/override.conf @@ -0,0 +1,2 @@ +[Service] +Slice=background-graphical.slice diff --git a/home/.config/systemd/user/hyprland-monitord.service b/home/.config/systemd/user/hyprland-monitord.service index 3b2836d..90bcdfc 100644 --- a/home/.config/systemd/user/hyprland-monitord.service +++ b/home/.config/systemd/user/hyprland-monitord.service @@ -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 diff --git a/home/.config/systemd/user/hyprlock.service b/home/.config/systemd/user/hyprlock.service index 7e408c9..3140220 100644 --- a/home/.config/systemd/user/hyprlock.service +++ b/home/.config/systemd/user/hyprlock.service @@ -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 + diff --git a/home/.config/systemd/user/hyprpaper.service b/home/.config/systemd/user/hyprpaper.service deleted file mode 100644 index ae0545e..0000000 --- a/home/.config/systemd/user/hyprpaper.service +++ /dev/null @@ -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 diff --git a/home/.config/systemd/user/hyprpaper.service.d/override.conf b/home/.config/systemd/user/hyprpaper.service.d/override.conf new file mode 100644 index 0000000..ac8a77e --- /dev/null +++ b/home/.config/systemd/user/hyprpaper.service.d/override.conf @@ -0,0 +1,3 @@ +[Service] +ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "Hyprland" "" +Slice=background-graphical.slice diff --git a/home/.config/systemd/user/policykit-agent.service b/home/.config/systemd/user/policykit-agent.service index 2523617..5f7d9c7 100644 --- a/home/.config/systemd/user/policykit-agent.service +++ b/home/.config/systemd/user/policykit-agent.service @@ -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 diff --git a/home/.config/systemd/user/swaync-inhibit-lock.service b/home/.config/systemd/user/swaync-inhibit-lock.service index 8361f71..fab3e5d 100644 --- a/home/.config/systemd/user/swaync-inhibit-lock.service +++ b/home/.config/systemd/user/swaync-inhibit-lock.service @@ -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 + diff --git a/home/.config/systemd/user/swaync-inhibit-unlock.service b/home/.config/systemd/user/swaync-inhibit-unlock.service index 6b36c81..1497e13 100644 --- a/home/.config/systemd/user/swaync-inhibit-unlock.service +++ b/home/.config/systemd/user/swaync-inhibit-unlock.service @@ -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 diff --git a/home/.config/systemd/user/swaync.service b/home/.config/systemd/user/swaync.service deleted file mode 100644 index e26d41e..0000000 --- a/home/.config/systemd/user/swaync.service +++ /dev/null @@ -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 diff --git a/home/.config/systemd/user/swaync.service.d/override.conf b/home/.config/systemd/user/swaync.service.d/override.conf new file mode 100644 index 0000000..e639392 --- /dev/null +++ b/home/.config/systemd/user/swaync.service.d/override.conf @@ -0,0 +1,2 @@ +[Service] +Slice=background-graphical.slice diff --git a/home/.config/systemd/user/wayland-session.target b/home/.config/systemd/user/wayland-session.target deleted file mode 100644 index e7b42ca..0000000 --- a/home/.config/systemd/user/wayland-session.target +++ /dev/null @@ -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 diff --git a/home/.config/systemd/user/wayland-session.target.wants/hypridle.service b/home/.config/systemd/user/wayland-session.target.wants/hypridle.service deleted file mode 120000 index 0646888..0000000 --- a/home/.config/systemd/user/wayland-session.target.wants/hypridle.service +++ /dev/null @@ -1 +0,0 @@ -/home/itsdrike/.config/systemd/user/hypridle.service \ No newline at end of file diff --git a/home/.config/systemd/user/wayland-session.target.wants/hyprland-monitord.service b/home/.config/systemd/user/wayland-session@hyprland.desktop.target.wants/hyprland-monitord.service similarity index 100% rename from home/.config/systemd/user/wayland-session.target.wants/hyprland-monitord.service rename to home/.config/systemd/user/wayland-session@hyprland.desktop.target.wants/hyprland-monitord.service diff --git a/home/.config/systemd/user/wl-gammarelay.service b/home/.config/systemd/user/wl-gammarelay.service index 86e8ff7..2a026fb 100644 --- a/home/.config/systemd/user/wl-gammarelay.service +++ b/home/.config/systemd/user/wl-gammarelay.service @@ -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 diff --git a/home/.config/systemd/user/wm-ready.target b/home/.config/systemd/user/wm-ready.target deleted file mode 100644 index 33ae807..0000000 --- a/home/.config/systemd/user/wm-ready.target +++ /dev/null @@ -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 diff --git a/home/.config/uwsm/default-id b/home/.config/uwsm/default-id new file mode 100644 index 0000000..1dd96b8 --- /dev/null +++ b/home/.config/uwsm/default-id @@ -0,0 +1 @@ +hyprland-uwsm.desktop diff --git a/home/.config/uwsm/env b/home/.config/uwsm/env new file mode 100644 index 0000000..545b154 --- /dev/null +++ b/home/.config/uwsm/env @@ -0,0 +1,3 @@ +#!/bin/bash + +source "$HOME"/.config/shell/environment diff --git a/install_gui.sh b/install_gui.sh index a799dc9..47ec471 100755 --- a/install_gui.sh +++ b/install_gui.sh @@ -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 \ diff --git a/root/etc/greetd/config.toml b/root/etc/greetd/config.toml index 3bb1a06..2ac1c1a 100644 --- a/root/etc/greetd/config.toml +++ b/root/etc/greetd/config.toml @@ -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]