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!