mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-11 19:45:25 +03:00
feat(exwm): perspective-exwm bindings
This commit is contained in:
parent
3c22b441be
commit
ff990dc889
2 changed files with 24 additions and 9 deletions
|
|
@ -200,6 +200,8 @@ _=_: Balance "
|
||||||
:keymaps '(exwm-mode-map)
|
:keymaps '(exwm-mode-map)
|
||||||
"C-q" 'exwm-input-send-next-key
|
"C-q" 'exwm-input-send-next-key
|
||||||
"<print>" (my/app-command "flameshot gui")
|
"<print>" (my/app-command "flameshot gui")
|
||||||
|
"<mode-line> s-<mouse-4>" 'perspective-exwm-cycle-exwm-buffers-backward
|
||||||
|
"<mode-line> s-<mouse-5>" 'perspective-exwm-cycle-exwm-buffers-forward
|
||||||
"M-x" 'counsel-M-x
|
"M-x" 'counsel-M-x
|
||||||
"M-SPC" (general-key "SPC"))
|
"M-SPC" (general-key "SPC"))
|
||||||
(setq exwm-input-simulation-keys `((,(kbd "M-w") . ,(kbd "C-w"))
|
(setq exwm-input-simulation-keys `((,(kbd "M-w") . ,(kbd "C-w"))
|
||||||
|
|
@ -243,8 +245,7 @@ _=_: Balance "
|
||||||
|
|
||||||
;; Switch buffers
|
;; Switch buffers
|
||||||
(,(kbd "s-e") . persp-ivy-switch-buffer)
|
(,(kbd "s-e") . persp-ivy-switch-buffer)
|
||||||
(,(kbd "s-E") . perspective-exwm-switch-perspective)
|
(,(kbd "s-E") . my/persp-ivy-switch-buffer-other-window)
|
||||||
|
|
||||||
|
|
||||||
;; Resize windows
|
;; Resize windows
|
||||||
(,(kbd "s-r") . my/exwm-resize-hydra/body)
|
(,(kbd "s-r") . my/exwm-resize-hydra/body)
|
||||||
|
|
@ -273,9 +274,12 @@ _=_: Balance "
|
||||||
(,(kbd "s-W") . exwm-workspace-move-window)
|
(,(kbd "s-W") . exwm-workspace-move-window)
|
||||||
(,(kbd "s-<tab>") . my/exwm-workspace-switch-monitor)
|
(,(kbd "s-<tab>") . my/exwm-workspace-switch-monitor)
|
||||||
|
|
||||||
;; Cycle EXWM windows in the current perspective
|
;; Perspectives
|
||||||
(,(kbd "s-[") . perspective-exwm-cycle-exwm-buffers-backward)
|
(,(kbd "s-[") . perspective-exwm-cycle-exwm-buffers-backward)
|
||||||
(,(kbd "s-]") . perspective-exwm-cycle-exwm-buffers-forward)
|
(,(kbd "s-]") . perspective-exwm-cycle-exwm-buffers-forward)
|
||||||
|
(,(kbd "s-<mouse-4>") . perspective-exwm-cycle-exwm-buffers-backward)
|
||||||
|
(,(kbd "s-<mouse-5>") . perspective-exwm-cycle-exwm-buffers-forward)
|
||||||
|
(,(kbd "s-`") . perspective-exwm-switch-perspective)
|
||||||
(,(kbd "s-o") . ,(my/app-command "rofi -show window"))
|
(,(kbd "s-o") . ,(my/app-command "rofi -show window"))
|
||||||
|
|
||||||
;; 's-N': Switch to certain workspace with Super (Win) plus a number key (0 - 9)
|
;; 's-N': Switch to certain workspace with Super (Win) plus a number key (0 - 9)
|
||||||
|
|
|
||||||
23
Desktop.org
23
Desktop.org
|
|
@ -342,7 +342,7 @@ allow-emacs-pinentry
|
||||||
allow-loopback-pinentry
|
allow-loopback-pinentry
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Modeline
|
*** Modeline
|
||||||
Show current workspace in the modeline.
|
Show the current workspace in the modeline.
|
||||||
|
|
||||||
#+begin_src emacs-lisp :noweb-ref exwm-mode-line-config :tangle no
|
#+begin_src emacs-lisp :noweb-ref exwm-mode-line-config :tangle no
|
||||||
(defvar my/exwm-mode-line-info "")
|
(defvar my/exwm-mode-line-info "")
|
||||||
|
|
@ -364,6 +364,8 @@ Show current workspace in the modeline.
|
||||||
(add-hook 'exwm-workspace-switch-hook #'my/exwm-mode-line-info-update)
|
(add-hook 'exwm-workspace-switch-hook #'my/exwm-mode-line-info-update)
|
||||||
#+end_src
|
#+end_src
|
||||||
** Windows
|
** Windows
|
||||||
|
A bunch of functions related to managing windows in EXWM
|
||||||
|
|
||||||
*** Moving windows
|
*** Moving windows
|
||||||
My functions for managing windows. I initially wrote these to mimic the i3 behavior for my Emacs + i3 integration, but I want to try to keep them for the EXWM config as well to make the transition less painful.
|
My functions for managing windows. I initially wrote these to mimic the i3 behavior for my Emacs + i3 integration, but I want to try to keep them for the EXWM config as well to make the transition less painful.
|
||||||
|
|
||||||
|
|
@ -438,6 +440,11 @@ _=_: Balance "
|
||||||
("q" nil "quit" :color blue))
|
("q" nil "quit" :color blue))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Perspectives
|
** Perspectives
|
||||||
|
My package that integrates perspective.el with EXWM.
|
||||||
|
|
||||||
|
References:
|
||||||
|
- [[https://github.com/SqrtMinusOne/perspective-exwm.el][perspective-exwm.el repo]]
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package perspective-exwm
|
(use-package perspective-exwm
|
||||||
:straight (:host github :repo "SqrtMinusOne/perspective-exwm.el")
|
:straight (:host github :repo "SqrtMinusOne/perspective-exwm.el")
|
||||||
|
|
@ -502,7 +509,7 @@ Switch to the opposite monitor. For now, this works only for two monitors becaus
|
||||||
#+end_src
|
#+end_src
|
||||||
** Apps
|
** Apps
|
||||||
*** App shortcuts
|
*** App shortcuts
|
||||||
Also, a transient for shortcuts for the most frequent apps.
|
A transient for shortcuts for the most frequent apps.
|
||||||
|
|
||||||
I wanted to make the interactive lambda a macro, but this doesn't seem to work the way I expect, so the code has a bit of duplication.
|
I wanted to make the interactive lambda a macro, but this doesn't seem to work the way I expect, so the code has a bit of duplication.
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
|
|
@ -551,6 +558,8 @@ Also other local keybindings, that are also available only in =line-mode=:
|
||||||
:keymaps '(exwm-mode-map)
|
:keymaps '(exwm-mode-map)
|
||||||
"C-q" 'exwm-input-send-next-key
|
"C-q" 'exwm-input-send-next-key
|
||||||
"<print>" (my/app-command "flameshot gui")
|
"<print>" (my/app-command "flameshot gui")
|
||||||
|
"<mode-line> s-<mouse-4>" 'perspective-exwm-cycle-exwm-buffers-backward
|
||||||
|
"<mode-line> s-<mouse-5>" 'perspective-exwm-cycle-exwm-buffers-forward
|
||||||
"M-x" 'counsel-M-x
|
"M-x" 'counsel-M-x
|
||||||
"M-SPC" (general-key "SPC"))
|
"M-SPC" (general-key "SPC"))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
@ -602,8 +611,7 @@ And keybindings that are available in both =char-mode= and =line-mode=:
|
||||||
|
|
||||||
;; Switch buffers
|
;; Switch buffers
|
||||||
(,(kbd "s-e") . persp-ivy-switch-buffer)
|
(,(kbd "s-e") . persp-ivy-switch-buffer)
|
||||||
(,(kbd "s-E") . perspective-exwm-switch-perspective)
|
(,(kbd "s-E") . my/persp-ivy-switch-buffer-other-window)
|
||||||
|
|
||||||
|
|
||||||
;; Resize windows
|
;; Resize windows
|
||||||
(,(kbd "s-r") . my/exwm-resize-hydra/body)
|
(,(kbd "s-r") . my/exwm-resize-hydra/body)
|
||||||
|
|
@ -632,9 +640,12 @@ And keybindings that are available in both =char-mode= and =line-mode=:
|
||||||
(,(kbd "s-W") . exwm-workspace-move-window)
|
(,(kbd "s-W") . exwm-workspace-move-window)
|
||||||
(,(kbd "s-<tab>") . my/exwm-workspace-switch-monitor)
|
(,(kbd "s-<tab>") . my/exwm-workspace-switch-monitor)
|
||||||
|
|
||||||
;; Cycle EXWM windows in the current perspective
|
;; Perspectives
|
||||||
(,(kbd "s-[") . perspective-exwm-cycle-exwm-buffers-backward)
|
(,(kbd "s-[") . perspective-exwm-cycle-exwm-buffers-backward)
|
||||||
(,(kbd "s-]") . perspective-exwm-cycle-exwm-buffers-forward)
|
(,(kbd "s-]") . perspective-exwm-cycle-exwm-buffers-forward)
|
||||||
|
(,(kbd "s-<mouse-4>") . perspective-exwm-cycle-exwm-buffers-backward)
|
||||||
|
(,(kbd "s-<mouse-5>") . perspective-exwm-cycle-exwm-buffers-forward)
|
||||||
|
(,(kbd "s-`") . perspective-exwm-switch-perspective)
|
||||||
(,(kbd "s-o") . ,(my/app-command "rofi -show window"))
|
(,(kbd "s-o") . ,(my/app-command "rofi -show window"))
|
||||||
|
|
||||||
;; 's-N': Switch to certain workspace with Super (Win) plus a number key (0 - 9)
|
;; 's-N': Switch to certain workspace with Super (Win) plus a number key (0 - 9)
|
||||||
|
|
@ -658,7 +669,7 @@ A function to apply changes to =exwm-input-global-keys=.
|
||||||
#+end_src
|
#+end_src
|
||||||
** Fixes
|
** Fixes
|
||||||
*** Catch and report all errors raised when invoking command hooks
|
*** Catch and report all errors raised when invoking command hooks
|
||||||
Thanks David! https://github.com/daviwil/exwm/commit/7b1be884124711af0a02eac740bdb69446bc54cc
|
- *CREDIT*: Thanks David! https://github.com/daviwil/exwm/commit/7b1be884124711af0a02eac740bdb69446bc54cc
|
||||||
|
|
||||||
#+begin_src emacs-lisp :noweb-ref exwm-fixes :tangle no
|
#+begin_src emacs-lisp :noweb-ref exwm-fixes :tangle no
|
||||||
(defun exwm-input--fake-last-command ()
|
(defun exwm-input--fake-last-command ()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue