2

Say I'm in workspace 1 and I switch to workspace 3. Currently I have to remember that I was in workspace 1 but I want some sort of functionality to to do this for me. In i3wm I can enable workspace_auto_back_and_forth to achieve this. I there anyway to have the same thing in exwm?

Erik Sjöstrand
  • 826
  • 4
  • 14
fhdhsni
  • 693
  • 6
  • 16

1 Answers1

5

I do not think there's a built-in way to do this, but you could add the code below to your init-file.

(defvar exwm-workspace-previous-index nil "The previous active workspace index.")

(defun exwm-workspace--current-to-previous-index (_x)
  (setq exwm-workspace-previous-index exwm-workspace-current-index))

(advice-add 'exwm-workspace-switch :before #'exwm-workspace--current-to-previous-index)

(defun exwm-workspace-switch-to-previous ()
  (interactive)
  "Switch to the previous active workspace." 
  (let ((index exwm-workspace-previous-index))
    (exwm-workspace-switch index)))

And now bind exwm-workspace-switch-to-previous to a key. Then you can use that key to toggle to your previous visited workspace.

Erik Sjöstrand
  • 826
  • 4
  • 14
  • I had to hook it to `exwm-init-hook` or else it gives me an error with a fresh start of emacs. And thanks it works nicely. :) – fhdhsni May 28 '17 at 13:19