Add screen locking to my stumpwm config

This commit is contained in:
Tom Willemse 2023-03-16 22:13:22 -07:00
parent 05ba6544e2
commit 7d079e8973

View file

@ -5,6 +5,27 @@
(set-prefix-key (kbd "s-x")) (set-prefix-key (kbd "s-x"))
(defvar *screen-locking-hook* nil
"Hook that gets called right before the screen gets locked.")
(defvar *screen-unlocked-hook* nil
"Hook that gets called right after the screen is unlocked.")
(defun run-screen-unlocked-hook (process)
"Run `*screen-unlocked-hook* if PROCESS' status is `:exited'."
(when (eq (sb-ext:process-status process) :exited)
(run-hook *screen-unlocked-hook*)))
(defcommand lock-screen () ()
"Lock the screen using i3lock.
Run `*screen-locking-hook*' before locking it and run `*screen-unlocked-hook*'
after it has been unlocked."
(run-hook *screen-locking-hook*)
(sb-ext:run-program
"/usr/bin/i3lock" '("--nofork" "--color=000000")
:wait nil
:status-hook #'run-screen-unlocked-hook))
(defcommand raise-browser () () (defcommand raise-browser () ()
"Open or show my browser" "Open or show my browser"
(run-or-raise "firefox" '(:class "firefox"))) (run-or-raise "firefox" '(:class "firefox")))
@ -17,6 +38,7 @@
"Open or show my terminal" "Open or show my terminal"
(run-or-raise "kitty" '(:class "kitty"))) (run-or-raise "kitty" '(:class "kitty")))
(define-key *top-map* (kbd "C-M-l") "lock-screen")
(define-key *top-map* (kbd "s-b") "raise-browser") (define-key *top-map* (kbd "s-b") "raise-browser")
(define-key *top-map* (kbd "s-e") "raise-emacs") (define-key *top-map* (kbd "s-e") "raise-emacs")
(define-key *top-map* (kbd "s-t") "raise-terminal") (define-key *top-map* (kbd "s-t") "raise-terminal")