cara mengikat AltGr ke <Ctrl> + <Alt>

11

Saya mencoba membuat linux yang setara dengan tata letak Keyboard Ergonomis Telugu yang disebut Sarala (Hard la). Saya sudah bisa memetakan semua kunci sejauh ini. Tata letak menggunakan kombinasi tombol berikut untuk berbagai level.

None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4

Sedangkan linux menggunakan yang berikut untuk berbagai tingkatan.

None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4

Untuk dapat mencocokkan kombinasi tombol dengan tata letak saya, saya harus memetakan AltGrdengan tanda Ctrl+ Alt. Saya gagal mencari berbagai file di Windows /usr/share/X11/xkb/. Apakah ada yang tahu bagaimana saya bisa mengikat ISO_Level3_Shiftdengan Ctrl+ Alt?

key <RALT>  {
    symbols[Group1]= [ Mode_switch, Multi_key  ],
    virtualMods= AltGr
};

Jika Anda ingin melihat tata letaknya, ada di sini

ShaggyInjun
sumber
2
lihat di sini askubuntu.com/questions/254424/…
αғsнιη
2
Terima kasih, itu sangat informatif tetapi berbicara tentang segala sesuatu yang lain kecuali xkbkonfigurasi.
ShaggyInjun
Anda dapat melihat melalui wiki ini dari arch linux wiki, dan lihat bagian tentang Alt dan Altgr (Level 3). Saya tidak yakin apakah ini akan membantu Anda, tetapi tampaknya memiliki banyak informasi tentang XKB
No Time
Saya sudah mencobanya, xkb gagal memuat dengan kesalahan yang tidak terlalu deskriptif. Saya tidak memiliki kesalahan praktis, tetapi saya dapat melampirkannya nanti.
ShaggyInjun

Jawaban:

6

Anda perlu mendefinisikan tipe xkb baru. Anda dapat melihat contoh di direktori xkb / types Anda (biasanya /usr/share/X11/xkb/types). Di sana Anda dapat menentukan kombinasi pengubah yang berubah-ubah untuk mendapatkan tingkat pemindahan yang berbeda. Untuk masalah Anda, Anda dapat menggunakan sesuatu seperti ini:

type "C_A_to_L3" {
    modifiers = Control+Alt+Shift;
    map[None] = Level1;
    map[Shift] = Level2;
    map[Control+Alt] = Level3;
    map[Control+Alt+Shift] = Level4;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Alt Base";
    level_name[Level4] = "Shift Alt";
};

Kemudian dalam file simbol Anda, Anda dapat mengatur tipe itu sebagai default, atau mengatur berdasarkan per-key apa tipe itu. Perhatikan bahwa Anda perlu jenisnya berada di file di direktori types, dan definisi kunci dalam file di direktori simbol - xkb menggunakan hierarki sistem file yang ketat untuk menemukan setiap komponen.

Saya telah melakukan sedikit peretasan pada layout keyboard sendiri untuk membangun layout kustom saya ( https://github.com/willghatch/hatchak ), yang telah melalui berbagai iterasi di mana saya telah bereksperimen dengan hal-hal aneh. XKB kadang-kadang bisa sangat aneh dan aneh, tetapi masih merupakan sistem keyboard yang paling dapat dikonfigurasi yang pernah saya lihat sejauh ini. Referensi terbaik jika Anda memiliki lebih banyak masalah adalah:

[edit: tautan asli saat ini sedang down, tetapi untungnya archive.org ada]

https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html

dan

https://web.archive.org/web/20190419170426/http://pascal.tsu.ru/en/xkb/

Hati-hati - walaupun itu adalah dokumentasi terbaik yang saya temukan, ia meninggalkan banyak kasing yang keruh. Semoga berhasil.

William Hatch
sumber
Saya pikir ide Anda sangat berguna, tetapi saya benar-benar berjuang untuk menggunakan jenis yang dibuat dalam file simbol sebagai default seperti yang Anda sebutkan. File simbol yang saya miliki di komputer saya cukup panjang dan saya tidak melihat garis apa pun yang terlihat seperti definisi tipe default.
Dave
1
Anda dapat menentukan default untuk bagian dalam file simbol dengan mengatur key.type. Anda mungkin dapat melihat contoh di /usr/share/X11/xkb/symbols/srvr_ctrl(atau di suatu tempat seperti itu), di bagian "no_srvr_keys". Inilah yang saya miliki: xkb_symbols "no_srvr_keys" {key.type = "TWO_LEVEL"; kunci <FK01> {[F1, F1]}; kunci <FK02> {[F2, F2]}; <etc ...>};
William Hatch
Terima kasih atas jawaban cepatnya. Saya pikir saya akan dapat menerapkannya. Terima kasih banyak sebelumnya.
Dave
Sama seperti umpan balik untuk semua yang datang ke halaman ini kembali bahkan lama kemudian. Bagi saya pendekatan ini bekerja sekarang dengan Fedora yang baru diinstal. Untuk beberapa (bagi saya) alasan yang tidak diketahui itu tidak bekerja dengan Mint ketika saya menulis komentar di atas. Tetapi sekarang ini berhasil dan menghemat banyak waktu bagi saya.
Dave
-1

Dari apa yang saya rasakan Anda memerlukan tata letak keyboard yang mendukung AltGr, sehingga Anda dapat dengan mudah mengubah tombol pintas di "keyboard> pintasan> tombol karakter alternatif" di menu konfigurasi. Biasanya Anda dapat melihatnya dengan mengubah ke tata letak yang "memiliki kunci mati" atau dituliskan "kunci mati AltGr"


sumber
Saya tidak meminta penggunaan pribadi, saya perlu mengirimkan tata letak. Sayangnya ini adalah jawaban yang buruk. Namun, terima kasih.
ShaggyInjun