Major rewrite (new install)

This commit is contained in:
ItsDrike 2025-09-02 22:38:05 +02:00
parent 4e89803237
commit e78b421565
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
158 changed files with 2542 additions and 5238 deletions

View file

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

View file

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

View file

@ -0,0 +1,34 @@
[Unit]
Description=Clipboard history "manager" for Wayland
After=graphical-session.target
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/wl-paste --watch /usr/bin/cliphist -max-items 10 store
Restart=on-failure
# Use the background slice rather than the session slice. Cliphist isn't
# a fundamental part of the graphical session experience.
Slice=background-graphical.slice
CPUQuota=2%
# Cliphist allows storng up to 5 MB per item entries, with 10 entries
# limit, this means 50 MB. Annoyingly, it seems to load all entries
# even when it's just writing a single new one (during `cliphist store`),
# so we need to account for this. See:
# https://github.com/sentriz/cliphist/issues/155 to understand
#
# If the above issue gets addressed, these limits can likely be lowered.
MemoryHigh=60M
MemoryMax=120M
# Because of the issue above, significantly increase the likelihood of
# this process getting terminated during OOM I don't really care that
# much about a clipboard manager staying up anyways.
OOMScoreAdjust=300
[Install]
WantedBy=graphical-session.target

View file

@ -1,13 +0,0 @@
[Unit]
Description=Clipman clipboard manager
After=graphical-session.target
Requires=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=graphical-session.target

View file

@ -0,0 +1,14 @@
[Service]
# Place dconf in session.slice instead of the default app.slice.
#
# Do not use session-graphical.slice here: it is tied to
# graphical-session.target, which dconf should not have to wait for,
# since it can be used outside of graphical sessions as well.
#
# Some compositors read certain gsettings values early in their
# initialization. These compositors are themselves a requirement for
# graphical-session.target. If dconf were in session-graphical.slice,
# systemd would delay starting it until graphical-session.target was
# reached, meaning dconf would not respond in time and compositor
# startup might stall, or even fail.
Slice=session.slice

View file

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

View file

@ -0,0 +1,15 @@
[Unit]
Description=Elephant data provider and executor backend for application launchers
Documentation=https://github.com/abenz1267/elephant
After=graphical-session.target
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/elephant
Restart=on-failure
Slice=session-graphical.slice
[Install]
WantedBy=graphical-session.target

View file

@ -1,18 +0,0 @@
[Unit]
Description=Open %I eww window
After=graphical-session.target
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
RemainAfterExit=true
Restart=on-failure
RestartSec=3s
Slice=background-graphical.slice
[Install]
WantedBy=graphical-session.target

View file

@ -1,14 +0,0 @@
[Unit]
Description=Eww daemon
After=graphical-session.target
After=pipewire.service
Requires=graphical-session.target
Requires=pipewire.service
[Service]
ExecStart=/usr/bin/eww daemon --no-daemonize
Restart=always
Slice=background-graphical.slice
[Install]
WantedBy=graphical-session.target

View file

@ -1,14 +0,0 @@
[Unit]
Description=Show unread GitHub notifications
Requires=graphical-session.target
[Service]
Type=oneshot
ExecStart=%h/.local/bin/scripts/gui/gh-notification -vv
RemainAfterExit=false
Restart=on-failure
Slice=background-graphical.slice
[Install]
WantedBy=graphical-session.target

View file

@ -1,13 +0,0 @@
[Unit]
Description=Timer for GitHub notification sendout
After=graphical-session.target
Requires=graphical-session.target
PartOf=graphical-session.target
[Timer]
OnUnitActiveSec=1m
Unit=gh-notification.service
[Install]
WantedBy=graphical-session.target

View file

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

View file

@ -1 +0,0 @@
/home/itsdrike/.config/systemd/user/battery-notification.timer

View file

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

View file

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

View file

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

View file

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

View file

@ -1 +0,0 @@
/home/itsdrike/.config/systemd/user/gh-notification.timer

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,2 +1,7 @@
[Service]
Slice=background-graphical.slice
Slice=session-graphical.slice
# These values are experimental, your mileage may vary
CPUQuota=10%
MemoryHigh=10M
MemoryMax=50M

View file

@ -1,14 +0,0 @@
[Unit]
Description=Daemon watching for Hyprland monitor updates
After=wayland-session@hyprland.desktop.target
After=eww.service
Requires=eww.service
Requires=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@hyprland.desktop.target

View file

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

View file

@ -1,3 +1,7 @@
[Service]
ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "Hyprland" ""
Slice=background-graphical.slice
Slice=session-graphical.slice
# These values are experimental, your mileage may vary
CPUQuota=2%
MemoryHigh=50M
MemoryMax=100M

View file

@ -0,0 +1,7 @@
[Service]
Slice=session-graphical.slice
# These values are experimental, your mileage may vary
CPUQuota=2%
MemoryHigh=3M
MemoryMax=15M

View file

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

View file

@ -1 +0,0 @@
/home/itsdrike/.config/systemd/user/swaync-inhibit-lock.service

View file

@ -1,12 +1,12 @@
[Unit]
Description="PolicyKit authentication agent"
Description="Gnome 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
Slice=session-graphical.slice
[Install]
WantedBy=graphical-session.target

View file

@ -1,13 +0,0 @@
[Unit]
Description=Inhibit swaync notifications on lock dbus event (using systemd-lock-handler)
Requisite=swaync.service
Before=lock.target
[Service]
Type=oneshot
ExecStart=/usr/bin/swaync-client --inhibitor-add screen-locker
Slice=background-graphical.slice
[Install]
WantedBy=lock.target

View file

@ -1,12 +0,0 @@
[Unit]
Description=Uninhibit swaync notifications on unlock event
Requisite=swaync.service
After=unlock.target
[Service]
Type=oneshot
ExecStart=/usr/bin/swaync-client --inhibitor-remove screen-locker
Slice=background-graphical.slice
[Install]
WantedBy=unlock.target

View file

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

View file

@ -1 +0,0 @@
/home/itsdrike/.config/systemd/user/swaync-inhibit-unlock.service

View file

@ -0,0 +1,16 @@
[Unit]
Description=Walker - A Modern Application Launcher
Documentation=https://github.com/abenz1267/walker
After=graphical-session.target elephant.service
Requires=elephant.service
PartOf=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/walker --gapplication-service
Restart=on-failure
Slice=session-graphical.slice
[Install]
WantedBy=graphical-session.target

View file

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

View file

@ -0,0 +1,3 @@
[Service]
# Reduce the likelihood of the compositor getting killed during OOM events
OOMScoreAdjust=-100

View file

@ -0,0 +1,4 @@
[Service]
# Guarantee this much minimum memory to Hyprland in case of OOM
# reclaim events, giving it an advantage against being killed.
MemoryLow=100M

View file

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

View file

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