IBBoard / cawbird

A fork of the Corebird GTK Twitter client that continues to work with Twitter
https://ibboard.co.uk/cawbird/
GNU General Public License v3.0
309 stars 37 forks source link

tray icon #45

Open clumsyfingers opened 5 years ago

clumsyfingers commented 5 years ago

any chance ?

IBBoard commented 5 years ago

What functionality would you have in a tray icon? And what's the use case? IM apps had a tray icon to log in/out/set status, but Twitter doesn't do that. IM apps could be hidden until someone contacted you, but Cawbird already pops up notifications for DMs and mentions. Gnome has moved away from tray icons, and I've not found a case where I've missed them.

pizzadude commented 4 years ago

Not everyone uses Gnome, and Cawbird works fine in KDE etc but I don't see the point of a tray icon either.

rahulrajpl commented 4 years ago

Oh, sorry I opened another issue related to this. I think what he wants is something similar to 'slack' or 'dropbox' client do as a tray icon as shown in pic below.

image

IBBoard commented 4 years ago

But what is the required use case and functionality?

p1u3o commented 4 years ago

I don't really see the point in a tray icon either. There's already notifications.

j1warren commented 4 years ago

I'd love to have a tray icon, so it doesn't take space in the task bar.

ashb commented 4 years ago

Yeah, I'd like a tray icon so that I can close the window, freeing up task bar space, but then re-opening later with tweets in the same position. It's just how I like to read twitter.

IBBoard commented 4 years ago

As someone said (then seemingly deleted) they've been deprecated for a while and not shown in Gnome since 3.26.

Maybe what we could do is an option to use a persistent notification to show how many unread messages there are? Clicking that would bring Cawbird back in to focus, it would actually do something useful, it would integrate with the new Gnome approach, and people who minimise Cawbird presumably have it set to "don't autoscroll" anyway (because what's the point in having it open and scrolling past tweets if you're not actually looking at them?).

One of the other suggestions that I've read is to use Workspaces and put "stuff I only user intermittently" on another workspace. Given that even Windows supports workspaces/virtual desktops these days then it's another option for people.

philipzae commented 4 years ago

I'm using Cawbird on Linux Mint XFCE and it would be great to have a tray icon, so when i click the close or minimize button, it hides it from the taskbar, but keeps it running in the background, similar to many of the other apps i use that do this as well (e.g. telegram, qbittorrent). Left clicking on the tray icon would bring the window back in focus and right-clicking would show a context menu with entries to open/show, maybe an entry to enable/disable notifications (something superseding the Notifications tab options in settings), settings, and close/quit.

philipzae commented 4 years ago

While I wait for this issue to be resolved, I did some digging online and prepared a python script that would put a tray icon in to provide basic functionality. https://pastebin.com/nZQ8L7Zz

I run the script from the terminal like so, which allows me to close the terminal $ ( python cawbird.py &)

pizzadude commented 4 years ago

I now understand the appeal of a tray icon, and I use KDE so the dropping of support for tray icons in gnome doesn't affect me. That python script works fine, @IBBoard could adapt it and include it in Cawbird probably very easily.

IBBoard commented 4 years ago

@philipzae's script is fine as a work-around, but I wouldn't want to support it. The use of os.system isn't a great way to work, and it probably only works because you've only got one account. I've got three accounts in Cawbird and running cawbird brings up a new window with one of the other accounts opened.

I also don't know how any of this would play with Snap/Flatpak/etc (which we semi-support)

philipzae commented 4 years ago

@IBBoard definitely wouldn't suggest you support it, but wait for your proper implementation.

For everyone: Came across this app which can make any app into a tray icon, as another work-around. https://github.com/user-none/KDocker

jaysonlarose commented 4 years ago

A KDE-based Twitter client (Choqok) has the option to show the number of unread tweets since you last had the window active as a tray icon, it's the only feature I miss. If you don't like the idea of implementing it, that's fine... If you could expose some metrics like "number of new/unread tweets" via d-bus, that would be more than sufficient to let us do whatever weird & wacky things we feel compelled to do through external scripts and whatnot. :)

sallyhaj commented 4 years ago

I am using XFCE on Fedora 32, and yeah, I would like to see the feature on Cawbird app, thanks

txtsd commented 3 years ago

I use plain old Openbox and tint2, no DE. I'd love to be able to close Cawbird to tray so it doesn't take up precious space in the taskbar.

jaysonlarose commented 3 years ago

Just dropped by to give this issue my once-per-year poke. :)

The primary use case I have for this is the ability to display the number of unread tweets since the last time the main window was active.

If this is disagreeable due to some sort of deep-seated opinion on how UI/UX is supposed to be, I would also settle for some DBus integration to allow me to poll Cawbird for unread count, and I'll quietly commit the heresy behind closed doors. DBus is criminally underutilized.

IBBoard commented 3 years ago

DBus could be an option. From some bits that I read then it already uses DBus at some level (although possibly just internal Gnome/GTK stuff and not properly published). There are command-line switches for things like opening windows and tweeting, and they seem to communicated over DBus with the running instance. That's why we had #246.

We might need some rearchitecting to make counts readily accessible, though, because the current design is very page-centric and closely ties the data to the widgets rather than being a single model loosely coupled to widgets.

jaysonlarose commented 3 years ago

I'd love to see it any way you can make it available! Implementing the org.freedesktop.DBus.Properties interface would be the "proper" way of doing it, I guess, which is cool because you can subscribe to change events... but I'm not picky. I'll gladly poll the number periodically by calling a method if need be.

Truth be told, I'd even hit up a UNIX socket or something if that's easier to implement...

You said the word "rearchitecting", which reminds me of the time an old boss of mine got upset when I told him the feature he wanted implemented was going to be a lot more work than he assumed. "Why?", he asked, "It's all just a bunch of if/then statements, right?". It took an enormous effort of willpower on my part, but I remained a free man, and he remained among the living. I guess what I'm trying to say is I'll be patient. Open Source is a labor of love, after all, and nothing can sour those grapes faster than choosy beggars. But it would be awesome to see. :)

(I know implementing org.freedesktop.DBus.Properties can be a pain, because I've implemented my own hacky version of it using dbus-python. Not anything I'd feel proud of publishing.)