GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Remap Numlock Key Agar Dihapus?

Karena tata letak keyboard saya, saya ingin numlock ditekan secara permanen dan menggunakan tombol numlock sebagai tombol hapus. Sepertinya saya tidak bisa menjalankan ini. Setiap ide tentang cara melakukan ini akan dihargai.

Sunting:Saya menjalankan Ubuntu 16

Inilah yang saya coba:

Gunakan Xmodmap dengan numlockx

Terinspirasi dari pertanyaan ini. Pemahaman saya adalah bahwa xmodmap sudah usang, jadi ini mungkin bukan ide yang bagus.

  • Buat file ~/.Xmodmap dengan baris keycode 77 = Delete NoSymbol
  • Jalankan xmodmap ~/.Xmodmap
  • Jalankan numlockx on

Ini memungkinkan numlock berfungsi sebagai hapus dan mengaktifkan num pad hingga pertama kali saya menekan tombol numlock. Kemudian tombol numlock menonaktifkan papan angka.

Gunakan XKB

  • Edit /usr/share/X11/xkb/symbols/us memiliki key <NMLK> { [Delete, Num_Lock] }; di akhir peta kunci dasar.
  • mulai ulang komputer

juga mencoba:

  • Edit /usr/share/X11/xkb/symbols/us untuk memiliki replace key <NMLK> { [Delete, Num_Lock] }; di akhir peta kunci dasar.
  • mulai ulang komputer

Ini mengalami masalah yang sama seperti metode lainnya, dapat menghapus pekerjaan, tetapi tombol numlock mematikan numpad. Tampaknya juga mengacaukan tombol lain seperti tombol windows ketika tombol angka diaktifkan. Saya suka bahwa saya mengendalikan numlock menggunakan shift+numlock. Saya tidak dapat menemukan perbedaan antara menggunakan replace dan tidak menggunakannya.

Jawaban yang Diterima:

Berikut adalah cara untuk melakukan ini hanya dengan menggunakan xkb, yang menurut saya lebih baik daripada menggunakan xmodmap. Jawaban ini mencakup lebih banyak detail tentang apa yang ingin saya capai daripada pertanyaan awal. Xmodmap dan xkb tidak selalu berjalan bersama dengan baik, pendekatan ini memungkinkan lebih banyak fleksibilitas:

Ini semua berasal dari:https://wiki.archlinux.org/index.php/X_keyboard_extension

Ada daftar keysym yang tersedia yang tampaknya berfungsi di sini:http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html

Ini dilakukan secara manual untuk memungkinkan Anda memulai dengan konfigurasi yang sudah ada di komputer Anda untuk mencegah masalah kompatibilitas dengan keyboard yang berbeda.
Contoh menjalankan ini sebelumnya dapat dilihat di config_files/linux/keyboards

Mulailah dengan menjalankan xkbcomp $DISPLAY output.xkb untuk mendapatkan setelan
keyboard Anda saat ini.
Kemudian tambahkan:

    interpret osfLeft{
        repeat= True;
        action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
    };
    interpret osfRight{
        repeat= True;
        action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
    };
    interpret osfDown{
        repeat= True;
        action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
    };
    interpret osfUp{
        repeat= True;
        action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
    };
    interpret osfEndLine{
        repeat= True;
        action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
    };
    interpret osfBeginLine{
        repeat= True;
        action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
    };
    interpret osfEscape{
        repeat=True;
        action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
    };

ke bagian kompatibilitas file yang dihasilkan.

Terkait:Menginstal Program di Root vs Partisi Rumah di Ubuntu?

Di bagian bawah bagian jenis, tambahkan:

   type "CUST_CAPSLOCK" {
       modifiers= Shift+Lock;
       map[Shift] = Level2;            // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
       map[Shift+Lock] = Level3;       // but Lock+Shift won't map to Level2 even without this line.
       map[Lock] = Level3;
       level_name[Level1]= "Base";
       level_name[Level2]= "Shift";
       level_name[Level3]= "Lock";
   };
   interpret osfDelete{
       repeat=True;
       action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
   };

Telusuri interpret Caps_Lock dan ubah LockMods ke SetMods jadi caps lock cuma set modifiernya aja, bukan lock.

Untuk mengizinkan capslock + WASD berfungsi sebagai tombol panah:edit tombol <AD02> , <AC01> , <AC02> , <AC03> untuk mengetik CUST_CAPSLOCK dan masing-masing memiliki osfUp , osfLeft , osfDown , osfRight di posisi ketiga.

Untuk mengizinkan capslock + HJKL berfungsi sebagai tombol panah:edit tombol <AC06> , <AC07> , <AC08> , <AC09> untuk mengetik CUST_CAPSLOCK dan masing-masing memiliki osfLeft , osfDown , osfUp , osfRight di posisi ketiga.

Untuk mengizinkan capslock + 0 untuk mendaftar sebagai rumah dan capslock + $ untuk mendaftar sebagai akhir:edit kunci <AE04> dan <AE10> untuk mengetik CUST_CAPSLOCK dan masing-masing memiliki osfEndLine dan osfBeginLine di posisi ketiga.

Untuk mengizinkan capslock + spasi untuk mendaftar sebagai escape (berguna untuk vim) edit kunci <SPCE> untuk mengetik CUST_CAPSLOCK , memiliki space di posisi kedua dan osfEscape di posisi ketiga.

Untuk mengubah kunci numlock menjadi kunci hapus dan membuat capslock + numlock buat <NMLK> ketik CUST_CAPSLOCK , memiliki posisi satu dan dua memiliki osfDelete dan posisi tiga memiliki Num_Lock

Sekarang unggah file yang diubah kembali ke server dengan:xkbcomp output.xkb $DISPLAY .

Jika semuanya berfungsi, letakkan file di suatu tempat, ~/.Xkeymap bekerja dan membuat skrip misalnya bernama ~/start_keyboard.sh dengan:

#!/bin/bash

xkbcomp ~/.Xkeymap $DISPLAY

Jadikan itu dapat dieksekusi (chmod u+x ~/start_keyboard.sh ) dan tambahkan skrip ke aplikasi startup Anda.


Ubuntu
  1. Memetakan Ulang Tombol Daya Untuk Menghapus?

  2. Bagaimana Memaksa Menghapus File?

  3. Bagaimana Mengkonsolidasikan Beberapa Kunci Mok Atau Menghapus Yang Tidak Perlu?

  1. Bagaimana Cara Menghapus Panel Gnome?

  2. Cara menghapus tugas cron

  3. Cara Menghapus Layanan di Kubernetes

  1. Bagaimana Cara Menukar / Memetakan Kembali Tombol Caps Lock Dengan Tombol Tab?

  2. 16.04 Hapus Kunci Tidak Berfungsi?

  3. Cara Menghapus Semua Baris File di Vim