Saya ingin menghubungkan skrip batch ke pintasan. Saat saya mengikatnya di bawah Pengaturan Sistem> Keyboard> Pintasan ini berfungsi dengan semua tombol, kecuali tombol kecerahan saya dari keyboard Apple eksternal saya.
Tombol kecerahan dikenali di showkey dengan kode kunci 224 dan 225 .
keluaran xev:
FocusOut event, serial 41, synthetic NO, window 0x4000001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 41, synthetic NO, window 0x4000001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 41, synthetic NO, window 0x0,
keys: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Ada saran apa yang bisa saya lakukan?
Jawaban yang Diterima:
Solusi menggunakan halevt
Menurut halaman manual halevt adalah penangan umum untuk acara HAL. Itu tidak digunakan lagi dan digantikan oleh udev , tetapi karena saya tidak cukup tahu tentang udev Saya akan memberikan halevt solusi.
EDIT: setelah berkeringat serius, saya berhasil melakukan ini di udev . Lihat jawaban saya yang lain.
Saya akan menggunakan vim untuk mengedit file, tetapi jika Anda tidak tahu vim Anda dapat menggantinya dengan nano atau gedit .
Memasang halevt
sudo apt-get update && sudo apt-get install halevt
Menentukan peristiwa mana yang ingin Anda ikat ke skrip
Hentikan halevt daemon yang sudah berjalan:
sudo /etc/init.d/halevt stop
Sekarang lihat apakah halevt dapat mengenali peristiwa kunci yang ingin Anda gunakan, mulai pendengar:
sudo -u halevt halevt -fig:plugdev
Sekarang tekan tombol fungsi pada keyboard Anda yang ingin Anda ikat skripnya. Saya tahu bahwa OP ingin agar tombol kecerahannya berfungsi, jadi mari kita lakukan itu. Output untuk tombol kecerahan akan terlihat seperti ini:
Condition: /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input,ButtonPressed (brightness-down)
Condition: /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input,ButtonPressed (brightness-up)
Anda dapat melihat bahwa brightness-down dan brightness-up peristiwa ditransmisikan.
Mengikat acara ke skrip
Sekarang edit file /etc/halevt/halevt.xml :
sudo vim /etc/halevt/halevt.xml
dan tambahkan baris berikut ( saya melakukannya di bagian bawah, tepat sebelum </halevt:Configuration> ):
<halevt:Device match="hal.info.category = input">
<halevt:Condition name="ButtonPressed" value="brightness-up" exec="sudo /home/user/brightness-script.sh up"/>
<halevt:Condition name="ButtonPressed" value="brightness-down" exec="sudo /home/user/brightness-script.sh down"/>
</halevt:Device>
di mana tentu saja Anda harus mengubah value ke acara yang Anda dapatkan dari pendengar, dan exec dengan perintah yang ingin Anda jalankan.
Berikan izin kepada pengguna halevt untuk melakukan perintah atau skrip
Sejak halevt daemon dijalankan sebagai halevt pengguna Anda harus memberinya izin untuk melakukan apa yang Anda tentukan di exec .
Jalankan (ingat untuk mengganti vim oleh editor pilihan Anda)
sudo EDITOR=vim visudo
dan tambahkan baris berikut di bagian bawah
halevt ALL=(root) NOPASSWD: /home/user/brightness-script.sh
dan simpan dan keluar.
Terkait:Nonaktifkan Ulangi Keyboard dari baris perintah?Pastikan skrip Anda dapat dieksekusi
sudo chmod +x /home/user/brightness-script.sh
Mulai daemon halevt lagi
sudo /etc/init.d/halevt start
Dan seharusnya berhasil!