diff options
| author | Jakob L. Kreuze | 2021-01-28 20:33:06 -0500 |
|---|---|---|
| committer | Jakob L. Kreuze | 2021-01-28 20:33:06 -0500 |
| commit | bc2803ba9a34117d294b252e5f6fde211023fa39 (patch) | |
| tree | 68f935d10c537e1579ef363135fbc822e25412d4 | |
| parent | 815224d96512936a3d6f3ba259e5ab0349bb9f96 (diff) | |
Add keybinding for starting signald/pidgin.
| -rw-r--r-- | lisp/window-manager.el | 28 |
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) |