Symuluj klucze multimediów w terminalu

25

Mam nowy telefon z Androidem, który ma wiele aplikacji do komunikacji przez połączenie ssh. Chciałbym wiedzieć, czy mogę używać poleceń ssh, jeśli mogę symulować naciśnięcie klawisza, a zwłaszcza klawiszy multimediów (głośność pauzy w odtwarzaniu). Wolałbym nie instalować dodatkowego oprogramowania.

Uwaga: wiem, że istnieją aplikacje, które robią to od razu po wyjęciu z pudełka, jest to po prostu dla lepszego zrozumienia.

Aaron Schif
źródło

Odpowiedzi:

44

Odpowiedź brzmi: xdotoolmoże być już zainstalowany w systemie Ubuntu. Może symulować naciśnięcia klawiszy. Zobacz także [1].

Niektóre polecenia:

  • odtwarzanie / pauza

    xdotool key XF86AudioPlay
    
  • Poprzednie Następne

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • zmniejszanie / zwiększanie głośności

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • niemy

    xdotool key XF86AudioMute
    

Więcej komend XF86 znajduje się w [2].

Zamiast zwiększania głośności krok po kroku możesz ustawić ją również za pomocą alsamixer lub pulseaudio (zalecane). Zakładając, że używasz urządzenia 0 (możesz to sprawdzić za pomocą alsamixerlub pacmd list-sinks), możesz ustawić głośność na przykład na 80% za pomocą

  • alsamixer (-c 0 określa identyfikator urządzenia dźwiękowego)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio (0 przed 80% to identyfikator urządzenia dźwiękowego)

    pactl set-sink-volume 0 80%
    

Aby uzyskać więcej informacji na temat tych poleceń, zobacz ich strony podręcznika.


EDYCJA: Jeśli próbujesz wykonać polecenia xdotool przez ssh i pojawi się następujący komunikat o błędzie

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

musisz ustawić zmienną DISPLAY:

export DISPLAY=':0.0'

Potem powinno działać bez problemów


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

Gerhard Burger
źródło
Co jest wymagane, aby to działało przez SSH? Użycie tych poleceń w zdalnej powłoce powoduje symulację na komputerze lokalnym w porównaniu z komputerem zdalnym.
earthmeLon
3
@earthmeLon Czy na pewno uruchamiasz polecenie na zdalnym komputerze? Ponieważ dla mnie działa dobrze w stosunku do ssh. Musiałem jednak ustawić zmienną DISPLAY, zobacz moją edycję.
Gerhard Burger
Ustawienie wyświetlacza zgodnie z sugestią rozwiązało problem. Dzięki: D
earthmeLon
2
Zauważ, że kiedy --clearmodifiersxdotool key --clearmodifiers XF86AudioPlay
przypisujesz
To, o czym wspominał @ cab4040, dotyczy także GNOME. Jeśli chcesz dodać niestandardowe klawisze multimedialne na klawiaturze, która ich nie ma, możesz przejść do Keyboard Shortcutssekcji ustawień i dodać powiązanie między skrótem klawiaturowym a xdotool keypoleceniem za pomocą --clearmodifiers, patrz wyżej.
Pierre Thalamy