Công cụ sửa đổi Mode_switch dùng để làm gì?


29

Chơi với xmodmaptôi đã gặp một phím bổ trợ mà tôi chưa từng nghe nói về : Mode_switch. Nó dường như có một cái gì đó để làm với việc chèn các ký tự đặc biệt.

Tôi đã gán nó cho một khóa nhưng nó dường như không có tác dụng. Nó dùng để làm gì? Nó có khác với ISO_Level3_Shift(Alt Gr) không?



Liên kết trong một câu hỏi liên quan: unix.stackexchange.com/questions/461972/iêu
Jeff Schaller

Câu trả lời:


29

Mode_switchlà tên kiểu cũ (tiền XKB) của khóa được gọi AltGrtrên nhiều bố trí bàn phím. Nó tương tự như Shift, khi bạn nhấn một phím tương ứng với một ký tự, bạn sẽ nhận được một ký tự khác nếu Shifthoặc AltGrcũng được nhấn. Không giống như Shift, Mod_switchkhông phải là công cụ sửa đổi theo nghĩa X11 vì nó thường áp dụng cho các ký tự, không áp dụng cho các phím chức năng, vì vậy các ứng dụng chỉ cần thực hiện tra cứu ký tự để có được hiệu ứng mong muốn.

ISO_Level3_Shiftlà phiên bản XKB của khóa này. Nói chung, XKB phức tạp hơn rất nhiều và có thể làm một số thứ lạ mắt thêm. Cơ chế của XKB là tổng quát hơn vì nó cho phép bố trí bàn phím thay đổi trong đó các phím bị ảnh hưởng bởi các bộ sửa đổi nào, nó khái quát hóa các bộ sửa đổi dính ( CapsLockkiểu) và bấm đồng thời ( Shiftkiểu), v.v.


Thật tuyệt khi biết rằng ISO_Level3_Shiftcó thể hoạt động 'dính', tôi đã tìm kiếm chức năng đó trong một thời gian dài: unix.stackexchange.com/questions/39014/ phỏng
vemv

@Gilles Vậy, có phải AltGrMode_switchcác phím giống nhau không? Nếu không, trong liên kết này , chúng có vẻ như là những thứ giống nhau. Bạn có thể làm rõ điều này một chút?
Utku

@Utku Mode_switchISO_Level3_Shiftlàm điều tương tự theo những cách hơi khác nhau. Tôi không yêu cầu hiểu sự khác biệt; hầu hết thời gian họ không quan trọng nhưng tôi nhớ rằng việc trộn xmodmap với tên XKB đôi khi khiến các công cụ sửa đổi không hoạt động đúng.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Tôi cũng không hiểu sự khác biệt nhưng tôi kết thúc bằng us(cz_sk_de)các tính năng hoặc với ánh xạ xmodmap tùy chỉnh cho một số khóa (ví dụ dấu phẩy) tùy thuộc vào việc AltGrMode_switchhoặc ISO_Level3_Shiftkhông thể có cả hai tính năng cùng một lúc.
Pavel imerda

4
Phím dính không phải là CapsLockkiểu. Các phím dính được gọi là khóa chốt và khóa được gọi là khóa. Các phím dính được giải phóng sau khi nhấn phím không sửa đổi tiếp theo trong khi các phím khóa có hiệu lực cho đến khi chúng được nhấn lại.
Guildenstern

12

Câu trả lời này không có nghĩa là mâu thuẫn với câu trả lời của @Gilles, nhưng có nghĩa là để mô tả một khía cạnh khác của Xử lý đầu vào mà tôi cảm thấy là "thiếu sáng" trong câu trả lời của mình.

Bạn có thể sử dụng cả ISO_Level3_Shift(Alt-Gr) và Mode_switchcùng một lúc với các kết quả khác nhau . Nó đòi hỏi một số cấu hình, nhưng bạn có thể có cả hai và sử dụng chúng để tạo ra 6 phím khác nhau cho mỗi phím bàn phím vật lý!

Bạn có thể ví dụ như cấu hình TabMode_switchkhi tổ chức với , sau đó ví dụ như chìa khóa dán nhãn "H" trên bàn phím có thể sản xuất theo ký tự / phím:

h
H
← (Cursor)
← (Symbol)

with H
with ShiftH
with AltGrH
with AltGrShiftH
with TabH
with TabShiftH

Vì vậy, để quay lại câu hỏi của bạn: IL3SMode_switchcó thể được định cấu hình cho những điều khác nhau, do đó bạn có thể có các phím con trỏ và ~ 200 ký tự hữu ích từ các ngôn ngữ (có dấu), vẽ hộp và ký tự kỹ thuật được đặt trên 35 phím của 3 hàng chữ.

Để thực hiện những điều trên:

# Initial Setup
xmodmap -e 'keycode 23 = Mode_switch ISO_Left_Tab Tab ISO_Left_Tab Tab ISO_Left_Tab'
xmodmap -e 'keycode any = Tab'
xcape -e "Mode_switch=Tab"

ví dụ cho H:

xmodmap -pke | grep 'h H'
# Make note of the keycode, note the 8 columns after the `=`,
# then edit and feed back into xmodmap with:
xmodmap -e 'keycode  43 = h H lowrightcorner uprightcorner Left leftarrow h H'

Ồ Tôi thấy những gì bạn có ý nghĩa trong đoạn cuối thứ 2 của bạn bây giờ, bạn chỉ cần thực hiện ngày của tôi Tôi không còn cần phải sao chép và dán từ htmlarrows.com để viết những thứ như thế fn: A → B.
Patrick McLaren

Tôi nghĩ rằng cách thông thường để làm điều này là bằng cách sử dụng ISO_Level5_Shift. Điều này tạo ra 8 cấp độ, thứ 7 lvl3+lvl5+H& c.
Tẩy răng

1

Mode_shifttrong Xkb là một phím shift cho các nhóm hoặc bố cục. Nếu bạn có bố cục với nhiều nhóm, bạn có thể giữ phím này để truy cập nhóm tiếp theo. Nếu bạn có một vài bố cục, bạn có thể giữ phím này để thay đổi giữa các bố cục (1).

Vì vậy, Mode_shiftđể nhóm các nhóm Shift(hoặc Shift_LShift_R, để sử dụng tên keyym) là cấp độ.

Điều này có thể trở nên rõ ràng hơn nếu chúng ta xem xét Mode_shiftcó một bí danh được gọi là ISO_Group_Shift(2). Ngoài ra còn có các khóa được gọi ISO_Group_LatchISO_Group_Locktương ứng với ISO_Level2_Latch(chốt dịch chuyển) và Shift_Lock, tương ứng (3).

Ngoài ra còn có một số bí danh cho các tập lệnh khác nhau:

  • kana_switch
  • Arabic_switch
  • Greek_switch
  • Hebrew_switch
  • Hangul_switch

1: Điều này dựa trên sự hiểu biết của tôi về các nhóm của Xkb và các bố cục của Google. Có vẻ như chúng được đối xử giống như chọn giữa chúng với các phím như thế này.

2: Tôi đang căn cứ vào tệp nàykeysymdef.h trong kho Git này tại phiên bản ab8666661fc6 (Hồi Thêm XF86XK_AudioPreset Lần, 2017-05-10). Khi cài đặt, bạn có thể sẽ tìm thấy tập tin này tại /usr/include/X11/keysymdef.h.

3: Ngoài ra còn có một chìa khóa ISO_Lock, một loại khóa khóa đa năng.

Ý nghĩa của AltGrchìa khóa

Gilles đã đề cập trong câu trả lời của mình về kết nối với AltGrkhóa:

Mode_switchlà tên kiểu cũ (tiền XKB) của khóa được gọi AltGrtrên nhiều bố trí bàn phím.

Điều đó khiến tôi nghi ngờ rằng, Alt Altrr có thể đại diện cho nhóm thay thế / nhóm thay thế, vì Mode_switchđược sử dụng để thay đổi nhóm. Điều này hóa ra là sai, tuy nhiên. Theo trang Wikipedia về AltGrkhóa , dường như, Alt Altrr xuất phát từ bàn phím của IBM và trong hướng dẫn sử dụng của họ có ghi rằng đó là tên viết tắt của đồ họa thay thế của Drake. Điều này có ý nghĩa, vì có vẻ như việc sử dụng bàn phím để vẽ đồ họa của LỚN (các ký tự vẽ hộp được sử dụng trong giao diện người dùng văn bản) đã xuất hiện trước khi có sự hỗ trợ tốt để chuyển đổi nhanh giữa nhiều tập lệnh.

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.