Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Systray icon #17

Open
tasket opened this issue Apr 13, 2018 · 7 comments
Open

Systray icon #17

tasket opened this issue Apr 13, 2018 · 7 comments

Comments

@tasket
Copy link
Owner

tasket commented Apr 13, 2018

Incorporate a systray icon that shows VPN status and allows the service to be stopped and started.

Would appreciate input on the best way to implement this....

@tasket
Copy link
Owner Author

tasket commented Apr 30, 2018

This is also a logical place to add a VPN site-selection menu.

@haplo
Copy link

haplo commented Oct 16, 2018

I'm interested in working on the systray support. My plan is to mimic the way the sys-usb systray works, but display this information:

  1. VPN status: connected/disconnected
  2. Current VPN config: if vpn-client.conf is a symlink show the name of the file it's linking to
  3. Display all .conf files in /rw/config/vpn. Clicking in one of them will change vpn-client.conf and restart the VPN connection.

I will also document whatever dependencies are needed for the systray icon to run. They will have to be added to the RPM package, in qubes-tunnel I suppose?

Anything I'm missing?

@tasket
Copy link
Owner Author

tasket commented Nov 1, 2018

Thanks for looking into this!

It should display both 'conf' and 'ovpn' because different providers use either suffix.

One problem (for me, at least) is KDE systray compatibility. Certain combinations of image types and libraries (like gtk+) result in blank icons. This can happen for either guest or dom0 apps. I did some experiments in python and will need to review them before giving my input.

No immediate plans for qubes-tunnel (sister project) as that will need a new issue filed at QubesOS, but the basic qubes-tunnel hasn't been imported over there yet. Better to focus on Qubes-vpn-support in that case.

@haplo
Copy link

haplo commented Nov 1, 2018

Thanks for the input @tasket. I will list both '.conf' and '.ovpn' files.

I don't know about KDE compatibility, I'm using the Qubes-standard XFCE right now, and that is going to be my target. My suggestion is to get it working for XFCE, then see if someone can provide patches for KDE as needed.

After navigating Qubes' codebase for a bit, this is the file that provides the device manager systray icon. I'm going to use it as a base and adapt it for our purposes.

@tasket
Copy link
Owner Author

tasket commented Nov 11, 2018

FWIW, the KDE issue is not critical since hovering over the blank icons tells you what they are.

Also, I intend to create a new branch soon for new development. It will change slightly so that variable names are synchronized with qubes-tunnel which will make the two projects as identical as possible before proceeding with adding new stuff. Doing this will make review and acceptance of new features easier for Qubes devs.

@e6lk7dqzm83p
Copy link

Would love to upvote this...sadly I don't have the technical chops to contribute more thoroughly. I always found the PIA tray icon to have a great UX (not sure what, if any, of their code is open sourced).

@haplo
Copy link

haplo commented Feb 29, 2020

Sorry I never got to do any meaningful contribution to this. I started looking at other systray icons in the main QubesOS codebase, trying to get at least a placeholder icon to show, but never got to that point.

This is the file for the QubesOS devices systray icon, in case somebody is interested in digging in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants