模拟终端中的媒体密钥


25

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

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

Answers:


44

答案是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(可以使用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


通过SSH进行此操作需要什么?在远程外壳程序中使用这些命令可在本地计算机与远程计算机上进行仿真。
EarthmeL13年

3
@earthmeLon您确定要在远程计算机上运行命令吗?因为对我来说,它可以在ssh上正常工作。我需要设置DISPLAY变量,请参见我的编辑。
Gerhard Burger 2013年

按照您的建议设置显示可以解决此问题。谢谢:D
EarthmeL13年

2
请注意,将这些绑定到xfce4中的某些键时,需要使用该--clearmodifiers标志,例如:xdotool key --clearmodifiers XF86AudioPlay
cab404

提到的@ cab4040也适用于GNOME。如果希望在缺少键盘的键盘上添加自定义媒体键,则可以转到“ Keyboard Shortcuts设置” 部分,并使用来在键盘快捷键和xdotool key命令之间添加绑定--clearmodifiers,请参见上文。
皮埃尔·塔拉米
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.