Câu hỏi làm thế nào để remap Ctrl để thoát nếu được ép và phát hành trên riêng của mình


Tôi muốn remap Control, để:

  1. Nếu nó được nhấn và nhả ra không có phím nào khác, nó hoạt động như   Esc.
  2. Nếu nó được nhấn và giữ cùng với một phím khác, nó diễn như thể Ctrl (không thay đổi hành vi trong trường hợp này).

Tôi biết Làm thế nào để tôi remap một số phím hoặc thiết bị?, vì vậy tôi nghi ngờ nó có thể được thực hiện với xmodmap. Nhưng câu trả lời đó không giải thích cách ánh xạ các phím bổ trợ. Tôi đã xem xét các phần ví dụ và ngữ pháp của manpage xmodmap, nhưng chúng không giải thích được điều đó. Câu trả lời trong Remapping Caps Lock để điều khiển và thoát (không phải cách thông thường) đề cập đến việc không thể làm điều đó với Phím Caps Lock, vì nó là một khóa Lock, nhưng tôi hy vọng điều này có thể có thể làm điều đó với Control là một phím mod. Một giải pháp với một cái gì đó khác với xmodmap cũng sẽ được chấp nhận. (Tôi đang chạy Xmonad trong Ubuntu 12.04, vì vậy có lẽ có một cách để thiết lập điều này trong xmonad.hs?)

EDIT: gần nhất tôi có thể nhận được là:

xmodmap -e 'remove Control = Control_L'
xmodmap -e 'keysym Control_L = Escape'
xmodmap -e 'add Control = Escape'

Với điều này tôi có được Escape khi tôi nhấn Ctrl bên trái chìa khóa một mình, nhưng để có được, nói, Ctrl+A Tôi phải nhấn  Ctrl bên trái khóa hai lần: Ctrl, Ctrl+A (thay vì chỉ Ctrl+A) - không chắc tại sao tôi cần nhấn hai lần.


4
2017-11-22 22:30


gốc




Các câu trả lời:


Câu trả lời mới nhất cho Remapping Caps Lock để điều khiển và thoát (không phải cách thông thường) nói tiện ích này sẽ làm những gì bạn muốn: https://github.com/alols/xcape


3
2017-12-04 08:21





Điều này có thể được thực hiện với xmodmap, nhưng hãy lưu ý rằng nếu bạn đã thiết lập một số thứ với setxkbmap, chương trình sau sẽ ghi đè và xóa xmodmap cài đặt.

Tuy nhiên, để làm chính xác những gì bạn muốn với xmodmap, bạn có thể nhập

xmodmap -e "keysym Control_L control = Escape Control_L" 

Bây giờ, nếu bạn nhìn vào xmodmap -pm, Escape đã được thêm vào công cụ sửa đổi điều khiển. Điều này có nghĩa là khi điều khiển trái được nhấn, thay vào đó, thoát sẽ là kết quả, nhưng khi điều khiển được nhấn bằng một phím khác (như trong Ctrl+C), nó vẫn sẽ cho kết quả tương tự như trước.

Kiểm tra nó bằng cách nhập vào thiết bị đầu cuối man xmodmap và sau đó nhấn ctrl trong khi nhìn vào manpage và nó sẽ echo 'esc', nhưng khi bạn nhấn Ctrl+Z nó sẽ đình chỉ trang.

Nếu bạn muốn đặt lại thử nghiệm của mình xmodmap, đăng xuất và đăng nhập lại, và nếu bạn muốn đặt ở trên xmodmap lệnh như một mục khởi động, xem câu trả lời của tôi ở đây:


1
2017-11-26 18:07



Cảm ơn câu trả lời của bạn. Thật không may, sau khi tôi áp dụng các bước của bạn, tôi kết thúc trong tình huống gần giống như tôi đã đề cập ở trên; nghĩa là, Ctrl + A, Ctrl + K, Ctrl + R, v.v. không hoạt động (thay vào đó chúng sẽ gửi thoát). Để thực sự có được, nói, Ctrl + A, tôi phải nhấn Ctrl hai lần, lần thứ hai cùng với A. (FWIW, tôi chưa bao giờ thiết lập setxkbmap, trừ khi nó đi kèm với mặc định ubuntu 12.04 cài đặt). - psvm
@psvm Nó đã làm việc cho tôi- tôi đã có thể sử dụng ctrl như thoát và sau đó ctrl + C, ví dụ, vì vậy tôi không chắc chắn lý do tại sao nó không cho bạn. Thật kỳ lạ khi bạn phải nhấn ctrl hai lần: Tôi nghĩ rằng điều này có thể là một phần của vấn đề; nó có thể là một chìa khóa bị hư hỏng. Tôi cũng nên kiểm tra xem bạn có áp dụng bất kỳ cài đặt nào trong gui bàn phím hay không, vì có lẽ những cài đặt đó đang gây ra sự cố. Nếu nó là một vấn đề với các phím của bạn, sau đó không có lệnh sẽ hoạt động thành công.
Hãy để tôi rõ ràng hơn: Tôi đồng ý với bạn rằng Ctrl + C, Ctrl + Z sẽ hoạt động. Tôi không đồng ý rằng Ctrl + K, Ctrl + R, Ctrl + A công việc. Đó là, tôi tuyên bố rằng với giải pháp này, một số kết hợp làm việc và một số thì không. Bạn có thể kiểm tra ví dụ Ctrl + A hoạt động trên dòng lệnh sau khi áp dụng giải pháp của bạn không? Chỉ cần mở một thiết bị đầu cuối đơn giản và gõ một cái gì đó tại dấu nhắc bash và sau đó sử dụng Ctrl + A: bạn có nhận được con trỏ đến đầu dòng đó? Đối với tôi nó không hoạt động (cài đặt mặc định của 12.04, không bao giờ chạm vào các thiết lập bàn phím) và tôi phải nhấn A hai lần hoặc Ctrl hai lần. - psvm
@psvm Tôi sẽ kiểm tra điều đó, chỉ một phút.
@psvm Có, bạn là đúng- crtl-a không mất hai lần nhấn ctrl, nhưng ctrl-c và ctrl-z làm việc. Tôi sẽ xem liệu tôi có thể tìm hiểu tại sao không.