* n * x GUIベースのプログラムで着信音/警告音を生成するベストプラクティス

* n * x GUIベースのプログラムで着信音/警告音を生成するベストプラクティス

私はGUIプログラムに簡単な音を出すために、aplayを呼び出すライブラリを誰かが書くのを防ぐために他の場所で議論をしました。テキストコンソールで\ aが実行するのと同じことです。

私が理解したところ、サブシステムとしてのALSAは非常に一般的であり、クライアントライブラリとしてのlibasound.soは、デスクトップ環境全体がなくてもGUI指向プログラムを実行できるすべての(Linux)ホストにインストールできるようです(つまり、SSHを介したX11トンネリングへのプログラムの依存関係など)。

一方、私は気づいた。https://www.gnu.org/software/emacs/manual/html_node/elisp/Desktop-Notifications.htmlこれは、少なくともEmacsがD-Busを介してビープ音を鳴らすことができることを意味し、まだメッセージの内部を詳しく見ていませんが、KDEのkonsoleも同様の機能を果たしているようです。このような場合、テーマ別にデフォルトの通知音が選択されることを信じることができるかもしれません。

wmctrlを使用するなど、同等のものが見つかりませんでした。

コミュニティでは、libasoundを介してALSAと対話するのが最善の方法だと思いますか?それとも、実際にD-Busやデスクトップ環境(ウィンドウマネージャなど)と調整する他の手段を使用するなど、より良い方法はありますか?

答え1

制御できない騒音を発生させるプログラムよりも迷惑なことはありません。入力したりクリックしたりすることについて即座にフィードバックを提供するには、視覚的なコンテンツを使用してください。最も基本的なレベルでは、ターミナルベルに対応するX11は、XBell()すべてのX11接続で機能する機能です。 xkbはより多くの機能を追加しXkbBell()ますXkbForceBell()

そうでなく、一部のバックグラウンドジョブまたは長時間続くジョブの状態が変更されたという通知を受け取るには、ユーザーにlibnotify通知デーモンを設定するようにしてください。

小人仕様ヒントがあります。たとえば、次のように指定できます。

  • "sound-file" 通知ポップアップ時に再生するサウンドファイルパスまたは
  • "sound-name" freedesktop.orgのサウンドというテーマサウンド命名規則通知が表示されたら再生してください。

ただし、サーバーでプロンプトを実装することはオプションです。試験を受ける

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

関連情報