GNU/Linux >> Belajar Linux >  >> Linux

Memetakan ulang tombol keyboard khusus di Linux - Tutorial

Masalah modern membutuhkan solusi modern. Baru-baru ini saya mendapatkan laptop uji Linux baru, satu IdeaPad 3, yang saya beli (sayangnya, karena kekurangan pasar) dengan tata letak keyboard Inggris alih-alih tata letak AS. Ini berarti penempatan tombol fisik yang kurang optimal - bahkan jika Anda menggunakan varian keyboard yang berbeda. Yaitu, tombol bilah dan spasi mundur dan semacamnya ditempatkan semuanya salah, ditambah tombol Enter terlalu kecil.

Selain itu, ini juga berarti, memori otot dan semuanya, Anda akhirnya mengetik \ ketika Anda benar-benar ingin melompat ke baris baru, dan ini bisa sangat mengganggu. Jadi saya pikir, mungkin saya bisa memetakan kembali tombol keyboard dengan cara yang kecil? Tetapi saya tidak ingin hanya memetakan kembali tombol spasi belakang (dengan simbol tilde dan hash Inggris) ke Enter "kedua", sehingga secara efektif membuat tombol Enter yang lebih besar, saya masih ingin agar bilah dan tombol spasi mundur tersedia. Oleh karena itu latihan yang lebih kompleks. Biarkan saya menunjukkan kepada Anda bagaimana Anda dapat melakukan penyiapan yang agak berbelit-belit tetapi sangat bagus ini.

Tugas di tangan

Jadi, izinkan saya menjelaskan dengan jelas apa yang ada dalam pikiran saya:

  • Keyboard IdeaPad 3 fisik yang dipetakan di Inggris memiliki tombol hash/tilde di dekat Enter. Ini memiliki bilah/garis miring terbalik di dekat Shift Kiri (membuatnya lebih kecil secara efektif).
  • Saat Anda menggunakan tata letak AS pada keyboard ini, Anda akan mendapatkan:bilah/garis miring terbalik yang dipetakan ke hash/tilde di dekat tombol Enter, dan kunci dengan simbol bilah/spasi mundur dipetakan ke tanda kurung kiri dan kanan ( ). Tapi itu sudah dipenuhi oleh fungsi Shift pada titik dan tombol koma pada tata letak AS, jadi ada kelebihan tombol - baik tanda kurung atau kombo bar/spasi mundur.

Oleh karena itu, saya ingin melakukan hal berikut:

  • Petakan ulang kunci dengan label simbol fisik hash/tilde - digunakan sebagai bilah/garis miring terbalik - ke Enter SECOND. Ini akan membuat tombol Enter lebih besar secara efektif, dan saya ingin Enter terbalik besar berbentuk L seperti yang biasa Anda dapatkan di keyboard AS.
  • Petakan ulang kunci terpisah dengan simbol bilah/garis miring terbalik di dekat Shift Kiri - digunakan sebagai panah kiri dan kanan dalam tata letak AS - ke bilah/garis miring terbalik, karena saya kehilangannya dengan memetakan ulang di poin-poin pertama.

Perhatikan Shift Kiri dan Enter yang "rusak". Hanya karena tata letak fisik yang tidak efisien.

Tugas saya membutuhkan dua pemetaan ulang:pertama Enter, lalu bilah/garis miring terbalik. Sekarang, penting untuk benar-benar membuat pemetaan ulang dengan cara ini, jika tidak, jika kita memetakan ulang bilah/garis miring terbalik terlebih dahulu, maka kunci di sebelah Enter tidak akan memiliki pemetaan sama sekali. Masuk akal?

Alat perdagangan:xev dan xmodmap

Kami membutuhkan dua utilitas yang merupakan bagian dari bundel X - Saya tidak tahu apakah dan bagaimana seseorang akan melakukan ini di Wayland, tetapi kemudian saya tidak menggunakan Wayland secara umum, karena tidak memiliki paritas fungsional dengan X, ditambah Xorg adalah sesi default di sebagian besar distro yang saya gunakan, seperti misalnya Ubuntu atau Kubuntu.

Kami akan memetakan ulang dengan xmodmap, tetapi kami perlu "menangkap" simbol kunci yang sebenarnya sehingga kami dapat melakukan pemetaan ulang. Untuk tujuan ini, jalankan xev dari jendela terminal. Alat ini akan membuka jendela kecil di sudut layar Anda, dan itu akan mulai menangkap input. Jika Anda menekan tombol pada keyboard, Anda akan melihat output berikut di jendela terminal - hanya sebuah contoh:

Acara KeyRelease, serial 40, NO sintetis, jendela 0x5a00001,
root 0x6a9, subw 0x0, waktu 2784437, (1131,438), root:(1131,475),
status 0x0, kode kunci 94 (keysym 0x3c, kurang), same_screen YA,
XLookupString memberikan 1 byte:(3c) "<"
XFilterEvent mengembalikan:False

Lakukan ini untuk mengambil keysym untuk bilah/spasi mundur dan tombol panah. Jangan lupa untuk mengambil kunci "kedua" yang dipetakan (dengan Shift), sehingga Anda dapat memetakan keduanya dan bukan hanya satu. Jika tidak, kami hanya akan memiliki bilah atau tombol garis miring terbalik, tetapi tidak keduanya tersedia.

Sebelum kita melakukannya, izinkan saya menunjukkan kepada Anda bagaimana Anda sebenarnya memetakan kembali kunci. Dengan xev berjalan, tekan sekali tombol yang ingin Anda ganti dan kunci yang ingin Anda ganti. Kemudian jalankan xmodmap seperti ini:

xmodmap -e "keysym HEX =NAMA"

Anda akan memetakan kembali kunci dengan nilai HEX untuk melakukan apa yang harus dilakukan oleh kunci dengan nilai NAME. Misalnya:

xmodmap -e "keysym 0x5c =Kembali"

Perintah ini memetakan simbol kunci 0x5c (yang sesuai dengan bilah/garis miring terbalik) menjadi Enter. Jadi setelah perintah ini selesai, dalam kasus saya, kunci UK fisik yang ditandai dengan simbol hash/tilde, yang dipetakan ke fungsi bar/backspace dalam tata letak AS, sekarang akan bertindak sebagai tombol Enter kedua. Hebat.

Tapi sekarang, kita juga perlu memetakan fungsi bar/backspace.

Pengubah

Memang, untuk memetakan fungsionalitas standar dan kedua (Shift) untuk sebuah kunci, kita memerlukan pengubah. Anda dapat memeriksa pengubah yang ada dengan:

xmodmap -pm
xmodmap:hingga 4 tombol per pengubah, (kode kunci dalam tanda kurung):

shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
kontrol Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

Sekarang untuk memetakan kembali kunci dengan DUA fungsi, sintaksnya adalah sebagai berikut:

xmodmap -e "keysym HEX MOD =NAME1 NAME2"

Dalam contoh kita:

xmodmap -e "keysym 0x3c Shift_L =garis miring terbalik"

Kami memetakan kembali kunci yang sesuai dengan 0x3c - ini adalah kunci yang ditandai dengan bilah/spasi mundur di keyboard fisik Inggris, dipetakan ke panah kiri dan kanan di keyboard AS - untuk benar-benar berfungsi sebagai bilah/spasi mundur. Pengubahnya adalah tombol Shift Kiri. Jadi jika Anda menekan tombol itu sendiri, Anda mendapatkan garis miring terbalik, jika Anda menggunakannya dengan Shift Kiri, Anda mendapatkan simbol batang (pipa). Dan sekarang kita memiliki layout yang kita inginkan.

Sekali lagi, ingatlah bahwa kita tidak kehilangan tombol panah karena sudah dipetakan ke tombol koma dan titik di dekat tombol Shift Kanan. Secara efektif kombinasi keyboard fisik UK dan virtual US menghasilkan dua pasang tombol panah, jadi kami menghilangkan satu, dan mendapatkan Enter tambahan.

Skrip mulai otomatis

Jangan khawatir jika Anda melakukan kesalahan. Reboot sistem Anda, dan Anda akan kembali normal. Oleh karena itu, untuk membuat peta ulang kustom permanen, kita perlu membuat skrip autostart, yang berjalan pada setiap login pengguna, dan membuat perubahan yang kita perlukan.

Ada banyak cara yang bisa Anda lakukan. Saya akan menunjukkan cara membuat skrip autostart untuk desktop Plasma, meskipun prinsipnya sama untuk hampir semua desktop di luar sana. Ini sangat mirip dengan apa yang saya lakukan dengan tombol Tampilkan desktop di Gnome.

Buka jendela Konsole, buka ~/.config/autostart-scripts. Di sini, buat file teks dengan konten berikut:

[Entri Desktop]
Nama=Tukar kunci
Exec=key-swap.sh
Terminal=false
Tipe=Aplikasi

Anda dapat menggunakan nama apa pun yang Anda inginkan, dan Anda dapat memberi nama file sesuka Anda, tetapi pastikan itu memiliki akhiran desktop. Dalam contoh saya, saya menyimpan ini sebagai key-swap.desktop. Jadikan file ini dapat dieksekusi:

chmod +x ~/.config/autostart-scripts/key-swap.desktop

Sekarang, baris Exec di file desktop merujuk ke skrip, yang belum ada sebelumnya. Biasanya, jika Anda melihat baris Exec untuk skrip desktop lain (Anda dapat memeriksa Firefox atau Chrome atau apa pun), Anda akan melihat satu perintah tertulis. Karena kita memerlukan dua perintah xmodmap, solusi termudah adalah dengan meletakkannya di dalam skrip shell yang terpisah, dan kemudian menggunakan skrip tersebut sebagai perintah Exec.

Di direktori autostart-scripts, buat file bernama key-swap.sh - juga buat agar bisa dieksekusi.

#!/bin/bash

xmodmap -e "keysym 0x5c =Kembali"
xmodmap -e "keysym 0x3c Shift_L =bilah garis miring terbalik"

keluar 0

Ini adalah contoh saya. Anda mungkin memiliki kebutuhan yang sama sekali berbeda, dan Anda mungkin hanya membutuhkan satu xmodmap, atau mungkin tujuh. Sekedar referensi dan kelengkapan, jika Anda ingin melakukan satu perubahan xmodmap, Anda dapat melewati skrip shell dan meletakkannya di file desktop.

[Entri Desktop]
Nama=Tukar kunci satu kunci
Exec=xmodmap -e "keysym 0x5c =Kembali"
Terminal=false
Tipe=Aplikasi

Melalui utilitas Pengaturan Plasma, Anda memang dapat memverifikasi semuanya baik-baik saja:

Jika Anda berubah pikiran, Anda dapat menonaktifkan atau menghapus skrip, menggunakan pemetaan keyboard yang berbeda, dan pada reboot berikutnya, semuanya akan kembali ke status default atau status kustom baru yang Anda inginkan. Dengan cara ini Anda memiliki fleksibilitas yang diperlukan. Meskipun segala sesuatunya bersifat permanen, Anda selalu dapat mengubahnya.

Kesimpulan

Ini dia. Ini adalah tutorial kecil saya yang menunjukkan bagaimana saya meningkatkan ergonomi default keyboard Lenovo IdeaPad saya, memanfaatkan tata letak fisiknya dengan lebih baik, dan mengubah pemetaan kunci ke nilai khusus. Apa yang membuat panduan ini lebih menarik adalah fakta bahwa saya menggunakan tata letak AS, jadi ada sedikit perubahan lain, tetapi ini pasti akan berguna jika Anda menggunakan bahasa lain juga. Ingat, tanda fisik pada tombol dan fungsi sebenarnya tidak memiliki kesamaan. Ini hanya referensi visual untuk memudahkan orang menemukan simbol yang tepat.

Mudah-mudahan, ini praktis. Saya telah melihat peningkatan instan dalam kecepatan mengetik saya, ditambah saya membuat kesalahan Enter backspace jauh lebih sedikit. Tangan saya dapat terus bekerja dengan cepat, tanpa harus melatih diri untuk tata letak fisik lainnya, yang sangat berbeda dari kebanyakan laptop dan/atau keyboard lain yang saya miliki. Dengan xev dan xmodmap, Anda seharusnya bersenang-senang. Jika Anda memiliki permintaan serupa, atau mungkin misterius, lakukan ping ke saya, dan saya akan melihat apa yang bisa saya lakukan. Selamat mengetik.


Linux
  1. Distribusi Kali Linux Kustom Saya

  2. Cara Mengatur kunci SSH untuk login ssh "tanpa kata sandi" di Linux

  3. Cara Setup SSH keys untuk SSH "public/private key" Login Di Linux

  1. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  2. Remap tombol Win, Ctrl dan Alt di Linux

  3. Cara memetakan ulang kunci di Linux hanya untuk keyboard tertentu

  1. Linux – Mode Keyboard Mentah?

  2. Tombol Pintasan yang Independen dengan Tata Letak Keyboard?

  3. Pada Keyboard Apple di Linux, bagaimana cara membuat tombol Fungsi berfungsi tanpa tombol pengubah fn?