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

Feature request and some ideas #3

Closed revast closed 1 year ago

revast commented 6 years ago

my motivation is that I am using skippy-xd on my selfmade linux distribution in the default install.

dreamcat4 commented 6 years ago

Ah! Perhaps you can clarify something for me then:

Because I am not sure why people are saying that skippy does not show previews of minimized windows... because in my own desktop environment (budgie-wm). If I click minimize then the window is still showing up fully in the previews. As-if it were not minimized.

Isn't that the expected / desired behaviour? What am I missing here? Bearing in mind that I really don't want to be switching to another DE to trythis out myself, I was just wondering what other people in other DEs were seeing. Or am I misunderstanding the meaning of that specifc bug?

revast commented 6 years ago

Yes, that would be the EXACTLY the desired thing we want to have, essentially the same way for example also OSX does it. (BUT on OSX, when you park windows in the Dock, they also are omitted from being shown...on a side note, I actually like that particular behaviour, haven't seen it replicated (yet) properly on the linux side, kdocker is great for minimizing to tray though..)

Ok consider this two application-windows in XFCE (XFWM4): http://imgur.com/kmFzVRGl.png now when I minimize one of the windows: http://imgur.com/YCJcJe8l.png

With Compiz (yes I know its old!) the minimized windows are totally hidden, not even the frame is shown. I have seen a workaround with a python script which un-minimizes ("un-iconifies") the windows for the time the miniature previews are displayed, and minimizes them again afterwards, but this comes with quite an overhead. For details, see here. That code could eventually also be used as a base for a workaround to allow skippy-xd display it's miniatures properly without digging too deep into the X11 domain...

I really do not know what's going on there, but this looks like the two are related.. I will ask on XFCE developers IRC channel and file a bug at XFCE if it's on their side..

But there is the exact same behaviour with Openbox, btw: http://i.imgur.com/ZkmZp85.png http://i.imgur.com/vtMGDj6.png

looks like budgie is using gnome's mutter window manager..., but now it gets a total rewrite in Qt, switching to kwin

Speaking of compiz, I think that this: http://imgur.com/pFddOjGl.png is much more readable than

this from skippy-xd. http://imgur.com/wMTTUiDl.png

So far I could not replicate that, for example I cannot get all titles shown on all windows, and the different sizes of the windows are also not so great.. shall I file a bug ticket here for that?

As you can see on the last two pictures, I have most of the time way too much open to use skippy efficiently. The compiz scale plugin is a bit better, but secretly I was thinking of a grouping option, which could sort windows by their kind, (display per-application windows, a more list-like view....) ;-)

dreamcat4 commented 5 years ago

Hi again @revast. Which version of skippy you used to generate those screenshots with? skippy-xd -v

revast commented 5 years ago

yours from git master. skippy-xd v0.5.2~pre (2018.09.09) - "Puzzlebox" Edition

I already have built a debian package for Ubuntu 18.04

I have now also proper debian source packaging in place, ready to upload to a PPA.

In terms of the package a thing which would make sense is providing an autostart item for skippy-xd. I also have .desktop launchers for explicitly starting skippy-xd on demand (with notification that it started up), and also a skippy-restart.desktop in case something goes wrong, but that's overkill I guess.

About:

I really don't want to be switching to another DE to trythis out myself

you don't have to - you normally can switch your window manager on the fly. just install openbox and/or xfwm4 and type in terminal: openbox --replace & or xfwm4 --replace &

One other thing I found: I have skippy-xd-activate skippy-xd-restart scripts - you don't. They are defined in the debian source folder structure I used from this PPA. I also contacted the original Author of the PPA and told him the good news regarding skippy-xd.

Another thing to check out: the packaging status in other distributions. This list is missing Arch for sure and also the BSD's. Idea would be to contact the maintainers of the packages to get skippy-xd updated distributions-wide. With proper debian source packaging in place, one could also try to get it upstream into the debian package system. I would eventually maintain this, though I am frightened ;-)

Making an AppImage would also be a nice thing, combined with automatic builds via Travis CI one could have automated releases on github as many projects here do.

dreamcat4 commented 5 years ago

Thank you for this, and making a debian package is also most welcome.

As for the black screen whilst minimuzing... this seems to be (as far as I can tell) an issue caused by specific compositors. So unfortunately because of that I really cannot see a fix would be within my capabilities here. However if someone wants to submit any PRs for stuff like this. Then I'm very please to include / merge them for a single unified release.

Crazy stuff like temporarily un-minimizing windows would need to be under configuration though (to be switched on/off, depending on specific users). Mostly for performance reason(s).

Another way to solve the problem is to remember the last un-minimized version of the window, save that to a temporary folder on the disk. Or keep in-memory. The last known graphic image, of the window. That would actually be a much more effecient. It would be my own preffered solution. - I'm still not going to be doing it though. Because there are other issues that are of a higher priority for me to deal with, I really need to work on those ones instead.

It's also possible to selectively combine both of the above approaches, so as to only un-minimuze those few(er) remaining windows which were initially started in a minimized state (and never un-minimized). Whilst that is pretty excessive amount of work to achieve that result, I am not actually against merging that, coming from someone else's PR.

My overall opinion is: it's probably easier to get around the problem by switching to use a different compositor / window manager. Or otherwise submitting a patch to that compositor. So that other programs can also take advantage of it, not just only skippy. Like I said earlier : I use ubuntu budgie here, and it seems to be based on mutter compositor. It does not have this problem !

revast commented 5 years ago

I have now tried with marco (mate's windowmanager derived from metacity), same result: http://i.imgur.com/7LJcroM.png

I am gonna try kwin_x11 now as well, but mutter is more than a compositor/window-mangager. It's fact that partly because of that budgie gets rewritten from scratch right now.

As another matter of fact, this "bug" IS a major showstopper to many people for using skippy-xd.

revast commented 5 years ago

ok, same result with kwin http://i.imgur.com/lZLJubP.png

actually kwin has expos'e builtin, and this works properly: http://i.imgur.com/rTkMOtj.png

but kwin eats my processor time for breakfast (at least when I am in a VM and without tweaking it further..) Edit: switching to xrender backend is better, actually its quite neat and snappy then, expos'e works as well nicely, but it also pulls in a LOT of stuff I don't need.. I prefer the desktop/window-manager agnostic solutions like skippy-xd or compton.

dreamcat4 commented 5 years ago

You know, for fvwm, it appears there are some version(s) that will work with the 'compton' compositor. I was briefly introduced to that compositor whilst trying MATE desktop environemnt.

The only reason I bring it up is because comptom seems both fast and efficient. And has many possible options under configuration. So if you are lucky, it might be a supportive project for these minimized windows previews. Not that i have actually checked its in there myself. But even if it isn't, it would nevertheless still be the specific compositor i would recommend for submitting such patches to. (for the fvwm people, at least).

The other MATE compositor was called marcos? i think? Not really sure about that one but maybe it already had window previews working anyhow. Just thought I'd mention that since you seem to be trying all these ones out at the moment.

revast commented 5 years ago

Yeah I know compton, I have it installed by default on my distribution (albeit not activated by default). I tried marco; no, also does not work with minimized windows previews, they do not show up.

revast commented 5 years ago

One thing I also find cool at using kwin_x11: the ability to type in the expos'e interface. This lessens the windows to the ones where the title is in the name I typed - very helpful feature

dreamcat4 commented 5 years ago

Just a quick note: Thankfully I now have noticed the minimize bug. Which appears [some times] but not others. So there might be some kind of potential for me to at least try to work on that now. Whilst still bearing in mind that Richard was very skeptical about being able to ever fix this (at least properly, to the same level or quality as other visible windows). Due to the way xwindows works / does not work.

Also in terms of 'special windows'. There was also an other issue discovered, with other types of special window. For example activation whilst a WINE program was the active window --> causes segfault.

felixfung commented 1 year ago

Fixed in #41