stumpwm-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

QUESTION: Would it be possible to develop a tabs feature for StumpWM?


From: Robert Taylor
Subject: QUESTION: Would it be possible to develop a tabs feature for StumpWM?
Date: Sat, 7 May 2022 15:59:22 -0700

Hi everyone.

I am looking for some advice from those of you experienced building modules.

I am running into workflows where the ideal window split is not equal to the number of apps that I need to work with.  For example, in the main group that I use for (say) graphic design, I might only have one vertical frame split with two main apps open BUT I need to occasionally interact with about 5 apps total.

The problem I am running into is that the unfocused apps are not conveniently ordered and even if I spent time ordering them and assigning shortcuts to yank them into view its not useful because the total number of apps can even by dynamic meaning that it might not be the same 5 apps between sessions or I may need 7 temporarily and so forth.

In thinking about this problem, I was thinking that building a Firefox style tabs feature (ones that look like tabs, not the stupid tabs the latest FF has, dear lord ... ) might actually help me with my workflow.  If I am thinking of my graphics workflow with one vertical split where one frame is larger than the other, I would like to be able to activate the tabs feature in the smaller frame and "attach" apps to each tab such that each tab is labeled with the app name. 

The tabs would need to:

* Tabs should be draggable so they can be reordered unless they are pinned.

* Be pinnable so the pinned tabs stay in their order.  Some tabs are more important than others, unpinned tabs can be draggable and pinned ones not.

* If tabs are active in a frame and an app is sent to the frame, yanked into the frame or started in the frame the app would be "attached to a new tab".  We just automatically assume a tabbed frame opens up a new app in a tab like in a browser.

* Prefix + f = would label the tabs just as if they were frames so we can jump to them with keystrokes.

* WISHFUL THINKING FEATURE: Modal dialogs would need to be captured and "kept" with the tab.  This means that a tab would be equivalent to a frame and would render modal dialog boxes on top of their parent app just as they would if you were to open a modal dialog box on a screen with no frame splits.  This would also imply that core functionality would not change and that frames behave as they always would with stacked windows.  Tabs, technically, would only be a visual metaphor allowing us to see / organize the stacked window order and on click would simply yank the stacked window into the frame just as we do now with Prefix + " + select window.  In a way, tabs would be a special use case for the modeline PER frame.

* NOTE: I know the first suggestion will be to just use the modeline and customize that.  I would VERY MUCH like to avoid the modeline metaphor entirely as it stands currently.  I cannot stand the metaphor of the panel with a bunch of useless garbage in it, if I need to know something about my system I can just open up the right app with a keystroke (this is StumpWM afterall, not KDE).  The modeline occupies the panel space and spans all frames on every side of a monitor that you drag it to.  However, if modeline has the capability that I am looking for and could be forked and made into a module to render ONLY in the frame that needs tabs enabled for it, I would not object to that suggestion.

I have read through all the modules and you guys have done some amazing work to add features to StumpWM.  Does anyone here have any suggestions on how the above feature might best be developed?  I have a little bit of experience with lisp and wouldn't mind trying to hack this together, but I don't fully understand where to start and how to think about how this might be achievable.

I am looking for experienced suggestions from those of you that have dug into the guts of StumpWM and who might have an idea of how we might shove the tab metaphor into any frame (maybe even allow it to be draggable to each side of a frame for the rest of you weirdos that like that kind of thing) and even re-purpose as much existing code as possible to get this done.  

I am particularly curious if you guys think this should be done purely with existing StumpWM bits and bobs or if it ought to be done using something like McClim.

What do you guys think?  What might be the best way to think about how this feature should be developed?

Any help is appreciated as I will have a lot of learning to do.

Robert

reply via email to

[Prev in Thread] Current Thread [Next in Thread]