summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob L. Kreuze2021-01-28 20:33:06 -0500
committerJakob L. Kreuze2021-01-28 20:33:06 -0500
commitbc2803ba9a34117d294b252e5f6fde211023fa39 (patch)
tree68f935d10c537e1579ef363135fbc822e25412d4
parent815224d96512936a3d6f3ba259e5ab0349bb9f96 (diff)
Add keybinding for starting signald/pidgin.
-rw-r--r--lisp/window-manager.el28
1 files changed, 28 insertions, 0 deletions
diff --git a/lisp/window-manager.el b/lisp/window-manager.el
index ce12248..e607450 100644
--- a/lisp/window-manager.el
+++ b/lisp/window-manager.el
@@ -9,6 +9,33 @@
;;; [1]: https://github.com/ch11ng/exwm
;;;
+(defmacro save-workspace-excursion (&rest body)
+ (let ((idx (gensym "idx")))
+ `(let ((,idx exwm-workspace-current-index))
+ (unwind-protect
+ (progn ,@body)
+ (exwm-workspace-switch ,idx)))))
+
+(defun start-signald ()
+ "Starts signald independently of Pidgin."
+ (let ((old-dir default-directory))
+ (with-temp-buffer
+ (cd "/sudo::/home/jakob/Code/signald")
+ (shell-command "mkdir -p /var/run/signald")
+ (shell-command "chown jakob: /var/run/signald")
+ (cd "/home/jakob/Code/signald")
+ (start-process "signald" "*signald*" "/home/jakob/Code/signald/build/install/signald/bin/signald"))
+ (cd old-dir)))
+
+(defun setup-pidgin ()
+ "Starts Pidgin on the leftmost monitor."
+ (interactive)
+ (save-workspace-excursion
+ (start-signald)
+ (exwm-workspace-switch (elt exwm-randr-workspace-order 0))
+ (split-window-right 40)
+ (start-process-shell-command "Pidgin" nil "pidgin")))
+
(use-package exwm
:config
(exwm-enable)
@@ -152,6 +179,7 @@ the same frame, otherwise call out to `exwm-workspace-switch'."
([?\s-f] . (lambda ()
(interactive)
(start-process "" nil "firefox")))
+ ([?\s-P] . setup-pidgin)
(,(kbd "s-<return>") . shell-same-window)
([?\s-\"] . eyebrowse-close-window-config)

© 2015 - 2026 Jakob L. Kreuze