dreamcat4 / skippy-xd

A full-screen Exposé-style standalone task switcher for X11.
GNU General Public License v2.0
99 stars 12 forks source link

Group layout, focus, proxy window logic into one, and add command line entry point #80

Closed felixfung closed 1 year ago

felixfung commented 1 year ago

Task idea comes from discussion in #70. We have the following use cases:

preference alt-tab expose paging
priority windows z-order window position virtual desktop location
prev/next sorting windows z-order expanded layout position (per column) per virtual desktop (per row)
position preservation depends on user preference preserve relative positioning loosely but not overlapping preserve within virtual desktop, expand virtual desktop positioning
animation not important important so-so
virtual desktop filtering no preferences prefers single desktop all desktops

Given that, the windows layout, focus logic, proxy window (only for paging, where a proxy window represents the virtual desktop) are distinct for each of the three use case, and that a user may want to invoke each use case with different user settings of their choice, we would want to group the windows layout, focus logic and proxy window logic into one code path, and then add command line entry point to select/toggle each of the three.

felixfung commented 1 year ago

Some hard-coded behaviour:

behaviour alt-tab expose paging
layout always XD user config always grid
prev/next ordering always row-row always column-column always row-row
animation never animation user config user config
virtual desktop filtering user config user config all desktops