Compare commits

..

No commits in common. "ee9469230fd33b73a5689c82527131ea0967899f" and "510d01ef47fd14ab2ad422e5a05e1840279abdbd" have entirely different histories.

48 changed files with 139 additions and 118 deletions

View file

@ -47,7 +47,7 @@ listener {
# On low battery, or after HibernateDelaySec (/etc/systemd/sleep.conf), the system
# will enter full hibernation
listener {
timeout = 600
timeout = 600,
on-timeout = systemctl suspend-then-hibernate
}

View file

@ -1,4 +1,11 @@
exec-once = uwsm finalize
exec-once = uwsm app vesktop
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
# vi: ft=hyprlang

View file

@ -23,22 +23,23 @@ bind = SUPER_SHIFT, S, layoutmsg, togglesplit
# ### PROGRAMS ###
# ################
bind = SUPER, R, exec, uwsm app -- $(uwsm app -- wofi --show drun --define=drun-print_desktop_file=true)
bind = SUPER_SHIFT, V, exec, uwsm app -- clipman pick -t wofi
bind = SUPER, R, exec, wofi --show drun
bind = SUPER_SHIFT, Return, exec, wofi --show run
bind = SUPER_SHIFT, V, exec, clipman pick -t wofi
bind = SUPER, Return, exec, uwsm app -- kitty
bind = SUPER, X, exec, uwsm app -- pcmanfm-qt
bind = SUPER, B, exec, uwsm app -- firefox
bind = SUPER, C, exec, uwsm app -- qalculate-gtk
bind = , XF86Calculator, exec, uwsm app -- qalculate-gtk
bind = SUPER, Return, exec, kitty
bind = SUPER, X, exec, pcmanfm-qt
bind = SUPER, B, exec, firefox
bind = SUPER, C, exec, qalculate-gtk
bind = , XF86Calculator, exec, qalculate-gtk
# #####################
# ### DE/WM CONTROL ###
# #####################
bind = SUPER_SHIFT, Q, exec, uwsm app -- menuquit
bind = SUPER_SHIFT, Q, exec, menuquit
bind = SUPER_CTRL, L, exec, loginctl lock-session
bind = SUPER_SHIFT, L, exec, uwsm app -- wlogout -p layer-shell
bind = SUPER_SHIFT, L, exec, wlogout -p layer-shell
bind = SUPER_SHIFT, T, exec, toggle-idle
# ###################
@ -62,8 +63,8 @@ bind = SUPER_ALT, Print, exec, ocr && notify-send "OCR" "Text copied to clipboar
# XF86Favorites key for recording
# (don't question me, I had it free)
bind = , 164, exec, uwsm app -- quick-record --notify toggle
bind = SUPER, 164, exec, uwsm -- app quick-record toggle
bind = , 164, exec, quick-record --notify toggle
bind = SUPER, 164, exec, quick-record toggle
# #####################
# ### NOTIFICATIONS ###
@ -282,7 +283,7 @@ bind = CTRL, F10, pass, ^(com\.obsproject\.Studio)$
# Isolating group to prevent keybind capturing (for games etc)
# SUPER + End
bind = SUPER, End, exec, hyprctl dispatch submap isolate && notify-send "Keybind isolation" "Keybind isolation on (Super + END to disable)"
bind = SUPER, End, exec, hyprctl dispatch submap isolate && notify-send "Keybind isolation" "Keybind isolation on"
submap = isolate
bind = SUPER, End, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off"
submap = reset

View file

@ -5,5 +5,4 @@ MONITOR_ID="$1"
MONITOR_NAME="$2"
MONITOR_DESCRIPTION="$3"
systemctl --user start eww-window@bar1.service
#eww open bar1
eww open bar1

View file

@ -9,15 +9,11 @@ if [ "$MONITORS_AMT" -lt 1 ]; then
fi
if [ "$MONITORS_AMT" -eq 2 ]; then
systemctl --user start eww-window@bar1.service
#eww open bar1
eww open bar1
fi
if [ "$MONITORS_AMT" -eq 1 ]; then
if eww active-windows | grep "bar1"; then
systemctl --user stop eww-window@bar1.service
#eww close bar1
fi
eww active-windows | grep "bar1" && eww close bar1
fi
if [ "$MONITORS_AMT" -gt 2 ]; then

View file

@ -3,5 +3,4 @@ set -euo pipefail
MONITOR_NAME="$1"
systemctl --user stop eww-window@bar1.service
# eww close bar1
eww close bar1

View file

@ -8,10 +8,11 @@
# which means the XDG definitions will be ignored anyway, and
# defining them may break programs when root is actually logged in.
# Add all folders in ~/.local/bin into PATH
# Some window managers require this line to be in profile not in .zshenv
if [ -d "$HOME/.local/bin" ]; then
PATH+=":$(find -L ~/.local/bin -type d | tr '\n' ':' | sed 's/:$//')"
PATH+=":${$(find -L ~/.local/bin -type d | tr '\n' ':')%%:}"
fi
if [ -d "$HOME/.local/share/npm/bin" ]; then
@ -96,7 +97,6 @@ export NODE_REPL_HISTORY="$XDG_DATA_HOME/node_repl_history"
export DOTNET_CLI_HOME="$XDG_DATA_HOME/dotnet"
export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME/jupyter"
export RYE_HOME="$XDG_CONFIG_HOME/rye"
export OMNISHARPHOME="$XDG_CONFIG_HOME"/omnisharp
# Theming
export GTK_THEME="Tokyonight-Dark"

View file

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

View file

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

View file

@ -1,13 +1,10 @@
[Unit]
Description=Clipman clipboard manager
After=graphical-session.target
Requires=graphical-session.target
Description="Clipboard clipboard manager"
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=graphical-session.target
WantedBy=wm-ready.target

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,10 @@
[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

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

View file

@ -1,14 +1,10 @@
[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
Description="Daemon watching for Hyprland monitor updates"
PartOf=graphical-session.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
WantedBy=wayland-session.target

View file

@ -1,6 +1,6 @@
[Unit]
Description=Run hyprlock screenlocker on lock dbus event (using systemd-lock-handler)
Requisite=graphical-session.target
Requisite=wm-ready.target
# if hyprlock exists cleanly, enter a 'unlock' target
OnSuccess=unlock.target
# When lock.target is stopped, stop this unit too
@ -9,10 +9,9 @@ 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

@ -0,0 +1,12 @@
[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

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

View file

@ -1,12 +1,10 @@
[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=graphical-session.target
WantedBy=wm-ready.target

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,6 @@
[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

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

View file

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

View file

@ -0,0 +1,7 @@
[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

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

View file

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

View file

@ -1,12 +1,18 @@
#!/usr/bin/env bash
set -euo pipefail
serv="hypridle.service"
idleprog="hypridle" # or swayidle
if systemctl --user is-active --quiet "$serv"; then
systemctl --user stop "$serv"
notify-send "Idle-Toggle" "Idle timeouts disabled"
else
systemctl --user start "$serv"
pid="$(pidof "$idleprog" || true)"
if [ -n "$pid" ]; then
# is process suspended?
if ps -o stat= -p "$pid" | grep T >/dev/null; then
kill -CONT "$pid"
notify-send "Idle-Toggle" "Idle timeouts enabled"
else
kill -STOP "$pid"
notify-send "Idle-Toggle" "Idle timeouts disabled"
fi
else
notify-send "Idle-Toggle" "$idleprog not running!"
fi

View file

@ -99,8 +99,7 @@ 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 \
uwsm
wl-clipboard xdg-desktop-portal xdg-desktop-portal-gtk qt5-wayland qt6-wayland wev wl-gammarelay-rs wdisplays
# 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 uwsm start hyprland.desktop"
command = "/usr/local/bin/greetd-session-wrapper Hyprland"
# The default session, also known as the greeter.
[default_session]