Bug 496774 - OSD announcing a device change when I connect my headphones using the 3.5mm audio jack shows a "speakers" icon, not a "headphones" icon
Summary: OSD announcing a device change when I connect my headphones using the 3.5mm a...
Status: RESOLVED NOT A BUG
Alias: None
Product: plasmashell
Classification: Plasma
Component: Audio in general (show other bugs)
Version: 6.3.0
Platform: Arch Linux Linux
: NOR minor
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-28 02:04 UTC by Fernando M. Muniz
Modified: 2025-03-11 21:01 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Headphone icon is not showing. (81.18 KB, image/png)
2024-11-28 02:04 UTC, Fernando M. Muniz
Details
Issue on Plasma 6.3.0 (3.05 MB, video/x-matroska)
2025-02-16 12:16 UTC, Fernando M. Muniz
Details
Maybe this helps to identify the size? When I put it on my PS5 controller my PS5 recognizes it. (2.71 MB, image/jpeg)
2025-02-18 04:11 UTC, Fernando M. Muniz
Details
Both of these, but the widget is far more important due to being always visible. (211.52 KB, image/jpeg)
2025-02-18 15:34 UTC, Fernando M. Muniz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Fernando M. Muniz 2024-11-28 02:04:56 UTC
Created attachment 176178 [details]
Headphone icon is not showing.

Apparently a headphone icon was supposed to be showing in the attachment, but it's not; it's just the speaker icon, even though the system identified as a Headphone.
Comment 1 Fernando M. Muniz 2024-11-29 15:54:31 UTC
My headphone is "PlayStation Gold Wireless Headset The Last of Us Part 2 - PS4", and I'm using the audio cable instead of USB.
Comment 2 Nate Graham 2024-11-29 15:57:35 UTC
This is already fixed for Plasma 6.3.0 with https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4937!
Comment 3 Fernando M. Muniz 2025-02-16 12:16:47 UTC
Created attachment 178434 [details]
Issue on Plasma 6.3.0
Comment 4 Nate Graham 2025-02-18 03:52:06 UTC
Hmm, that's odd. You say you're plugging in the headphones using "the audio cable"; is this the small round 3.5mm audio jack?

I ask because when I plug in my 3.5mm audio jack headphones, there's no OSD that shows it the way there is in your screen recording. So I'm wondering what you're doing to make that OSD appear.
Comment 5 Fernando M. Muniz 2025-02-18 04:11:45 UTC
Created attachment 178503 [details]
Maybe this helps to identify the size? When I put it on my PS5 controller my PS5 recognizes it.

I also noticed that Plasma actually describes it as "Headphones" with an S. Maybe that's why? A typo?
Comment 6 Nate Graham 2025-02-18 04:16:10 UTC
That's a 3.5mm audio plug, yeah. So you're plugging it into your PS5 controller rather than the computer?

When you plug it into the computer directly, you see no OSD, right?
Comment 7 Fernando M. Muniz 2025-02-18 04:18:49 UTC
I'm plugging into my computer. When I said that the PS5 recognizes it, I meant to say that the problem is not my headphone failing to present itself.
Comment 8 Fernando M. Muniz 2025-02-18 04:25:12 UTC
I'm plugging into my computer. When I said that the PS5 recognizes it, I meant to say that the problem is not my headphone failing to present itself.
Comment 9 Fernando M. Muniz 2025-02-18 04:31:11 UTC
I'm plugging into my computer. When I said that the PS5 recognizes it, I meant to say that the problem is not my headphone failing to present itself.(In reply to Fernando M. Muniz from comment #3)
> Created attachment 178434 [details]
> Issue on Plasma 6.3.0

In this video I'm putting that audio cable in my notebook. Neither the applet or that notification in the middle shows the headphone icon despite both saying "Headphones".
Comment 10 Nate Graham 2025-02-18 05:05:13 UTC
Ok, then your system must have an audio setup with the 3.5mm audio in jack set up as a different device, rather than as a different port of a combined "speakers and headphone jack" device. This is the codepath where an OSD gets shown.

Please attach the output of `pactl list`.
Comment 11 Fernando M. Muniz 2025-02-18 05:14:09 UTC
        Buffer Latency: 0 usec
        Source Latency: 0 usec
        Resample method: PipeWire
        Properties:
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = ""
                application.id = "org.kde.plasma-pa"
                application.icon_name = ""
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                media.name = "PlasmaPA-VolumeMeter"
                node.rate = "1/25"
                node.latency = "1/25"
                stream.monitor = "true"
                target.object = "3983"
                stream.is-live = "true"
                node.name = ""
                node.want-driver = "true"
                node.autoconnect = "true"
                node.dont-reconnect = "true"
                media.class = "Stream/Input/Audio"
                resample.peaks = "true"
                channelmix.normalize = "true"
                port.ignore-latency = "true"
                port.group = "stream.0"
                adapt.follower.spa-node = ""
                object.register = "false"
                factory.id = "7"
                clock.quantum-limit = "8192"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                client.id = "81"
                object.id = "85"
                object.serial = "5477"
                module-stream-restore.id = "source-output-by-application-id:org.kde.plasma-pa"

Source Output #5478
        Driver: PipeWire
        Owner Module: n/a
        Client: 86
        Source: 4294967295
        Sample Specification: float32le 1ch 25Hz
        Channel Map: mono
        Format: pcm, format.sample_format = "\"float32le\""  format.rate = "25"  format.channels = "1"  format.channel_map = "\"mono\""
        Corked: yes
        Mute: no
        Volume: mono: 65536 / 100% / 0,00 dB
                balance 0,00
        Buffer Latency: 0 usec
        Source Latency: 0 usec
        Resample method: PipeWire
        Properties:
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = ""
                application.id = "org.kde.plasma-pa"
                application.icon_name = ""
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                media.name = "PlasmaPA-VolumeMeter"
                node.rate = "1/25"
                node.latency = "1/25"
                stream.monitor = "true"
                target.object = "4003"
                stream.is-live = "true"
                node.name = ""
                node.want-driver = "true"
                node.autoconnect = "true"
                node.dont-reconnect = "true"
                media.class = "Stream/Input/Audio"
                resample.peaks = "true"
                channelmix.normalize = "true"
                port.ignore-latency = "true"
                port.group = "stream.0"
                adapt.follower.spa-node = ""
                object.register = "false"
                factory.id = "7"
                clock.quantum-limit = "8192"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                client.id = "81"
                object.id = "89"
                object.serial = "5478"
                module-stream-restore.id = "source-output-by-application-id:org.kde.plasma-pa"

Source Output #5479
        Driver: PipeWire
        Owner Module: n/a
        Client: 86
        Source: 4294967295
        Sample Specification: float32le 1ch 25Hz
        Channel Map: mono
        Format: pcm, format.sample_format = "\"float32le\""  format.rate = "25"  format.channels = "1"  format.channel_map = "\"mono\""
        Corked: yes
        Mute: no
        Volume: mono: 65536 / 100% / 0,00 dB
                balance 0,00
        Buffer Latency: 0 usec
        Source Latency: 0 usec
        Resample method: PipeWire
        Properties:
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = ""
                application.id = "org.kde.plasma-pa"
                application.icon_name = ""
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                media.name = "PlasmaPA-VolumeMeter"
                node.rate = "1/25"
                node.latency = "1/25"
                stream.monitor = "true"
                target.object = "4093"
                stream.is-live = "true"
                node.name = ""
                node.want-driver = "true"
                node.autoconnect = "true"
                node.dont-reconnect = "true"
                media.class = "Stream/Input/Audio"
                resample.peaks = "true"
                channelmix.normalize = "true"
                port.ignore-latency = "true"
                port.group = "stream.0"
                adapt.follower.spa-node = ""
                object.register = "false"
                factory.id = "7"
                clock.quantum-limit = "8192"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                client.id = "81"
                object.id = "115"
                object.serial = "5479"
                module-stream-restore.id = "source-output-by-application-id:org.kde.plasma-pa"

Source Output #5480
        Driver: PipeWire
        Owner Module: n/a
        Client: 86
        Source: 4294967295
        Sample Specification: float32le 1ch 25Hz
        Channel Map: mono
        Format: pcm, format.sample_format = "\"float32le\""  format.rate = "25"  format.channels = "1"  format.channel_map = "\"mono\""
        Corked: yes
        Mute: no
        Volume: mono: 65536 / 100% / 0,00 dB
                balance 0,00
        Buffer Latency: 0 usec
        Source Latency: 0 usec
        Resample method: PipeWire
        Properties:
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = ""
                application.id = "org.kde.plasma-pa"
                application.icon_name = ""
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                media.name = "PlasmaPA-VolumeMeter"
                node.rate = "1/25"
                node.latency = "1/25"
                stream.monitor = "true"
                target.object = "4453"
                stream.is-live = "true"
                node.name = ""
                node.want-driver = "true"
                node.autoconnect = "true"
                node.dont-reconnect = "true"
                media.class = "Stream/Input/Audio"
                resample.peaks = "true"
                channelmix.normalize = "true"
                port.ignore-latency = "true"
                port.group = "stream.0"
                adapt.follower.spa-node = ""
                object.register = "false"
                factory.id = "7"
                clock.quantum-limit = "8192"
                node.loop.name = "data-loop.0"
                library.name = "audioconvert/libspa-audioconvert"
                client.id = "81"
                object.id = "152"
                object.serial = "5480"
                module-stream-restore.id = "source-output-by-application-id:org.kde.plasma-pa"

Client #32
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-802"
                pipewire.sec.socket = "pipewire-0-manager"
                pipewire.sec.pid = "802"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "32"
                object.serial = "32"
                application.version = "0.5.8"
                wireplumber.daemon = "true"
                wireplumber.profile = "main"
                application.name = "WirePlumber"
                remote.name = "[pipewire-0-manager,pipewire-0]"
                config.name = "null"
                context.modules.allow-empty = "true"
                application.process.binary = "wireplumber"
                application.language = "pt_BR.UTF-8"
                application.process.id = "802"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"
                session.services = "[api.alsa, policy.device.profile, api.bluez, policy.device.routes, policy.linking.role-based, bluetooth.audio, bluetooth.midi, policy.linking.standard, api.libcamera, audio, api.v4l2, policy.default-nodes, api.alsa-seq, video-capture, midi]"

Client #33
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "33"
                object.serial = "33"
                config.name = "pipewire-pulse.conf"
                application.name = "pipewire"
                application.process.binary = "pipewire"
                application.language = "pt_BR.UTF-8"
                application.process.id = "803"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #46
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-802"
                pipewire.sec.socket = "pipewire-0-manager"
                pipewire.sec.pid = "802"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "46"
                object.serial = "46"
                application.name = "WirePlumber [export]"
                wireplumber.export-core = "true"
                application.version = "0.5.8"
                wireplumber.daemon = "true"
                wireplumber.profile = "main"
                remote.name = "[pipewire-0-manager,pipewire-0]"
                config.name = "null"
                context.modules.allow-empty = "true"
                application.process.binary = "wireplumber"
                application.language = "pt_BR.UTF-8"
                application.process.id = "802"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #80
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-874"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "874"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "75"
                object.serial = "80"
                application.name = "kwin_wayland"
                application.process.binary = "kwin_wayland"
                application.language = "pt_BR.UTF-8"
                application.process.id = "874"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.session_id = "2"
                log.level = "0"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #81
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-882"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "882"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "76"
                object.serial = "81"
                pipewire.access.portal.is_portal = "true"
                portal.monitor = "Camera"
                application.name = "xdg-desktop-portal"
                application.process.binary = "xdg-desktop-portal"
                application.language = "pt_BR.UTF-8"
                application.process.id = "882"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.session_id = "2"
                window.x11.display = ":1"
                log.level = "0"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #82
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "77"
                object.serial = "82"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = "libcanberra"
                application.version = "0.30"
                application.id = "org.freedesktop.libcanberra"
                application.process.id = "988"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "kded6"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #83
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "78"
                object.serial = "83"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = ""
                application.id = "org.kde.kded6"
                application.icon_name = ""
                application.process.id = "988"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "kded6"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #84
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-1015"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "1015"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "79"
                object.serial = "84"
                application.name = "plasmashell"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.session_id = "2"
                window.x11.display = ":1"
                log.level = "0"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #85
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "80"
                object.serial = "85"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = "libcanberra"
                application.version = "0.30"
                application.id = "org.freedesktop.libcanberra"
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #86
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "81"
                object.serial = "86"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = ""
                application.id = "org.kde.plasma-pa"
                application.icon_name = ""
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #443
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "109"
                object.serial = "443"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.icon_name = ""
                application.id = "org.kde.plasmashell"
                application.name = ""
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #1576
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "93"
                object.serial = "1576"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                pipewire.access.portal.app_id = "org.mozilla.firefox"
                media.category = "Manager"
                pipewire.client.access = "flatpak"
                application.name = "Firefox"
                application.process.id = "2"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "firefox-bin"
                application.language = "pt_BR.UTF-8"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "flatpak"
                pipewire.access.effective = "flatpak-manager"

Client #1592
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "123"
                object.serial = "1592"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                pipewire.access.portal.app_id = "org.mozilla.firefox"
                media.category = "Manager"
                pipewire.client.access = "flatpak"
                application.icon_name = "firefox"
                application.name = "Firefox"
                application.version = "135.0"
                application.process.id = "2"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "firefox-bin"
                application.language = "pt_BR.UTF-8"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "flatpak"
                pipewire.access.effective = "flatpak-manager"

Client #2103
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "92"
                object.serial = "2103"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.icon_name = ""
                application.id = "org.kde.org_kde_powerdevil"
                application.name = "Sistema de gerenciamento de energia do KDE"
                application.process.id = "1060"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "org_kde_powerdevil"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Client #5575
        Driver: PipeWire
        Owner Module: 2
        Properties:
                pipewire.protocol = "protocol-native"
                core.name = "pipewire-tuti-803"
                pipewire.sec.socket = "pipewire-0"
                pipewire.sec.pid = "803"
                pipewire.sec.uid = "1000"
                pipewire.sec.gid = "1000"
                module.id = "2"
                object.id = "194"
                object.serial = "5575"
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.process.id = "86379"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "pactl"
                application.name = "pactl"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                config.name = "pipewire-pulse.conf"
                cpu.max-align = "64"
                default.clock.rate = "48000"
                default.clock.quantum = "1024"
                default.clock.min-quantum = "32"
                default.clock.max-quantum = "2048"
                default.clock.quantum-limit = "8192"
                default.clock.quantum-floor = "4"
                default.video.width = "640"
                default.video.height = "480"
                default.video.rate.num = "25"
                default.video.rate.denom = "1"
                log.level = "2"
                clock.power-of-two-quantum = "true"
                link.max-buffers = "64"
                mem.warn-mlock = "false"
                mem.allow-mlock = "true"
                settings.check-quantum = "false"
                settings.check-rate = "false"
                core.version = "1.2.7"
                pipewire.access = "unrestricted"

Sample #0
        Name: audio-volume-change
        Sample Specification: s16le 2ch 48000Hz
        Channel Map: front-left,front-right
        Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
                balance 0,00
        Duration: 0,3s
        Size: 56,4 KiB
        Lazy: no
        Filename: n/a
        Properties:
                client.api = "pipewire-pulse"
                pulse.server.type = "unix"
                application.name = "libcanberra"
                application.version = "0.30"
                application.id = "org.freedesktop.libcanberra"
                application.process.id = "1015"
                application.process.user = "tuti"
                application.process.host = "archlinux"
                application.process.binary = "plasmashell"
                application.language = "pt_BR.UTF-8"
                window.x11.display = ":1"
                application.process.machine_id = "a4202c1e08d642108713437f5a73242f"
                application.process.session_id = "2"
                event.id = "audio-volume-change"
                event.description = "Volume Control Feedback Sound"
                media.role = "event"
                media.name = "audio-volume-change"
                media.filename = "/usr/share/sounds/ocean/stereo/audio-volume-change.oga"

Card #50
        Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic
        Driver: alsa
        Owner Module: n/a
        Properties:
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.card.longname = "LENOVO-82MG-IdeaPadGaming315IHU6-LNVNB161216"
                api.alsa.card.name = "sof-hda-dsp"
                api.alsa.path = "hw:0"
                api.alsa.split-enable = "true"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                api.dbus.ReserveDevice1.Priority = "-20"
                device.api = "alsa"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
                device.description = "Tiger Lake-LP Smart Sound Technology Audio Controller"
                device.enum.api = "udev"
                device.icon_name = "audio-card-analog-pci"
                device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
                device.nick = "sof-hda-dsp"
                device.plugged.usec = "4656654"
                device.product.id = "0xa0c8"
                device.product.name = "Tiger Lake-LP Smart Sound Technology Audio Controller"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                media.class = "Audio/Device"
                spa.object.id = "2"
                factory.id = "15"
                client.id = "46"
                object.id = "50"
                object.serial = "50"
                object.path = "alsa:acp:sofhdadsp"
                alsa.card = "0"
                alsa.card_name = "sof-hda-dsp"
                alsa.long_card_name = "LENOVO-82MG-IdeaPadGaming315IHU6-LNVNB161216"
                alsa.driver_name = "snd_soc_skl_hda_dsp"
                alsa.mixer_name = "Realtek ALC257"
                alsa.components = "HDA:80862812,80860101,00100000 HDA:10ec0257,17aa38d2,00100001 cfg-dmics:2"
                alsa.id = "sofhdadsp"
                device.string = "0"
        Profiles:
                off: Desligado (sinks: 0, sources: 0, priority: 0, available: yes)
                HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2): Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2) (sinks: 4, sources: 2, priority: 10300, available: yes)
                HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker): Play HiFi quality Music (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker) (sinks: 4, sources: 2, priority: 10200, available: yes)
                pro-audio: Pro Audio (sinks: 5, sources: 3, priority: 1, available: yes)
        Active Profile: HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
        Ports:
                [Out] HDMI3: HDMI / DisplayPort 3 Output (type: HDMI, priority: 700, latency offset: 0 usec, availability group: HDMI/DP,pcm=5, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "HDMI/DP,pcm=5"
                                device.icon_name = "video-display"
                                card.profile.port = "0"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
                [Out] HDMI2: HDMI / DisplayPort 2 Output (type: HDMI, priority: 600, latency offset: 0 usec, availability group: HDMI/DP,pcm=4, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "HDMI/DP,pcm=4"
                                device.icon_name = "video-display"
                                card.profile.port = "1"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
                [Out] HDMI1: HDMI / DisplayPort 1 Output (type: HDMI, priority: 500, latency offset: 0 usec, availability group: HDMI/DP,pcm=3, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "HDMI/DP,pcm=3"
                                device.icon_name = "video-display"
                                card.profile.port = "2"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
                [Out] Speaker: Speaker (type: Speaker, priority: 100, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "speaker"
                                device.icon_name = "audio-speakers"
                                card.profile.port = "3"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker)
                [In] Mic2: Headphones Stereo Microphone (type: Mic, priority: 200, latency offset: 0 usec, availability group: Mic, not available)
                        Properties:
                                port.type = "mic"
                                port.availability-group = "Mic"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "4"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
                [In] Mic1: Digital Microphone (type: Mic, priority: 100, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "mic"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "5"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Mic1, Mic2, Speaker), HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
                [Out] Headphones: Headphones (type: Headphones, priority: 200, latency offset: 0 usec, availability group: Headphone, available)
                        Properties:
                                port.type = "headphones"
                                port.availability-group = "Headphone"
                                device.icon_name = "audio-headphones"
                                card.profile.port = "6"
                        Part of profile(s): HiFi (HDMI1, HDMI2, HDMI3, Headphones, Mic1, Mic2)
Comment 12 Nate Graham 2025-02-18 15:04:34 UTC
Was the device plugged in when you ran that command?
Comment 13 Fernando M. Muniz 2025-02-18 15:07:19 UTC
(In reply to Nate Graham from comment #12)
> Was the device plugged in when you ran that command?

Yes.
Comment 14 Nate Graham 2025-02-18 15:28:06 UTC
To be clear, when you say there was supposed to be a headphone icon, are you talking about the widget pop-up from the System Tray, the OSD that appears when you switch devices, or both?
Comment 15 Fernando M. Muniz 2025-02-18 15:34:41 UTC
Created attachment 178524 [details]
Both of these, but the widget is far more important due to being always visible.
Comment 16 Nate Graham 2025-02-18 15:44:22 UTC
Ok, then there is some confusion, because the widget does not show any device icons. The small "speaker" icon you're seeing there is not a device-specific icon; it's just a volume icon. Click on it and it'll turn into a mute icon.

As such, the lack of a "headphones" icon in the widget is not a bug, so let's concentrate in this bug report on the OSD having the wrong icon.
Comment 17 Fernando M. Muniz 2025-02-18 15:49:17 UTC
(In reply to Nate Graham from comment #16)
> Ok, then there is some confusion, because the widget does not show any
> device icons. The small "speaker" icon you're seeing there is not a
> device-specific icon; it's just a volume icon. Click on it and it'll turn
> into a mute icon.
> 
> As such, the lack of a "headphones" icon in the widget is not a bug, so
> let's concentrate in this bug report on the OSD having the wrong icon.

Ok, I'm also very confused. In Bug 496335 I requested for a headphone icon there, correct?
Comment 18 Nate Graham 2025-02-18 15:52:12 UTC
In Bug 496335, you requested that an icon be added to the icon theme. I replied that one already existed in the icon theme.

If you were requesting that the Audio Volume widget show device icons *in general*, then you would need to open a bug report about that specifically.

I'm not sure this is a great idea though, as it will expose a million bugs about device icons being wrong (like this bug report).
Comment 19 Fernando M. Muniz 2025-02-18 16:10:34 UTC
Should I close this bug since these speaker icons are intentional? (at least until Bug 500328 gets approved)
Comment 20 Nate Graham 2025-02-18 16:15:59 UTC
Fernando, can you please stop being so trigger-happy with the bug reports? There are indeed issues and areas for improvement here, but we need for each bug report to be well-scoped to be actionable. *this* bug report is now about the issue with the OSD not showing the appropriate icon *since it does show a device-specific icon, just not the right one. But bug 500328 which you've just opened contains elements of this as well as a request for something else. It takes time to untangle this mess.

So let's please slow down and make sure that each bug report is well-considered, well-scoped, does not duplicate something being reported or requested in another bug report, and does not re-characterize a bug as a feature request or vice versa. Thanks
Comment 21 Nate Graham 2025-02-18 20:51:00 UTC
So we have discovered here that when you plug in your headphones to the 3.5mm audio jack, internally the audio device is actually changed, and this triggers an OSD, and that OSD has a symbolic icon depicting a speaker rather than a more appropriate icon depicting headphones.

There are two aspects to this problem:
1. It's inconsistent that an "audio device switched" OSD is shown for this type of device setup, but not for the type of device setup where plugging something into the 3.5mm audio jack simply changes the port on the existing device. To the user, the same thing happened, yet only one of these codepaths shows an OSD.
2. The icon in the OSD is wrong. You plugged in headphones, but it shows an icon for a speaker.

The first problem is fixable. We could make it show an OSD for port changes, or stop showing an OSD for device changes, or stop showing OSDs for *directly-user-initiated* device changes where the user is likely to not need the information from the OSD. I couldn't find an existing bug report about just this, so I opened one: Bug 500348.

The second problem is unfortunately not fixable. When you plug something into the 3.5mm audio jack, the system has no way to know what it is. It could be a pair of headphones, or it could be a speaker, or an amplifier, or a wired-to-Bluetooth adapter, or a toaster oven. The 3.5mm audio cable does not pass data bidirectionally; there is no way for it to tell them system what kind of device it's attached to. As such, there is literally no way for the system to know that what you plugged in is a pair of headphones, and show an appropriate icon depicting headphones.

So there's nothing we can do here, sorry. It would be best to interpret the speaker icon you're looking at not as a literal icon for a pair of speakers, but rather as a symbolic representation of the concepts of sound and audio, as in "your active audio device changed!"

Hopefully this explanation makes sense.
Comment 22 Fernando M. Muniz 2025-03-10 21:46:42 UTC
Would it be possible to add a audio jack (and HDMI) as icons instead then? That would be sufficient to indicate that the user is not using the internal speakers. Perhaps keeping the two sound waves, but replacing the actual speaker part of the icon?
Comment 23 Nate Graham 2025-03-11 21:01:40 UTC
Anything is possible in principle. In this case it's tricky since:
1. We have no such icons
2. Even if we added them, 3rd-party icon themes would be slow to add them, and most never would
3. The icon names we use come from the audio stack; we don't actually do processing on our side, so we'd have to start doing that and then fix or live with the additional bugs we might introduce in the process. :)