nix-community / home-manager

Manage a user environment using Nix [maintainer=@rycee]
https://nix-community.github.io/home-manager/
MIT License
6.97k stars 1.8k forks source link

bug: safeeyes shows an error message instead of a tray icon #5728

Closed DamienCassou closed 2 weeks ago

DamienCassou commented 2 months ago

Are you following the right branch?

Is there an existing issue for this?

Issue description

Starting SafeEyes shows an error message

The required plugin 'Tray Icon' is missing dependencies!

followed by a link Click here for more information.

image

The documentation says we should start snixembed.

How to reproduce:

{
  services.safeeyes.enable = true;
}

or just install safeeyes and execute it.

Maintainer CC

@Rosuavio

System information

- system: `"x86_64-linux"`
 - host os: `Linux 6.10.3-200.fc40.x86_64, Fedora Linux, 40 (Workstation Edition), nobuild`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.5`
 - channels(root): `"nixpkgs"`
 - channels(temp): `"home-manager, nixpxkgs"`
 - channels(cassou): `"home-manager-22.11.tar.gz, nixpkgs"`
 - nixpkgs: `/home/cassou/Documents/projects/nix-system/nixpkgs`
archisman-panigrahi commented 2 months ago

Which desktop environment are you using?

You only need snixembed in LXDE/Openbox/MATE(outside Ubuntu MATE)

DamienCassou commented 2 months ago

I'm on Fedora Linux with i3wm.

archisman-panigrahi commented 2 months ago

Can you try the snixembed solution described in the wiki? Also, can you try the native package using pip? People have reported that it works in i3 https://github.com/slgobinath/SafeEyes/issues/617#issuecomment-2270670446

DamienCassou commented 1 month ago

sorry for the delay @archisman-panigrahi

Can you try the snixembed solution described in the wiki?

starting snixembed before SafeEyes make SafeEyes appear correctly. I thought this was the only solution so I opened this issue in home-manager rather than in SafeEyes. Do you agree?

can you try the native package using pip?

I have tried but installing with pip complains while compiling cairo. I could investigate further but I don't much of the python ecosystem.

archisman-panigrahi commented 1 month ago

starting snixembed before SafeEyes make SafeEyes appear correctly. I thought this was the only solution so I opened this issue in home-manager rather than in SafeEyes. Do you agree?

This is normal and expected behavior in the latest version of safeeyes. i3 does not have the necessary backend for the trayicon technology we are using. Snixembed acts like a bridge in this case.

Full fledged DEs like KDE or XFCE don't need snixembed.

archisman-panigrahi commented 1 month ago

I think there is no bug here. Just add snixembed --fork to startup applications for the safeeyes tray icon to work.

DamienCassou commented 1 month ago

@archisman-panigrahi: that was my impression as well, thank you for confirming!

@rycee: we probably need a service for snixembed. The question I have is what kind of API we want given that:

  1. not everyone will need snixembed
  2. the others will want it to be started before SafeEyes

Should there be an option in SafeEyes module or are the two modules completely separate?

archisman-panigrahi commented 1 month ago

In my opinion, it should be left to the user to install snixembed if they want (safeeyes presents them a link which has detailed instruction of how to install). snixembed is really not a dependency of safeeyes. It is rather required because i3/lxde/mate(without Ubuntu's customizations) etc. do not have out-of-the-box support for kstatusnotifier.