Giter Site home page Giter Site logo

Comments (6)

mikelward avatar mikelward commented on August 17, 2024 1

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.

milaq avatar milaq commented on August 17, 2024 1

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.

johannesneyer avatar johannesneyer commented on August 17, 2024

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.

milaq avatar milaq commented on August 17, 2024

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.

milaq avatar milaq commented on August 17, 2024

I just created a revert PR for the discussed behavior.
Thanks to everyone for their input.

from i3status.

johannesneyer avatar johannesneyer commented on August 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.