dreamcat4 / skippy-xd

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

Standard Preview size? #6

Closed rik-shaw closed 1 year ago

rik-shaw commented 5 years ago

I am wondering if the window previews can be configured in such a way as to have a standard size, e.g. all windows have a 300px height so it is more uniform. I haven't quite gotten my head around the "Picture specification" area as I am not sure what item to apply it to for the window preview itself rather than just the background.

Maybe it is something about clientDisplayModes, which is currently this:

clientDisplayModes = thumbnail-icon thumbnail icon filled none

Maybe I need to dig on the code a bit to see what the various settings do as it isn't fully intuitive from the config file alone.

Thanks for the work on the project!

dreamcat4 commented 5 years ago

This clientDisplayModes =setting is not that. It is about whether to show an icon or a thumbnail, or just a shaded square. However a good question is whether to make in the same option. But I believe not, a separate option should be a better idea in this case.

I myself have also not touched / looked into this area of the code either.

Just guessing here, that a static fixed size (in pixels) might be problematic when there are too many windows to fit onto the visible area of the screen. Since skippy does not appear to have been programmed in with any necessary window scrolling feature in mind. Having said that, maybe X apis provide scrolling for free. Then it would not necessarily have to take a lot of work.

Whereas simply making all windows the same relative width and height, that should be fairly reasonable goal / new feature to work on? As in: if there are 9 windows then divide into a 3x3 grid of the available pixels, etc.

And then limit (constrain) the preview size being maximum in either width or height. So a tall narrow window will always be the max height (of 1/3 the screen in this example), etc. And small tiny windows being zoomed larger by that scaling. As big as they can be. ('scale to fit').

There was another possibile feature to add here, but i have just forgotten it now.... aah yes! Making a minimum size constraint. That might also be pretty useful. To say: "make every thumbnail preview at least X pixels wide and Y pixels tall" as a minimum size. That would be another way to let the user stop too tiny / small little windows being impossible to read. And meet this same general goal / objective. However it would also keep the spirit of the current method, that smaller windows should appear smaller than maximized ones. Whilst not hindering readability.

Both ^^ above described features are very welcome, and would be happy to take / merge pull requests for either one or both of them into my branch here.

dreamcat4 commented 5 years ago

Just a bit more clarification on the way to make a new settings for it:

One new option to select between up to 3 modes to that setting, including the current way as one setting).

What to call it then?

previewSizes =

With modes: accurate, scale-to-fit, and larger-than

and then for the last feature larger-than (only if implemented). Requires an extra option to specify the minimum size of any window preview. For example:

previewSizesLargerThan = 0.3

Would mean "make sure all windows at least 30% the size of the maximum space allotted to each window". This would need to be a relative value between 0 and 1 (loaded as a float value in the program). Again, it cannot use absolute pixel number for this for the reason described earlier.

Then any potential scrolling feature can be kept separate, and not conflict with these ^^ preview size settings. Kind Regards.

danrobi11 commented 3 years ago

Not sure its related. Theres alot of dead space that could be used to make the windows preview a bit bigger, no? Is there any setting to play with that?

ksnip_20210107-105245

felixfung commented 1 year ago

It can be done around the code of layout and client window move.