From 426e59bcd31aaee6bd75ca6a3a117692f6d7ab64 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Sat, 25 Oct 2025 18:16:42 +0200 Subject: [PATCH 1/2] Update toggle notifs & idle scripts + add to walker --- home/.config/elephant/menus/hyprland.toml | 24 ++++++++- home/.config/walker/config.toml | 21 ++++++++ .../bin/scripts/gui/hyprland/toggle-idle | 53 ++++++++++++++++-- .../bin/scripts/gui/toggle-notifications | 54 +++++++++++++++++-- 4 files changed, 143 insertions(+), 9 deletions(-) diff --git a/home/.config/elephant/menus/hyprland.toml b/home/.config/elephant/menus/hyprland.toml index 198189c..21f3802 100644 --- a/home/.config/elephant/menus/hyprland.toml +++ b/home/.config/elephant/menus/hyprland.toml @@ -13,6 +13,26 @@ icon = "weather-clear-night" actions = { "" = "hyprctl hyprsunset temperature 2700" } [[entries]] -text = "Zoom Toggle" +text = "Idle timeouts (hypridle)" +icon = "" +async = "printf 'Idle timeouts (hypridle): %s' $(toggle-idle check && echo 'ON' || echo 'OFF')" + +[entries.actions] +"toggle" = "toggle-idle" +"start" = "toggle-idle on" +"stop" = "toggle-idle off" + +[[entries]] +text = "Notifications (swaync)" +icon = "" +async = "printf 'Notifications (swaync): %s' $(toggle-notifications check && echo 'ON' || echo 'OFF')" + +[entries.actions] +"toggle" = "toggle-notifications" +"start" = "toggle-notifications on" +"stop" = "toggle-notifications off" + +[[entries]] +text = "Cursor zoom" icon = "zoom-in" -actions = { "" = "hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float) | if . > 1 then 1 else 1.5 end')" } +actions = { "toggle" = "hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float) | if . > 1 then 1 else 1.5 end')" } diff --git a/home/.config/walker/config.toml b/home/.config/walker/config.toml index 0c5b4a1..6b718d0 100644 --- a/home/.config/walker/config.toml +++ b/home/.config/walker/config.toml @@ -156,3 +156,24 @@ clipboard = [ { action = "toggle_images", global = true, label = "toggle images", bind = "ctrl i", after = "AsyncClearReload" }, { action = "edit", bind = "ctrl o" }, ] + +"menus:system" = [ + { action = "lock", bind = "Return" }, + { action = "suspend", bind = "Return" }, + { action = "relaunch", bind = "Return" }, + { action = "restart", bind = "Return" }, + { action = "shutdown", bind = "Return" }, +] + +"menus:screenshots" = [ + { action = "to_clipboard", default = true, bind = "Return" }, + { action = "to_file", bind = "f" }, + { action = "to_swappy", bind = "e" }, + { action = "cp_use", default = true, bind = "Return" }, +] + +"menus:hyprland" = [ + { action = "toggle", default = true, bind = "Return" }, + { action = "start", bind = "u" }, + { action = "stop", bind = "d" }, +] diff --git a/home/.local/bin/scripts/gui/hyprland/toggle-idle b/home/.local/bin/scripts/gui/hyprland/toggle-idle index ecc1361..c237f8a 100755 --- a/home/.local/bin/scripts/gui/hyprland/toggle-idle +++ b/home/.local/bin/scripts/gui/hyprland/toggle-idle @@ -1,12 +1,59 @@ #!/usr/bin/env bash set -euo pipefail +usage() { + echo "Usage: $0 [on|off|toggle|check]" >&2 +} + serv="hypridle.service" -if systemctl --user is-active --quiet "$serv"; then +# Returns 0 if the service is active (idle timeouts enabled), 1 otherwise +idle_enabled() { + systemctl --user is-active --quiet "$serv" +} + +mode="toggle" + +if [ "$#" -ge 1 ]; then + if [ "$#" -gt 1 ]; then + echo "Invalid usage" >&2 + usage + exit 2 + fi + + case "$1" in + --help) + usage + exit 0 + ;; + on | off | toggle) + mode="$1" + ;; + check) + if idle_enabled; then + exit 0 + else + exit 1 + fi + ;; + *) + echo "Invalid argument" >&2 + usage + exit 2 + ;; + esac +fi + +# Determine new mode if toggling +if [ "$mode" = "toggle" ]; then + mode="$(idle_enabled && echo 'off' || echo 'on')" +fi + +# Apply the mode +if [ "$mode" = "off" ]; then systemctl --user stop "$serv" - notify-send "Idle-Toggle" "Idle timeouts disabled" + notify-send "Idle-Toggle" "Idle timeouts disabled" -h string:x-canonical-private-synchronous:idle-toggle else systemctl --user start "$serv" - notify-send "Idle-Toggle" "Idle timeouts enabled" + notify-send "Idle-Toggle" "Idle timeouts enabled" -h string:x-canonical-private-synchronous:idle-toggle fi diff --git a/home/.local/bin/scripts/gui/toggle-notifications b/home/.local/bin/scripts/gui/toggle-notifications index b3d3313..5beb70e 100755 --- a/home/.local/bin/scripts/gui/toggle-notifications +++ b/home/.local/bin/scripts/gui/toggle-notifications @@ -1,10 +1,56 @@ -#!/bin/sh +#!/usr/bin/env bash +set -euo pipefail -if [ "$(dunstctl is-paused)" = "false" ]; then +usage() { + echo "$0 [on/off/toggle/check]" >&2 +} + +# Returns 0 if notifications are enabled, 1 if DND is active +notifs_enabled() { + [ "$(swaync-client --get-dnd)" = "false" ] +} + +mode="toggle" + +if [ "$#" -ge 1 ]; then + if [ "$#" -gt 1 ]; then + echo "Invalid usage" >&2 + usage + exit 2 + fi + + case "$1" in + --help) + usage + exit 0 + ;; + on | off | toggle) + mode="$1" + ;; + check) + if notifs_enabled; then + exit 0 + else + exit 1 + fi + ;; + *) + echo "Invalid argument" >&2 + usage + exit 2 + ;; + esac +fi + +if [ "$mode" = "toggle" ]; then + mode="$(notifs_enabled && echo 'off' || echo 'on')" +fi + +if [ "$mode" = "off" ]; then notify-send "Notifications" "Pausing notifications..." -h string:x-canonical-private-synchronous:notif-pause sleep 2 - dunstctl set-paused true + swaync-client --dnd-on >/dev/null else - dunstctl set-paused false + swaync-client --dnd-off >/dev/null notify-send "Notifications" "Notifications enabled" -h string:x-canonical-private-synchronous:notif-pause fi From e9179dc509e2d8b0cf669a16f7a82adb79ed5f6a Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Sat, 25 Oct 2025 18:30:42 +0200 Subject: [PATCH 2/2] Add some more tuis --- install_gui.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install_gui.sh b/install_gui.sh index e857e32..0f90d83 100755 --- a/install_gui.sh +++ b/install_gui.sh @@ -99,12 +99,12 @@ paru -S --noconfirm --needed hyprland xdg-desktop-portal-hyprland # Audio paru -S --noconfirm --needed \ pipewire wireplumber pipewire-alsa pipewire-pulse pipewire-jack \ - alsa-utils alsa-firmware alsa-plugins rtkit pulsemixer + alsa-utils alsa-firmware alsa-plugins rtkit pulsemixer wiremix # Other Utilities paru -S --noconfirm --needed \ nm-connection-editor network-manager-applet ffmpegthumbnailer hyfetch fastfetch \ - tesseract tesseract-data-eng nvtop + tesseract tesseract-data-eng nvtop lazydocker lazygit # Themes (Qt theme, GTK theme, icons theme, cursor theme) paru -S --noconfirm --needed \