Làm cách nào để liên kết Ctrl + mũi tên với phím Home và End? xmodmap không hoạt động


15

Trên Windows, tôi đã sử dụng để liên kết Ctrl+ Leftđến HomeCtrl+ Quyền Endthông qua ahk.

Bây giờ tôi đang vật lộn để đạt được hành vi này trong Ubuntu. Tôi đã thử chỉnh sửa /etc/inputrc:

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

Nó hoạt động nhưng chỉ trong cửa sổ đầu cuối. Tôi cũng đã thử xmodmap:

xmodmap -e "keycode 113=Left NoSymbol Home"

Nhưng nó không hoạt động.
Điều kỳ lạ ở đây là nếu tôi liên kết với Shift+ Lefttrong xmodmap thì nó hoạt động:

xmodmap -e "keycode 113=Left Home"

Tôi đoán ở đây là hành vi mặc định của Ctrl+ Left(bỏ qua từ) bằng cách nào đó được ưu tiên hơn các ràng buộc xmodmap.

Tôi có thể tìm thấy các ràng buộc mặc định được đặt ở đâu và làm thế nào để loại bỏ nó? Hoặc, có lẽ tôi chỉ có thể ràng buộc hành vi cần thiết ở đó?

Tôi đang dùng Ubuntu 12.04


Bạn có nhận được xevđầu ra cho các phím bạn muốn thay đổi?
Seth

Tôi làm. Tôi đã nhận được mã khóa 113 = Còn lại từ đầu ra xev.
axit009

Bạn có thể thêm toàn bộ xevđầu ra xin vui lòng?
Seth

trạng thái 0x0, mã khóa 113 (keyym 0xff51, Trái)
acid009

và trạng thái 0x4, mã khóa 113 (keyym 0xff51, Trái) nếu được nhấn bằng Ctrl - trạng thái được thay đổi thành 0x4 như mong đợi
acid009

Câu trả lời:


11

AutoKey có thể thực hiện các ràng buộc như thế này, nhưng nó yêu cầu chạy một dịch vụ trong nền (như ahk, nhưng không giống như xmodmap).

Định cấu hình "cụm từ" trong đó văn bản là <home>, phương thức dán Keyboardvà phím nóng là <ctrl>-<left>:

GUI tự động


Đẹp. Đây cũng có thể là một câu trả lời phù hợp như một câu trả lời ở đây cũng như Askubfox.com/questions/254424/ Khăn
Kevin Bowen

1
Một phiên bản mở rộng, chung chung hơn: askubfox.com/a/304834/194 Điều đó có làm cho câu hỏi này trùng lặp không?
cscarney

Nó có thể làm được, nhưng bạn vẫn nên nhận tiền thưởng. ;-)
Kevin Bowen

phương pháp này không hoạt động.
axit009

1
@JeffDror đó là <page_up> và <page_down> ( code.google.com/p/autokey/wiki/ecialKeys )
cscarney

1

Tôi đang sử dụng bàn phím nhôm của Apple trên máy trạm Ubuntu và các lệnh xmodmap sau đây đã giúp tôi:

# 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"

Điều này hoạt động hoàn hảo vì Caps Lockkhóa của tôi được ánh xạ lại thành chức năng Điều khiển bằng các tùy chọn bàn phím Ubuntu, do đó không cần phím Điều khiển bên trái. Vì nó được đặt ở nơi tìm thấy phím Fn trên bàn phím MacBook, nên việc chuyển đổi giữa bàn phím máy tính để bàn và MacBook không ảnh hưởng đến bộ nhớ cơ.


0

Autokey làm việc cho tôi. Hành vi Autokey mặc định sẽ là: ánh xạ cả right ctrl+ arrowleft ctrl+ arrow. Và tôi chỉ muốn right ctrl, bởi vì tôi đã từng left ctrlđiều hướng từ ngữ.

Đây là kịch bản tôi đã sử dụng trong 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>')

Lưu ý: bạn có thể có một tên bàn phím khác. Hãy thử tất cả chúng. Tôi có 3 thiết bị, nhưng chỉ có một thiết bị hoạt động.

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

PS Tôi đã cài đặt Autokey từ GitHub, vì gói trong Phần mềm Ubuntu bị hỏng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.