Chromium ships an icon called "chromium",
/usr/share/pixmaps/chromium.png
But Chromium creates an XDG menu set to Icon=chromium-browser:
root@tweak:~# cat /home/prisoners/p123/.local/share/desktop-directories/chrome-apps.directory
[Desktop Entry]
Version=1.0
Type=Directory
Name=Chromium Apps
Icon=chromium-browser
To reproduce this the interactive recipe is:
* open chromium
* browse to https://example.edu/
* click ⋮ > More Tools > Create shortcut > Create
* open Applications menu in xfce4-panel (or other XDG menu client)
To reproduce this the automatic recipe is:
cat <<-'EOF' >/etc/chromium/policies/managed/01-Startup.json
{"WebAppInstallForceList": [{"url": "https://example.edu/", "create_desktop_shortcut": true}]}
EOF
chromium &
sleep 60 # wait for chromium to start enforcing its group policy
kill %1
xfce4-popup-applicationsmenu # open XFCE start menu
I'm not sure where in C++ this .directory is created.
This inconsistency also happens in e.g. WM_CLASS (seen in xprop).
Rather than trying to fix upstream to be consistent,
I think the easy answer is to just to make a symlink in here:
https://sources.debian.org/src/chromium/97.0.4692.71-0.1~deb11u1/debian/chromium.links/
A patch to this effect is attached.
On Tue, 01 Feb 2022 14:57:30 +1100 "Trent W. Buck" <trentbuck@gmail.com> wrote:
> Package: chromium
> Version: 97.0.4692.99-1~deb11u2
> Severity: minor
> Tags: patch
>
> Chromium ships an icon called "chromium",
>
> /usr/share/pixmaps/chromium.png
>
> But Chromium creates an XDG menu set to Icon=chromium-browser:
>
> root@tweak:~# cat
/home/prisoners/p123/.local/share/desktop-directories/chrome-apps.directory
> [Desktop Entry]
> Version=1.0
> Type=Directory
> Name=Chromium Apps
> Icon=chromium-browser
>
> To reproduce this the interactive recipe is:
>
> * open chromium
> * browse to https://example.edu/
> * click ⋮ > More Tools > Create shortcut > Create
> * open Applications menu in xfce4-panel (or other XDG menu client)
>
> To reproduce this the automatic recipe is:
>
> cat <<-'EOF' >/etc/chromium/policies/managed/01-Startup.json
> {"WebAppInstallForceList": [{"url": "https://example.edu/",
"create_desktop_shortcut": true}]}
> EOF
> chromium &
> sleep 60 # wait for chromium to start enforcing its group policy
> kill %1
> xfce4-popup-applicationsmenu # open XFCE start menu
>
> I'm not sure where in C++ this .directory is created.
> This inconsistency also happens in e.g. WM_CLASS (seen in xprop).
> Rather than trying to fix upstream to be consistent,
> I think the easy answer is to just to make a symlink in here:
>
>
https://sources.debian.org/src/chromium/97.0.4692.71-0.1~deb11u1/debian/chromium.links/
>
> A patch to this effect is attached.
>
>
> -- System Information:
> Debian Release: 11.2
> APT prefers stable-updates
> APT policy: (500, 'stable-updates'), (500, 'stable-security'),
(500, 'proposed-updates'), (500, 'stable')
> Architecture: amd64 (x86_64)
>
> Kernel: Linux 5.14.0-0.bpo.2-amd64 (SMP w/8 CPU threads)
> Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE,
TAINT_UNSIGNED_MODULE
> Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8),
LANGUAGE not set
> Shell: /bin/sh linked to /usr/bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
>
> Versions of packages chromium-common depends on:
> ii libc6 2.31-13+deb11u2
Does this still happen? I couldn't reproduce it on cinnamon in debian
stable with the latest version of chromium; at least, it shows the
correct icon.
I tested this again today and I realized I described the problem poorly.
Even I didn't understand what I wrote back then!
The launcher itself DOESN'T have a problem:
The problem is not this Icon= .desktop file:
s@desktop-staff:~$ grep -r Icon= .local/share/applications/
.local/share/applications/chrome-jjabmijabmlnfpabpjhhlghhlbjjfedc-Default.desktop:Icon=chrome-jjabmijabmlnfpabpjhhlghhlbjjfedc-Default
But the menu it creates has a problem:
s@desktop-staff:~$ grep -r Icon= .local/share/desktop-directories/
.local/share/desktop-directories/chrome-apps.directory:Icon=chromium-browser
I cannot explain why you do not see this on Cinnamon.
The icon is not created by chromium when it creates the .directory file:
s@desktop-staff:~$ find ~ -xdev -name 'chromium-browser.*'
[no matches]
And it is not created by Debian when chrome is installed:
root@desktop-staff:~# find / -xdev -name 'chromium-browser.*'
[no matches]
Maybe you do not see it on Cinnamon because you have a non-default icon theme installed and enabled?
For example these provide the icon but only when that theme is enabled:
bash5$ apt-file search chromium-browser.
deepin-icon-theme: /usr/share/icons/Sea/apps/scalable/chromium-browser.svg
deepin-icon-theme: /usr/share/icons/bloom-classic/apps/48/chromium-browser.svg
deepin-icon-theme: /usr/share/icons/bloom/apps/48/chromium-browser.svg
faenza-icon-theme: /usr/share/icons/Faenza/apps/scalable/chromium-browser.svg
mint-y-icons: /usr/share/icons/Mint-Y/apps/48/chromium-browser.png
moka-icon-theme: /usr/share/icons/Moka/48x48/apps/chromium-browser.png
numix-icon-theme-circle: /usr/share/icons/Numix-Circle/48/apps/chromium-browser.svg
obsidian-icon-theme: /usr/share/icons/Obsidian/apps/48/chromium-browser.png
paper-icon-theme: /usr/share/icons/Paper/48x48/apps/chromium-browser.png
papirus-icon-theme: /usr/share/icons/Papirus/48x48/apps/chromium-browser.svg
My testing is (and was) using the default GTK3 icon theme, Adwaita.
As a test, I installed faenza-icon-theme and switched to it, and
having done so, the problem seems to go away.
In other words, this problem is still reproducible on Debian 12 with
Chromium and XFCE in their *default* configuration, but
not if you customize the icon theme.
Maybe this bug should actually be reported against whatever provides the "default" GTK icons -- Adwaita and High Contrast?
But they do not provide chromium.png either. It is chromium itself which provides that:
chromium: /usr/share/pixmaps/chromium.png
chromium: /usr/share/icons/hicolor/128x128/apps/chromium.png
chromium: /usr/share/icons/hicolor/64x64/apps/chromium.png
chromium: /usr/share/icons/hicolor/24x24/apps/chromium.png
chromium: /usr/share/icons/hicolor/32x32/apps/chromium.png
chromium: /usr/share/icons/hicolor/16x16/apps/chromium.png
chromium: /usr/share/icons/hicolor/48x48/apps/chromium.png
chromium: /usr/share/icons/hicolor/256x256/apps/chromium.png
I think the short version is:
1. chromium ships /usr/share/icon/*/chromium.png but NOT chromium-browser.png
2. chromium creates chrome-apps.directory with Icon=chromium-browser NOT Icon=chromium
3. some icon themes provide chromium-browser.png, but NOT all of them.
4. Either
a. chromium should ship chromium-browser.png -> chromium.png symlinks; or
b. chromium should create Icon=chromium NOT Icon=chromium-browser.
The former should be pretty easy to add to
https://sources.debian.org/src/chromium/116.0.5845.96-2/debian/chromium.links/
The minimum patch is
usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium.png
+usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium-browser.png
A more complete patch would be
usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium.png
+usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/pixmaps/chromium-browser.png
+usr/share/icons/hicolor/128x128/apps/chromium.png usr/share/icons/hicolor/128x128/apps/chromium-browser.png
+usr/share/icons/hicolor/64x64/apps/chromium.png usr/share/icons/hicolor/64x64/apps/chromium-browser.png
+usr/share/icons/hicolor/24x24/apps/chromium.png usr/share/icons/hicolor/24x24/apps/chromium-browser.png
+usr/share/icons/hicolor/32x32/apps/chromium.png usr/share/icons/hicolor/32x32/apps/chromium-browser.png
+usr/share/icons/hicolor/16x16/apps/chromium.png usr/share/icons/hicolor/16x16/apps/chromium-browser.png
+usr/share/icons/hicolor/48x48/apps/chromium.png usr/share/icons/hicolor/48x48/apps/chromium-browser.png
+usr/share/icons/hicolor/256x256/apps/chromium.png usr/share/icons/hicolor/256x256/apps/chromium-browser.png