GNU/Linux >> Belajar Linux >  >> Ubuntu

Masalah Mengikat Pintasan Ke Tombol Fungsi / Multimedia?

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!


Ubuntu
  1. Ubuntu – Touchpad yang Dinonaktifkan Secara Permanen Dengan Tombol Fungsi?

  2. Bagaimana Cara Menjalankan Script Di Shell Saat Tombol Pintasan Ditekan?

  3. Hibernasi Di 18,04?

  1. Tombol Pintasan yang Independen dengan Tata Letak Keyboard?

  2. Perintah Untuk Menutup Jendela?

  3. Mengikat Super+C Super+V untuk Salin dan Tempel

  1. Sudo:/var/lib/sudo/navneet Dapat Ditulis Oleh Bukan Pemilik (040777), Haruskah Mode 0700?

  2. Pintasan Tombol Super+d Tidak Menampilkan Desktop?

  3. Ubuntu 12.04 Nomodeset Memperbaiki Masalah Boot Tetapi Menyebabkan Resolusi Layar Terjebak?