Menentukan pintasan keyboard yang melibatkan tombol Fn

17

Saya terbiasa menekan Fn+ Leftuntuk mensimulasikan Homekunci dan Fn+ Rightuntuk End.

Pada keyboard dengan fisik Homedan Endtombol, menggunakan Fnpintasan keyboard ini tidak berfungsi.

Bagaimana cara memetakan Fnpintasan keyboard khusus di Ubuntu Linux?

mox
sumber
1
kemungkinan duplikat dari kunci multimedia Bind . Ini mungkin bukan duplikat yang tepat dalam deskripsi masalah, tetapi diselesaikan dengan proses mendasar yang sama.
Daniel Andersson
Adakah yang menggunakan laptop modern (2018) seperti HP Specter x360 (walaupun memiliki tombol PgUp dll yang terpisah) dan Dell XPS mengetahui jika tombol Fungsi terdeteksi seperti tombol lainnya?
MycrofD
1
Saya menggunakan Lenovo Thinkpad X1 Carbon dengan Fnkunci, yang terdeteksi sebagai kode kunci 151 oleh xev. Saat Fnditekan Leftdan Righttombol tidak menghasilkan acara. Fn+F2tidak menghasilkan acara, tetapi berfungsi seperti yang diharapkan - menurunkan volume.
Suor

Jawaban:

16

Tidak seperti pengubah seperti Alt dan Ctrl, menekan tombol Fn tidak pernah dikomunikasikan ke sistem operasi. Kunci hanya memodifikasi scancodes dari tombol lain, sehingga menekan Fn+ Rightakan meniru tombol End, meskipun mungkin tidak ada secara fisik, tetapi mereka tidak dapat dibedakan oleh OS. Perilaku ini dikendalikan secara eksklusif oleh elektronik keyboard dan karena itu tidak dapat diubah tanpa mengacaukan sirkuit atau mikrokontroler.

Marcks Thomas
sumber
2
Ada satu sistem operasi dan komputer yang pasti pengecualian untuk aturan ini dan itu adalah laptop mac. Anda dapat memodifikasi kunci ini menggunakan Karabiner sebenarnya. Thinkpads juga mengirim kunci ini ke sistem operasi tetapi itu bukan kunci pengubah seperti pada mac.
William
2
Ini tidak benar. xevmenunjukkan Fnpenekanan tombol.
Suor
1
Nah, pada mesin Dell saya dengan 10 Debian, xevtidak menunjukkan apa-apa ketika tombol Fn ditekan.
Pierre
12

Pada sebagian besar sistem, Anda tidak dapat mendeteksi Fnkunci itu sendiri, tetapi Anda dapat mencoba menggunakan:

$ xev | grep --line-buffered keysym

untuk mengetahui kunci apa Fn-Leftdan Fn-Rightkirim. ( grepHanya mengurangi kebisingan.)

Jika Anda beruntung, penekanan tombol itu akan mengirim penekanan tombol yang tidak penting ke mesin, yang kemudian dapat Anda remap.

Sebagai contoh, pada sistem saya, xevmenunjukkan bahwa Fn-Leftpenekanan tombol saya benar-benar mengirim suatu XF86AudioPrevperistiwa:

state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,

Saya dapat dengan mudah memetakan ini untuk diterjemahkan menjadi Homeacara utama:

$ xmodmap -e 'keysym XF86AudioPrev = Home'

Semoga Anda akan dapat melakukan hal yang sama untuk Akhir, PageUp dan PageDown.

Sayangnya jika xev tidak menerima sesuatu yang unik saat Anda menekan Fn-Leftmaka Anda kurang beruntung.

Sangat memalukan bahwa Fnpenekanan tombol tidak dikirim langsung seperti tombol pengubah lainnya. Jika ya, kita akan memiliki lebih banyak kekuatan untuk mengkonfigurasi maknanya melalui perangkat lunak.

joeytwiddle
sumber
Sayangnya fn pada laptop saya tidak mendaftar dengan kunci atas dan bawah kunci acara dengan cara yang sama seperti tombol lain di sana dengan menjaga agar ini tidak berfungsi dengan benar untuk kunci pengubah. Anda dapat memetakannya kembali dengan satu tombol tekan lain.
William
5

Saya membuka xevterminal. Mendeteksi ketika saya menekan Shift, Ctrl, Alt, dan Win( Super), tetapi ketika saya menekan Fntombol itu tidak mendeteksi itu.

Jadi perangkat lunak tidak ada hubungannya dengan Fnkunci; tergantung pada perangkat keras untuk memutuskan kunci apa yang akan dikirim ke perangkat lunak (misalnya kunci Homeatau End).

Jadi keyboard Anda harus sudah dapat melakukan ini.

biggles5107
sumber