perspective-exwm.el/README.org
2021-12-01 12:11:36 +03:00

2.4 KiB

perspective-exwm

A couple of tricks and fixes to make using EXWM and 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.:

(use-package perspective-exwm
  :straight (:host github :repo "SqrtMinusOne/perspective-ewxm.el"))

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:

(use-package exwm
  :config
  ...
  (perspective-exwm-mode)
  (exwm-init))

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:

    (setq perspective-exwm-override-initial-name
        '((0 . "misc")
          (1 . "core")
          (2 . "browser")
          (3 . "comms")
          (4 . "dev")))

    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. /sqrtminusone/perspective-exwm.el/media/commit/f5971704dd1d5e12751bbff5513099b03c2e2bb7/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. /sqrtminusone/perspective-exwm.el/media/commit/f5971704dd1d5e12751bbff5513099b03c2e2bb7/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.