Почему существует ограничение в 4 раскладки для клавиатур?

9

Я только что обнаружил, что не могу добавить более 4 раскладок для моей клавиатуры. Поиск в Google показал, что это был универсальный предел (по крайней мере, для GNU / Linux), и единственный (-ые) способ (-ы) обойти его - использовать какой-то хакерский способ со скриптами. Есть ли техническая причина этого? Если да, что это?

Mussnoon
источник
Ответ здесь: askubuntu.com/questions/107945/…
Rinzwind
Это ограничение по-прежнему существует на некоторых настольных компьютерах в конце 2018 года. Gnome позволяет мне настраивать больше макетов, но XFCE - нет. Я предполагаю, что по крайней мере Gnome решил проблему, упомянутую в ответе htorque, и код в XFCE отстает от того, что возможно в восходящем направлении.
LiveWireBT

Ответы:

9

Цитируя Питера Хаттерера (сотрудник Red Hat, работающий в X.Org):

Немного информации об этой функции и о том, почему она еще не реализована: ограничение группы Te 4 определяется форматом протокола. Поддержка более 4 групп может быть добавлена ​​только путем добавления дополнительных запросов и событий в XKB и переписывания клиентов для переключения на эту новую версию XKB. Кроме того, должна быть обеспечена совместимость со старым протоколом, чтобы текущие клиенты XKB по-прежнему работали правильно с новой версией XKB.

Это и сложно, и очень много времени. Добровольцы для решения этой проблемы, конечно, очень приветствуются.

[...]

Он закодирован в некоторых битах протокола, а другие биты используются для другой информации. поэтому вам нужно дополнительные байты в запросах / событиях для чего-либо выше 4, а добавление дополнительных байтов требует изменения протокола. И затем вам приходится иметь дело с теми клиентами, которые понимают только 4 группы и что с ними делать, если клавиатура находится в группе 5.

Почему у нас нет взлома над этим слоем - я не знаю ... это должно быть самое слабое ограничение. : D

htorque
источник
Это тем более странно, потому что на самом деле вы можете использовать более 4 - с помощью сценариев.
Mussnoon
Если вы находитесь на unix.se, пожалуйста, также можете опубликовать ответ там, чтобы я мог принять его и там: unix.stackexchange.com/questions/5963/…
Mussnoon
Я не должен отвечать сам. ;-)
htorque
3

Я часто пишу на английском, немецком, шведском и китайском языках. Это четыре, но я также изучаю русский язык и был бы рад дополнительному переключению через графический интерфейс. Скрипты - это работоспособное решение между тем:

http://ubuntuforums.org/showthread.php?p=10333055#post10333055

Можно заметить, что с русским языком можно выбрать либо «стандартную» русскую раскладку клавиатуры, либо гораздо более удобную (для тех из нас, кто изучает) фонетическую раскладку в паре с QWERTY.

Также многие из нас используют ту или иную форму Дворжака, которая тоже занимает определенную позицию.

Следовательно, мой компьютер выглядит так:

Раскладки клавиатуры:

США Дворак (программист) шведский немецкий русский русский фонетический

и есть дополнительная иконка клавиатуры с переключателем ibus для китайского пиньинь.

Аарон
источник
0

Протокол выделяет два бита для переключения клавиатуры. Это на два больше, чем нужно многим людям. Большинство пользователей, которых я видел при переключении раскладки клавиатуры, используют два; локальный макет и международный макет. Международный макет обычно обрабатывает состав всех требуемых ключей. Это оставляет один лишний бит. Я видел пользователей с тремя макетами, но обычно один никогда не используется.

Мне было бы интересно, что вы делаете, что требует более четырех макетов, и как вы работаете с постоянно меняющейся раскладкой клавиш. Мне трудно привыкнуть к двум макетам пользователей, даже когда они решают проблемы, связанные с интернационализацией.

BillThor
источник
4
При всем уважении, это не правильный ответ. Эта возможность необходима лингвистам, языковым энтузиастам и двуязычным или трехязычным людям, которые изучают один или два других языка. Это также может быть необходимо для тестирования или для тестирования новых макетов, таких как Dvorak. Но на самом деле не имеет значения, почему людям нужно более 4 макетов ввода. В том то и дело, что они делают.
Текин
@HelgiHrafnGunnarsson Подобные протоколы были созданы, когда пропускная способность была довольно ограниченной, а биты распределялись редко. Я полагаю, что мой пост объясняет причину, которая, вероятно, использовалась. Я работаю со многими двуязычными людьми, которые работают с одним макетом. Доступно много многоязычных макетов, которые могут печатать легче, чем менять макет при каждом переключении языков.
BillThor