Cách tùy chỉnh ánh xạ bàn phím với Wayland


20

Tôi sử dụng Linux trên Macbook với bàn phím UK / GB và tôi tùy chỉnh sơ đồ bàn phím để giải quyết một số vấn đề về nguyên nhân bố trí bàn phím kỳ lạ của Apple. Tôi sử dụng xmodmapđể làm điều này. Tôi muốn thử Wayland, nhưng xmodmapkhông hoạt động trong đó. Làm thế nào tôi có thể đạt được một kết quả tương tự trong Wayland? Các .Xmodmaptập tin tôi sử dụng có chứa như sau:

keycode  12 = 3 numbersign 3 sterling sterling sterling threesuperior sterling
clear Control
clear Mod4
add Control = Control_L Super_R
add Mod4 = Super_L
keysym Caps_Lock = NoSymbol Caps_Lock

Dòng 1: Trên bàn phím Vương quốc Anh Shift- 3là £, vì vậy # thường có khóa riêng gần Return. Nhưng trên Mac # có được với Altgr- 3. Là một lập trình viên, tôi sử dụng # nhiều hơn £ để dòng này hoán đổi chúng. Chọn bố cục Hoa Kỳ cũng đạt được điều này, nhưng thực hiện điều đó trong Linux cũng hoán đổi một số khóa thường được sử dụng khác, trong khi trong OS X, các khóa khác đó không bị ảnh hưởng bởi US / UK.

Dòng 2-5: Tạo Cmdphím bên phải hoạt động như Quyền- Ctrl, vì bàn phím này không có Ctrlphím bên phải vật lý .

Dòng 6: Làm cho CapsLockchỉ hoạt động nếu bạn nhấn nó với Shift. Không dành riêng cho Mac, đây phải là một tùy chọn tiêu chuẩn cho tất cả các HĐH và bàn phím.


Tôi đang ở giữa đó: rõ ràng Wayland sử dụng xkb và xmodmap không được dùng trong X. Thật không may, xkb phức tạp hơn đáng kể và Gnome chưa bao giờ nghĩ rằng người dùng có thể cần tùy chỉnh nó, vì vậy tôi đã đưa ra một câu hỏi thứ hai .
realh

Câu trả lời:


11

Thật không may, sửa đổi cơ sở dữ liệu XKB của hệ thống /usr/share/X11/xkblà cách duy nhất; từ câu hỏi khác của bạn, có vẻ như bạn đã làm cho phần đó hoạt động.

Hạn chế chủ yếu là do sự non nớt của Wayland và sự giám sát thiết kế trong XKB.

  • Các công cụ thích setxkbmapxkbcompcung cấp -Itùy chọn để thêm cơ sở dữ liệu do người dùng xác định để tìm kiếm (ví dụ: ~/.xkbhoặc ~/.config/xkbvới các tệp và thư mục con được trình bày giống như cơ sở dữ liệu hệ thống). Các công cụ này tương tác với máy chủ X, vì vậy chúng có thể hữu ích khi định cấu hình Xwaylandlớp tương thích để chạy các ứng dụng X trong Wayland. Nhưng hiện tại họ không nói các giao thức Wayland.

  • Giao thức Wayland vẫn đang trưởng thành. Hiện tại có vẻ như input-methodvà các text-inputgiao thức có liên quan nhất, và cả hai đều không ổn định. Không đề cập bất cứ điều gì về việc thay đổi một sơ đồ bàn phím được xác định; những chi tiết này được để lại cho nhà soạn nhạc.

  • Cả Gnome và KDE đều cung cấp trình nền cài đặt xử lý bàn phím sẽ xử lý các tùy chọn XKB của hệ thống, bao gồm cả thay đổi nhanh chóng. Theo hiểu biết tốt nhất của tôi, không có cách nào để nói về các tùy chỉnh của người dùng. Theo như tôi biết, Weston và các bộ tổng hợp khác dựa vào các tệp cấu hình hoặc các biến môi trường để đặt các tùy chọn XKB khi khởi động và không cung cấp cách nào để thay đổi chúng ngoài việc thoát và khởi động lại.

  • Ngay cả trong chính XKB, điều này không được hỗ trợ đầy đủ. Tập tin biểu tượng tùy chỉnh của bạn có thể tập tin includebiểu tượng hệ thống khác. Nhưng hiện tại không có includechức năng nào cho các tệp quy tắc XKB, vì vậy ngay cả khi bạn có một công cụ nói chuyện với nhà soạn nhạc Wayland và sẽ tìm kiếm các tùy chỉnh cá nhân của mình, bạn phải bao gồm tất cả các quy tắc bạn muốn sử dụng (ví dụ: sao chép rules/evdev*từ hệ thống XKB và sửa đổi nó). libxkbcommonmột vấn đề mở về chủ đề này và một lỗi liên quan .


1
Tôi nên nói rõ hơn rằng tôi đã giải quyết được vấn đề này khá nhiều. Tôi đã nói như vậy trong câu hỏi khác, nhưng thông tin có một chút rời rạc. Tôi dự định làm tài liệu này rõ ràng hơn khi tôi bắt đầu thêm blog vào trang web của mình, sau đó tôi sẽ phải nhớ liên kết đến nó ở đây.
realh

chắc chắn, nhưng nó vẫn là một câu hỏi chưa được trả lời, vì vậy tôi đã cố gắng giải quyết .Xmodmapkhía cạnh tương đương Wayland .
quixotic

3
Bây giờ tôi đã ghi lại điều này một cách chi tiết trong một bài đăng trên blog .
realh

5

Tôi đã sử dụng Công cụ đánh chặn cho Linux thành công cho việc này và cũng biết những người sản xuất các plugin khác cho ánh xạ tùy chỉnh của họ . caps2esc là một plugin bằng chứng khái niệm đầu tiên mà tôi sử dụng hàng ngày và hoạt động trên cả X và Wayland. Công cụ này ở mức thấp hơn một chút so với phần mềm lập bản đồ thông thường, nhưng khá linh hoạt và kế hoạch của tôi cho một plugin tiếp theo là một công cụ ánh xạ từ ngữ tổng quát.

Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả.


Các công cụ đánh chặn trông thực sự thú vị! Cám ơn việc làm của bạn!
balu

1
Không chắc tôi cảm thấy thế nào về việc chạy tất cả đầu vào bàn phím của mình thông qua tập lệnh python
Ace.C

4

Đối với những người đến đây vào năm 2018 (Ubuntu 17.10), phần quan trọng nhất của việc này có thể được thực hiện bằng cách sử dụng Công cụ Tweak Gnome.

Công cụ Twome Gnome> Bàn phím & Chuột> Tùy chọn bố cục bổ sung> Ctrl được ánh xạ tới các phím Win (và các phím Ctrl thông thường).


2
Việc sử dụng "Gnome Tweak Tool" (bất kể đó là gì) cũng sẽ thiết lập ánh xạ mới cho các trình quản lý / môi trường / vỏ đồ họa khác?
Remorker Mali

Gnome Tweak Tool không thể ánh xạ lại Caps Lock.
andyn

@andyn my gnome-tweaks-3.34.0-1.fc31.noarchcó thể sắp xếp lại Caps Lock - ví dụ: 'Caps Lock cũng là một Ctrl', 'Tạo mũ Khóa một Esc bổ sung', 'Caps Lock như Ctrl' và nhiều hơn nữa.
maxschlepzig

2

Câu trả lời này có cùng ý tưởng với câu trả lời của quickotic nhưng chỉ với một ví dụ chi tiết hơn:

Gnome Tweaks có một danh sách 20 hoặc 30 điều chỉnh bàn phím bạn có thể thực hiện thông qua xkb. Đôi khi bạn có thể tìm thấy các tinh chỉnh bạn đang tìm kiếm theo mặc định. Trong trường hợp của tôi, tôi muốn trao đổi khóa màn hình in với Menu.

Tùy chọn duy nhất để sửa đổi khóa printscr có sẵn qua xkb là thay thế nó bằng Win_R. Gunnar Hjalmarsson trong chủ đề này đề nghị với tôi rằng tôi sửa đổi các sửa đổi của xkb để printscr / win_r sẽ thực hiện printscr / menu thay thế. Chúng tôi đã cùng nhau tìm ra giải pháp và tôi sẽ truyền lại nó ở đây:

Trong thiết bị đầu cuối, nhập:

sudo su
nano /usr/share/X11/xkb/symbols/altwin

Ở dưới cùng của tập tin bạn sẽ tìm thấy:

// Win is mapped to the PrtSc key (and the usual Win key).
partial modifier_keys
xkb_symbols "prtsc_rwin" {
    replace key <PRSC> { [ Super_R, Super_R ] };
    modifier_map Mod4 { <PRSC>, <RWIN> };
};

Xóa phần này và thay thế nó bằng phần này:

// Menu is mapped to the PrtSc key (and the usual Win key).
xkb_symbols "prtsc_rwin" {
     replace key <PRSC> { [ Menu, Menu ] };
     modifier_map Mod4 { <PRSC>, <MENU> };
};

Để xóa trong nano, sử dụng phím xóa lùi (tô sáng và xóa không hoạt động). Để dán, sử dụng shift-ctrl-v. Để thoát và lưu, nhấn ctrl-x, chọn có để ghi đè và nhấn enter.

Khởi động lại. Trong Gnome / Ubuntu Chuyển đến gnome-chỉnh-công cụ Trong các công cụ chỉnh sửa đi đến phần Bàn phím & Chuột, nhấn nút Tùy chọn bố cục bổ sung và mở rộng hành vi phím Alt / Win. Chọn tùy chọn ở dưới cùng: Win được ánh xạ sang printscr (hãy nhớ rằng chúng tôi đã sửa đổi hành vi này để hoán đổi in và Menu thay vì in và Win). (Tôi chắc chắn có một cách bật tùy chọn xkb đã sửa đổi trong KDE nhưng tôi không sử dụng nó, vì vậy tôi không thể cung cấp cho bạn quy trình chính xác).

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.