jjk-jacky / kalu

Keep Arch Linux Up-to-date -- an upgrade notifier for Arch Linux
Other
60 stars 15 forks source link

Automatically hide icon in KDE #22

Closed protist closed 9 years ago

protist commented 9 years ago

I'm not sure how easy this is, but in KDE's tray, you have the ability to set icons' visibility to Hidden, Always visible or Auto. In the last case, the icons only show when necessary. For example, the battery icon is hidden when 100%, and shown when < 100%; the usb and printer icons are hidden unless something is connected or printing respectively.

It'd be great if kalu could do something similar, only showing when there are updates or news. On a related note, I find the blinking icon when refreshing quite distracting, since I associate activity of the kalu icon with me needing to do something.

jjk-jacky commented 9 years ago

I'm not sure if this is what you're referring to or not, but in branch next a configure option has been added so that kalu doesn't use the systray anymore, but KDE's own StatusNotifierItem interface.

When you do that, I believe kalu's icon should only be visible when updates are available (it is set "active"), but otherwise (set "passive") it can be auto-hidden. If you haven't tried it yet, maybe give it a try and see if that does what you're looking for.

As for the blinking icon, the intent is to signal activity. It's never bothered me, but I'm also not sure what could be done differently. Specifically, there need to be 3 "states" : nothing to report (gray), something (news, updates, etc) to report (blue), and busy checking/updating (blinking).

What would you want different for that last one, if not the blinking?

protist commented 9 years ago

That sounds right, I think. Is this in kalu-git? I looked through the preferences, but couldn't find anything that seemed right.

The blinking icon is not a big deal at all, but I just thought that if kalu is doing a scheduled check, and there is nothing to report, then it's probably not worth informing the user. As it is, it's more attention seeking than when there's actually something for the use to action. However, I understand your rationale for having the blinking. Another option would be to not change the icon when automatically checking, but I can see how this might be counter to how one might expect kalu to behave? Perhaps a static grey icon with a subtle badge?

In any case, if KDE's auto-hide can work for the grey and blinking icons, then this point is mostly moot.

Thanks again.

jjk-jacky commented 9 years ago

Oh, sorry: You'll have to edit the PKGBUILD (kalu-git) a bit to activate this. First you need to add a dependency on statusnotifier (it's in the AUR), and then you need to add option --enable-status-notifier to the configure line in build()

Then make the package and install it, and kalu will use KDE's StatusNotifierItem interface automatically if available (else silently fallback to the regular systray icon).

Don't hesitate to ask if I missed something/you have a problem getting it to work.

protist commented 9 years ago

Thanks for that. It built fine, and works perfectly. It hides when inactive, and shows when alerting. Also, the flashing works as expected, i.e. if flashing after inactive, you don't see it; if flashing after alerting, you do see it. Thanks for this fix and I'll try to keep filing issues that you've already fixed. :)

protist commented 9 years ago

Hi again. You've probably already thought of this, but I was wondering if it'd be possible to use --enable-status-notifier as default on kalu and kalu-git? It's only because I'm forgetful, and forget to manually modify the PKGBUILD whenever I upgrade kalu. Are there any drawbacks? It's probably something useful for KDE users as default, at least.

jjk-jacky commented 9 years ago

Well, I don't want to add it to either kalu or kalu-git because it's not something that I consider part of the "default" kalu, but a special option for (mostly/only?) KDE users; So it's there as a configure option, but not enabled by default.

Not to mention it adds a dependency (on statusnotifier) which is useless for non-KDE users.

Of course, feel free to maintain your own PKGBUILD with it enabled, and you could even share it in the AUR under kalu-kde or something, for other KDE users that might be interested. (Then you can simply add kalu as a watched AUR package (in kalu), so you'll know whenever the "main" PKGBUILD is updated.)

protist commented 9 years ago

Okay, that makes sense. (Although, does it require statusnotifier to build? You could make it an optional/recommended dependency, but I take your point about useless options for many.)

At the back of my mind was that this might (?) also work in Ubuntu's Unity, but of course this is moot in Arch. I'll probably just share another PKGBUILD in AUR then. Thanks again for the helpful reply.

protist commented 9 years ago

Okay, I've shared kalu-kde in AUR. This is just based on the non-git version for now, although I might consider making a kalu-git-based version if I need it later. Thanks again for the help.

jjk-jacky commented 9 years ago

Cool, thanks.

Also, it is optional in the sense that you need to enable it via its configure option, but yes statusnotifier is a required dependency, including as build time, in order to use it.

As for Unity, statusnotifier should work under Unity as well (since it's supposed to use the same (KDE) interface), though indeed kalu under Ubuntu is probably not very useful...