Comments (6)
Sorry this broke you @milaq
From memory, I couldn't find a way to change the description that would persist logouts/reboots.
Trying pavucontrol just now, the UI seems to only support renaming the port, not changing the device description, and it doesn't work with Pipewire on my system.
But I'm fine with reverting.
Thanks
from i3status.
That's correct.
Maybe an option to switch between both behaviours in i3status.conf
would be worth a future implementation.
What also could be an option is to combine device description and port name or even exposing both entities as variables in the config so that every user may decide on their own which one takes priority or even combining it in a appropriate string themselves. E.g.:
format = "Vol: %devicename/%deviceport %volume"
For now though, I deem the use-case very narrow as most people switch between distinct PA sinks.
Furthermore with modern audio backends like PipeWire, port renaming is not as straightforward as device description renaming.
from i3status.
I have the same problem, both of my devices are named Speakers
now. PipeWire allows changing the device description property but I did not find a way to change the port description.
from i3status.
Same for me.
Ever since I used Pipewire with both pipewire-media-session and Wireplumber, the port ID renaming is not as straightforward as changing the device description, even impossible in some configurations.
Furthermore, in pavucontrol, when assigning output/input devices, the port name does not show up, only the device description.
For a streamlined behavior, as the device description is shown in many places around the OS, I think it'd be best to revert.
@mikelward Thanks for your reply and understanding. Pavucontrol does not work in every regard with PipeWire. But you may automatically change the device description based on rules. This also persists reboots.
For Wireplumber see https://wiki.archlinux.org/title/WirePlumber#Changing_a_device/node_property
Personally I use something like this
rule = {
matches = {
{
{ "alsa.card_name", "matches", "Xonar DGX" },
},
},
apply_properties = {
["node.description"] = "Headphones",
},
}
table.insert(alsa_monitor.rules,rule)
rule = {
matches = {
{
{ "alsa.card_name", "matches", "Yealink*" },
},
},
apply_properties = {
["node.description"] = "Yealink",
},
}
table.insert(alsa_monitor.rules,rule)
rule = {
matches = {
{
{ "api.alsa.path", "matches", "iec958*" },
},
},
apply_properties = {
["node.description"] = "AVR",
},
}
table.insert(alsa_monitor.rules,rule)
You may customize the dev description based on various sink or source attributes.
You may inspect them with:
wpctl status
and wpctl inspect <num>
respectively.
from i3status.
I just created a revert PR for the discussed behavior.
Thanks to everyone for their input.
from i3status.
But this still does not work on computers where all you want is switch between ports right? Like on a laptop where the speakers and headphone jack are on two different ports on the same device.
from i3status.
Related Issues (20)
- overflow in memory computation for 32-bit userland HOT 3
- I3Status bug since laste update [ARCH] HOT 9
- Nicely format uptime HOT 5
- i3status man page vs. separator_symbol HOT 7
- read_file can't read with & symbol? HOT 1
- Battery `%emptytime` returns empty string HOT 1
- Increase width to 3 characters+% for CPU usage
- i3status doesn't distinguish between Idle and discharging battery. HOT 3
- segfault when read_file module is missing the path option
- tztime format_time stopped working? HOT 2
- print_wireless_info buffer overflow HOT 4
- battery: do not show the same value as `neofetch` HOT 1
- I have an issue with i3status about option 'order'. HOT 1
- Battery module incorrectly trims whitespace
- Ethernet iface's with @ in ifname not properly supported
- Fails to build on Mac
- wireless _first_ not working HOT 1
- i3status shows negative WiFi bitrate (integer overflow) HOT 2
- Feature request: Make space between workspace names configurable HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from i3status.