Linux
在 nx 面向 GUI 的程序中生成鈴聲/嗶聲的最佳實踐
我設法讓自己在其他地方陷入爭論,試圖阻止某人編寫呼叫 aplay 的庫,以便讓 GUI 程序發出簡單的噪音:在文本控制台上的那種事情將由 \a 完成
我的理解是 ALSA 作為一個子系統相當普遍,而 libasound.so 作為一個客戶端庫似乎安裝在任何能夠執行面向 GUI 的程序的(Linux)主機上,即使它沒有完整的桌面環境(即一個程序依賴於 X11 隧道通過 SSH 等)。
另一方面,我注意到https://www.gnu.org/software/emacs/manual/html_node/elisp/Desktop-Notifications.html這意味著至少 Emacs 能夠通過 D-Bus 發出聲音警報,看起來 KDE 的 konsole 做了類似的事情,儘管我還沒有詳細查看這些消息。在這些情況下,我不知道是否可以依賴主題選擇的預設警報聲音這一事實。
我沒有找到任何等效的東西,例如使用 wmctrl。
社區是否認為最佳實踐是通過 libasound 與 ALSA 互動,或者實際上是否有更好的方式使案例如 D-Bus 或其他方式與桌面環境(視窗管理器等)進行互動?
沒有什麼比發出您無法控制的聲音的程序更煩人的了。如果您想對輸入或點擊的內容提供即時回饋,請使用視覺效果。在最基本的層面上,相當於終端鈴的 X11 是 function
XBell()
,它適用於任何 X11 連接。xkb 添加了更多的功能XkbBell()
等等XkbForceBell()
。否則,如果您想通知某些後台或長期操作已更改狀態,請使用
libnotify
並讓使用者配置通知守護程序。gnome規範有一些提示,例如,您可以指定
"sound-file"
彈出通知時要播放的聲音文件的路徑,或"sound-name"
彈出通知時播放的來自 freedesktop.org聲音命名規範的主題化命名聲音。但是在伺服器中實現提示是可選的。試一試
notify-send --hint string:sound-name:dialog-ok myheader 'my msg'