-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using eyebrowse and spacemacs-layouts simultaneously #3733
Comments
Also, just to note - spaceline currently shows only tag of layout, but doesn't show tag of workspace - I believe both of them should shown in following form: |
👍 |
Yeah! 👍 |
I'm not sure to understand the described level of indirection, I need a shorter description of the feature. What brings eyebrowse to the table ? Different kind of |
Basically, it would be good if eyebrowse was entirely perspective-local. |
For example, you are working on one project and need to have four files to be opened at the same time. For example, 3 source files and one shell. With eyebrowse I would use 3 workspaces - two source files in first workspace, third source file in second workspace and shell in the third workspace. They all are related to one project. And it would be nice to separate these 3 workspaces from other workspaces. So overall it looks like
And it allows to switch between domains easily. Probably my confusion arrises from the fact that I think about layouts as about domains (be it project or meta-domain). But at this point I think it would be useful. On other hand, using layouts allows easier switching between buffers which makes it easier to work on several files at the same time while having multiple domains active in the background (with eyebrowse when you hit But in any case, I think it's a good idea to make eyebrowse and perspectives working together. |
Yeah, this is what I mean in one sentence without any reasoning. |
We may need to ditch eyebrowse and code a package I want us to avoid to use the word With this terminology, the windows configuration bindings would be in the |
Depending on the dependency between persp-mode and windows configurations we may consider putting thembehind |
Do we have to stop using the |
@StreakyCobra Thank you, I renamed it :-) |
Not necessarily. We can customize This of course doesn't provide perspective-local eyebrowse workspaces, but those could be implemented if persp-mode had perspective-local variables or a Maybe this is worth opening two feature requests (or pull requests) against persp-mode itself? One feature request for integration with eyebrowse/perspective-local workspaces, and a second feature request for perspective-local variables, or at least a |
Actually eyebrowse stores its workspaces as frame parameters, so it might be tricky (but probably doable) to save them as perspective-local variables, depending on implementation of perspective-local variables (if those will be implemented at all). |
Would this be a viable not too ugly solution to define a new data structure which is a perspective that points on a parent perspective which "shares" its buffer list ? |
The definition of perspective objects: (defstruct (perspective
(:conc-name persp-)
(:constructor make-persp))
(name "")
(buffers nil)
(window-conf nil)
(parameters nil)) Honestly, I don't know if your proposition is viable or not, but wouldn't we need to define a new structure and make persp-mode use it instead? We will need to advise/rewrite at least some of the getters and setters that persp-mode defines (i.e. However, I believe I found a better and simpler solution. The solution depends on (set-persp-parameter 'eyebrowse-window-configs (eyebrowse--get 'window-configs))
(set-persp-parameter 'eyebrowse-current-slot (eyebrowse--get 'current-slot))
(set-persp-parameter 'eyebrowse-last-slot (eyebrowse--get 'last-slot)) In (eyebrowse--set 'window-configs (persp-parameter 'eyebrowse-window-configs))
(eyebrowse--set 'current-slot (persp-parameter 'eyebrowse-current-slot))
(eyebrowse--set 'last-slot (persp-parameter 'eyebrowse-last-slot)) Note that we don't need to explicitly load the workspace when a perspective is activated, because persp-mode already knows how to restore the correct windows. |
That looks very promising. Good detective work @bmag. :-) |
Finally got it working, see #4068. It only took 3 hooks 😄 |
Wow, thanks a lot! I'll take a look tomorrow in the morning! |
In my opinion these two layers are not exclusive. And they should work together pretty well, allowing to boost productivity when working on several projects (domains).
Let me explain my usualy workflow with eyebrowse. Usually I separate available workspaces between different domains. For example, usually I had following separation.
As you can see, it perfectly fits the idea of
spacemacs-layouts
. I have four groups (layouts) of domains. But inside of every group I have several workspaces, because workspace is really useful thing.So it would be nice to use
spacemacs-layouts
to separate domains into different layouts and have independent eyebrowse workspaces in every layout. In my opinion it would be ultimate solution for working on different domains at the same time.But currently this symbioses doesn't work as expected, since eyebrowse isn't configured to work with perspectives. The main problem is that workspaces are not separated between layouts. So you have following problems:
So would like to have it working together :)
The text was updated successfully, but these errors were encountered: