Simulasikan kunci media di terminal

25

Saya memiliki ponsel android baru yang memiliki sejumlah aplikasi untuk berkomunikasi melalui koneksi ssh. Saya ingin tahu apakah saya dapat menggunakan perintah ssh jika saya dapat mensimulasikan tombol yang ditekan, khususnya tombol media (putar jeda volume). Saya lebih suka tidak menginstal perangkat lunak tambahan.

Catatan: Saya tahu ada aplikasi yang melakukan ini di luar kebiasaan, ini hanya untuk pemahaman yang lebih baik.

Aaron Schif
sumber

Jawaban:

44

Jawabannya adalah xdotool, dan mungkin sudah diinstal pada sistem Ubuntu Anda. Itu dapat mensimulasikan penekanan tombol. Lihat juga [1].

Beberapa perintah:

  • play / pause

    xdotool key XF86AudioPlay
    
  • Sebelumnya Berikutnya

    xdotool key XF86AudioPrev 
    xdotool key XF86AudioNext
    
  • volume turun / naik

    xdotool key XF86AudioLowerVolume 
    xdotool key XF86AudioRaiseVolume
    
  • bisu

    xdotool key XF86AudioMute
    

Untuk lebih banyak perintah XF86, lihat [2].

Alih-alih melakukan volume langkah demi langkah Anda juga dapat mengaturnya menggunakan alsamixer atau pulseaudio (disarankan). Dengan asumsi Anda menggunakan perangkat 0 (Anda dapat memeriksanya dengan alsamixeratau pacmd list-sinks) Anda dapat mengatur volume misalnya 80% dengan

  • alsamixer (-c 0 menentukan id perangkat suara)

    amixer -c 0 sset Master,0 80%
    
  • pulseaudio (0 di depan 80% adalah id perangkat suara)

    pactl set-sink-volume 0 80%
    

Untuk informasi lebih lanjut tentang perintah ini lihat halaman manualnya.


EDIT: Jika Anda mencoba melakukan perintah xdotool lewat ssh dan dapatkan pesan kesalahan berikut

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

Anda perlu mengatur variabel DISPLAY:

export DISPLAY=':0.0'

Setelah itu harus bekerja tanpa masalah


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

Burger Gerhard
sumber
Apa yang diperlukan untuk ini bekerja di atas SSH? Menggunakan perintah-perintah ini dalam hasil shell remote dalam simulasi pada mesin lokal vs mesin remote.
earthmeLon
3
@earthmeLon Anda yakin menjalankan perintah pada mesin jarak jauh? Karena bagi saya itu berfungsi lebih baik daripada ssh. Saya perlu mengatur variabel DISPLAY, lihat edit saya.
Gerhard Burger
Mengatur tampilan seperti yang Anda sarankan saat menyelesaikan masalah. Terima kasih: D
earthmeLon
2
Perhatikan bahwa ketika Anda mengikat ini ke beberapa kunci di xfce4, Anda harus menggunakan --clearmodifiersbendera, sesuatu seperti ini:xdotool key --clearmodifiers XF86AudioPlay
cab404
Apa yang disebutkan @ cab4040 juga berlaku untuk GNOME. Jika seseorang ingin menambahkan tombol media kustom pada keyboard yang tidak memilikinya, seseorang dapat pergi ke Keyboard Shortcutsbagian dalam pengaturan dan menambahkan ikatan antara pintasan keyboard dan xdotool keyperintah dengan --clearmodifiers, lihat di atas.
Pierre Thalamy