【Linux】音量が勝手に変わる問題を解消する

2026-02-22T07:38:32.033Z

5segです。

KDE Plasmaに飽きたのでNiriに乗り換えたのですが、これがめちゃくちゃ良いです。Hyprlandも好きですが、マウスホイールをコロコロするだけで無限にワークスペースを行き来できる操作感はNiriにしかないので。慣れは必要ですが、作業効率は確実に上がるのでぜひ皆さんにも使ってほしいところです。
...そんなことはどうでもよくて、この環境にしてから困ったことがあります。普段はなんともないのですが、通話中にマイクのボリュームが勝手に操作されるという現象が発生します。マイクだけではなく、デスクトップの音量も(ほんの一瞬ではあるものの)勝手に100%になるので、困ったものです。

とりあえず強引にねじ伏せてみる

軽く調べてもわからなかったので、とりあえず定期的に音量を設定してねじ伏せてみる作戦です。

#!/bin/bash

SOURCE=52

while true; do
	pamixer --set-volume 23 --source $SOURCE
	sleep 2
done

SOURCEについては、pamixer --list-sourcesで得られる番号を設定すればいいです。

pamixer --list-sources | grep Running
Sources:
51 "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" "Running" "Monitor of 内部オーディオ アナログステレオ"
52 "alsa_input.pci-0000_00_1b.0.analog-stereo" "Running" "内部オーディオ アナログステレオ"

あとはこれを裏で動かしておくだけ。

...違う、そうじゃない。根本からの解決になっていません。

ちゃんと直す (pipewireにルールを定義する)

半日ぐらい調べて、ようやく見つけました...

https://bbs.archlinux.org/viewtopic.php?id=301041

/etc/pipewire/pipewire-pulse.conf.d/以下に設定ファイルを作って、ルールを定義してあげればよさそうです。

Chromiumベースのアプリで問題が起きているだけなので、要らない部分は削除して完結にします。

pulse.rules = [
   {
        matches = [ { application.name = "~Chromium.*" } ]
        actions = { quirks = [ block-source-volume ] }

    }
    {
        matches = [ { application.process.binary = "Discord" } ]
        actions = { quirks = [ block-source-volume ] }
    }
]

pipewireってこんなこともできるのですね。音声周りは全然弄る機会がなかったので初めて知りました。
設定ファイルの内容からお察しの通り、ルールに一致したアプリケーションはソースボリュームを弄ることができなくなります。ちょうど、この問題にピッタリの解決法です。

必要かどうかはわかりませんが、記述後にpipewireを再起動します。

systemctl --user restart pipewire

これで解決。設定してから一週間ほど経過していますが、今のところ問題なしです。

それでは。


記事一覧 ↩️