helloSystem / ISO

helloSystem Live and installation ISO
https://github.com/helloSystem/
BSD 3-Clause "New" or "Revised" License
808 stars 58 forks source link

System tray (notification area) not working for some applications #96

Closed grahamperrin closed 3 years ago

grahamperrin commented 3 years ago

Not by default in the area – bottom right – that's traditionally associated with the (Microsoft Windows) system tray, but helloSystem does need a comparable area of some sort.

For applications such as screenkey https://www.freshports.org/x11/screenkey/ to be easily controllable.

For now, I'm using stalonetray https://www.freshports.org/x11/stalonetray/,

stalonetray -i 16 --geometry 1x1-0+2

image

@probonopd please, what did you use for the tray that's in the screenshot at https://github.com/helloSystem/Menu/issues/31#issue-775862451?

probonopd commented 3 years ago

We already have a Notification Area. It is where the BuildNotfy application "tray" icon shows up in https://github.com/helloSystem/Menu/issues/31#issue-775862451.

No further software is needed.

grahamperrin commented 3 years ago

Sorry if the screenshot above didn't make things clear.

The existing area does not allow control of screenkey. Without stalonekey:

image

probonopd commented 3 years ago

Proably I am still not understanding it: Title of the ticket says "Need a system tray", but we already have one...

grahamperrin commented 3 years ago

BuildNotify not found in ports, what else might I install to check that the tray works for me?

probonopd commented 3 years ago

Just type "bu" into the search box to open BuildNotify.

grahamperrin commented 3 years ago

OK I see the green indicator for BuildNotify but still:

Does your KSnip appear in the notification area?

(I can not immediately install the working version of KSnip.)

probonopd commented 3 years ago

Does your KSnip appear in the notification area?

Yes

grahamperrin commented 3 years ago

Thanks. Does screenkey also appear there for you?

grahamperrin commented 3 years ago

ksnip built and installed from ports, icon visible when run.

Remmina icon not visible.

screenkey icon not visible.

probonopd commented 3 years ago

Remmina icon not visible.

Gtk app. Note to self: Test this with Gtk apps.

screenkey icon not visible.

Are you sure it should disply one? Don't remember.

probonopd commented 3 years ago

libappindicator is needed for it to work

probonopd commented 3 years ago

Documented: https://github.com/helloSystem/docs/blob/main/developer/menu.md#libappindicator

grahamperrin commented 3 years ago

Working with screenkey but not yet with Remmina:

image

PS that's a live boot from an .iso, I should retry with an installed system.

probonopd commented 3 years ago

If something special is needed for Gtk/Gnome, it may be that the user will have to install it manually since we want to minimize/eliminate their use.

grahamperrin commented 3 years ago

stalonetray -i 16 --geometry 1x1-0+2

Something more is needed to prevent disappearance of the tray when global menu items (including invisible menus) are clicked. Screen recording:

https://user-images.githubusercontent.com/192271/105623644-30243180-5e13-11eb-9e76-ba2125333b71.mp4

Hopefully not blocked by https://github.com/helloSystem/ISO/issues/85

I see stalonetray system tray: wmhints but I'm not sure how to proceed; I'll seek advice from the developer.

probonopd commented 3 years ago

Any technical insights would be highly welcome.

grahamperrin commented 3 years ago

Following advice from the developer:

stalonetray -i 16 --window-type dock --geometry 1x1-250+0

image

Quoting from e-mail, with permission:

… If that also does not work, then it probably makes sense to either (a) update libappindicator to work with GTK/EWMH icons better or (b) make the menu window reparent the stalonetray window into itself. This is the setup typically used with FVWM.

You can check whether stalonetray is obscured by running xwininfo -root -tree -all -wm and checking the dimension/location of the windows of interest.

Best, Roman

xwininfo -root -tree -all -wm.txt

grahamperrin commented 3 years ago

With some … for abbreviation, an extract from the preceding .txt file:

xwininfo: Window id: 0x397 (the root window) (has no name)

  Root window id: 0x397 (the root window) (has no name)
  Parent window id: 0x0 (none)
     35 children:
     0x10000d1 "menubar": ("menubar" "menubar")  640x480+0+0  +0+0
     0x10000b8 "menubar": ("menubar" "menubar")  227x155+322+21  +322+21
     0x10000a5 "menubar": ("menubar" "menubar")  640x480+0+0  +0+0
     0x1a00008 "Qt Client Leader Window": ()  1x1+0+0  +0+0
     0x1a00004 "Qt Selection Owner for qterminal": ()  3x3+0+0  +0+0
     0x1200023 "cyber-dock": ("cyber-dock" "cyber-dock")  64x36+544+658  +544+658
     0xe00008 "Qt Client Leader Window": ()  1x1+0+0  +0+0
     0x100000a "Qt Client Leader Window": ()  1x1+0+0  +0+0
     0x1000006 (has no name): ()  1x1+0+0  +0+0
     0x1200012 "Qt Client Leader Window": ()  1x1+0+0  +0+0
     0x120000e (has no name): ()  1x1+0+0  +0+0
     0x1600001 (has no name): ()  1x1+0+0  +0+0
     0x1000004 "Qt Selection Owner for menubar": ()  3x3+0+0  +0+0
     0x1200004 "Qt Selection Owner for cyber-dock": ()  3x3+0+0  +0+0
     0x1400004 "Qt Selection Owner for lxqt-globalkeysd": ()  3x3+0+0  +0+0
     0xe00004 "Qt Selection Owner for AppRun": ()  3x3+0+0  +0+0
     0xc00002 "Dunst": ("Dunst" "Dunst")  800x1+0+0  +0+0
     0x800004 "picom": ("picom" "picom")  1x1+0+0  +0+0
     0xa0000e "Openbox": ("�" "")  1x1+-100+-100  +-100+-100
     0xa00060 (has no name): ()  1x1+0+0  +0+0
        1 child:
        0xa00061 (has no name): ()  1x1+0+0  +1+1
     0xa0005e (has no name): ()  1x1+0+0  +0+0
        1 child:
        0xa0005f (has no name): ()  1x1+0+0  +1+1
     0xa0005b (has no name): ()  1x1+0+0  +0+0
        1 child:
        0xa0005c (has no name): ()  1x1+0+0  +1+1
     0xa00057 (has no name): ()  1x1+0+0  +0+0
        3 children:
        0xa0005a (has no name): ()  1x1+0+0  +1+1
        0xa00059 (has no name): ()  1x1+0+0  +1+1
        0xa00058 (has no name): ()  1x1+0+0  +1+1
     0xa00054 (has no name): ()  1x1+0+0  +0+0
        2 children:
        0xa00056 (has no name): ()  1x1+0+0  +1+1
        0xa00055 (has no name): ()  1x1+0+0  +1+1
     0xa00053 (has no name): ()  1x1+0+0  +0+0
     0xa00052 (has no name): ()  1x1+0+0  +0+0
     0xa00051 (has no name): ()  1x1+0+0  +0+0
     0xa00050 (has no name): ()  1x1+0+0  +0+0
     0xa00090 (has no name): ()  1024x21+0+0  +0+0
        24 children:
        0x100000c "menubar": ("menubar" "menubar")  1024x21+0+0  +0+0
        …
      0xa00091 (has no name): ()  1024x21+0+0  +0+0
           1 child:
           0xa00092 (has no name): ()  1024x21+0+0  +0+0
     0xa0029c (has no name): ()  16x16+758+0  +758+0
        24 children:
        0x1800001 "stalonetray": ("stalonetray" "stalonetray")  16x16+0+0  +758+0
           1 child:
           0x1800002 (has no name): ()  1x1+-1+-1  +757+-1
        0xa002c8 (has no name): ()  1x1+0+0  +758+0
…

(Is the abbreviation excessive?)

@kolbusa

probonopd commented 3 years ago

These are QSystemTrayIcon based ones, and they seem to be working well (apart from the icons needing a color change):

image

grahamperrin commented 3 years ago

Java

https://forum.languagetool.org/t/minimizing-on-startup/785/2?u=grahamperrin

Without stalonetray:

helloSystem system tray

With stalonetray (run without options):

LanguageTool

grahamperrin commented 3 years ago

https://hellosystem.github.io/docs/developer/ux-guidelines.html#avoiding-configuration-options

KDE Plasma is recommended as an alternative for users who wish to configure and customize every aspect of the system.