Định cấu hình Caps Lock dưới dạng AltGr và Mũi tên như trong vim


9

1. Làm thế nào để lập bản đồ toàn cầu Caps Lockđể AltGr?

Tôi không cần CapsLock và muốn có một AltGr Key truy cập dễ dàng ở đó

2. Tôi muốn ánh xạ tất cả các phím di chuyển đến vimcác vị trí giống như

  • AltGr+ F=Backspace
  • AltGr+ H=LeftArr
  • AltGr+ J=DownArr
  • AltGr+ L=RightArr
  • AltGr+ K=UpArr
  • AltGr+ U=PgUp
  • AltGr+ D=PgDown
  • AltGr+ S=Enter
  • AltGr+ 3=Pos1
  • AltGr+ $=End
  • AltGr+ X=Del

Vì vậy, tôi có thể dễ dàng duyệt mã của mình mà không cần di chuyển bàn tay ra khỏi Vị trí 10 ngón tay (như trong vimtrình chỉnh sửa)

Tôi tìm thấy câu trả lời này: Làm cách nào để ánh xạ lại phím khóa mũ vào phím xóa lùi?
đề nghị sử dụng

xmodmap -e "keycode [code] = [new key]"

xem: http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap

Nhưng tôi không thể tìm ra, làm thế nào để thêm cái này vào một tổ hợp ví dụ AltGr + J

Một sự khởi đầu khác sẽ là đặt "Khóa ký tự thay thế" trong unity-control-center-> Bàn phím-> Phím tắt-> Nhập nhưCaps Lock

Cập nhật: Tôi đã tìm thấy một số giải pháp (xem bên dưới) nhưng tất cả chúng đều không hoạt động trong tất cả các ứng dụng, tôi đoán đó là một cài đặt toàn cầu có tên "XFree 4" được một số ứng dụng sử dụng.

Làm cách nào để đặt các ràng buộc chính cho XFree 4?


Tôi không có khóa AltGr, nhưng bạn có thể thấy câu hỏi tương tự này cung cấp một số manh mối.
Anh Cả Geek

Câu trả lời:


3

1. thêm một phần tệp XKB mới

sudo vi /usr/share/X11/xkb/symbols/altgr_vim

với nội dung này:

partial keypad_keys
xkb_symbols "altgr-vim" {
  # replace Caps with AltGr
  key <CAPS> { [ ISO_Level3_Shift            ] };
  # Add vim cursor keys to be accessed with AltGr
  key <AB02> { [ x, X, Delete, Delete        ] };
  key <AC02> { [ s, S, KP_Enter, KP_Enter    ] };
  key <AC03> { [ d, D, Next, Next            ] };
  key <AC04> { [ f, F, BackSpace, BackSpace  ] };
  key <AC06> { [ h, H , Left, Left           ] };
  key <AC07> { [ j, J, Down, Down            ] };
  key <AC08> { [ k, K, Up, Up                ] };
  key <AC09> { [ l, L, Right, Right          ] };
  key <AD07> { [ u, U, Prior, Prior          ] };
  key <AE03> { [ 3, section, Home, Home      ] };
  key <AE04> { [ 4, dollar, End, End         ] };
};

2. bao gồm một phần trong tập tin ngôn ngữ của bạn

ví dụ cho Đức nó là /usr/share/X11/xkb/symbols/de(nơi /delà ngôn ngữ của bạn) thêm này bên trong khối đầu tiên ( xkb_symbols "basic"):

include "altgr_vim(altgr-vim)"

3. tải lại phiên cửa sổ

Nhấn ALT + F2, nhập "r" để tải lại phiên gnome hoặc chỉ cần đăng xuất và đăng nhập lại. Bây giờ các tác phẩm chính mới sẽ có sẵn

một số vấn đề

Một số ứng dụng không chấp nhận cài đặt, ví dụ: sublimecó thể được thay thế bằng atom.

Một số ứng dụng cần cài đặt bổ sung, ví dụ: trong yakuakecác ràng buộc khóa được đặt thành "XFree 4", nếu bạn đặt chúng thành "Linux" hoặc "Solaris", thì cài đặt XKB cũng hoạt động ở đó:


1
tôi thực sự khuyên bạn nên sử dụng tùy chọn XKB lv3:caps_switchthay vì thay đổi <CAPS>định nghĩa như bạn hiển thị. xem /usr/share/X11/xkb/symbols/level3(nơi mà tùy chọn được xác định).
quixotic

@quixotic: bạn có thể thêm câu trả lời mới với các cấu hình cần thiết không? Tôi có thể cần một câu trả lời hoàn chỉnh tốt ở đây cho tiền thưởng;)
rubo77

Điều này làm việc hoàn hảo cho tôi. Tuy nhiên, chỉ cần ngẩng cao đầu, có thể muốn thay đổi "phần" thành "số" cho ca + 3
mowwwalker

0

để có được AltGr+ h, j, k, lhoặc bất kỳ phím nào khác mà không có bất kỳ ứng dụng như Autokey để peform bạn có thể tùy chỉnh cách bố trí bàn phím của bạn được tìm thấy trong / usr / share / X11 / xkb / biểu tượng / . Hiện tại tôi sử dụng bố cục tiếng Đức "de". Vì vậy, trước hết tôi sẽ:

1- sao chép bố cục tiêu chuẩn

cp /usr/share/X11/xkb/symbols/de /usr/share/X11/xkb/symbols/de.bak

2- mở bố cục của bạn với trình soạn thảo văn bản ưu tiên của bạn (ở đây: gedit)

sudo gedit /usr/share/X11/xkb/symbols/de 

ở đó bạn sẽ thấy một cái gì đó như:

key <AD03>  { [         e,          E,     EuroSign,     EuroSign ] };
key <AD06>  { [         z,          Z,    leftarrow,          yen ] };
key <AD11>  { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
....
....
key <AD12>  { [      plus,   asterisk,   dead_tilde,  macron ]  };
key <AC02>  { [               s,               S,          ssharp,          U017F ] }; 
key <AC06>  { [               h,               H,            Left,             Left ]   }; 
key <AC07>  { [               j,               J,            Down,             Down ]   }; 
key <AC08>  { [               k,               K,              Up,               Up ]   }; 
key <AC09>  { [               l,               L,           Right,            Right ]   }; 
....
....
key <AB10>  { [     minus, underscore,               endash,     emdash ] };
key <LSGT>  { [     less,     greater,                  bar,     NoSymbol   ] };

Như bạn có thể thấy, AB, AC, AD, AE đại diện cho hàng và số đại diện cho vị trí của nó trên bàn phím (có một số phím đặc biệt, như phím ít / lớn hơn, cũng có thể được ánh xạ sang các phím khác ..

Ở đó bạn sẽ không tìm thấy tất cả các bàn phím, chỉ có những cái khác với cách bố trí bàn phím dựa trên. Tiếng Đức dựa trên "latin (type4)" như bạn có thể thấy trên sự khất thực của tập tin:

include "latin(type4)"

Sau đó, bạn chỉ cần thay đổi theo nhu cầu của bạn. Nó hoạt động như:

khóa {[ key, key+ shift, key+ AltGr, key+ Shift+ AltGr ]};

(cũng có thể thêm các sửa đổi cấp 5, hoặc nhiều hơn)

nếu bạn muốn kiểm tra các thay đổi mà không cần khởi động lại; (thay đổi "de" cho bố cục của bạn ... đây là danh sách có thể bố trí )

 setxkbmap -layout de

Các mũi tên được dán nhãn giống như "Trái, Phải, Xuống, Lên", như được hiển thị. Dưới đây là một danh sách tốt các giá trị có thể.

đây là một ví dụ về bố cục tùy chỉnh của tôi. (nhưng không được sử dụng tại thời điểm này)

Sau đó, bạn sẽ cần phải ánh xạ lại Capslock và AltGr, hoặc nó đã hoạt động theo câu hỏi bạn đã đăng ??

Nếu bạn cũng muốn giữ bố cục tiếng Đức "bình thường", bạn có thể thực hiện các thay đổi đối với bố cục khác mà bạn không thường sử dụng, (hoặc thay đổi "khóa không tiếng Đức" mà bạn có thể tìm thấy ở cùng một tệp "de". ..)

Nguồn: liên kết đến một lời giải thích rất toàn diện về xbk và bố cục tùy chỉnh.
liên kết đến một câu hỏi tương tự với một câu trả lời tốt.


1
trong Ubuntu và các công cụ phái sinh hiện đại, bạn có thể đặt các tùy chọn và bố cục XKB /etc/default/keyboardsau khi những thay đổi này được thực hiện. xem man 5 keyboardđể biết chi tiết. tôi khuyên bạn nên thêm các biến thể và tùy chọn mới thay vì thay đổi các biến thể hiện có.
quixotic

0

Để ánh xạ lại CapsLock sang AltGr, hãy sử dụng

xmodmap -e "keycode 66 = ISO_Level3_Shift"

(nguồn: https://superuser.com/a/138757/160420 )

Để ánh xạ các phím mũi tên thành AltGr + h, j, k và l, sử dụng xmodmap -pkeđể tìm đúng cài đặt:

xmodmap -pke|egrep "f F|j J|k K|h H|l L|o O|u U|d D|dollar|BackSpace"

và thay đổi giá trị thứ năm thành các khóa mới và thêm tất cả vào tập lệnh bash:

# xrandr needs the desktop to be fully loaded. add a delay, to be able to add it to Startup Applications:
sleep 15
# change BackSpace into AltGr
xmodmap -e "keycode 66 = ISO_Level3_Shift"
# set BackSpace on AltGr + F
xmodmap -e "keycode 41 = f F f F BackSpace BackSpace dstroke ordfeminine f F dstroke ordfeminine"
# create arrow keys at h,j,k,l
xmodmap -e "keycode  43 = h H h H Left Left"
xmodmap -e "keycode  44 = j J j J Down Down"
xmodmap -e "keycode  45 = k K k K Up Up"
xmodmap -e "keycode  46 = l L l L Right Right"
xmodmap -e "keycode  30 = u U u U Prior Prior"
xmodmap -e "keycode  40 = d D d D Next Next"
xmodmap -e "keycode  12 = 3 section 3 numbersign Home Home"
xmodmap -e "keycode  13 = 4 dollar 4 dollar End End"
xmodmap -e "keycode  53 = x X x X Delete Delete"

(nguồn: https://askubfox.com/a/466315/34298 )

Đặt tập lệnh bash đó vào Ứng dụng khởi động của bạn (Chọn Dash> Ứng dụng khởi động> Thêm và thêm lệnh.)

Lưu ý: điều kỳ lạ là gnome-terminalnó hoạt động tốt, nhưng trong yakuakenó hoạt động cho BackSpace trên AltGr + F nhưng nó đặt AltGr + h, j, k và l thành D, B, A và C trừ khi bạn đặt Liên kết khóa thành "Linux" thay vì "(Mặc định) XFree 4" và sublime-texthoàn toàn không hoạt động


xmodmapbị phản đối và chán nản. nó vẫn hoạt động trong môi trường X11 nhưng sẽ không hoạt động trong Wayland và các thay thế X11 khác. thay vào đó, sử dụng các giải pháp dựa trên XKB rất được khuyến khích.
quixotic

Vì vậy, tôi đoán, tôi phải thêm một bố trí bàn phím tùy chỉnh mới sau đó? Askubfox.com/questions/482678/ trên
rubo77

1
thêm một bố cục tùy chỉnh là một cách, mặc dù bạn có thể thoát khỏi việc chỉ cần thực hiện một tùy chọn tùy chỉnh . trong Gnome hoặc Unity, bạn có thể cần phải tắt plugin bàn phím của daemon để tùy chỉnh xmodmap của bạn hoạt động, nhưng nếu bạn tạo tùy chọn / biến thể / bố cục XKB trên toàn hệ thống, bạn có thể đặt chúng vào /etc/default/keyboard.
quixotic

1
Điều này có vẻ khá nhiều công việc, nhưng nó sẽ giải quyết vấn đề, rằng các tổ hợp phím mới không hoạt động trong một số ứng dụng?
rubo77
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.