web-dev-qa-db-ja.com

ターミナルでメディアキーをシミュレートする

Ssh接続を介して通信するための多くのアプリを備えた新しいAndroid電話があります。押されたキー、特にメディアキー(再生一時停止ボリューム)をシミュレートできる場合、sshコマンドを使用できるかどうかを知りたいです。追加のソフトウェアをインストールしたくない。

注:すぐに使用できるアプリがあることは知っていますが、これは単に理解を深めるためです。

23
Aaron Schif

答えはxdotoolで、Ubuntuシステムに既にインストールされている可能性があります。キー押下をシミュレートできます。 [1]も参照してください。

いくつかのコマンド:

  • 再生/一時停止

    xdotool key XF86AudioPlay
    
  • 前/次

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • ボリュームダウン/アップ

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • mute

    xdotool key XF86AudioMute
    

その他のXF86コマンドについては、[2]をご覧ください。

ボリュームを段階的に行う代わりに、alsamixerまたはpulseaudioを使用して設定することもできます(推奨)。デバイス0(alsamixerまたはpacmd list-sinksでこれを確認できます)を使用すると仮定すると、ボリュームをたとえば80%に設定できます

  • alsamixer(-c 0はサウンドデバイスIDを指定します)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio(80%の前の0はサウンドデバイスIDです)

    pactl set-sink-volume 0 80%
    

これらのコマンドの詳細については、マンページを参照してください。


編集:sshでxdotoolコマンドを実行して、次のエラーメッセージを取得しようとしている場合

Error: Can't open display: (null)
Segmentation fault

dISPLAY変数を設定する必要があります。

export DISPLAY=':0.0'

その後、問題なく動作するはずです


[1] http://www.semicomplete.com/projects/xdotool/xdotool.xhtml
[2] http://wiki.linuxquestions.org/wiki/XF86_keyboard_symbols

41
Gerhard Burger