Pipewire - запретить системе автоматическое включение нового аудиооборудования

Я использую Debian 11 и только что перешел с него, следуя официальному руководству .

Он отлично работает с аудио, но всякий раз, когда система обнаруживает новое аудиоустройство, она автоматически включает его! Я ненавижу это, потому что у меня есть мой основной аудиоинтерфейс, пара веб-камер и внутренний микрофон ноутбука. И если все это включить, возникает большая путаница. Поэтому я предпочитаю оставить включенным только мой аудиоинтерфейс, а остальные выключить.

На pulseauadioэто было легко. Я только что перешел к /etc/pulse/default.pa где я обнаружил эту строку:

      load-module module-switch-on-port-available

и прокомментировал это:

      #load-module module-switch-on-port-available

Затем я перезапускаю:

      pulseaudio -k

и все заработало.

С участием pipewire файл конфигурации немного другой:

      ┌───┐
│ $ │ ziga > ziga--workstation > ~
└─┬─┘ /dev/pts/0
  └─> sudo cat /etc/pipewire/pipewire.conf 
#daemon config file for PipeWire version "0.3.19"
properties = {
    ## configure properties in the system
    #library.name.system =                      support/libspa-support
    #context.data-loop.library.name.system =    support/libspa-support
    #link.max-buffers =         64
    link.max-buffers =          16              # version < 3 clients can't handle more
    #mem.allow-mlock =          true
    #log.level =                2

    ## Properties for the DSP configuration
    #default.clock.rate =               48000
    #default.clock.quantum =            1024
    #default.clock.min-quantum =        32
    #default.clock.max-quantum =        8192
    #default.video.width =              640
    #default.video.height =             480
    #default.video.rate.num =           25
    #default.video.rate.denom =         1
}

spa-libs = {
    ## <factory-name regex> = <library-name>
    #
    # used to find spa factory names. It maps an spa factory name
    # regular expression to a library name that should contain
    # that factory.
    #
    audio.convert* =    audioconvert/libspa-audioconvert
    api.alsa.* =        alsa/libspa-alsa
    api.v4l2.* =        v4l2/libspa-v4l2
    api.libcamera.* =   libcamera/libspa-libcamera
    api.bluez5.* =      bluez5/libspa-bluez5
    api.vulkan.* =      vulkan/libspa-vulkan
    api.jack.* =        jack/libspa-jack
    support.* =         support/libspa-support
    #videotestsrc = videotestsrc/libspa-videotestsrc
    #audiotestsrc = audiotestsrc/libspa-audiotestsrc
}

modules = {
    ##  <module-name> = { [args = "<key>=<value> ..."] 
    #                     [flags = ifexists] }
    #
    # Loads a module with the given parameters. Normally failure is
    # fatal if the module is not found, unless -ifexists is given.
    #
    libpipewire-module-rtkit  = { "#args" = "rt.prio=20 rt.time.soft=200000 rt.time.hard=200000" flags=ifexists }
    libpipewire-module-protocol-native = null
    libpipewire-module-profiler = null
    libpipewire-module-metadata = null
    libpipewire-module-spa-device-factory = null
    libpipewire-module-spa-node-factory = null
    libpipewire-module-client-node = null
    libpipewire-module-client-device = null
    libpipewire-module-portal = null
    libpipewire-module-access = { "#args" = "access.allowed=/usr/bin/pipewire-media-session access.force=flatpak" }
    libpipewire-module-adapter = null
    libpipewire-module-link-factory = null
    libpipewire-module-session-manager = null
}

objects = {
    ## <factory-name> = { [args = "<key>=<value> ..."]
    #                     [flags = nofail] }
    #
    # Creates an object from a PipeWire factory with the given parameters.
    # If nofail is given, errors are ignored (and no object is created)
    #
    #spa-node-factory = { args = "factory.name=videotestsrc node.name=videotestsrc Spa:Pod:Object:Param:Props:patternType=1" }
    #spa-device-factory  = { args = "factory.name=api.jack.device foo=bar" flags = nofail }
    #spa-device-factory = { args = "factory.name=api.alsa.enum.udev" }
    #spa-device-factory = { args = "factory.name=api.alsa.seq.bridge node.name=Internal-MIDI-Bridge" }
    #adapter = { args = "factory.name=audiotestsrc node.name=my-test" }
    #spa-node-factory  = { args = "factory.name=api.vulkan.compute.source node.name=my-compute-source" }
    spa-node-factory = { args = "factory.name=support.node.driver node.name=Dummy priority.driver=8000" }
}

exec = {
    ## <program-name> = { [args = "<arguments>"] }
    #
    # Execute the given program with arguments.
    #
    # Start the session manager. Run the session manager with -h for
    # options.
    #
    # The bluetooth module is disabled by default because it causes
    # conflicts with PulseAudio. If you disable PulseAudio or don't
    # load its bluetooth module, you can enable it here with -e bluez5
    #
    "/usr/bin/pipewire-media-session" = { args = ""}
    #
    # You can optionally start the pulseaudio-server here as well
    # but it better to start it as a systemd service.
    # It can be interesting to start another daemon here that listens
    # on another address with the -a option (eg. -a tcp:4713)
    #
    #"/usr/bin/pipewire-pulse" = { "#args" = "-a tcp:4713" }
}

Что я могу сделать, чтобы добиться такого же поведения, как в pulseaudio? Gnome не установлен в моей системе. Я использую sway.

0 ответов

Другие вопросы по тегам