Simulieren Sie Medientasten im Terminal

25

Ich habe ein neues Android-Handy, das eine Reihe von Apps für die Kommunikation über eine SSH-Verbindung hat. Ich würde gerne wissen, ob ich ssh-Befehle verwenden kann, wenn ich die gedrückte Taste simulieren kann, insbesondere die Medientasten (Wiedergabepausenlautstärke). Ich würde es vorziehen, keine zusätzliche Software zu installieren.

Hinweis: Ich weiß, dass es Apps gibt, die dies standardmäßig tun. Dies dient lediglich dem besseren Verständnis.

Aaron Schif
quelle

Antworten:

44

Die Antwort lautet xdotool: Möglicherweise ist es bereits auf Ihrem Ubuntu-System installiert. Es kann Tastendrücke simulieren. Siehe auch [1].

Einige Befehle:

  • Spielpause

    xdotool key XF86AudioPlay
    
  • Vorherige Nächste

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • Lautstärke leiser / lauter

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • stumm

    xdotool key XF86AudioMute
    

Weitere XF86-Befehle finden Sie unter [2].

Anstatt die Lautstärke schrittweise einzustellen, können Sie sie auch mit einem Mixer oder pulseaudio einstellen (empfohlen). Angenommen, Sie verwenden Gerät 0 (Sie können dies mit alsamixeroder überprüfen pacmd list-sinks), können Sie die Lautstärke mit beispielsweise 80% einstellen

  • alsamixer (-c 0 gibt die Sound Device ID an)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio (die 0 vor den 80% ist die Sound Device ID)

    pactl set-sink-volume 0 80%
    

Weitere Informationen zu diesen Befehlen finden Sie in den entsprechenden Hilfeseiten.


BEARBEITEN: Wenn Sie versuchen, die xdotool-Befehle über ssh auszuführen, wird die folgende Fehlermeldung angezeigt

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

Sie müssen die Variable DISPLAY setzen:

export DISPLAY=':0.0'

Danach sollte es problemlos funktionieren


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

Gerhard Burger
quelle
Was ist erforderlich, damit dies über SSH funktioniert? Die Verwendung dieser Befehle in einer Remote-Shell führt zu einer Simulation auf einem lokalen Computer im Vergleich zu einem Remote-Computer.
ErdeMeLon
3
@earthmeLon Sind Sie sicher, dass Sie den Befehl auf dem Remotecomputer ausführen? Denn bei mir klappt es prima über ssh. Ich musste allerdings die DISPLAY-Variable setzen, siehe meine Bearbeitung.
Gerhard Burger
Festlegen der Anzeige, wie von Ihnen vorgeschlagen, um das Problem zu beheben. Danke: D
earthmeLon
2
Beachten Sie, dass Sie, wenn Sie diese an einige Schlüssel in xfce4 binden, das --clearmodifiersFlag verwenden müssen, etwa so:xdotool key --clearmodifiers XF86AudioPlay
cab404
Was @ cab4040 erwähnt, gilt auch für GNOME. Wenn Sie benutzerdefinierte Medientasten zu einer Tastatur hinzufügen möchten, der diese fehlen, können Sie im Keyboard ShortcutsAbschnitt Einstellungen eine Verknüpfung zwischen einer Tastenkombination und einem xdotool keyBefehl mit hinzufügen --clearmodifiers(siehe oben).
Pierre Thalamy