summaryrefslogtreecommitdiffhomepage
path: root/exwm.org
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-10-26 07:11:58 +0100
committerjao <jao@gnu.org>2021-10-26 21:56:37 +0100
commit34288685116e90826aaa5639bafc4b5ef58b2575 (patch)
tree2caa66c91d1a2d840ae642b500921e9c57815ae9 /exwm.org
parenta5d897e9a31a62555ac96a571818edc201123a97 (diff)
downloadelibs-34288685116e90826aaa5639bafc4b5ef58b2575.tar.gz
elibs-34288685116e90826aaa5639bafc4b5ef58b2575.tar.bz2
dehydration: transient is all we need
Diffstat (limited to 'exwm.org')
-rw-r--r--exwm.org190
1 files changed, 103 insertions, 87 deletions
diff --git a/exwm.org b/exwm.org
index 1a7a38d..352c8b0 100644
--- a/exwm.org
+++ b/exwm.org
@@ -326,6 +326,7 @@
(jao-exwm--send-str (format "%sg" page-no)))
(defun jao-zathura-open-doc (&optional file-name page-no height)
+ (interactive)
(let* ((file-name (expand-file-name (or file-name (buffer-file-name))))
(buffer (seq-find `(lambda (b)
(string= ,file-name
@@ -420,6 +421,13 @@
(jao-afio--goto-docs)
(pop-to-buffer b)))
+
+ (let ((viewers ["External viewers"
+ ("z" "open with zathura" jao-zathura-open-doc)
+ ("m" "open with mupdf" jao-exwm-open-with-mupdf)]))
+ (jao-transient-major-mode+ pdf-view viewers)
+ (jao-transient-major-mode+ doc-view viewers))
+
#+end_src
* Firefox helpers
#+begin_src emacs-lisp
@@ -431,92 +439,100 @@
(jao-exwm--send-str "yy")
(switch-to-buffer cb))))
#+end_src
-* Hydras
+* Transients
#+begin_src emacs-lisp
- (major-mode-hydra-define+ (doc-view-mode pdf-view-mode) nil
- ("External"
- (("z" (jao-zathura-open-doc) "open with zathura")
- ("m" jao-exwm-open-with-mupdf "open with mupdf"))))
-
- (defhydra jao-hydra-float (:color blue)
- "Float"
- ("f" exwm-floating-toggle-floating "float")
- ("F" exwm-layout-toggle-fullscreen "full")
- ("tl" (jao-exwm--float-to 20 20))
- ("tr" (jao-exwm--float-to -20 20))
- ("bl" (jao-exwm--float-to 20 -20))
- ("br" (jao-exwm--float-to -20 -20))
- ("c" jao-exwm--center-float)
- ("k" (exwm-floating-move 0 -5) :color red)
- ("j" (exwm-floating-move 0 5) :color red)
- ("h" (exwm-floating-move -5 0) :color red)
- ("l" (exwm-floating-move 5 0) :color red)
- ("K" (exwm-layout-enlarge-window 5) :color red)
- ("J" (exwm-layout-enlarge-window -5) :color red)
- ("H" (exwm-layout-enlarge-window 5 t) :color red)
- ("L" (exwm-layout-enlarge-window -5 t) :color red)
- ("q" nil ""))
-
- (pretty-hydra-define jao-hydra-exwm-misc (:color blue :quit-key "q")
- ("Jump around"
- (("s" jao-slack-download "slack downloads")
- ("h" (jao-buffer-same-mode 'helpful) "helpful buffer")
- ("g" exwm-workspace-switch nil))
- "X-Windows"
- (("f" exwm-floating-toggle-floating "toggle floating window")
- ("F" exwm-layout-toggle-fullscreen "toggle fullscreen mode")
- ("m" exwm-workspace-move-window nil))
- "Zathura"
- (("o" jao-exwm-zathura-goto-org "Go to org notes")
- ("O" (jao-exwm-zathura-goto-org t) "Go to org notes, linking"))
- "Exwm utilities"
- (("k" exwm-input-release-keyboard "release keyboard")
- ("x" exwm-reset "reset exwm"))))
-
- (pretty-hydra-define jao-hydra-exwm
- (global-map "s-w" :color blue :quit-key "q")
- ("Notes"
- (("n" jao-org-notes-open-or-create "capture note")
- ("/" jao-org-notes-open "search notes")
- ("d" jao-exwm-select-pdf "go to doc")
- ("D" jao-open-doc "open to doc"))
- "Packages"
- (("a" jao-term-aptitude "aptitude")
- ("l" jao-exwm-packages "packages")
- ("s-w" jao-hydra-exwm/body nil))
- "Monitors"
- (("p" jao-term-htop "htop")
- ("x" jao-exwm-xmobar "restart xmobar")
- ("X" jao-exwm-kill-xmobar "kill xmobar"))
- "Network"
- (("S" jao-ssh "ssh")
- ("b" jao-exwm-bluetooth "bluetooth")
- ("c" (jao-chats t) "connect chats")
- ("v" jao-mullvad-status "vpn status"))
- "Chats"
- (("t" (jao-buffer-same-mode '(telega-root-mode telega-chat-mode)) "telegram")
- ("T" telega "telegram rooster")
- ("s" (jao-buffer-same-mode 'slack-message-buffer-mode) "slack")
- ("i" (jao-buffer-same-mode '(circe-channel-mode circe-query-mode erc-mode))
- "irc"))
- "Winner"
- (("f" winner-undo "Previous window layout" :color red)
- ("F" winner-redo "Undo window layout restore" :color red))
- "Helpers"
- (("r" org-reveal "org reveal")
- ("w" jao-set-wallpaper "set wallpaper")
- ("W" jao-set-random-wallpaper "set radom wallpaper")
- ("k" jao-kb-toggle "toggle keyboard" :toggle (jao-kb-toggled-p))
- ("M" jao-minibuffer-toggle "toggle minibuffer"
- :toggle jao-minibuffer-enabled-p))))
- #+end_src
+ (defmacro jao-exwm--mover (x y dx dy)
+ `(progn
+ (defun ,(intern (format "jao-exwm-move-%d-%d" dx dy)) ()
+ ,(format "Nudge window by %d, %s" dx dy)
+ (interactive)
+ (exwm-floating-move ,dx ,dy))
+ (defun ,(intern (format "jao-exwm-float-to-%d-%d" x y)) ()
+ ,(format "Move window to %d, %s" x y)
+ (interactive)
+ (jao-exwm--float-to ,x ,y))
+ (defun ,(intern (format "jao-exwm-enlarge-%d-%d" dx dy)) ()
+ ,(format "Enlarge window by %d, %s" dx dy)
+ (interactive)
+ (exwm-layout-enlarge-window ,(if (zerop dx) dy dx) ,(zerop dx)))))
+
+ (jao-exwm--mover 20 -20 0 -5)
+ (jao-exwm--mover 20 20 0 5)
+ (jao-exwm--mover -20 20 5 0)
+ (jao-exwm--mover -20 -20 -5 0)
+ (defun jao-exwm--floating-p () exwm--floating-frame)
+
+ (transient-define-prefix jao-transient-float ()
+ "Operations on EXWM floating windows."
+ :transient-non-suffix 'transient--do-quit-one
+ [["Float"
+ ("f" "float" exwm-floating-toggle-floating)
+ ("F" "full" exwm-layout-toggle-fullscreen)
+ ("c" "center" jao-exwm--center-float :if jao-exwm--floating-p)]
+ ["Slide"
+ :if jao-exwm--floating-p
+ ("k" "up" jao-exwm-move-0--5 :transient t)
+ ("j" "down" jao-exwm-move-0-5 :transient t)
+ ("h" "left" jao-exwm-move--5-0 :transient t)
+ ("l" "right" jao-exwm-move-5-0 :transient t)]
+ ["Resize"
+ :if jao-exwm--floating-p
+ ("K" "up" jao-exwm-enlarge-5-0 :transient t)
+ ("J" "down" jao-exwm-enlarge--5-0 :transient t)
+ ("H" "left" jao-exwm-enlarge-0-5 :transient t)
+ ("L" "right" jao-exwm-enlarge-0--5 :transient t)]
+ ["Nudge"
+ :if jao-exwm--floating-p
+ ("tl" "top-left" jao-exwm-float-to-20-20)
+ ("tr" "top-right" jao-exwm-float-to--20-20)
+ ("bl" "bottom-left" jao-exwm-float-to-20--20)
+ ("br" "bottom-right " jao-exwm-float-to--20--20)]])
+
+ (transient-define-prefix jao-transient-exwm ()
+ "Global operations in EXWM."
+ [["Notes"
+ ("n" "capture note" jao-org-notes-open-or-create)
+ ("/" "search notes" jao-org-notes-open)
+ ("d" "go to doc" jao-exwm-select-pdf)
+ ("D" "open to doc" jao-open-doc)]
+ ["Packages"
+ ("a" "aptitude" jao-term-aptitude)
+ ("l" "packages" jao-exwm-packages)]
+ ["Monitors"
+ ("p" "htop" jao-term-htop)
+ ("x" "restart xmobar" jao-exwm-xmobar)
+ ("X" "kill xmobar" jao-exwm-kill-xmobar)]
+ ["Network"
+ ("S" "ssh" jao-ssh)
+ ("b" "bluetooth" jao-exwm-bluetooth)
+ ("c" "connect chats" jao-all-chats)
+ ("v" "vpn status" jao-mullvad-status)]
+ ["Chats"
+ ("t" "telegram" jao-chats-telega)
+ ("T" "telegram rooster" telega)
+ ("s" "slack" jao-chats-slack)
+ ("i" "irc" jao-chats-irc)]
+ ["Windows"
+ ("f" "Previous window layout" winner-undo :transient t)
+ ("F" "Undo window layout restore" winner-redo :transient t)
+ ("w" "set wallpaper" jao-set-wallpaper)
+ ("W" "set radom wallpaper" jao-set-random-wallpaper)]
+ ["PDFs"
+ :if (lambda () (derived-mode-p 'doc-view-mode 'pdf-view-mode))
+ ("z" "open with zathura" jao-zathura-open-doc)
+ ("m" "open with mupdf" jao-exwm-open-with-mupdf)]
+ ["Helpers"
+ ("r" "org reveal" org-reveal)
+ ("k" (lambda () (concat "keyboard" (when (jao-kb-toggled-p) "*")))
+ jao-kb-toggle)
+ ("M" (lambda () (concat "minibuffer" (when jao-minibuffer-enabled-p "*")))
+ jao-minibuffer-toggle)]])
+
+ #+end_src
* Keybindings
#+begin_src emacs-lisp
(define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
- (define-key exwm-mode-map [?\s-f] #'jao-hydra-float/body)
- (define-key exwm-mode-map [?\s-m] #'jao-hydra-media/body)
- (define-key exwm-mode-map [?\s-s] #'jao-hydra-spotify/body)
- (define-key exwm-mode-map [?\s-w] #'jao-hydra-exwm/body)
+ (define-key exwm-mode-map [?\s-f] #'jao-transient-float)
(define-key exwm-mode-map (kbd "C-c o") #'jao-exwm-zathura-goto-org)
(define-key exwm-mode-map (kbd "C-c O") #'jao-exwm-zathura-goto-org*)
(define-key exwm-mode-map (kbd "M-o") #'other-window)
@@ -531,18 +547,18 @@
([?\s-4] . jao-afio--goto-docs)
([?\s-A] . org-agenda-list)
([?\s-a] . jao-first-window)
- ([?\s-b] . jao-hydra-org-blog/body)
- ([?\s-c] . jao-hydra-chats/body)
+ ([?\s-b] . jao-transient-org-blog)
([?\s-e] . jao-exwm-firefox-1)
([?\s-t] . jao-term-here-toggle)
- ([?\s-n] . jao-hydra-ednc/body)
+ ([?\s-m] . jao-transient-media)
([?\s-O] . jao-transpose-windows)
([?\s-o] . jao-other-window)
([?\s-P] . jao-transpose-windows-prev)
([?\s-p] . jao-prev-window)
([?\s-r] . app-launcher-run-app)
- ([?\s-x] . jao-hydra-exwm-misc/body)
- ([?\s-z] . jao-hydra-sleep/body)
+ ([?\s-s] . jao-transient-spotify)
+ ([?\s-w] . jao-transient-exwm)
+ ([?\s-z] . jao-transient-sleep)
([XF86AudioMute] . jao-mixer-master-toggle)
([XF86AudioPlay] . jao-player-toggle)
([XF86AudioPause] . jao-player-toggle)