Làm thế nào để kích hoạt lại khóa phím mũ?


12

Tôi hiện đang thiết lập bố trí bàn phím mặc định của mình như thế này:

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Nó vô hiệu hóa khóa khóa mũ và biến nó thành một khóa ctrl bổ sung, cùng với một loạt các tùy chọn khác.

Tôi muốn làm như sau để chuyển bố cục bàn phím:

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

Tuy nhiên, nó không kích hoạt lại phím khóa mũ; cả phím điều khiển bên trái và khóa mũ đều là phím điều khiển xa nhất mà tôi có thể thấy.

Tôi biết tôi có thể xóa toàn bộ danh sách tùy chọn, nhưng vì lợi ích của khả năng bảo trì, tôi không muốn sao chép các tùy chọn xung quanh. Làm cách nào để bật lại khóa mũ?

Cập nhật: Nhìn vào các phím bấm với xev (1), nó xuất hiện ctrl: nocaps cung cấp Control_Lcho cả hai phím và ctrl: hoán đổi "khôi phục" phím khóa mũ (nhấn phím cho Caps_Lock). Tuy nhiên, đèn LED khóa mũ không sáng và cũng không thực sự hoạt động.

Nhìn vào xkeyboard-config/symbols/ctrltệp trong các nguồn X.org có gợi ý về vấn đề:

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

Tùy chọn thứ hai thiếu một dòng modifier_map, bất cứ điều gì không


Tôi đoán tất cả những người đã cố gắng giúp tôi có bàn phím bị mắc kẹt với dvorak = (
hhaamu

4
X quá cũ và phức tạp đến nỗi không nhiều người thực sự hiểu các cơ chế nội bộ khác nhau. Thậm chí có những phần trong trang người đàn ông nói (và tôi trích dẫn): " Không ai muốn nói cách thức hoạt động của nó. Có lẽ không ai biết ... ". Tôi cũng thích xem câu trả lời cho câu hỏi này nhưng đó có thể là trường hợp không ai biết ...
jw013

Câu trả lời:


14

Các lệnh sau sẽ hoạt động:

xmodmap -e 'keycode 0x42 = Caps_Lock'

hoặc là

setxkbmap -option

Các lệnh trên chỉ hoạt động tốt để khôi phục hành vi mặc định, điều mà tôi hầu như không cần, may mắn thay.

Tôi thường ánh xạ lại capslock thành Control (may mắn là VI / VIM hỗ trợ CTRL-C thay vì ESC) bằng lệnh sau:

setxkbmap -option ctrl:nocaps -layout gb

"Setxkbmap -option" để xóa cài đặt chính xác là những gì tôi đang tìm kiếm. Tôi tiếp tục cố gắng thay đổi hành vi của mình, nhưng nó cứ nối các mục xung đột vào danh sách tùy chọn.
m0j0

2

Thử setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

Từ trang hướng dẫn:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

Trớ trêu là ở đây -option ctrl:swapcapsthực sự ghi đè -option ctrl:nocaps- tôi đoán hành vi đã thay đổi.

Chỉnh sửa: Như OP đã nêu, anh ấy muốn tránh xóa các tùy chọn (như được thực hiện theo cách trên).

/usr/share/X11/xkb/rules/xorg.lsthiển thị tùy chọn ctrl:aa_ctrl(điều khiển ở dưới cùng bên trái), có vẻ như đặt lại khóa mũ sau nocapsđây.

Tôi đoán nó đáng để thử, và bạn cũng có thể xem danh sách ( grep ctrl\:) và xem liệu có cái gì khác có thể hoạt động không, trong trường hợp cái này không.

Nếu không có lựa chọn nào cho việc này, tôi đoán giải pháp là hack sơ đồ phím hiện tại, bằng cách liên kết lại Caps Lock với phím Caps Lock (nhưng tôi không có kinh nghiệm về điều đó, ngoài việc tin rằng có một công cụ cho phép bạn làm mà với một lớp lót).


Điều đó thực sự xóa danh sách tùy chọn, nhưng tôi muốn giữ các tùy chọn không liên quan đến mũ (như tôi đã nêu trong câu hỏi), chẳng hạn như soạn các khóa.
hhaamu

Ồ, xin lỗi, tôi đọc sai câu hỏi. Tôi không thể chắc chắn nếu điều này sẽ hoạt động (như tôi đã nói, swapcapsthực sự bật lại khóa mũ ở đây), nhưng từ đó /usr/share/X11/xkb/rules/xorg.lst, tôi thấy có tùy chọn ctrl:aa_ctrl(điều khiển ở phía dưới bên trái), có vẻ như đặt lại khóa mũ sau nocapsđây.
njsg

Tôi nghĩ rằng chương trình ma thuật này xmodmapnhưng tôi không chắc chắn cách sử dụng nó
hhaamu

0

có một tùy chọn "caps: capslock" (ánh xạ để thêm "+ capslock (capslock)" vào xkb_symbols) cho phép capslock.

Tuy nhiên, tùy chọn đó (có thể là tất cả các chữ hoa: xxxxx?) Được thêm vào trước các ctrl: xxxxx hiện có; như ctrl: hoán đổi xác định lại khóa capslock, tùy chọn đó không có hiệu lực.

Vì vậy, bạn hoàn toàn cần phải loại bỏ tất cả các tùy chọn và thực sự đặt những cái bạn muốn; cách các tùy chọn tồn tại mà chúng không được phép hoàn tác hành động của cái trước đó và có các tùy chọn xung đột (ví dụ: hai (hoặc nhiều hơn) reefine cùng một khóa) mà bạn không thể xác định thứ tự của chú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.