Làm cách nào tôi có thể tự động tải các tùy chỉnh xkb trong Gnome?


11

Theo dõi câu hỏi của tôi về việc tùy chỉnh các ánh xạ chính trong Wayland tôi đã phát hiện ra điều đó xmodmaprõ ràng không được chấp nhận, nhưng xkb "nên hoạt động" trong Wayland. Thật không may, xkb phức tạp hơn nhiều và tương ứng là tài liệu kém hơn. Tôi đã quản lý để tìm ra các khổ thơ tôi cần dựa trên thông tin từ một câu hỏi về hoán đổi CmdCtrl , một câu hỏi khác về khóa mũ , đọc một số liên kết trong câu trả lời và từ các tệp hệ thống của tôi, nhưng tôi không biết cách áp dụng chúng theo cách có thể được tự động hóa và không xung đột với Gnome.

Đây là những khổ thơ tôi đã thực hiện và đã thử nghiệm thành công xkbcomp.

partial alphanumeric_keys
xkb_symbols "pound" {
    // Put sterling on RAlt-3 and numbersign on Shift-3.
    key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};

// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
    key <RWIN> { [ Control_R ] };
    modifier_map Control { <LCTL>, <RWIN> };
    modifier_map Mod4 { <LWIN> };
};

partial modifier_keys
xkb_symbols "shiftcaps" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ VoidSymbol, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Tôi đặt hai đầu tiên /usr/share/X11/xkb/symbols/macbookvà thứ ba trong shiftcapscùng một thư mục, và với xkbcompvv chúng hoạt động khi được tải lên trên cùng của gb(mac)bố cục tiêu chuẩn .

Tôi đang chỉnh sửa nó để thực hiện cập nhật và làm rõ câu trả lời của tôi. Tùy chỉnh bảng Anh của tôi gần đây đã ngừng hoạt động vì vậy tôi đã kiểm tra những gì đã thay đổi trong gb (mac) và nhận ra rằng tôi phải thêm , threesuperiorvào key <AE03>dòng.

Tôi nghĩ evdev.xmlđược sử dụng bởi gnome-chỉnh-tool để làm cho các tùy chọn này có sẵn trong GUI. Đây là những gì tôi đã thêm:

<group allowMultipleSelection="true">
  <configItem>
    <name>macbook</name>
    <description>Macbook customisations</description>
  </configItem>
  <option>
    <configItem>
      <name>macbook:pound</name>
      <description>Hash on Shift-3, Sterling on AltGr-3</description>
    </configItem>
  </option>
  <option>
    <configItem>
      <name>macbook:rcmdctrl</name>
      <description>Right Cmd key acts as Ctrl</description>
    </configItem>
  </option>
</group>
<group allowMultipleSelection="false">
  <configItem>
    <name>shiftcaps</name>
    <description>Caps Lock with Shift</description>
  </configItem>
  <option>
    <configItem>
      <name>shiftcaps:shiftcaps</name>
      <description>Caps Lock requires Shift to toggle</description>
    </configItem>
  </option>
</group>

1
gnome sẽ thấy các tùy chọn của bạn (và tôn dconftrọng các giá trị chính bên dưới org.gnome.desktop.input-sources) miễn là bạn thêm chúng vào các quy tắc xkb mà hệ thống của bạn đang sử dụng, tức là vào đúng tệp, xem bài đăng của tôi ở đây
don_crissti

Cảm ơn. Xác định các tùy chọn trong các tệp evdev là phần còn thiếu của câu đố và tôi đã có nó để thực hiện những gì tôi muốn bây giờ, bằng cách sử dụng trình soạn thảo dconf.
ngày

Trên hệ thống của tôi (Debian) tôi cũng tìm thấy /usr/share/X11/xkb/rules/evdev.xml. Tôi không chắc nó dùng để làm gì; ứng dụng cài đặt Gnome sẽ gặp sự cố khi mở các tùy chọn Bàn phím nếu tôi mắc lỗi cú pháp trong đó, nhưng thực tế tôi không thể tìm thấy các tùy chọn trong GUI. Tôi đã thêm các dòng thích hợp sau khi dòng chứa <optionList>. Tôi không thể đăng chúng ở đây vì những hạn chế về ý kiến.
ngày

Cho phép tôi thêm rằng xmodmap không được dùng nữa vào khoảng năm 1996 khi XKB xuất hiện. Tức là năm trước khi phát minh ra wayland.
Robert Siemer

Câu trả lời:


1

câu trả lời của don_crissti's cho câu hỏi khác cung cấp phần còn thiếu của câu đố. Tôi đã xác định các tùy chọn trong các tệp evdev như được mô tả và thêm chúng vào phần org.gnome.desktop.input-sources.xkb-optionscài đặt. Nó hoạt động hoàn hảo.

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.