我發生的事情是,人們在清晨睡覺時,我聽了很重的音樂,卻誤把耳機拔了下來,導致它在整個房子裡播放(我認為當時他們討厭我哈哈)。 因此,編寫一個小腳本,使其在斷開連接時將音量靜音:
首先是要安裝 alsa 實用程序 為了能夠從命令輕鬆管理音量:
sudo pacman -S alsa-utils
接下來的事情是通過Google搜索發現alsa保存在純文本文件中(可以用任何文本編輯器讀取,在Windows中這一切都將更加複雜),聲卡的狀態僅需複製文件,然後比較更改。
該文件是:
/proc/asound/card0/codec#0
在某些情況下,這可能會有所不同,例如,如果我們有多個聲卡。 如果您想了解更多信息,請留下alsa文檔的鏈接:http://alsa.opensrc.org/Proc_asound_documentation
我連接耳機並複製文件:
mkdir $HOME/.audifonos && cp "/proc/asound/card0/codec#0" "$HOME/.audifonos/con.txt"
然後拔下耳機並使用diff命令,該命令顯示兩個文件之間的不同行:
diff "/proc/asound/card0/codec#0" ".audifonos/con.txt"
有一些我們不感興趣的數據,因此我們必須使用grep進行過濾,以便僅顯示帶有單詞“ Pin-ctls”的行。
diff "/proc/asound/card0/codec#0" ".audifonos/con" | grep Pin-ctls
如果該命令在屏幕上未顯示任何內容,則表明我們已戴上耳機。 由於它無法返回任何內容,因此會返回錯誤。
要查看此錯誤,我們輸入:
echo $?
如果在每個屏幕上顯示一個,則表明該錯誤。
另一方面,如果在執行此操作時返回了某些內容,則表示我們已斷開了耳機的連接,在這種情況下,它不會返回錯誤:
echo $?
考慮到這一點並了解bash,很容易做到:
我下載了該文件,並授予了首次打開它的執行權限,以便“安裝”(它僅要求連接耳機並複制開頭說明的文件)。
wget http://paste.desdelinux.net/?dl=5178 && chmod +x audifonos.sh && ./audifonos.sh
最後,每次打開電腦時,它都會自動啟動
從Xfce,我轉到應用程序>配置>會話和啟動>應用程序自動啟動>添加並放置腳本
您碰巧使用過 WM 嗎? 至少在帶有 Gnome-Shell 3.16 的 Arch 中,它保留了音量控制的變化,例如,當我連接 HDMI 時,它顯示最大音量,當我連接耳機時,它顯示非常低的音量,而在集成揚聲器中,它幾乎顯示最大音量。
儘管事實上我一直在尋找一些時間來做到這一點,但必須降低音量才能使用揚聲器是一件痛苦的事情,而且聲音不響亮或對其他人來說很煩人。 非常感謝您的貢獻。
沒有什麼 🙂,我使用 xfce 😛
我只記得有一次我在看 p0rn,我戴著耳機,斷開了 hdp,他們聽到了 Shyla 的呻吟聲 :c
好消息是,這只是至少永恆的一秒鐘的片段,當他們殺死一個妓女時,聽起來就像恐怖電影 XD
想了想,我還是把它加入收藏吧
哈哈哈哈哈哈,同樣的事情也發生在我身上,當我在午夜左右無意中斷開連接時,一個好的硬核聲音以最大音量響起 XD 我的家人很害怕:v
好的信息在某些時候會對我有用。 太感謝了
你沒有騙我,你正在看西班牙語的 por*o gay,而你的耳機卻斷開了 xD
感謝您的貢獻,在 Linux Mint 中,音量被保留,例如,如果我靜音然後連接耳機,我將在耳機中聽到聲音,而不是沒有耳機。
問候。
哈哈哈,不,但在這些情況下它也有效(?)
是的,它也適用於這些情況(͡°͜ʖ͡°)
好信息,一個建議,如果系統支持“devd”,我該如何繼續複製或創建此文件?
[代碼] $PREFIX/share/examples/cups/ulpt-cupsd.conf 到 $PREFIX/etc/devd/ [/code]
我不能告訴你,cp命令還不夠嗎?
不,它說該目錄不存在,我也不知道如何創建它。
呵呵,好吧,如果我告訴你,這種情況在我身上發生過不止一次,並且音樂相同,所以我把它寫下來以便稍後安裝。 向您致以問候並代表重金屬感謝您。
…… ~ $ sudo pacman -S alsa-utils
[sudo] 大衛的密碼:
sudo: pacman: 未找到命令