[Gambas-user] Help SystemTray gb-qt5 64 bits

herberth guzman herberthguzman at gmail.com
Wed Apr 1 21:29:33 CEST 2020


but there's no desktop! i mean we want to create a new systray area! how to
do?



> XDG_CURRENT_DESKTOP environment variable.
>
set to a custom openbox in my case! no panel or systray area was starte i
want to start by myselft!

El mié., 1 abr. 2020 a las 13:24, herberth guzman (<herberthguzman at gmail.com>)
escribió:

>
>
> El mié., 1 abr. 2020 a las 13:23, herberth guzman (<
> herberthguzman at gmail.com>) escribió:
>
>> New Systray
>> Fabien helped me with this example
>> but I'm still in trouble.
>>
>> Private $hTrayIcons As New TrayIcon[]
>>
>> Public Sub Form_Open()
>>
>>   Dim a As String[]
>>   Dim s As String
>>   Dim sIcon As String
>>   Dim hTray As TrayIcon
>>   Dim vIconPixmap As Variant
>>   Dim i As Integer
>>   Dim ii As Integer
>>   Dim hbut As New Button(Me)
>>   DBus.Debug = True
>>
>>    a = DBus["org.kde.StatusNotifierWatcher"]["/StatusNotifierWatcher",
>> "org.kde.StatusNotifierWatcher"].RegisteredStatusNotifierItems
>>
>>   For Each s In a
>>
>>     'sIcon = DBus[File.Dir(s)]["/" & File.Name(s),
>> "org.kde.StatusNotifierItem"].IconThemePath
>>     hTray = New TrayIcon
>>     hTray.Name = s
>>     hbut.Text = s
>>     'Print DBus[File.Dir(s)]["/" & File.Name(s),
>> "org.kde.StatusNotifierItem"].OverlayIconName
>>     sIcon = DBus[File.Dir(s)]["/" & File.Name(s),
>> "org.kde.StatusNotifierItem"].IconName
>>     hTray.IconName = sIcon
>>
>> '    Print sIcon
>> '    Print hTray.IconName
>>     vIconPixmap = DBus[File.Dir(s)]["/" & File.Name(s),
>> "org.kde.StatusNotifierItem"].IconPixmap
>>     If vIconPixmap Then
>>       Try hTray.Icon = GetPictureFromAVariant(vIconPixmap)
>>     Endif
>>
>>     $hTrayIcons.Add(hTray)
>>
>>      For ii = 0 To $hTrayIcons.Max
>>        hbut.H = 48
>>      hbut.w = 48
>>      hbut.Picture = $hTrayIcons[i].GetIcon(32)
>>
>>      Next
>> '    Paint.DrawPicture($hTrayIcons[i].GetIcon(32), i * 32, 5)
>>
>>
>>   Next
>>
>>   DrawingArea1.Refresh
>>
>>   'Me.Picture = hDBusPixmap.GetPicture()
>> End
>>
>> Private Sub GetPictureFromAVariant(hValue As Variant[]) As Picture
>>
>>   Dim H, W As Integer
>>   Dim hData As Byte[]
>>   Dim hFile As File
>>   Dim hPic As Image
>>
>>   W = hValue[0][0]
>>   H = hValue[0][1]
>>   hData = hValue[0][2]
>>
>>   hPic = New Image(W, H, Color.Transparent)
>>   hPic.Format = "ARGB"
>>   hFile = Memory hPic.Data For Write
>>   hData.Write(hFile)
>>   hFile.Close
>>   Return hPic.picture
>>
>> End
>>
>> Public Sub DrawingArea1_Draw()
>>
>>   Dim i As Integer
>>
>>   For i = 0 To $hTrayIcons.Max
>>     Paint.DrawPicture($hTrayIcons[i].GetIcon(32), i * 32, 5)
>>   Next
>>
>> End
>>
>> [System]
>> Gambas=3.14.90 0714bf7 (master)
>> OperatingSystem=Linux
>> Kernel=5.4.0-18-generic
>> Architecture=x86_64
>> Distribution=Ubuntu Focal Fossa (development branch)
>> Desktop=INNOVA
>> Theme=Fusion
>> Language=es_GT.UTF-8
>> Memory=3735M
>>
>> [Libraries]
>> Cairo=libcairo.so.2.11600.0
>> Curl=libcurl.so.4.6.0
>> DBus=libdbus-1.so.3.19.11
>> GStreamer=libgstreamer-1.0.so.0.1602.0
>> GTK+2=libgtk-x11-2.0.so.0.2400.32
>> GTK+3=libgtk-3.so.0.2404.10
>> OpenGL=libGL.so.1.7.0
>> Poppler=libpoppler.so.95.0.0
>> Poppler=libpoppler.so.97.0.0
>> QT5=libQt5Core.so.5.12.5
>> SDL=libSDL-1.2.so.0.11.4
>> SQLite=libsqlite3.so.0.8.6
>>
>> [Environment]
>> CLUTTER_IM_MODULE=ibus
>> DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
>> DESKTOP_SESSION=Innova
>> DISPLAY=:0
>> GB_GUI=gb.qt5
>> GDMSESSION=Innova
>> GNOME_DESKTOP_SESSION_ID=this-is-deprecated
>> GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
>> GTK_IM_MODULE=ibus
>> GTK_MODULES=gail:atk-bridge
>> HOME=<home>
>> LANG=es_GT.UTF-8
>> LANGUAGE=es_GT.UTF-8
>> LOGNAME=<user>
>>
>> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
>> PWD=<home>
>> QT4_IM_MODULE=ibus
>> QT_ACCESSIBILITY=1
>> QT_IM_MODULE=ibus
>> QT_LOGGING_RULES=*.debug=false
>>
>> SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1740,unix/<hostname>:/tmp/.ICE-unix/1740
>> SHELL=/bin/bash
>> SHLVL=1
>> SSH_AGENT_PID=1692
>> SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
>> TZ=:/etc/localtime
>> USER=<user>
>> USERNAME=<user>
>> WINDOWPATH=2
>> XAUTHORITY=/run/user/1000/gdm/Xauthority
>> XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg/xdg-Innova:/etc/xdg
>> XDG_CONFIG_HOME=<home>/.config
>> XDG_CURRENT_DESKTOP=Innova
>>
>> XDG_DATA_DIRS=/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/
>> XDG_MENU_PREFIX=innova-
>> XDG_RUNTIME_DIR=/run/user/1000
>> XDG_SEAT=seat0
>> XDG_SESSION_CLASS=user
>> XDG_SESSION_DESKTOP=Innova
>> XDG_SESSION_ID=10
>> XDG_SESSION_TYPE=x11
>> XDG_VTNR=2
>> XMODIFIERS=@im=ibus
>>
>> El mié., 1 abr. 2020 a las 13:21, herberth guzman (<
>> herberthguzman at gmail.com>) escribió:
>>
>>> X11 Classic
>>> gb-qt5 BAD
>>> gb-qt4 OK
>>>
>>> Public Sub _new()
>>>
>>> Shell "vlc"
>>> Shell "nm-applet"
>>>
>>> End
>>>
>>> Public Sub Form_Open()
>>>
>>>   X11Systray.Show(dwgSystemTray.Handle)
>>>
>>> End
>>>
>>> Static Public Sub X11Systray_Arrange()
>>>
>>>   FMain.ArrangeTray
>>>
>>> End
>>>
>>> Public Sub ArrangeTray()
>>>
>>>   Dim I As Integer
>>>   Dim X, Y, H As Integer
>>>
>>>   Debug
>>>   X = 2
>>>   Y = 2
>>>   For I = 0 To X11Systray.Count - 1
>>>     With X11Systray[I]
>>>       Debug I;; .IconW;; .IconH
>>>       If (X + .IconW) >= (Me.ClientW - 2) Then
>>>         X = 2
>>>         Y += H + 2
>>>         H = 0
>>>       Endif
>>>       .Move(X, Y, .IconW, .IconH)
>>>       H = Max(H, .IconH)
>>>       X += .IconW + 2
>>>     End With
>>>   Next
>>>
>>> End
>>>
>>> Public Sub Form_Resize()
>>>
>>>   ArrangeTray
>>>
>>> End
>>>
>>>
>>>
>>>
>>>
>>>
>>> El mié., 1 abr. 2020 a las 13:13, Benoît Minisini (<g4mba5 at gmail.com>)
>>> escribió:
>>>
>>>> Le 01/04/2020 à 21:05, herberth guzman a écrit :
>>>> >
>>>> >>>What does not work exactly?
>>>> >
>>>> > I have a classic system tray (x11)
>>>> > with ubuntu 32 bits and gb-qt4 it works fine for me
>>>> >
>>>> > with ubuntu 64 bit and gb-qt5 it doesn't work
>>>> > does not show anything in the system tray
>>>> >
>>>> > Error:
>>>> > qt.qpa.xcb: Unhandled client message: "_NET_WM_DESKTOP"
>>>> > FMain.ArrangeTray.28:
>>>> >
>>>>
>>>> If you don't give more details, I can't help. Which system? Which
>>>> desktop? How do you implement the system tray? Did you implement X11
>>>> protocol, DBus protocol, both? And so on...
>>>>
>>>> --
>>>> Benoît Minisini
>>>>
>>>> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gambas-basic.org/pipermail/user/attachments/20200401/08e75537/attachment.html>


More information about the User mailing list