Điểm:4

Ánh xạ lại một tổ hợp phím sang một tổ hợp khác, ví dụ: AltGr+C -> Ctrl+C, bên dưới Wayland

lá cờ in

về cơ bản tôi muốn hỏi câu hỏi này, nhưng đối với Gnome trên Wayland. Điều này có nghĩa là các câu trả lời liên quan đến Khóa tự độngxbindkey sẽ không hoạt động, vì cả hai đều không hoạt động dưới Wayland.

Lý lịch:

Tôi muốn sắp xếp lại một số phím để cuối cùng sử dụng tốt hơn Phím Caps Lock.

Kế hoạch của tôi là lập bản đồ Phím Caps Lock đến AltGr, rồi làm theo cái này để có được các phím bấm giống như vim. Trên Wayland, việc ánh xạ lại này có thể được thực hiện thông qua các tệp XKB (xem liên kết).

Tuy nhiên, tôi cũng muốn sử dụng Phím Caps Lock để sao chép/dán. Hiện tại, tôi đã ánh xạ tới Điều khiển (sử dụng tệp XKB). Điều này làm cho CapLock + C hoạt động trơn tru trong toàn bộ hệ thống và tôi muốn duy trì điều này.

Vì vậy Phím Caps Lock ánh xạ tới AltGr, Tôi muốn Capslock (= AltGr) + C hành xử như thể Ctrl + C.

Câu hỏi của tôi:

Dưới Wayland, bằng cách nào đó tôi có thể ràng buộc AltGr + C đến Ctrl + C?

(Không chỉ rebinding AltGr đến Điều khiển, vì điều đó sẽ đánh bại mục đích)

Một ví dụ thay thế với Q

Trong tệp XKB cho tiếng Latin /usr/share/X11/xkb/ký hiệu/tiếng latin, hành vi sau đây được xác định cho tôi Hỏi Chìa khóa:

phím <AD01> { [ q, Q, at, Greek_OMEGA ] };

Điều này nói rằng khóa có bốn đầu ra có thể:

  1. Nhấn một mình, nó tạo ra q.
  2. ép với Sự thay đổi, nó tạo ra Hỏi.
  3. ép với AltGr, nó tạo ra @.
  4. ép với AltGr + Shift, nó tạo ra Ω.

Về cơ bản những gì tôi muốn đạt được là khi Hỏi được ép với AltGr, nó không sản xuất @ nhưng Ctrl + Q.

vanadium avatar
lá cờ cn
Phần "câu trả lời hay nhất" trong https://itectec.com/ubuntu/ubuntu-configure-caps-lock-as-altgr-and-arrows-like-in-vim/, thay đổi xkb, cũng sẽ hoạt động trên Wayland.
lá cờ in
@vanadium Cảm ơn bạn, vâng, tôi đã biết và sử dụng rồi. Bây giờ tôi đã thêm chi tiết để làm rõ câu hỏi. Nếu XKB có thể được sử dụng cho mục đích đã mô tả, đó sẽ là một tin tuyệt vời! Than ôi, tôi không biết nên thử nghiệm cú pháp nào.
vanadium avatar
lá cờ cn
OK, tính đặc hiệu rõ ràng hơn bây giờ. Thay đổi cụ thể đó sẽ yêu cầu một số giải pháp "gõ giả". Có `ydotool` và có thể là một số công cụ khác. Sau đó, việc liên kết có thể được thực hiện từ bên trong trình quản lý cửa sổ của bạn thay vì `xmodmap`. Bản thân tôi không có kinh nghiệm, vì vậy đó là lý do tại sao tôi không thể phát triển câu trả lời này vào lúc này.
Điểm:2
lá cờ in

Một số công cụ tồn tại có thể làm điều này, như KMonad, Công cụ đánh chặn, và gõ phím.

Tôi đã hoàn toàn thành công với gõ phím dưới Wayland, vì vậy tôi mô tả những gì tôi đã làm với điều đó. Tôi đề nghị đọc ngắn README để lấy cảm hứng. Deamon có thể làm được nhiều hơn những gì được sử dụng ở đây.

Giải pháp hiện tại làm những gì tôi muốn, nhưng phá vỡ bằng cách sử dụng AltGr đường vòng. Nó đối xử Phím Caps Lock như Kiểm soát mọi nơi, ngoại trừ trong h ,j ,k ,l, mà nó thay đổi thành các phím mũi tên.

1. LẮP ĐẶT

Tôi xây gõ phím từ nguồn, vì điều đó thật dễ dàng. Các dòng tiếp theo trước tiên cài đặt các phụ thuộc (bao gồm trình biên dịch C), tải xuống nguồn, xây dựng và cài đặt nó, đồng thời kích hoạt nó dưới dạng dịch vụ, rồi khởi động và chạy nó khi khởi động.

Khi hoàn tất, nó sẽ cho bạn biết nó đã cài đặt ở đâu để bạn có thể xóa nó để gỡ cài đặt. Bạn có thể xóa mã nguồn sau khi cài đặt.

Sudo apt cài đặt cmake libudev-dev
bản sao git https://github.com/rvaiya/keyd
phím cd
thực hiện && sudo thực hiện cài đặt
sudo systemctl enable keyd && sudo systemctl start keyd

2. TÌM TÊN BÀN PHÍM BẠN MUỐN SƠ ĐỒ LẠI

Bạn nên tìm tên bàn phím của mình để chúng tôi có thể ánh xạ lại cho mục đó. Chạy

gõ sudo -m

và nhấn một số phím. Nó sẽ hiển thị tên của bàn phím và các phím được nhấn. Lưu ý xuống tên. Tôi đã Bàn phím AT Translated Set 2.

3. TẠO TẬP TIN CẤU HÌNH

Ở bất cứ đâu, hãy tạo một tệp cấu hình có tên là anything. Chúng ta sẽ di chuyển nó sau. Giả sử bạn sử dụng ~/my_keyboard.conf.

Trong đó, đặt như sau. #'ed là các nhận xét giải thích hành vi được xác định (được cập nhật cho v2.1.1. Tôi hy vọng mình không mắc phải bất kỳ lỗi nào):

[id]

*

[chủ yếu]
### LỚP CHÍNH
    
# Tạo capslock kích hoạt lớp thứ hai:

capslock = layer(motion_layer)

### LỚP THỨ HAI (được gọi là "lớp_chuyển động")

# Xác định lớp mới, trong khi hoạt động
# theo mặc định xử lý mọi phím như thể Control được nhấn,
# (":C" có nghĩa là lớp sẽ kế thừa lớp Điều khiển),
# và chỉ ghi đè mặc định này cho h, j, k và l, mà
# được ánh xạ tới các hướng.

[movement_layer:C]

h = trái
j = xuống
k = lên
tôi = đúng

# Tóm lại, trong lớp mặc định chính, mọi thứ đều chuẩn, ngoại trừ
# khi CapsLock được nhấn, thì lớp thứ hai được kích hoạt.
# Khi lớp thứ hai được kích hoạt, mọi thứ trừ h, j, k, l
# hoạt động như thể Kiểm soát được giữ---ví dụ: c bản sao và v dán,
# mà chúng tôi muốn, khi chúng tôi nhấn giữ CapsLock.)

4. COPY VÀ ĐỔI TÊN TẬP TIN CẤU HÌNH VÀ RESTART KEYD

Tiếp theo, chúng tôi sao chép cấu hình vào đúng vị trí và đặt tên hợp lý, cụ thể là theo bàn phím mà chúng tôi muốn ánh xạ lại.

sudo cp ~/my_keyboard.conf /etc/keyd/AT\ Translated\ Set\ 2\ keyboard.conf

Sau đó chúng tôi khởi động lại gõ phím để nó tải cấu hình mới:

sudo systemctl khởi động lại keyd

Bây giờ bạn đã thiết lập và chạy :)

5. MẸO: TẠO MỘT BÍ MẬT ĐỂ SAO CHÉP CẤU HÌNH VÀ KHỞI ĐỘNG LẠI KHÓA

Cuối cùng tôi đã chơi rất nhiều với các tệp cấu hình. Tôi đã chỉnh sửa chúng trong thư mục con của thư mục nhà của mình, sau đó sao chép chúng và khởi động lại.

Để làm cho điều này ít rắc rối hơn, trong ~/.bash_aliases, Tôi đã thêm

alias rekeyd='sudo cp ~/my_keyboard.conf /etc/keyd/AT\ Translated\ Set\ 2\ keyboard.conf && sudo systemctl restart keyd'

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.