Hari ini saya menemukan artikel yang sangat bagus dari Steven Losh di mana ia menyajikan beberapa peningkatan produktivitas pemetaan keyboard. Diantaranya adalah pemetaan dinamis tombol shift kiri dan kanan.
Ide
Ketika Shift_L atau Shift_R ditekan tanpa tombol tambahan, mereka dipetakan ke masing-masing '(' dan ')', jika tidak mereka berfungsi seperti biasa.
Masalah
Dia melakukan semua ini di bawah OSX. Saya mencoba untuk mencapai hal yang sama di Linux. Tidak ada cara langsung untuk ini karena saya mengerti Anda tidak bisa menggunakan xmodmap untuk mengonfigurasi satu kunci untuk Shift_L saja, dan yang lain untuk Shift saat digunakan sebagai kunci pengubah.
Saya telah sedikit mencari di Google dan menemukan orang-orang mencoba melakukan hal yang sama di bawah Windows yang tampaknya mungkin menggunakan AutoHotKey, tetapi saya tidak dapat menemukan apa pun untuk Linux.
Apakah ada cara untuk mengatasi ini di Linux?
Jawaban:
Wow! Komentar pengguna teika kazura pada pertanyaan asli cukup benar - bukan saja ini secara efektif merupakan duplikat dari pertanyaan lain itu , tetapi jawaban yang diberikan di sana ("gunakan xcape ") menyelesaikan masalah ini!
Setelah mengkloning repo xcape dan kompilasi (saya harus menginstal libXtst-devel di kotak Fedora saya, pertama), saya bisa mendapatkan perilaku persis yang diminta dengan perintah berikut:
Setelah pengujian yang diakui sepintas, tampaknya bekerja dengan sangat baik. Bagus!
Pilihan lain
Jika Anda menggunakan tombol Shift sebagai pengubah mouse (yaitu jika Anda pernah menggeser-klik apa pun), Anda mungkin ingin memasukkan opsi batas waktu xcape dan menemukan nilai batas waktu yang nyaman, sehingga tombol Shift tunggal yang digunakan dalam kombinasi dengan mouse tidak dapat dapat menghasilkan tanda kurung palsu. Dari xcape README:
Jadi, dengan memasukkan
-t
bendera dengan nilai batas waktu yang berfungsi untuk Anda, Anda masih dapat menggeser-klik dengan mouse selama Anda menahan Shift selama setidaknyatimeout ms
milidetik.(Kredit, sekali lagi, untuk teika kazura karena menunjukkan pertanyaan lain, dan juga untuk don_crissti untuk jawaban asli di sana.)
sumber
-t <timeout ms>
Jika Anda memegang kunci lebih lama dari batas waktu ini, xcape tidak akan menghasilkan peristiwa kunci. Defaultnya adalah 500 ms." ... Kecuali xcape mengganggu acara key-down pengubah (saya tidak ingat), itu seharusnya mencegahnya menghasilkan penekanan tombol palsu, sementara masih membiarkan Anda menggunakannya sebagai pengubah pilihan mouse selama Anda memegangnya cukup lama .-t
bendera!Ini tantangan yang menarik, dan saya setuju bahwa xinput tampaknya tidak cocok untuk itu. Saya menghabiskan beberapa waktu mengutak-atik sekitar dengan kemampuan xmodmap ini, dan datang begitu putus asa dekat untuk mencapai apa yang ingin Anda lakukan ... tanpa benar-benar mengelola untuk sampai ke sana.
Menggunakan xmodmap, dimungkinkan untuk menetapkan parenleft sebagai simbol kunci bergeser pada tombol shift kiri:
yang agak berfungsi, setidaknya dalam pengujian pada kotak Fedora 17 saya, tetapi tidak dengan cara yang memuaskan. Saya menemukan bahwa, dengan pemetaan ini di tempat, tombol shift masih berfungsi normal, dan tidak membuat parens palsu, tetapi (frustasi) itu tidak andal menghasilkan parens kiri juga. Untuk alasan apa pun, kunci tersebut tampaknya tidak dapat memodifikasi sendiri , yang memecah tugas yang dialihkan ... pada awalnya. Untuk alasan apa pun, memukul shift kiri beberapa kali berturut-turut pada akhirnya akan menyebabkannya mulai memproduksi parens kiri, tetapi hanya setelah pers keempat atau kelima.
Salah satu perilaku yang saya lakukan pemberitahuan, bagaimanapun, bahwa Anda mungkin dapat bekerja dengan sebagai "cukup dekat" analog: Saya menemukan bahwa setelah pemetaan parenleft dan parenright ke Shift_L dan Shift_R, saya dipercaya bisa mengetik parens oleh "rolling" di kedua tombol shift - dengan kata lain, dengan pemetaan ini:
menekan Shift_L diikuti oleh Shift_R, lalu melepaskan keduanya, akan menampilkan paren kanan, atau paren kiri di arah lain. (Pemetaan paren bisa dibalik, tentu saja; saya tidak bisa memutuskan mana yang terasa lebih "alami".)
Itu sedekat ketika saya sampai pada perilaku yang tepat yang Anda cari; sepertinya tidak mungkin menggunakan xmodmap sendiri.
Saya setengah yakin bahwa itu tidak mungkin, titik, tetapi kemudian saya menyadari bahwa setidaknya ada satu kunci yang berfungsi persis seperti yang Anda gambarkan: Kunci Super ("Windows"). Di bawah Gnome Shell, ini adalah kunci pengubah (mod4), yang menghasilkan efek berbeda (memicu Tinjauan) ketika ditekan sendirian. Jadi, setidaknya secara teori, dimungkinkan untuk menerapkan pemuatan tombol shift yang Anda inginkan dengan cara yang sama.
... Tapi, saya sama sekali tidak tahu bagaimana hal itu akan dilakukan, atau seberapa invasifnya untuk terjebak dalam proses yang diperlukan setiap kali Anda menekan tombol Shift. :-)
sumber
mungkin cari xbindkeys untuk mengubah pemetaan kunci atau cari plugin koding yang bagus untuk vim atau gedit atau apa pun yang Anda suka gunakan atau kode sendiri.
alat untuk mengubah keymaps /programming/6812/mapping-my-custom-keys-in-debian
mungkin http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-14.html
dan tulis skrip untuk mengaktifkannya.
sumber