Bagaimana saya bisa memuat ulang kustomisasi xkb di GNOME?

11

Menindaklanjuti pertanyaan saya tentang mengkustomisasi pemetaan kunci di Wayland, saya menemukan bahwa xmodmaptampaknya sudah usang, tetapi xkb "harus bekerja" di Wayland. Sayangnya, xkb jauh lebih rumit dan lebih buruk didokumentasikan. Saya telah berhasil menyusun bait yang saya butuhkan berdasarkan informasi dari pertanyaan tentang bertukar CmddanCtrl , pertanyaan topi kunci lainnya , membaca beberapa tautan dalam jawaban dan dari file sistem saya, tetapi saya tidak tahu bagaimana menerapkannya. dengan cara yang bisa otomatis dan tidak bertentangan dengan GNOME.

Ini adalah bait-bait yang telah saya kerjakan, dan diuji dengan berhasil 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) ]
    };
};

Saya menempatkan dua yang pertama /usr/share/X11/xkb/symbols/macbookdan yang ketiga di shiftcapsdalam direktori yang sama, dan dengan xkbcompdll mereka berfungsi ketika dimuat di atas gb(mac)tata letak standar .

Saya mengedit ini untuk memperbarui dan mengklarifikasi jawaban saya. Pound kustomisasi saya baru-baru berhenti bekerja jadi aku memeriksa apa yang telah berubah dalam gb (mac) dan menyadari aku harus menambahkan , threesuperiorke key <AE03>baris.

Saya pikir evdev.xmldigunakan oleh gnome-tweak-tool untuk membuat opsi ini tersedia di GUI. Inilah yang saya tambahkan:

<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>
realh
sumber
1
gnome akan melihat opsi Anda (dan menghormati nilai dconf-nilai kunci di bawah org.gnome.desktop.input-sources) selama Anda menambahkannya ke aturan xkb yang digunakan sistem Anda, yaitu ke file yang tepat, lihat posting saya di sini
don_crissti
Terima kasih. Menentukan opsi dalam file evdev adalah bagian yang hilang dari teka-teki, dan saya harus melakukan apa yang saya inginkan sekarang, menggunakan dconf-editor.
realh
Di sistem saya (Debian) saya juga menemukan /usr/share/X11/xkb/rules/evdev.xml. Saya tidak yakin untuk apa itu; aplikasi pengaturan GNOME akan macet ketika membuka opsi-opsi Keyboard jika saya membuat kesalahan sintaks di dalamnya, tetapi saya tidak dapat menemukan opsi-opsi di GUI. Saya menambahkan baris yang sesuai setelah baris yang berisi <optionList>. Saya tidak dapat mempostingnya di sini karena keterbatasan pada komentar.
realh
Izinkan saya menambahkan bahwa xmodmap sudah tidak digunakan lagi sekitar tahun 1996 ketika XKB muncul. Yaitu bertahun-tahun sebelum penemuan wayland.
Robert Siemer

Jawaban:

1

Jawaban don_crissti untuk pertanyaan lain memberikan potongan puzzle yang hilang. Saya telah menetapkan opsi dalam file evdev seperti yang dijelaskan dan menambahkannya ke org.gnome.desktop.input-sources.xkb-optionsgsetting. Ini bekerja dengan sempurna.

realh
sumber