easyeffects icon indicating copy to clipboard operation
easyeffects copied to clipboard

Some application icons are broken

Open paranoidi opened this issue 1 year ago • 11 comments

EasyEffects Version

7.1.0

What package are you using?

Flatpak (Flathub)

Distribution

Linux Mint

Describe the bug

Some application icons seem to be missing / broken. Based on other screenshots on the net it should not look like this. easy_effects_icons

Expected Behavior

High resolution icons should be visible.

Debug Log

No response

Additional Information

No response

paranoidi avatar Sep 23 '23 22:09 paranoidi

Based on other screenshots on the net it should not look like this.

Yes. In the code we have to request from the icon theme icons by name. Usually when it happens what it is in your image the reason is not having in the currently loaded icon theme icons named like the ones requested. The easiest solution in your case will be to install the Adwaita icon theme.

Some of the icons that are usually only available on Adwaita we have embedded in our source code. But embedding all of them does not seem to be the best approach. So the proper solution is installing an icon theme that has the requested icons. @vchernin does anything special has to be done on Flatpak or just installing the icon theme will be enough?

wwmm avatar Sep 24 '23 00:09 wwmm

The flatpak icons should work out of the box with the adwaita theme, the only way a custom theme can be used with gtk4 and flatpak is by overriding the easyeffects flatpak permissions. Installing an icon theme for gtk4 last I checked won't do anything for flatpaks without manual overrides.

vchernin avatar Sep 24 '23 00:09 vchernin

The easiest solution in your case will be to install the Adwaita icon theme.

Seems like that's already installed. adwaita-icon-theme is already the newest version (41.0-1ubuntu1).

Is there something else I could try?

Some of the icons that are usually only available on Adwaita we have embedded in our source code. But embedding all of them does not seem to be the best approach.

I have to respectfully disagree, the whole point of flatpak is to distribute everything that is needed to run the application. And apps really should strive towards working out of the box without any additional tweaking. That should be the case per @vchernin comment but is not. The combined download was about a gigabyte for me already so drawing the line for a additional icons is probably not the breaking point.

paranoidi avatar Sep 24 '23 11:09 paranoidi

I have to respectfully disagree, the whole point of flatpak is to distribute everything that is needed to run the application. And apps really should strive towards working out of the box without any additional tweaking. That should be the case per @vchernin comment but is not. The combined download was about a gigabyte for me already so drawing the line for a additional icons is probably not the breaking point.

If there is no other way we will have to embed them. But it has been so long since someone reported having broken icons and specially so many broken icons that embedding them in our source code will probably just mask the problem that is causing this to happen in your installation. The main reason why we embed some icons is not because there is no alternative available in the user icon theme but because the wrong message would be given if the local icon is used.

For example for the Output / Input tabs icons we just request the usual speaker / microphone icons. Any decent icon theme out there provides icons for microphone and speakers. It is bizarre that these ones are broken while the "network-server" icon requested for the pipewire tab works.

Is there something else I could try?

For now follow step number 3 at https://github.com/wwmm/easyeffects/wiki/Reporting-Bugs so we can see if some warning is shown when running in debug mode.

wwmm avatar Sep 24 '23 14:09 wwmm

Debug logs:

(process:2): easyeffects-DEBUG: 17:28:26.074: 	easyeffects.cpp:35	easyeffects version: 7.1.0
(process:2): easyeffects-DEBUG: 17:28:26.075: 	easyeffects.cpp:45	locale directory: /app/share/locale
(easyeffects:2): easyeffects-DEBUG: 17:28:26.098: 	presets_manager.cpp:162user presets directory already exists: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/
(easyeffects:2): easyeffects-DEBUG: 17:28:26.098: 	presets_manager.cpp:162user presets directory already exists: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/input
(easyeffects:2): easyeffects-DEBUG: 17:28:26.098: 	presets_manager.cpp:162user presets directory already exists: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output
(easyeffects:2): easyeffects-DEBUG: 17:28:26.098: 	presets_manager.cpp:162user presets directory already exists: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/input
(easyeffects:2): easyeffects-DEBUG: 17:28:26.098: 	presets_manager.cpp:162user presets directory already exists: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/autoload/output
(easyeffects:2): easyeffects-DEBUG: 17:28:26.259: 	pipe_manager.cpp:1429	compiled with PipeWire: 0.3.69
(easyeffects:2): easyeffects-DEBUG: 17:28:26.259: 	pipe_manager.cpp:1430	linked to PipeWire: 0.3.69
(easyeffects:2): easyeffects-DEBUG: 17:28:26.267: 	pipe_manager.cpp:1400	core version: 0.3.79
(easyeffects:2): easyeffects-DEBUG: 17:28:26.267: 	pipe_manager.cpp:1401	core name: pipewire-0
(easyeffects:2): easyeffects-DEBUG: 17:28:26.268: 	pipe_manager.cpp:1312	found metadata: settings
(easyeffects:2): easyeffects-DEBUG: 17:28:26.268: 	pipe_manager.cpp:1312	found metadata: default
(easyeffects:2): easyeffects-DEBUG: 17:28:26.268: 	pipe_manager.cpp:1312	found metadata: route-settings
(easyeffects:2): easyeffects-DEBUG: 17:28:26.269: 	pipe_manager.cpp:1167	Audio/Sink 53 alsa_output.usb-Topping_DX3_Pro_-00.iec958-stereo with serial 53 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.269: 	pipe_manager.cpp:1167	Audio/Source 34 alsa_input.usb-Dreadbox_Typhon_XXXXXXXXXXXX-00.analog-stereo with serial 54 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.269: 	pipe_manager.cpp:1167	Audio/Sink 51 alsa_output.pci-0000_00_1f.3.analog-stereo with serial 55 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.269: 	pipe_manager.cpp:1167	Audio/Source 49 alsa_input.pci-0000_00_1f.3.analog-stereo with serial 56 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.269: 	pipe_manager.cpp:1167	Audio/Sink 52 alsa_output.pci-0000_01_00.1.hdmi-stereo with serial 104 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.271: 	pipe_manager.cpp:1167	Stream/Output/Audio 102 spotify with serial 216 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.271: 	pipe_manager.cpp:1207	spotify port 104 is connected to alsa_output.pci-0000_00_1f.3.analog-stereo port 62
(easyeffects:2): easyeffects-DEBUG: 17:28:26.271: 	pipe_manager.cpp:1207	spotify port 101 is connected to alsa_output.pci-0000_00_1f.3.analog-stereo port 64
(easyeffects:2): easyeffects-DEBUG: 17:28:26.271: 	pipe_manager.cpp:1167	Audio/Sink 99 easyeffects_sink with serial 222 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.271: 	pipe_manager.cpp:1167	Audio/Source/Virtual 98 easyeffects_source with serial 223 has been added
(easyeffects:2): easyeffects-DEBUG: 17:28:26.272: 	pipe_manager.cpp:900	new metadata property: 0, default.configured.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_1f.3.analog-stereo"}
(easyeffects:2): easyeffects-DEBUG: 17:28:26.272: 	pipe_manager.cpp:900	new metadata property: 0, default.audio.sink, Spa:String:JSON, {"name":"alsa_output.pci-0000_00_1f.3.analog-stereo"}
(easyeffects:2): easyeffects-DEBUG: 17:28:26.272: 	pipe_manager.cpp:900	new metadata property: 0, default.audio.source, Spa:String:JSON, {"name":"alsa_input.usb-Dreadbox_Typhon_XXXXXXXXXXXX-00.analog-stereo"}
(easyeffects:2): easyeffects-DEBUG: 17:28:26.272: 	pipe_manager.cpp:1524	easyeffects_sink node successfully retrieved with id 99 and serial 222
(easyeffects:2): easyeffects-DEBUG: 17:28:26.272: 	pipe_manager.cpp:1529	easyeffects_source node successfully retrieved with id 98 and serial 223
'spa_pod_is_array(pod)' failed at /usr/include/spa-0.2/spa/pod/iter.h:319 spa_pod_get_array()
(easyeffects:2): easyeffects-DEBUG: 17:28:26.286: 	plugin_base.cpp:370	soe: output_level successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 17:28:26.288: 	plugin_base.cpp:370	soe: spectrum successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 17:28:26.293: 	plugin_base.cpp:370	sie: output_level successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 17:28:26.294: 	plugin_base.cpp:370	sie: spectrum successfully connected to PipeWire graph
(easyeffects:2): easyeffects-DEBUG: 17:28:26.300: 	output_level.cpp:37	soe: output_level: PipeWire blocksize: 1024
(easyeffects:2): easyeffects-DEBUG: 17:28:26.300: 	output_level.cpp:38	soe: output_level: PipeWire sampling rate: 48000
easyeffects-INFO: 17:28:26.310: 	application.cpp:50	disabling global bypass
(easyeffects:2): easyeffects-DEBUG: 17:28:26.325: 	application_ui.cpp:86	Icon Theme Mint-Y-Dark-Aqua detected
(easyeffects:2): easyeffects-DEBUG: 17:28:26.588: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.588: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.601: 	presets_manager.cpp:680autoloading preset Init for device alsa_output.pci-0000_00_1f.3.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 17:28:26.601: 	effects_base.cpp:262	soe: pipeline latency: 0 ms
(easyeffects:2): easyeffects-DEBUG: 17:28:26.611: 	app_info.cpp:319	spotify disposed
(easyeffects:2): easyeffects-DEBUG: 17:28:26.611: 	app_info.cpp:327	spotify finalized
(easyeffects:2): easyeffects-DEBUG: 17:28:26.611: 	app_info.cpp:28	data struct destroyed
(easyeffects:2): easyeffects-DEBUG: 17:28:26.619: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.619: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.624: 	presets_manager.cpp:524successfully loaded preset: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/Init.json
(easyeffects:2): easyeffects-DEBUG: 17:28:26.766: 	application.cpp:78	new default output device: alsa_output.pci-0000_00_1f.3.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 17:28:26.767: 	presets_manager.cpp:680autoloading preset Init for device alsa_output.pci-0000_00_1f.3.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 17:28:26.767: 	effects_base.cpp:262	soe: pipeline latency: 0 ms
(easyeffects:2): easyeffects-DEBUG: 17:28:26.768: 	pipe_manager.cpp:900	new metadata property: 102, target.node, Spa:Id, 99
(easyeffects:2): easyeffects-DEBUG: 17:28:26.768: 	pipe_manager.cpp:900	new metadata property: 102, target.object, Spa:Id, 222
(easyeffects:2): easyeffects-DEBUG: 17:28:26.768: 	pipe_manager.cpp:1207	spotify port 104 is connected to easyeffects_sink port 97
(easyeffects:2): easyeffects-DEBUG: 17:28:26.768: 	pipe_manager.cpp:1207	spotify port 101 is connected to easyeffects_sink port 90
(easyeffects:2): easyeffects-DEBUG: 17:28:26.779: 	app_info.cpp:319	spotify disposed
(easyeffects:2): easyeffects-DEBUG: 17:28:26.784: 	app_info.cpp:327	spotify finalized
(easyeffects:2): easyeffects-DEBUG: 17:28:26.784: 	app_info.cpp:28	data struct destroyed
(easyeffects:2): easyeffects-DEBUG: 17:28:26.786: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.786: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.789: 	presets_manager.cpp:524successfully loaded preset: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/Init.json
(easyeffects:2): easyeffects-DEBUG: 17:28:26.797: 	application.cpp:86	new default input device: alsa_input.usb-Dreadbox_Typhon_XXXXXXXXXXXX-00.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	application.cpp:130	device alsa_card.pci-0000_01_00.1 has changed its output route to: hdmi-output-0
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	application.cpp:150	output autoloading: the target node name does not match the output device name
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	application.cpp:130	device alsa_card.usb-Topping_DX3_Pro_-00 has changed its output route to: iec958-stereo-output
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	application.cpp:150	output autoloading: the target node name does not match the output device name
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	application.cpp:98	device alsa_card.usb-Dreadbox_Typhon_XXXXXXXXXXXX-00 has changed its input route to: analog-input
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	application.cpp:130	device alsa_card.pci-0000_00_1f.3 has changed its output route to: analog-output-lineout
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	presets_manager.cpp:680autoloading preset Init for device alsa_output.pci-0000_00_1f.3.analog-stereo
(easyeffects:2): easyeffects-DEBUG: 17:28:26.805: 	effects_base.cpp:262	soe: pipeline latency: 0 ms
(easyeffects:2): easyeffects-DEBUG: 17:28:26.810: 	app_info.cpp:319	spotify disposed
(easyeffects:2): easyeffects-DEBUG: 17:28:26.811: 	app_info.cpp:327	spotify finalized
(easyeffects:2): easyeffects-DEBUG: 17:28:26.811: 	app_info.cpp:28	data struct destroyed
(easyeffects:2): easyeffects-DEBUG: 17:28:26.851: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.851: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.856: 	presets_manager.cpp:524successfully loaded preset: /home/paranoidi/.var/app/com.github.wwmm.easyeffects/config/easyeffects/output/Init.json
(easyeffects:2): easyeffects-DEBUG: 17:28:26.859: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.859: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.859: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.859: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.870: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:26.870: 	app_info.cpp:141	cannot lookup application icon spotify in /usr/local/share/pixmaps
(easyeffects:2): easyeffects-DEBUG: 17:28:37.152: 	stream_input_effects.cpp:165	No app linked to our device wants to play. Unlinking our filters.

paranoidi avatar Sep 24 '23 14:09 paranoidi

Based on what I saw in Mint-Y-Dark-Aqua source code they do not seem to provide some common icons indeed. I do not remember if the system is able to fallback to another icon provided by one of the other themes installed. It is probably being dumb and searching only in the theme currently loaded by the user and ignoring the other ones installed.

Other than setting the desktop to a more complete icon theme embedding icons in our source seems to be the only way. But I have no idea about when this is happening. We literally have to download all the icons to our source code, rename them, adjusting the build scripts, give the appropriate credits, etc.

And the people that want to see our icons following the ones from the icon theme they set to their desktops will probably open issues asking why this does not work anymore...

wwmm avatar Sep 24 '23 15:09 wwmm

Could you confirm with eg the flatseal app from flathub that there are no flatpak permission changes to easyeffects or globally? There should be a reset button which resets to defaults.

vchernin avatar Sep 24 '23 17:09 vchernin

And the people that want to see our icons following the ones from the icon theme they set to their desktops will probably open issues asking why this does not work anymore...

@wwmm Maybe fall back to bundled icons if theme does not have appropriate icon available? I know, all of this work for icons sounds a bit PITA for possibly small amount of users. Although I suspect not many have gone the trouble of reporting this issue as app works fine otherwise.

Could you confirm with eg the flatseal app from flathub that there are no flatpak permission changes to easyeffects or globally?

@vchernin I didn't even have flatseal installed. I did install it and verify per your request. Unfortunately there aren't any overrides that I can see and I even tried resetting EasyEffects from flatseal.

paranoidi avatar Sep 24 '23 17:09 paranoidi

Maybe fall back to bundled icons if theme does not have appropriate icon available? I know, all of this work for icons sounds a bit PITA for possibly small amount of users. Although I suspect not many have gone the trouble of reporting this issue as app works fine otherwise.

I would gladly do it if it were possible to implement the fallback on our side. But unfortunately it is up to gtk and the user desktop to do it. In the past some users faced a similar problem. But the amount of broken icons was not so big. It seems it will depend on how complete the user icon theme is.

wwmm avatar Sep 24 '23 22:09 wwmm

I also have broken icons but only on wayland. Additionally Font is not smoothed out. Font is not smoothed out also in app Flatseal. Icons and font are displayed good under X11

Dani3I avatar Mar 23 '24 18:03 Dani3I

Additionally Font is not smoothed out. Font is not smoothed out also in app Flatseal.

It may help to take a look at section 6.13 of https://wiki.archlinux.org/title/GTK. Some questionable approach was taken in gtk4 font handling.

wwmm avatar Mar 23 '24 20:03 wwmm