[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Удобная раскладка для 3-х и более языков.



>> Удобное решение для переключения трех (или скольких угодно) точно
>> такое же, как и для переключения двух: каждой раскладке соответствует
>> своя клавиша (или аккорд).
>
> а как это прикрутить если в xfce?

А что Xfce?  У нее с этим какие-то проблемы?

Если нет, то в Иксах для многих популярных вариантов есть заготовки; в частности если бы мне не нужно было, чтобы выключатели раскладок вели себя по-разному в разных окнах, то на свои предпочтения я бы мог просто $ setxkbmap -option 'grp:shift_caps_switch', а то и прописать эту опцию в /etc/default/keyboard.

Если же для того, что вы придумали, искоробочной заготовки нет, то надо будет сформулировать.  Тут кто-то предлагал С-1, С-2, С-3, С-4 — это будет выглядеть как-то так (да, XKB многословен):

--8<---------------cut here---------------start------------->8---
partial default xkb_types "mixed" {
    virtual_modifiers LevelThree;

    type "FOUR_LEVEL+PC_CONTROL" {
	modifiers = Shift+LevelThree+Control;
	map[None] = Level1;
	map[Shift] = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
        map[Control] = Level5;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Shift Alt";
        level_name[Level5] = "Control";
    };
};
--8<---------------cut here---------------end--------------->8---


--8<---------------cut here---------------start------------->8---
partial modifier_keys
xkb_symbols "group_ctl_1234" {
    key <AE01> {
        type = "FOUR_LEVEL+PC_CONTROL",
        actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                    LockGroup(group=1) ]
    };

    key <AE02> {
        type = "FOUR_LEVEL+PC_CONTROL",
        actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                    LockGroup(group=2) ]
    };

    key <AE03> {
        type = "FOUR_LEVEL+PC_CONTROL",
        actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                    LockGroup(group=3) ]
    };

    key <AE04> {
        type = "FOUR_LEVEL+PC_CONTROL",
        actions = [ NoAction(), NoAction(), NoAction(), NoAction(),
                    LockGroup(group=4) ]
    };
};
--8<---------------cut here---------------end--------------->8---

Reply to: