mirror of
https://github.com/SqrtMinusOne/perspective-exwm.el.git
synced 2025-12-10 20:53:03 +03:00
55 lines
2.4 KiB
Org Mode
55 lines
2.4 KiB
Org Mode
#+TITLE: perspective-exwm
|
|
|
|
A couple of tricks and fixes to make using [[https://github.com/ch11ng/exwm][EXWM]] and [[https://github.com/nex3/perspective-el][perspective.el]] a better experience.
|
|
|
|
* Installation
|
|
While this package isn't available anywhere but here, you can install it directly from the repo, e.g.:
|
|
#+begin_src emacs-lisp
|
|
(use-package perspective-exwm
|
|
:straight (:host github :repo "SqrtMinusOne/perspective-ewxm.el"))
|
|
#+end_src
|
|
Or clone the repository, add the package to the =load-path= and load it with =require=.
|
|
|
|
The package provides a minor mode, =perspective-exwm-mode=, which is meant to be loaded before =exwm-init=. For instance, if you use =use-package=:
|
|
#+begin_src emacs-lisp
|
|
(use-package exwm
|
|
:config
|
|
...
|
|
(perspective-exwm-mode)
|
|
(exwm-init))
|
|
#+end_src
|
|
|
|
* Usage and details
|
|
- =perspective-exwm-mode=
|
|
The mode does a couple of things:
|
|
- advises away a bug with half-killing the current perspective when closing a floating window. I haven't tested this as thoroughly, so run =M-x perspective-exwm-revive-perspectives= if the problem arises anyway.
|
|
- adjusts the name of the inital perspective in the new workspace. It tries to get the name from the =perspective-exwm-override-initial-name= variable and falls back to `main-<index>`.
|
|
|
|
I have the following in my configuration:
|
|
#+begin_src emacs-lisp
|
|
(setq perspective-exwm-override-initial-name
|
|
'((0 . "misc")
|
|
(1 . "core")
|
|
(2 . "browser")
|
|
(3 . "comms")
|
|
(4 . "dev")))
|
|
#+end_src
|
|
|
|
This also serves a purpose, because otherwise there are issues with multiple perspectives sharing the same scratch buffer.
|
|
- =M-x perspective-exwm-cycle-exwm-buffers-forward=, =perspective-exwm-cycle-exwm-buffers-backward=
|
|
Cycles EXWM buffers in the current perspective.
|
|
|
|
[[./img/cycle-buffers.png]]
|
|
|
|
The buffer highlighted in yellow is the current one, the buffer highlighted in blue is shown in another window of the perspective so it will be omitted from the cycle.
|
|
|
|
Set =perspective-exwm-get-exwm-buffer-name= to customize the displayed name, by default it's =exwm-class-name=.
|
|
|
|
- =M-x perspective-exwm-switch-perspective=
|
|
Select a perspective from the list of all perspectives on all workspaces.
|
|
|
|
[[./img/switch-perspective.png]]
|
|
- =M-x perspective-exwm-copy-to-workspace=
|
|
Copy the current perspective to another EXWM workspace.
|
|
- =M-x perspective-exwm-move-to-workspace=
|
|
Move the current perspective to another EXWM workspace.
|