LBCrion / sfwbar

S* Floating Window Bar
GNU General Public License v3.0
274 stars 17 forks source link

Some taskbar icons show the default icon #23

Closed 01micko closed 2 years ago

01micko commented 2 years ago

Using this in labwc in Puppy Linux.

I can't figure out why some apps display an icon (firefox, geany, celluloid and some others are fine) and many don't. Most have icons in the icon themes I use and many have icons in the 'hicolor' theme (as they should). But that doesn't seem to matter as gimp doesn't show, GParted doesn't show and others.

I'm on the latest git version and not using many features, just icons taskbar and clock, all with tooltips and actions and a bit of css.

BTW, the default icon is pretty crappy, maybe you could find a nicer one and this issue wouldn't be so bothersome!

Thanks, and I like this bar, foreign-toplevel implementation is good and user friendly.

Got it looking a bit like JWM :laughing:

20220228_17h13m57s_grim

Consolatis commented 2 years ago

Here is another (likely more hacky) implementation for getting the icon: https://github.com/mate-desktop/mate-panel/pull/1275/files Maybe something similar could be used as fallback if g_desktop_app_info_search() fails to find an icon.

In another project I am using:

LBCrion commented 2 years ago

Ok, it looks like the case of gimp is simple - we need to check the lowercase version of app_id to match the icon (as Consolatis pointed out). This should be taken care of in the latest git version.

Gparted is a trickier case, the actual Gparted executable is gpartedbin and gtk by default sets app_id to the basename of the progam, so the app_id is gpartedbin. There is no clean way to map this to the correct icon name. The proper fix for this would for Gparted to set the app_id to 'gparted' using g_set_prgname (or gtkmm equivalent). Barring that, you can use a workaround and symlink /usr/share/icons/hicolor/scalable/apps/gparted.svg to $HOME/.config/sfwbar/gpartedbin.svg for per user config or to /usr/share/sfwbar/gpartedbin.svg for systemwide fix.

As for the missing image icon, you can override it by placing an icon of your choice into $HOME/.config/sfwbar/icons/misc/missing.svg (and if you have a nicer icon in mind available without redistribution restrictions, I'd be happy to update the default for sfwbar - ux design isn't my strong suit).

01micko commented 2 years ago

Thanks @Consolatis and @LBCrion

Thanks for looking at this issue.

No go with gimp .. is it an Xwayland issue? Also Vivaldi runs under Xwayland (exec is vivaldi-stable, same as icon) but doesn't work.

Gparted works now with the work-around, but I tried the same with transmission but didn't work, (exec is transmission-gtk, so made a global symlink). In Puppy we use a lot of gtkdialog scripts (supports gtk-layer-shell when built on gtk3) and it should be easy to link all those scripts' icons to the default gtkdialog.png icon, (or even add the scalable in the source)

(and if you have a nicer icon in mind available without redistribution restrictions, I'd be happy to update the default for sfwbar - ux design isn't my strong suit).

I'm not too shabby with svg (no svg editor, just hand coded) so I'll see what I can come up with. I'm also not too concerned about this issue. Eye candy is certainly not a show stopper.

LBCrion commented 2 years ago

Ok, I found a bug that broke gimp after the last fix. Would you mind trying it again with the latest git?

In general, I think we should symlink only as a last resort. Most programs should be better behaved. I'll try to check examples you mentioned and see if there's anything I can improve for these cases.

On Wed, 2 Mar 2022, 09:48 Mick Amadio, @.***> wrote:

Thanks @Consolatis https://github.com/Consolatis and @LBCrion https://github.com/LBCrion

Thanks for looking at this issue.

No go with gimp .. is it an Xwayland issue? Also Vivaldi runs under Xwayland (exec is vivaldi-stable, same as icon) but doesn't work.

Gparted works now with the work-around, but I tried the same with transmission but didn't work, (exec is transmission-gtk, so made a global symlink). In Puppy we use a lot of gtkdialog https://github.com/puppylinux-woof-CE/gtkdialog scripts (supports gtk-layer-shell when built on gtk3) and it should be easy to link all those scripts' icons to the default gtkdialog.png icon, (or even add the scalable in the source)

(and if you have a nicer icon in mind available without redistribution restrictions, I'd be happy to update the default for sfwbar - ux design isn't my strong suit).

I'm not too shabby with svg (no svg editor, just hand coded) so I'll see what I can come up with. I'm also not too concerned about this issue. Eye candy is certainly not a show stopper.

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1056708845, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFE43TW4VRWSJGK2D2LU542QLANCNFSM5PQI2KAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

01micko commented 2 years ago

Initial test I removed symlinks gimp, transmission and vivaldi work! :-)

PCmanfm now works.

As far as I can tell, all programs installed that are compiled from source, either by me or upstream, work.

Only generic Puppy apps (mostly scripts) don't work. Thes are gtkdialog or Xdialog and the generic icons for those are missing.

I think this is solved. Only icons that don't show I think are my problems, and I'll fix them.

Thanks a lot!

LBCrion commented 2 years ago

Good to hear icons are now working. Does GtkDialog allow setting app_id from the script? That would let you set different icons for individual dialogs.

On Thu, 3 Mar 2022, 00:21 Mick Amadio, @.***> wrote:

Initial test I removed symlinks gimp, transmission and vivaldi work! :-)

PCmanfm now works.

As far as I can tell, all programs installed that are compiled from source, either by me or upstream, work.

Only generic Puppy apps (mostly scripts) don't work. Thes are gtkdialog or Xdialog and the generic icons for those are missing.

I think this is solved. Only icons that don't show I think are my problems, and I'll fix them.

Thanks a lot!

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1057533484, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFDP5UFCP3UGR7LJKN3U6AAYBANCNFSM5PQI2KAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

01micko commented 2 years ago

Does GtkDialog allow setting app_id from the script?

No, but it is likely something we can patch in.

01micko commented 2 years ago

20220303_20h44m03s_grim

All icons working. I did try a new 'missing' icon but it's too complex. Would be a good application icon, not that one is needed.

For the 'missing.svg' are you willing to accept some contrast? In a dark theme these dark gray icons would be difficult to see. I'm thinking just a plain gray circle with a fairly painless pastel color (maybe with some transparency) or something filling the circle.

EDIT: yes using a custom icon font with labels instead of buttons.

LBCrion commented 2 years ago

That sounds good. I think so long as the icon scales well and works as a missing image icon for different scenarios (I.e. taskbar item, switcher item, tray, user widgets), it would be an improvement.

On Thu, 3 Mar 2022, 10:52 Mick Amadio, @.***> wrote:

[image: 20220303_20h44m03s_grim] https://user-images.githubusercontent.com/1019119/156549349-b4956853-03be-4510-9e25-058e6034ec16.jpeg

All icons working. I did try a new 'missing' icon but it's too complex. Would be a good application icon, not that one is needed.

For the 'missing.svg' are you willing to accept some contrast? In a dark theme these dark gray icons would be difficult to see. I'm thinking just a plain gray circle with a fairly painless pastel color (maybe with some transparency) or something filling the circle.

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1057920660, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFGOMMUE46OZ3GKFNITU6CKWJANCNFSM5PQI2KAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

01micko commented 2 years ago

I've fixed (pr https://github.com/puppylinux-woof-CE/gtkdialog/pull/139) icons for our gtkdialog program and a few other things at my end and the 'missing' icon rarely shows, so no real need to change it.

I've zipped some alternate icons (just color change - lighter for a dark gtk theme) but I don't know if/how you would want to implement them.

sfwbar-icons.zip

My bar now -

20220320_12h23m36s_grim

Thanks!

LBCrion commented 2 years ago

Nice. GtkDialog with icons makes for a nice interface.

For icons, I think for single color icons, we can just add a setting to specify the icon color. I added a css property -ScaleImage-color for images in the current git, which allows specifying a color to draw the icon in. For example, you can specify -ScaleImage-color: #000000; for a light theme and - ScaleImage-color: #ffffff; for a dark theme.

Do you think this would do the trick for themimg icons?

On Sun, 20 Mar 2022, 02:33 Mick Amadio, @.***> wrote:

I've fixed (pr puppylinux-woof-CE/gtkdialog#139 https://github.com/puppylinux-woof-CE/gtkdialog/pull/139) icons for our gtkdialog program and a few other things at my end and the 'missing' icon rarely shows, so no real need to change it.

I've zipped some alternate icons (just color change - lighter for a dark gtk theme) but I don't know if/how you would want to implement them.

sfwbar-icons.zip https://github.com/LBCrion/sfwbar/files/8310503/sfwbar-icons.zip

My bar now -

[image: 20220320_12h23m36s_grim] https://user-images.githubusercontent.com/1019119/159145384-131e376d-af4e-47c5-82cd-0ef1eb13530b.png

Thanks!

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1073152055, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFBAJZW25AFQIUKMZXDVA2E6RANCNFSM5PQI2KAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

01micko commented 2 years ago

That's a good idea.

There's something else I want to try with CSS, but I haven't succeeded yet. When I get time I'll try again and if I can't get it to work with the latest revision then I'll open an issue.

Thanks!

clemencyworld1 commented 2 years ago

sorry to ask @01micko , which applications do you have on your system tray?

01micko commented 2 years ago

They are all sfwbar widgets. See #32 for some of the development discussion.

LBCrion commented 2 years ago

@01micko, you know you'll need to post those widgets somewhere. I think sfwbar could really do with some spruced up screenshots and default configs. My '90s designs don't appeal to many modern users.

01micko commented 2 years ago

@01micko, you know you'll need to post those widgets somewhere. I think sfwbar could really do with some spruced up screenshots and default configs. My '90s designs don't appeal to many modern users.

Yes! But I do have to do some minor refactoring now that I know I can include widgets in widgets.

The reasons I want to do this are:

I'll have a think about where to post them.

stefonarch commented 11 months ago

Stumbled upon this, use the taskbar in arch and in debian 12, and in the latter thunderbird icon is not found and replaced by Sfw icon. Both have git master.

LBCrion commented 11 months ago

This sounds like an icon is missing on debian. Can you please check output of "sfwbar -d -g app_id" to check the name of the thunderbird icon?

Usually an icon file with that name would be installed into /usr/share/icons/hicolor/scalable/apps

Can you check if the icon exists on arch and/or debian?

On Sun, 17 Dec 2023, 16:57 Standreas, @.***> wrote:

Stumbled upon this, use the taskbar in arch and in debian 12, and in the latter thunderbird icon is not found and replaced by Sfw icon. Both have git master.

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1859223482, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFHQPII3PVAQ7WJXML3YJ4P7PAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBVHEZDEMZUHAZA . You are receiving this because you were mentioned.Message ID: @.***>

stefonarch commented 11 months ago

Under arch it looks like sfwbar displays the "papirus" theme icon (icon set in lxqt-config-appearance).

$ sfwbar -d -g thunderbird
18:07:38,92 app_id: 'thunderbird', title 'Posta in arrivo - Cartelle locali - Mozilla Thunderbird'
18:07:39,09 image: thunderbird @ 0
18:07:39,11 image: thunderbird @ 28
18:07:39,14 image: thunderbird @ 28
$ locate thunderbird.svg
/home/stef/.local/share/icons/Plataro/apps/scalable/thunderbird.svg
/usr/share/icons/Papirus/16x16/apps/thunderbird.svg
/usr/share/icons/Papirus/22x22/apps/thunderbird.svg
/usr/share/icons/Papirus/24x24/apps/thunderbird.svg
/usr/share/icons/Papirus/32x32/apps/thunderbird.svg
/usr/share/icons/Papirus/48x48/apps/thunderbird.svg
/usr/share/icons/Papirus/64x64/apps/thunderbird.svg
/usr/share/icons/Plataro/apps/scalable/thunderbird.svg

Now checking debian.

stefonarch commented 11 months ago

Debian12:

$ sfwbar -d -g thunderbird
18:17:43,63 app_id: 'thunderbird-default', title 'Posta in arrivo - Cartelle locali - Mozilla Thunderbird'
18:17:43,86 image: thunderbird-default @ 28 x 28

Copying the icon in apps/48x48/ thunderbird.svg to thunderbird-default.svg and restarting sfwbar works.

stefonarch commented 11 months ago

Another client I noticed today is qpdfview (all happens on labwc):

sfwbar -d -g qpdfview

18:49:32,00 app_id: 'qpdfview.local.qpdfview', title 'Pagina001 - qpdfview'
18:49:32,19 image: qpdfview.local.qpdfview @ 0
18:49:32,22 image: qpdfview.local.qpdfview @ 28
18:49:32,24 image: qpdfview.local.qpdfview @ 28
LBCrion commented 11 months ago

With thunderbird, it looks like the program doesn't set app id explicitly, but rather inherits it from the name of the executable. It works fine, so long as the executable is named thunderbird, but fails once it's renamed into thunderbird-default. You can work around that by symlinking the icon as you did, but ideally thunderbird should set a consistent app id, independent from the name of the executable. It may be worth raising it with thunderbird devs.

Qpdfview is a bit more interesting. It seems to set app id to a full application name. Usually only the last component should be use as an appid (so application qpdfview.local.qpdfview should have app id of qpdfvew). Again, a correct fix should probably be on the application side, but it may be worth adding a workaround to sfwbar for such occurrences.

LBCrion commented 11 months ago

I added the workaround to check for the suffix of an appid if the main lookup fails. Can you please check if this helps with qpdfview?

stefonarch commented 10 months ago

Can confirm, it works fine for qpdfview now, thanks. I found out that symlinking didn't work actually, it looked working because I restarted sfwbar from the command line inside the icon folder, at next login it was without icon again.

LBCrion commented 10 months ago

Where did you symlink the icon to? If you place symlink into ~/.config/sfwbar/ or /usr/share/sfwbar/ it should work.

On Thu, Dec 21, 2023 at 8:35 PM Standreas @.***> wrote:

Can confirm, it works fine for qpdfview now, thanks. I found out that symlinking didn't work actually, it looked working because I restarted sfwbar from the command line inside the icon folder, at next login it was without icon again.

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1866898703, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFEMSUSSSKEDB3PG2D3YKSMRXAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBWGY4DSOBXGAZQ . You are receiving this because you were mentioned.Message ID: @.***>

stefonarch commented 10 months ago

I symlinked in several icon folders in /usr/share/ ln -s /usr/share/icons/Papirus/48x48/apps/thunderbird.svg thunderbird-default.svg works, thanks!

stefonarch commented 10 months ago

Latest entries: screen_area_ven_15:52:42_

stefonarch commented 10 months ago

I added the workaround to check for the suffix of an appid if the main lookup fails. Can you please check if this helps with qpdfview?

Just saw that under debian qpdfview is still without icon, it needs qpdfview.local.qpdfview.svg in ~/.config/sfwbar ...

LBCrion commented 9 months ago

Can you check what appid it has and whether there is a .desktop file for it? (and if there is, what Icon line does it have)?

On Fri, Jan 19, 2024 at 3:02 PM Standreas @.***> wrote:

I added the workaround to check for the suffix of an appid if the main lookup fails. Can you please check if this helps with qpdfview?

Just saw that under debian qpdfview is still without icon, it needs qpdfview.local.qpdfview.svg in ~/.config/sfwbar ...

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1900584424, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFEPMPDU4IKHTOVKBY3YPKDHFAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJQGA2TQNBUGI2A . You are receiving this because you were mentioned.Message ID: @.***>

stefonarch commented 9 months ago

Appid is qpdfview.local.qpdfview on debian, desktop file:

/usr/share/applications/qpdfview.desktop:

Icon=qpdfview

LBCrion commented 9 months ago

This is odd. With the latest git, sfwbar should try to find an icon for qpdfview.local.qpdfview and if it fails, it should try to load qpdfview. If you name an icon qpdfview.svg instead of qpdfview.local.qpdfview in ~/.config/sfwbar, does it give you a missing icon?

LBCrion commented 9 months ago

I just installed qpdfview and sfwbar (current git version) picked up a correct icon. It tried to load qpdfview.local.qpdfview first and then fell back to qpdfview

stefonarch commented 9 months ago

Sorry for the delay, I didn't have access to the debian machine in the mean time, will recheck. But on arch Virtualbox windows are iconless too I see.


$ lswt
app-id:                title:
"VirtualBox Manager"   "Oracle VM VirtualBox Gestore"

Edit: "VirtualBox Machine" has the icon.

LBCrion commented 9 months ago

Is there a "VirtualBox Machine" icon or desktop entry?

stefonarch commented 9 months ago

The icon here is /usr/share/icons/hicolor/40x40/mimetypes/virtualbox.png

screen_area_lun_09:06:52_

LBCrion commented 9 months ago

Strictly speaking, the icon name should match the appid of the program, so it should be VirtualBox Machine.png. That said, using space a separator may be a pattern we'll see more than once. I added a fallback mechanism to check the first word of an appid as a desktop entry / icon name candidate. Can you please check if this helps in this case?

Consolatis commented 9 months ago

Edit: "VirtualBox Machine" has the icon.

It would be interesting to know why that worked before. Is there some VirtualBox Machine.desktop file somewhere? I never heard of any kind of try-to-skip-spaces-in-app_id thing before. (Also that app_id is *bad*, is it running via xwayland by chance and thus is actually the WM_CLASS ?)

stefonarch commented 9 months ago

Checked know, yes, both the machines and the manager run on xwayland. The only .destopfile is virtualbox.desktop.

I added a fallback mechanism to check the first word of an appid as a desktop entry / icon name candidate. Can you please check if this helps in this case?

Installed from AUR sfw-git - no change.

Consolatis commented 9 months ago

Another option could be to find all .desktop files with StartupWMClass matching the app_id as a final resort. @stefonarch could you post the contents of virtualbox.desktop?

stefonarch commented 9 months ago
[Desktop Entry]
Version=1.0
Name=Oracle VM VirtualBox
GenericName=Virtualization Software
GenericName[de]=Virtualisierung Software
GenericName[ru]=
Type=Application
Exec=VirtualBox %U
TryExec=VirtualBox
Keywords=virtualization;
Keywords[de]=Virtualisierung;
Keywords[ru]=виртуализация;
MimeType=application/x-virtualbox-vbox;application/x-virtualbox-vbox-extpack;application/x-virtualbox-ovf;application/x-virtualbox-ova;
Icon=virtualbox
Categories=Emulator;System;
Actions=Manager;
StartupWMClass=VirtualBox Manager
Comment=Run several virtual systems on a single host computer
Comment[de]=Mehrere virtuelle Maschinen auf einem einzigen Rechner ausführen
Comment[it]=Esegui più macchine virtuali su un singolo computer
Comment[ko]=가상 머신
Comment[pl]=Uruchamianie wielu systemów wirtualnych na jednym komputerze gospodarza
Comment[ru]=Запуск нескольких виртуальных машин на одном компьютере
Comment[sv]=Kör flera virtuella system på en enda värddator

[Desktop Action Manager]
Exec=VirtualBox
Name=Open VM Manager
Name[de]=VM Manager öffnen
LBCrion commented 9 months ago

It looks like we can lookup the icon from the StartupWMClass, but it won't be trivial, since we need to either iterate through all .desktop entries (which would be rather expensive performance-wise) or keep track of all the mappings in memory.

On Thu, 15 Feb 2024, 09:16 Standreas, @.***> wrote:

[Desktop Entry] Version=1.0 Name=Oracle VM VirtualBox GenericName=Virtualization Software GenericName[de]=Virtualisierung Software GenericName[ru]= Type=Application Exec=VirtualBox %U TryExec=VirtualBox Keywords=virtualization; Keywords[de]=Virtualisierung; Keywords[ru]=виртуализация; MimeType=application/x-virtualbox-vbox;application/x-virtualbox-vbox-extpack;application/x-virtualbox-ovf;application/x-virtualbox-ova; Icon=virtualbox Categories=Emulator;System; Actions=Manager; StartupWMClass=VirtualBox Manager Comment=Run several virtual systems on a single host computer Comment[de]=Mehrere virtuelle Maschinen auf einem einzigen Rechner ausführen Comment[it]=Esegui più macchine virtuali su un singolo computer Comment[ko]=가상 머신 Comment[pl]=Uruchamianie wielu systemów wirtualnych na jednym komputerze gospodarza Comment[ru]=Запуск нескольких виртуальных машин на одном компьютере Comment[sv]=Kör flera virtuella system på en enda värddator

[Desktop Action Manager] Exec=VirtualBox Name=Open VM Manager Name[de]=VM Manager öffnen

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1945667266, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFH6VJGCTSBDHGAOOXDYTXG7RAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJUGU3DMNZSGY3A . You are receiving this because you were mentioned.Message ID: @.***>

stefonarch commented 9 months ago

Another one is meteo-qt: app-id meteo-qt.python3.

LBCrion commented 9 months ago

Does it have a desktop entry? If it does, would you mind posting it?

On Sat, Feb 17, 2024 at 10:30 AM Standreas @.***> wrote:

Another one is meteo-qt: app-id meteo-qt.python3.

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1949928694, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFCSHS2EL5NF6HPN76TYUCBEFAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJUHE4TEOBWHE2A . You are receiving this because you were mentioned.Message ID: @.***>

stefonarch commented 9 months ago
[Desktop Entry]
Type=Application
Name=Meteo-qt
GenericName=Weather status information
Comment=A Qt system tray application for weather information
Exec=meteo-qt
Icon=weather-few-clouds
Terminal=false
StartupNotify=false
Categories=Qt;LXQt;Network;
X-DBUS-ServiceName=meteo-qt

I'm afraid it changes its icon according to weather, at least in the systtray it does so. Should check with waybar.

LBCrion commented 9 months ago

And is the filename of this file meteo-qt.dedktop or meteo-qt.python3.desktop?

On Sat, 17 Feb 2024, 12:58 Standreas, @.***> wrote:

[Desktop Entry] Type=Application Name=Meteo-qt GenericName=Weather status information Comment=A Qt system tray application for weather information Exec=meteo-qt Icon=weather-few-clouds Terminal=false StartupNotify=false Categories=Qt;LXQt;Network; X-DBUS-ServiceName=meteo-qt

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1950106308, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFDHQVEZUJABUOYBUX3YUCSQJAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJVGAYTANRTGA4A . You are receiving this because you were mentioned.Message ID: @.***>

stefonarch commented 9 months ago

meteo-qt.desktop

Consolatis commented 9 months ago

At some point I wonder if it makes sense to add more and more workarounds for the app_id -> .desktop / icon file lookups, at least for wayland native applications. Maybe the applications should just set a proper app_id. Xwayland applications are another topic though.

LBCrion commented 9 months ago

Meteo-qt looks like a case of an application reporting a bogus app_id. I suspect it's based on the name of the executable rather than set by an application to a specific value. Some distributions may change the name of the executable and there is no way to catch these cases consistently. For cases like this I would suggest either using an icon symlink (i.e. symlink meteo-qt.svg to meteo-qt.python3.svg) or use MapAppId configuration option to map app_id from a window title (if it's consistently identifiable).

On Sat, Feb 17, 2024 at 3:53 PM Standreas @.***> wrote:

meteo-qt.desktop

— Reply to this email directly, view it on GitHub https://github.com/LBCrion/sfwbar/issues/23#issuecomment-1950241590, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASHPFFFBBQESNRDG7EFKWBDYUDG7RAVCNFSM5PQI2KA2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJVGAZDIMJVHEYA . You are receiving this because you were mentioned.Message ID: @.***>

LBCrion commented 8 months ago

It looks like glib/gio GDesktopAppInfo by default performs lookup of an app name (app_id in our case) on Exec, GenericName, Keywords, Name and XGnomeFullName, but not StartupWMClass. This means that in order to map on StartupWMClass, we'll need to do parallel tracking with GDesktopAppInfo.

I guess we could get GDesktopAppMonitor to monitor any changes in desktop files and rebuild an index of GDesktopAppInfo objects keyed to StartupWmClass.

Gio documentation mentions that monitoring the app info database for changes is expensive, so I think I'll need to run some check on performance cost this will incur.

LBCrion commented 8 months ago

I added a lookup on StartupWMClass property of desktop entries now. @stefonarch, can you please check if this helps with VirtualBox?