From 2f030a5cd44fac971b669f2cda4cc9a699001fc5 Mon Sep 17 00:00:00 2001 From: jao Date: Tue, 26 Mar 2024 02:00:50 +0000 Subject: screensaver functions tweaks --- init.el | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/init.el b/init.el index 6965820..b465bfb 100644 --- a/init.el +++ b/init.el @@ -3097,15 +3097,17 @@ (defun jao-screensaver-enabled () (string= (jao-shell-string "xdg-screensaver status") "enabled")) +(defvar jao-screensaver--wid nil) (defun jao-screensaver-toggle () (interactive) - (let ((wid (jao-x11-focused-id))) - (if (jao-screensaver-enabled) - (jao-shell-exec* "xdg-screensaver" "suspend" wid) - (jao-shell-exec* "xdg-screensaver" wid)) - (jao-notify (format "Using '%s'" (jao-x11-window-name wid)) - (format "Screensaver %s" - (jao-shell-string "xdg-screensaver status"))))) + (if (jao-screensaver-enabled) + (let ((wid (jao-x11-focused-id))) + (setq jao-screensaver--wid wid) + (jao-shell-exec* t "xdg-screensaver" "suspend" wid)) + (jao-shell-exec* t "xdg-screensaver" "resume" jao-screensaver--wid) + (setq jao-screensaver--wid nil)) + (jao-notify (format "Screensaver %s" + (jao-shell-string "xdg-screensaver status")))) (jao-shell-def-exec jao-xlock-screen "xdg-screensaver" "activate") (jao-shell-def-exec jao-suspend "sudo" "systemctl" "suspend") @@ -3121,7 +3123,9 @@ ["Sleep" ("l" "lock screen" jao-lock-screen) ("z" "sleep" jao-suspend) - ("u" "enable/disable screensaver" jao-screensaver-toggle) + ("u" (lambda () + (if (jao-screensaver-enabled) "suspend screensaver" "resume screensaver")) + jao-screensaver-toggle) ("poof" "power-off" jao-poweroff)]) ;;;; X clipboard -- cgit v1.2.3