Bagaimana cara mengikat panah Ctrl + ke tombol Home dan End? xmodmap tidak berfungsi

15

Di Windows, saya biasa mengikat Ctrl+ Leftke Homedan Ctrl+ Hak untuk Endvia ahk.

Sekarang saya berjuang untuk mencapai perilaku ini di Ubuntu. Saya sudah mencoba mengedit /etc/inputrc:

"\e[1;5C": end-of-line
"\e[1;5D": beginning-of-line

Ini bekerja tetapi hanya di jendela terminal. Saya juga sudah mencoba xmodmap:

xmodmap -e "keycode 113=Left NoSymbol Home"

tetapi tidak berhasil.
Yang aneh di sini adalah jika saya mengikat ke Shift+ Leftdi xmodmap berfungsi:

xmodmap -e "keycode 113=Left Home"

Dugaan saya di sini adalah bahwa perilaku default Ctrl+ Left(lewati kata) entah bagaimana mendapat prioritas di atas binding xmodmap.

Di mana saya dapat menemukan di mana binding default berada dan bagaimana cara menghapusnya? Atau, mungkin saya bisa mengikat perilaku yang diperlukan di sana?

Saya di Ubuntu 12,04

acid009
sumber
Apakah Anda mendapatkan xevoutput untuk kunci yang ingin Anda ubah?
Seth
Saya lakukan. Saya mendapatkan kode kunci 113 = Kiri dari output xev.
acid009
Bisakah Anda menambahkan seluruh xevoutput?
Seth
status 0x0, kode kunci 113 (keysym 0xff51, Kiri)
acid009
dan nyatakan 0x4, kode kunci 113 (keysym 0xff51, Kiri) jika ditekan dengan Ctrl - status diubah menjadi 0x4 seperti yang diharapkan
acid009

Jawaban:

11

AutoKey dapat melakukan binding seperti ini, tetapi membutuhkan menjalankan layanan di latar belakang (seperti ahk, tetapi tidak seperti xmodmap).

Konfigurasikan "frasa" di mana teks berada <home>, metode tempel Keyboard, dan hotkey adalah <ctrl>-<left>:

GUI AutoKey

cscarney
sumber
Bagus. Ini mungkin juga cocok sebagai jawaban di sini juga askubuntu.com/questions/254424/…
Kevin Bowen
1
Versi yang diperluas dan lebih umum: askubuntu.com/a/304834/194 Apakah itu menjadikan pertanyaan ini duplikat?
cscarney
Mungkin memang demikian, tetapi Anda tetap harus mendapatkan hadiahnya. ;-)
Kevin Bowen
metode ini tidak berfungsi.
acid009
1
@JeffDror itu adalah <page_up> dan <page_down> ( code.google.com/p/autokey/wiki/SpecialKeys )
cscarney
1

Saya menggunakan keyboard aluminium Apple pada workstation Ubuntu dan perintah xmodmap berikut melakukannya untuk saya:

# remap Ctrl_L to ModeSwitch, then use it to map arrow keys so that
# they act like on the MacBook keyboard with Fn key pressed 
xmodmap -e "keycode 37=Mode_switch"
xmodmap -e "keycode 113 = Left NoSymbol Home"
xmodmap -e "keycode 114 = Right NoSymbol End"
xmodmap -e "keycode 111 = Up NoSymbol Prior"
xmodmap -e "keycode 116 = Down NoSymbol Next"

Ini berfungsi dengan baik karena Caps Lockkunci saya dipetakan kembali ke fungsi Kontrol menggunakan preferensi keyboard Ubuntu, sehingga tombol Kontrol kiri tidak diperlukan. Karena terletak di mana tombol Fn ditemukan pada keyboard MacBook, beralih antara desktop dan keyboard MacBook tidak mempengaruhi memori otot.

Peter Kvitek
sumber
0

Autokey bekerja untuk saya. Perilaku Autokey default adalah: memetakan right ctrl+ arrowdan left ctrl+ arrow. Dan saya hanya ingin right ctrl, karena saya biasa left ctrlmenavigasi kata-kata.

Berikut ini skrip yang saya gunakan dalam Autokey:

output = system.exec_command('xinput query-state "AT Translated Set 2 keyboard" | grep down', getOutput=True)
# 105 is right ctrl
if 'key[105]=down' in output:
    keyboard.send_keys('<end>')
else:
    keyboard.send_keys('<ctrl>+<right>')

Catatan: Anda mungkin memiliki nama keyboard yang berbeda. Coba semuanya. Saya memiliki 3 perangkat, tetapi hanya satu yang berfungsi

xinput list --name-only | grep -i keyb
Virtual core keyboard
Virtual core XTEST keyboard
AT Translated Set 2 keyboard

PS Saya menginstal Autokey dari GitHub, karena paket di Perangkat Lunak Ubuntu rusak.

wibotwi
sumber