Linux

nx 面向 GUI 的程序中生成鈴聲/嗶聲的最佳實踐

  • October 24, 2020

我設法讓自己在其他地方陷入爭論,試圖阻止某人編寫呼叫 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規範有一些提示,例如,您可以指定

但是在伺服器中實現提示是可選的。試一試

notify-send --hint string:sound-name:dialog-ok myheader 'my msg'

引用自:https://unix.stackexchange.com/questions/615997