Baru-baru ini saya membeli keyboard dengan lampu latar yang dirancang sedemikian rupa sehingga tombol Scroll Lock digunakan untuk menghidupkan kembali lampu belakang. Saya dengan cepat menemukan bahwa Cinnamon tidak merespons dengan benar ketika tombol Scroll Lock ditekan. Awalnya, saya pikir lampu latar keyboard adalah DOA karena semuanya bekerja di luar kotak. Setelah reboot saya menemukan bahwa sebelum meluncurkan Xorg saya berhasil mengubah lampu latar menggunakan tombol Scroll Lock. Kemudian, sekali lagi, setelah memulai Xorg (dan akibatnya cinnamon_session), fungsi ini berhenti berfungsi sekali lagi.
Agar lampu latar berfungsi setelah meluncurkan Xorg, saya terpaksa mengeluarkan: xset led named "Scroll Lock"
untuk mengaktifkan dan menonaktifkan fungsi ini.
Setelah sedikit riset saya menemukan sebuah program bernama xev
yang membuang informasi acara utama ke terminal setelah dimulai. Setelah menekan tombol Scroll Lock, terminal diisi dengan informasi ini:
Acara KeyPress, serial 34, NO sintetik, jendela 0x2c00001, root 0x2df, subw 0x0, waktu 2609824, (410,0), root: (1724.142), sebutkan 0x0, kode kunci 78 (keysym 0xff14, Scroll_Lock), same_screen YES, XLookupString memberikan 0 byte: XmbLookupString memberikan 0 byte: XFilterEvent mengembalikan: Salah
Acara KeyRelease, serial 37, NO sintetik, jendela 0x2c00001, root 0x2df, subw 0x0, waktu 2609912, (410,0), root: (1724.142), sebutkan 0x0, kode kunci 78 (keysym 0xff14, Scroll_Lock), same_screen YES, XLookupString memberikan 0 byte:
Jadi saya tahu acara utama sedang dikirim ke kernel.
Yang menarik, saya mengamati perilaku aneh ketika berada di terminal (masih sebelum meluncurkan Xorg atau Cinnamon) dan menggunakan Scroll Lock. Yaitu, pada titik ini lampu latar saya berganti-ganti seperti yang diharapkan, tetapi ketika Scroll Lock diaktifkan, tidak ada yang saya ketikkan ditulis ke layar. Setelah menonaktifkan Scroll Lock, semua yang saya tulis segera dibuang ke terminal seolah-olah sebelumnya buffer.
tl; dr Apa masalahnya dengan Scroll Lock dan Xorg?
sumber
Jawaban:
Saya tidak terbiasa dengan Cinnamon, tetapi harus dimungkinkan untuk mengaktifkan kunci Scroll Lock Anda.
Pertama, kita perlu melihat apakah Anda memiliki slot pengubah keyboard cadangan. Lari:
Itu akan mencetak daftar pengaturan pengubah Anda saat ini. Mudah-mudahan, salah satu dari baris itu tidak memiliki kunci terdaftar; umumnya itu akan
mod3
. Dengan asumsi itu yang terjadi, Anda dapat mengaktifkan Scroll Lock dengan perintah ini:LED Scroll Lock Anda sekarang seharusnya merespons penekanan tombol Scroll Lock.
Jika berhasil, Anda mungkin ingin X melakukannya secara otomatis setiap kali dimulai. Ada berbagai cara untuk melakukan itu: itu bisa dilakukan berdasarkan per pengguna, tetapi untuk sesuatu seperti ini saya pikir masuk akal untuk itu diatur secara global.
Tapi saya belum pernah melakukan ini sebelumnya, jadi saya lebih baik mengujinya sebelum memberikan rincian lebih lanjut. :)
BAIK. Metode yang saya coba aktifkan bahwa modmap secara global tidak berfungsi untuk saya di KDE. :( Tapi mengaktifkannya di direktori home saya sepertinya berfungsi OK.
Buat file yang disebut
.Xmodmap
di direktori home Anda yang berisi baris ini:Cara termudah untuk melakukannya adalah:
Sekarang restart X (logout & login lagi). Semoga kunci Scroll Scroll Anda berfungsi. Jika tidak, beri tahu saya.
sumber
Menemukan cara permanen setelah malam yang panjang dengan banyak solusi setengah matang.
Tambahkan baris berikut di
xkb_symbols "basic" {
bagian ini. jangan khawatir jika baris kedua itu tidak ada, itu hanya ada untuk beberapa bahasa dan tidak ada untuk kita di sistem saya.Anda mungkin harus melakukan hal yang sama di tata letak lain jika Anda beralih di antara bahasa
Juga, ada cache tempat layout xkb hidup. Anda harus menghapusnya sebelum memulai ulang server X Anda untuk memeriksa file simbol keyboard yang baru.
sumber
Karena Scroll Lockdapat mengganggu pintasan keyboard Anda saat aktif (dinamai F12, Ctrl+ Spacetidak akan berfungsi seperti yang diharapkan), saya memutuskan untuk mencocokkan Scroll Locktombol dengan peluncuran manual
xset
, mengubah status LED tentang keadaan sebelumnya.Saya membuat skrip yang dapat dieksekusi bernama
toggle_keyb_led.sh
:Ini mem-parsing output
xset q
, cocok dengan barisLED mask
.Catatan 1 : Jika tidak bekerja untuk Anda, harap verifikasi dengan
xset -led; xset q | grep 'LED'
apa nilai mask saat ini.Catatan 2 : Beberapa pengguna perlu menjalankan
xset led 3
untuk mengaktifkan lampu. Dalam hal ini, harap tulis ulang skrip di atas.Kemudian Anda dapat meluncurkan skrip ini sebagai Pintasan Khusus menggunakan Lingkungan Desktop seperti (di sini menggunakan Cinnamon):
sumber