Я только что обнаружил, что не могу добавить более 4 раскладок для своей клавиатуры. Поиск в Google показал, что это был универсальный предел (по крайней мере, для GNU / Linux), и единственный (-ые) способ (-ы) обойти его - использовать какой-то хакерский способ со скриптами. Есть ли техническая причина этого? Если да, что это?
Цитировать Питера Хаттерера (сотрудник Red Hat, работающий над X.Org):
Некоторая информация об этой функции и почему она еще не реализована: группа Te 4 ограничение вызвано форматом протокола. Поддержка более 4 групп может быть добавлена только путем добавления дополнительных запросов и событий в XKB и переписывания клиентов для переключения на эту новую версию XKB. Кроме того, должна быть обеспечена совместимость со старым протоколом, чтобы текущие клиенты XKB по-прежнему работали правильно с новой версией XKB.
Это и сложно, и очень много времени. Добровольцы для решения этой проблемы, конечно, очень приветствуются.
[...]
Он закодирован в некоторых битах протокола, а другие биты используются для другой информации. поэтому вам нужно дополнительные байты в запросах / событиях для чего-либо выше 4, а добавление дополнительных байтов требует изменения протокола. И затем вам приходится иметь дело с теми клиентами, которые понимают только 4 группы и что с ними делать, если клавиатура находится в группе 5.
blockquote>Почему у нас нет взлома над этим слоем - я не знаю ... это должно быть самое слабое ограничение за всю историю. : D
Я часто пишу на английском, немецком, шведском и китайском языках. Это четыре, но я также изучаю русский язык и был бы рад дополнительному переключению через графический интерфейс. Скрипты - это работоспособное решение:
http://ubuntuforums.org/showthread.php?p=10333055#post10333055
Можно заметить, что с русским можно выбрать либо «стандартную» русскую раскладку клавиатуры, либо гораздо более удобную (для тех из нас, кто изучает) фонетическую раскладку в паре с QWERTY.
Кроме того, многие из нас используют некоторую форму Дворжака, которая также занимает определенную позицию.
Следовательно, мой компьютер выглядит следующим образом:
Раскладки клавиатуры:
США Дворак (программист) Шведский Немецкий Русский Русский фонетический
и есть дополнительная иконка клавиатуры с тумблер ibus для китайского пиньинь.
Протокол выделяет два бита для переключения клавиатуры. Это на два больше, чем нужно многим людям. Большинство пользователей, которых я видел при переключении раскладки клавиатуры, используют два; локальный макет и международный макет. Международный макет обычно обрабатывает состав всех требуемых ключей. Это оставляет один лишний бит. Я видел пользователей с тремя макетами, но обычно один никогда не используется.
Мне было бы интересно, что вы делаете, для чего требуется более четырех раскладок, и как вы работаете с постоянно меняющейся раскладкой клавиш. Мне трудно привыкнуть к двум макетам пользователей, даже когда они решают проблемы, связанные с интернационализацией.