Bind / map Character to alt + [some key]?

4

OS: Ubuntu

Dalam pemrograman dan berbagai program terminal (Layar, Vim) [,], {dan} cenderung banyak digunakan. Saya menggunakan keyboard Norwegia di mana ini ditempatkan sehingga saya harus meregangkan jari saya agak terlalu lama untuk apa yang nyaman. Untuk membuatnya lebih mudah saya pikir saya akan mencoba untuk membuat alt + [beberapa tombol] menjadi salah satu karakter ini. Apakah ada cara yang bisa saya ikat, katakan alt + æ (huruf Norwegia) ke '{' system wide?

Btw, apakah hal seperti itu disebut mengikat, memetakan atau sesuatu yang lain? Saya agak bingung dengan persyaratan ... :)

quack quixote
sumber
(sebagai komentar, karena saya tahu sedikit tentang linux dan ini adalah tikaman dalam gelap) Ini bisa menjadi sesuatu yang dapat membantu Anda melakukannya: xmacro.sourceforge.net (saya sedang mencari equivilent autohotkey untuk linux)
Dmatig
"mengikat" dan "memetakan" kuncinya adalah operasi yang sangat mirip. saya pikir perbedaannya terletak pada apa yang Anda hubungkan ke penekanan tombol: jika Anda menghubungkan suatu fungsi ( jalankan makro ini ketika tombol ini ditekan ), ini "mengikat"; jika Anda menghubungkan simbol ( ketikkan simbol ini saat tombol ini ditekan ) itu "pemetaan".
quack quixote

Jawaban:

1

Sayangnya itu tidak mungkin menggunakan tombol Alt +. Anda melihat mengetik tombol Alt + di jendela perintah benar-benar sama dengan menekan Escape diikuti oleh tombol.

Namun saya punya semacam solusi untuk Anda, tetapi membutuhkan sedikit kerja keras dan mengasumsikan Anda menjalankan X. Layar / vim Anda dalam emulator terminal masih akan bekerja dengan ini sekalipun.

Saya menggunakan keyboard Spanyol dan []{}simbol-simbolnya ada pada tombol di sebelah kanan jari kelingking saya di sebelah kanan, tetapi saya juga perlu menekan tombol AltGr . Itu berarti terlalu banyak meremas tangan kanan saya. Saya mengubah ini menggunakan xmodmap .

Jika Anda menambahkan file bernama .Xmodmap ke direktori home Anda , maka file tersebut diambil setiap kali Anda masuk ke X. Atau Anda dapat menjalankannya kapan saja menggunakan xmmodmap ~/.Xmodmap.

Berikut ini contoh cara mengaturnya. Simbol brace yang tepat }adalah pada tombol dengan çdi keyboard saya, tetapi saya harus menekan AltGr bersama dengan tombol untuk mendapatkan brace yang tepat. Untuk melihat kode kunci apa yang dipetakan untuk ini, saya menggunakan xmodmap -pk:

$ xmodmap -pk | grep brace
51 0x00e7 (ccedilla) 0x00c7 (Ccedilla) 0x00e7 (ccedilla) \
   0x00c7 (Ccedilla) 0x007d (braceright) 0xfe55 (dead_breve)
# split to prevent scroll, this is all on one line

Ini berarti bahwa kode kunci 51 dipetakan ke tombol-tombol ini dengan berbagai pengubah. Inilah yang man xmodmapharus dikatakan:

keycode NUMBER = KEYSYMNAME ...
 The list of keysyms is assigned to the indicated keycode (which may be
 specified in decimal, hex or octal and can be determined by running the xev
 program). Up to eight keysyms may be attached to a key, however the last
 four are not used in any major X server implementation. The first keysym is
 used when no modifier key is pressed in conjunction with this key, the
 second with Shift, the third when the Mode_switch key is used with this
 key and the fourth when both the Mode_switch and Shift keys are used.

Jadi di sini kita memiliki:

  • tidak ada pengubah = ccedilla ç
  • shift = Ccedilla Ç
  • Mode_switch = ccedilla
  • Mode_switch dan shift = Ccedilla
  • AltGr = braceright}

Bereksperimen, tampaknya entri kelima sebenarnya ketika AltGr dan tombol ditekan. Begitu banyak untuk dokumentasi, eh? Saya tidak tahu apa kunci Mode_switch, itu tentu bukan Alt, Shift atau Ctrl.

Saya ingin mengubah kunci yang paling tidak berguna ini }secara default. Entri dalam .Xmodmap saya adalah sebagai berikut:

keycode 51 = braceright Ccedilla ccedilla Ccedilla braceright dead_breve

Saya tidak pernah menulis ccedillas (kecuali dalam posting ini, dan di sini saya telah menulisnya dengan mengetikkan Ç yang kemudian digunakan guwdalam Vim untuk membuatnya menjadi huruf kecil!) Jadi saya tidak ketinggalan mereka. Kunci lain, seperti kunci yang ada ]di atasnya lebih rumit. Kunci ini telah *+]tertulis di atasnya. Saya memindahkan plus ke tombol lain (menghapus duplikat tanda seru terbalik ¡), telah meludahkan] secara default dan *dengan shift. Perilaku AltGr yang saya tinggalkan tidak tersentuh.

Saya memiliki entri serupa untuk kode kunci lain yang terkait dengan kunci coders lainnya. Terkadang saya pikir saya harus mempelajari kembali tata letak AS atau Inggris hanya untuk peretasan. Saya akan kehilangan kunci mewah dalam email.

richq
sumber