模拟终端中的媒体键

我有一个新的Android手机,有许多应用程序通过ssh连接进行通信。 我想知道我是否可以使用ssh命令,如果我可以模拟按键,特别是媒体键(播放暂停音量)。 我宁愿不安装其他软件。

注意:我知道有些应用程序可以开箱即用,这只是为了更好地理解。

答案是xdotool ,它可能已经安装在你的Ubuntu系统上。 它可以模拟按键。 另见[1]。

一些命令:

  • 播放/暂停

     xdotool key XF86AudioPlay 
  • 前面一个后面一个

     xdotool key XF86AudioPrev xdotool key XF86AudioNext 
  • 音量下降/上升

     xdotool key XF86AudioLowerVolume xdotool key XF86AudioRaiseVolume 
  • 静音

     xdotool key XF86AudioMute 

有关更多XF86命令,请参阅[2]。

您可以使用alsamixer或pulseaudio(推荐)来设置它,而不是逐步完成音量。 假设您使用设备0(您可以使用alsamixerpacmd 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