Simular teclas multimedia en terminal

25

Tengo un nuevo teléfono Android que tiene varias aplicaciones para comunicarse a través de una conexión ssh. Me gustaría saber si puedo usar comandos ssh si puedo simular la tecla presionada, específicamente las teclas multimedia (volumen de pausa de reproducción). Preferiría no instalar software adicional.

Nota: Sé que hay aplicaciones que hacen esto fuera de la caja, esto es simplemente para una mejor comprensión.

Aaron Schif
fuente

Respuestas:

44

La respuesta es xdotool, y puede que ya esté instalado en su sistema Ubuntu. Puede simular pulsaciones de teclas. Ver también [1].

Algunos comandos:

  • reproducir pausar

    xdotool key XF86AudioPlay
    
  • Anterior Siguiente

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • bajar / subir volumen

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • mudo

    xdotool key XF86AudioMute
    

Para más comandos XF86 ver [2].

En lugar de hacer el volumen paso a paso, también puede configurarlo con alsamixer o pulseaudio (recomendado). Suponiendo que usa el dispositivo 0 (puede verificar esto con alsamixero pacmd list-sinks) puede configurar el volumen a, por ejemplo, 80% con

  • alsamixer (-c 0 especifica la identificación del dispositivo de sonido)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio (el 0 delante del 80% es la identificación del dispositivo de sonido)

    pactl set-sink-volume 0 80%
    

Para obtener más información sobre estos comandos, consulte sus páginas de manual.


EDITAR: si está intentando ejecutar los comandos xdotool sobre ssh y recibe el siguiente mensaje de error

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

necesita configurar la variable DISPLAY:

export DISPLAY=':0.0'

Después de eso debería funcionar sin problemas.


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

Gerhard Burger
fuente
¿Qué se requiere para que esto funcione sobre SSH? El uso de estos comandos en un shell remoto da como resultado la simulación en una máquina local frente a una máquina remota.
earthmeLon
3
@earthmeLon ¿Está seguro de que está ejecutando el comando en la máquina remota? Porque para mí funciona bien sobre SSH. Sin embargo, necesitaba establecer la variable DISPLAY, vea mi edición.
Gerhard Burger
Configurar la pantalla como sugirió para resolver el problema. Gracias: D
earthmeLon
2
Tenga en cuenta que cuando vincula estas teclas a xfce4, deberá usar el --clearmodifiersindicador, algo como esto:xdotool key --clearmodifiers XF86AudioPlay
cab404
Lo que @ cab4040 mencionó también se aplica a GNOME. Si se desea agregar teclas multimedia personalizadas en un teclado que carece de ellas, se puede ir a la Keyboard Shortcutssección en la configuración y agregar un enlace entre un atajo de teclado y un xdotool keycomando con --clearmodifiers, ver arriba.
Pierre Thalamy