Tabs, the notes



Hi:

The notes I have been collecting about tabs for the past months, what
is needed and how it can be done.

- Objective:

Group multiple windows into something that looks like a single window
(a binder window, to keep with the mental image of papers, tabs, etc),
and make it behave as such single window as much as possible. Make
some things optional, but do not force users to have to change
commands so this new binder behaves as normal window.

- Details:

Windows tabbed into a group must share position, depth, size, state,
workspaces, and respond to normal commands like raise, lower, move,
etc. Or simpler words, become the same window from user point of view.

Remember some settings beforing tabbing could be desireable. Previous
theme, frame type, maybe more, but size, etc do not make much sense.

It should allow matching windows at some point, so they can start
grouped, thus binders must have some ID, like a number. Current system
has no IDs, groups can provide hints about how to do it.

Reduce events on other tabs... thus hide their windows, like with
shaded windows. Only active window will be shown, and be in charge of
painting the representation for the rest of its group by mean of extra
parts with special keymaps that focus other windows when clicked.

Position, depth, etc can be propagated from the visible to the rest
after each command (this can be queued with a timer to avoid constant
useless updates like changing 2 workspaces in 0.5 sec) or only to a
different tab when it is focused (maybe trickier, maybe visual
artifacts).

Add extra commands to select prev and next tabs, as well as swap with
prev and next for reorganizing. Probably also binder cycle mode.
Option to remove hidden members of a binder from other cycle commands.

Focus other windows when tab parts are clicked, and on mouse hover tab
as option. Current system would require constant monitoring of motion
events while in "tab zone" to compute when a "button" is entered for
the hover. Using separate parts should solve that by using the same
hooks used for tooltips.

Freedom to represent the system (drop down button for menu, tab row,
tab column, multiple tab rows, etc). So put theme in charge like with
shaded windows or even title bars, thus provide new parts to
standarize the basics for all themes that want to comply.

Ship one theme that can be used as fallback and example for other
themes that want support tabs in advanced way ("lots of buttons").

Drag and drop would be nice at some point... but no idea, sorry (no
support at all in Sawfish, probably some kind of keymap event(s) will
be needed). It would be nice for reorgs, tab migration from one binder
to another and even creation.

Use marks.jl to create binders for now.

- Side projects:

Nicks, so tabs can use nickname instead of title (theme will decide
what to show in the part). There are different scripts that would also
benefit, like those that focus window based in names.


I hope I did not forget to note down anything, they have been multiple
non continous threads about the topic. Time to review so we can
proceed.

GSR
 


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