як прив’язати AltGr до <Ctrl> + <Alt>


11

Я намагаюся створити еквівалент Linux для ергономічної макети клавіатури телугу під назвою Sarala (Hard la). Мені поки вдалося скласти карту всіх ключів. У макеті використовуються наступні комбінації клавіш для різних рівнів.

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

Де як linux використовується наступне для різних рівнів.

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

Щоб мати можливість зіставити комбінації клавіш із моєю компонуванням, мені доведеться зіставити AltGrзі знаком Ctrl+ Alt. Я невдало шукав, хоча різні файли в /usr/share/X11/xkb/. Є тіло знати , як я можу прив'язати ISO_Level3_Shiftз Ctrl+ Alt?

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

Якщо ви хочете подивитися макет, це тут


2
подивіться тут askubuntu.com/questions/254424/…
αғsnιη

2
Дякую, це дуже інформативно, але воно говорить про все інше, крім xkbконфігурації.
ShaggyInjun

Ви можете переглянути цю вікі з wiki arch linux та переглянути частину про Alt та Altgr (рівень 3). Я не впевнений, чи допоможе це вам, але, схоже, є багато інформації про XKB
немає часу

Я спробував це, xkb не вдається завантажити не так описову помилку. У мене не зручна помилка, але я можу приєднати її пізніше.
ShaggyInjun

Відповіді:


6

Вам потрібно визначити новий тип xkb. Ви можете бачити приклади в каталозі xkb / types (як правило /usr/share/X11/xkb/types). Там ви можете визначити довільні комбінації модифікаторів, щоб отримати різні рівні зсуву. Для своєї проблеми ви можете використовувати щось подібне:

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";
};

Потім у вашому файлі символів ви можете встановити цей тип як типовий або встановити за кожним ключем, який він тип. Зауважте, що тип повинен знаходитись у файлі в каталозі типів, а визначення ключа у файлі в каталозі символів - xkb використовує сувору ієрархію файлової системи для пошуку кожного компонента.

Я дуже добре зламав розкладки клавіатури, щоб створити власний макет ( https://github.com/willghatch/hatchak ), який пройшов різні ітерації, де я експериментував із дивними речами. XKB часом може бути досить вибагливим і дивним, але це все-таки найбільш налаштована система клавіатур, яку я бачив на сьогоднішній день. Найкращі посилання, якщо у вас виникли проблеми:

[редагувати: оригінальні посилання наразі відсутні, але на щастя archive.org існує]

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

і

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

Остерігайтеся - хоча це найкраща документація, яку я знайшов, вона залишає безліч мутних крайових справ. Удачі.


Я думаю, що ваша ідея дійсно корисна, але я дуже намагаюся використовувати створений тип у файлах символів як за замовчуванням, як ви згадували. Файли символів у мене на комп’ютері досить довгі, і я не бачу жодної рядки, яка б нагадувала визначення типу за замовчуванням.
Дейв

1
Ви можете визначити за замовчуванням для розділу в файлі символів, встановивши key.type. Напевно, ви можете побачити приклад у /usr/share/X11/xkb/symbols/srvr_ctrl(або десь подібному) у розділі "no_srvr_keys". Ось що я маю: xkb_symbols "no_srvr_keys" {key.type = "TWO_LEVEL"; клавіша <FK01> {[F1, F1]}; ключ <FK02> {[F2, F2]}; <тощо ...>};
Вільям Хетч

Дякую за швидку відповідь. Я думаю, я зможу це застосувати. Заздалегідь дякую
Дейв

Так само як відгук для всіх, хто приходить на цю сторінку ще довгий час. Для мене цей підхід працював зараз із нещодавно встановленою Fedora. З якихось (мені) невідомих причин це не працювало з Монетним двором, коли я писав цей коментар вище. Але зараз це працює і економить мені багато часу.
Дейв

-1

Здається, вам потрібна розкладка клавіатури, яка підтримує AltGr, тому ви можете просто змінити гарячу клавішу на "клавіатура> ярлики> клавіша альтернативних символів" у меню конфігурації. Зазвичай ви можете бачити це, змінивши макет, який має "мертві ключі" або написаний "мертві ключі AltGr"


Я не прошу особистого користування, мені потрібно відправити макет. На жаль, це погана відповідь. Однак, дякую.
ShaggyInjun
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.