Memetakan ulang tombol daya untuk menghapus

14

Saya punya macbook pro yang menjalankan Ubuntu 13.10 dengan FluxBox. Sayangnya, tombol daya secara fisik di atas backspace di mana saya berharap tombol hapus berada. Di OS X, program PowerKey dapat digunakan untuk memetakan ulang tombol daya untuk menghapus. Bagaimana saya bisa melakukan hal serupa di X Windows?

Saya menonaktifkan tombol daya dengan mengedit /etc/systemd/logind.confdan mengatur. HandlePowerKey = ignore Setelah ini, saya dapat menekan tombol daya tanpa mematikan laptop.

Menjalankan xev -event keyboardmengungkapkan bahwa KeyPress untuk tombol daya biasanya dimakan oleh proses lain:

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  1   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   

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  1   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   

Namun dengan hanya menjalankan xterm langsung dari konsol, saya berhasil mendapatkan kode kunci dan memetakan kembali kuncinya.

xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 29, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

Pada titik ini, dimungkinkan juga untuk memetakan kunci menggunakan xmodmap. Saya memetakannya ke backslash yang lebih mudah dilihat daripada menghapus:

 xmodmap -e "keycode 124 = backslash bar"

Saya bisa mendapatkan fungsi yang hampir sama untuk dijalankan dengan menambahkan ini, ~/.fluxbox/keystetapi ini jelek dan cukup lambat untuk tidak dapat digunakan.

  # Remap the power off to a delete key...
  XF86PowerOff :Exec xdotool key Delete

Bagaimana saya bisa menggunakan xmodmap atau setxkbmap untuk menggunakan tombol power secara bersamaan dengan window manager normal?

nathan
sumber

Jawaban:

3

Saya tidak benar-benar mengerti kalimat terakhir, pertanyaan, tetapi saya dapat menghubungkannya dengan judul pertanyaan: "Memetakan kembali tombol daya untuk menghapus".

Coba ganti "XF86PowerOff" atau yang sesuai dengan keyboard Anda dengan "Delete" di / usr / share / X11 / xkb / simbol / inet.

Anda harus mengulang ini setelah pembaruan sistem yang memperbarui file itu.

LyXTeX
sumber
lihat askubuntu.com/questions/325272/… untuk detailnya. jawaban ini harus diterima.
phil294
1

Itu bukan jawaban yang tepat, tetapi apakah Anda sudah mencoba menekan fn+ delete? Ini harus bertindak sebagai Hapus nyata , vs tindakan sebenarnya dari 'backspace' dan sangat dekat dengan tombol daya.

Kiat lain:

fn+ enterbertindak sebagai tombol Sisipkan , jadi Anda harus dapat menekan shift+ fn+ enterdan menempel seperti klik tengah.

Daryl Tucker
sumber
0

Sulit mengatakannya dengan pasti. Ini mungkin hal-hal yang sudah Anda coba, tetapi mungkin mengarah ke solusi yang mudah.

Apakah xmodmap berfungsi untuk kunci lain, atau adakah sesuatu yang dilakukan fluxbox yang benar-benar menghancurkan xmodmap?

Apa yang terjadi jika Anda mulai x, modmap tombol daya, dan kemudian mulai fluxbox? Apakah pemetaan tetap?

Jika menjalankan xmodmap sebelum fluxbox berfungsi dan mempertahankan pengaturan Anda, Anda dapat menulis skrip shell untuk memanggil keduanya dengan urutan yang benar, atau jika Anda menggunakan gdm, ia seharusnya membaca ~/.xmodmapatau ~/.xmodmaprcsecara otomatis untuk Anda sebelum fluxbox memasuki gambar.

Mike Fairhurst
sumber
Ya, xmodmap berfungsi. Saat ini, saya memiliki perintah alt dan kanan yang tepat untuk menghapus dan menyisipkan masing-masing menggunakan xmodmap -e "hapus mod1 = Alt_L" -e "hapus mod4 = Super_L" -e "tambahkan mod1 = Super_L" -e "tambahkan mod4 = Alt_L "-e" hapus mod1 = Alt_R "-e" hapus mod4 = Super_R "-e" keysym Alt_R = Hapus "-e" keysym Super_R = Sisipkan "
nathan
Bisakah Anda memasukkan output xmodmap -pke dalam fluxbox?
Mike Fairhurst
@nathan jadi ini adalah masalah ketika xmodmap dijalankan, setelah fluxbox atau sebelumnya. Punya masalah yang sama dengan wm mengagumkan
Darek