Remap kombinasi tombol ke kombinasi lain, mis. Super + Ctrl + Shift + J -> Ctrl + Shift + Kiri


11

Saya ingin menerapkan lapisan kunci tambahan, sehingga saya dapat mengakses kunci non-alfanumerik tanpa harus menggerakkan pergelangan tangan saya.

Saya telah menggunakan Autokey untuk tujuan ini, tetapi pengalaman itu tidak memuaskan: kadang-kadang ada kelambatan dan membiarkan penekanan tombol asli masuk ke aplikasi tertentu.

Jadi saya butuh solusi tingkat rendah.


Anda mungkin harus membuat custom input driver virtual untuk melakukan ini yang saya kira akan ditulis dalam C
Amias

@Amias, bisa tolong jelaskan?
lolmaus - Andrey Mikhaylov

Anda dapat memiliki driver xinput yang menjalankan driver keyboard normal tetapi menginterpretasikan penekanan tombol sebelum meneruskannya ke xorg, ini akan memberi Anda kontrol penuh tetapi akan menjadi beberapa hari yang cukup kompleks bekerja untuk seorang programmer C.
Amias

Jawaban:


10

Cobalah kombinasi xbindkeys dan xvkbd . xbindkeys mendengarkan kunci dan mengirimkan terjemahan ke xvkbd.

sudo apt-get install xbindkeys xvkbd
xbindkeys --defaults > /home/your-user-name/.xbindkeysrc

Buka .xbindkeysrc di editor favorit Anda. Saya mengomentari semuanya, tapi ada baiknya merujuk jika diperlukan.

Untuk memeriksanya, saya mencoba memetakan Ctrl +; untuk Ctrl + V

"xvkbd -xsendevent -text "\Cv""
   control + semicolon

Saya berharap Anda mencari sesuatu seperti ini

"xvkbd -xsendevent -text "\C\S\[Left]""
  Super+Control+Shift+J

Simpan file, lalu jalankan xbindkeys

Untuk memuat ulang perubahan konfigurasi, saya mematikan proses xbindkeys lalu memulai kembali.

sintaks xbindkeys

Saya mencari kombinasi tombol dengan menggunakan GUI untuk xbindkeys

sudo apt-get install xbindkeys-config
xbindkeys-config

Setelah Anda menjalankannya, tekan Dapatkan Kunci untuk kombinasi untuk dimasukkan ke baris kedua file .xbindkeysrc Anda.

sintaks xvkbd

Dari manual:

\r - Return
\t - Tab
\b - Backspace
\e - Escape
\d - Delete
\S - Shift (modify the next character; please note that modify with ``\S'' will be ignored in many cases. For example, ``a\Cb\ScD\CE'' will be interpreted as a, Control-b, c, Shift-D, and Control-Shift-E.)
\C - Control (modify the next character)
\A - Alt (modify the next character)
\M - Meta (modify the next character)
\[keysym] - the keysym keysym (e.g., \[Left]), which will be processed in the similar matter with other general characters
\{keysym} - the keysym keysym (e.g., \{Left}), which will be processed in more primitive matter and can also be used for modofier keys such as Control_L, Meta_L, etc.; also, \{+keysym} and \{+keysym} will simulate press and release of the key, respectively [Version 3.3]
\Ddigit - delay digit * 100 ms
\xvalue - move mouse pointer (use "+" or "-" for relative motion)
\yvalue - move mouse pointer (use "+" or "-" for relative motion)
\mdigit - simulate click of the specified mouse button

Senang mendengar cara kerjanya dan jika kombinasi itu cocok untuk tujuan Anda. Ini terlihat bagus sebagai keymapper, tetapi tidak harus pelari makro.


Hai @MarkHewitt! Terima kasih banyak atas tanggapan terperinci! Sayangnya, ini tidak bekerja untuk saya dengan sangat baik: penekanan tombol asli terus datang, yang merusak semuanya.
lolmaus - Andrey Mikhaylov

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.