Pull to refresh
104
0
Максим Васильев @qmax

Инженер

Send message
А в связи с многоплатформенностью не планируется ли поменять формат обновлений виндовой версии?
(что-либо более линукс-дружественное вместо msi)
А чем принципиально стабы отличаются от моков?
Не понял — зачем вы всё делаете через setxkbmap | xkbcomp — Если можно просто xkbcomp rjyabu afqk crjhvbnm&
Тоесть, это в 3.12 такие же проблемы со сбросом настроек?
Ещё есть xkbprint который генерит картинку раскладки м подписью кодов.
C параметром -label name на кнопках рисуются их названия (формата <LSGT>)

Соответствие названий кодам хранятся в файле /usr/share/X11/xkb/keycodes/evdev
(ну или то, что подключено через xkb_keycodes )
Лишний раз нажимать придётся либо вообще каждый раз при смене контекста, либо получается тоже самое — стирать и перенабирать.
Попробовал ваш метод и запарился.

И таки всё равно, чтобы принять решеине — переключать или не переключать, над знать текущую раскладку.
Кроме того, даже если обозначить, что переворачивается юникод-строка, она может быть:
— в ненормализованной форме (с лигатурами, встроенными диакритиками, отдельными кодами для форм написания оконечных/начальных букв, и всё что угодно)
— в канонической декомпозиции
— в канонической композиции
— в совместимой декомпозиции
— в совместимой композиции

Понятия «строки» в юникоде нет.
Юникод «строка» — это последовательность code-point'ов.
Их свойства типа модификаторов или обозначения направления — это уже семантика символов, на уровне сбалансированности скобок.
«обращение» такой строки не имеет смысла (интерпретации в виде человекопонятного текста).

Если пытаться «обращать» в контексе человекопонимаемого текста, то есть варианты обращения:
— последовательности «графемных кластеров», определённых в стандарте юникода
— написания элементов слов (с учётом особенностй начертания начальных/конечных букв)
— написания элементов слогов (в слого-ориентированных писменностях)
— произношения (с учётом всей фонологии языка)

А вы смело обозначили, что тут существует всего две проблемы, половина из которых решается библиотечными вызовами.
Причина недовольства в недостаточности формулировки задачи.
Да и вообще, указанная в топике формулировка «не-ascii» никак не подразумевает, что это utf.
Таки есть правила для расстановки границ «графемных кластеров» (в NFD-нормализованном тексте):
www.unicode.org/reports/tr29/tr29-23.html

А варианты написания арабского — это, по идее, задача рендеринга шрифтов, а не представления в строке. Там же где кернинг и антиалиасинг.
Также, как и греческая сигма.
Разные формы имеют собственные кодировки (у арабского — в отдельном диапазоне), но это должно нивелироваться нормализацией.

Есть ещё кластеры в деванагари, представляющие сочетания согласных. Но у них нет даже отдельных представлений в юникоде.
Тоесть тут чистейшей воды задача рендеринга.
Я правда не понял, что с деванагари буквой ssa (из примера в документе)

Кроме хангыля, немного похожая ситуация в тибетском и всяких тайских-кхмерских (элементы слога пишутся сильно нелинейно),
В этих случаях графемный кластер определяется, как базовый символ + расширяющие символы.
А для хангыля — цепочка символов, образующая «слог» и есть графемный кластер.

Но таки да, в любом случае, в условиях задачи надо указывать «обращение порядка графемных кластеров»
А в юникоде вообще есть какое-нибудь (универсальное) понятие, обозначающее атомарные элементы текста, к последовательности которых можно было бы применить термин «обращение»?

Типа буква + модифицирующие символы.
Из-за кулис подсказывают, что ещё это лечится:
modifier_map none { <HYPR> };
modifier_map none { <SUPR> };


Но при этом выкидывает ошибку:
Error:            Key <HYPR> added to map for multiple modifiers
                  Using none, ignoring Mod4.
Error:            Key <SUPR> added to map for multiple modifiers
                  Using none, ignoring Mod4.

Хотя статус завершения 0
Непонятно, как через xkb сделать xmodmap-аналог "clear Mod4"

pc(pc105) ничтоже сумняшеся суёт в Mod4 и Hyper_L и Super_L прикрученные к псевдо-кнопкам <SUPR> и <HYPR>

Это инклюдится и переписать modifier_map Mod4 { Super_L, Super_R } не помогает.

Лечится
replace key <SUPR> {  [ NoSymbol, NoSymbol ] };
replace key <HYPR> {  [ NoSymbol, NoSymbol ] };


Но при этом старый добрый xmodmap пишет
mod3        Hyper_R (0x87)
mod4        Super_L (0x85),  Super_R (0x86),  BadKey (0xce),  BadKey (0xcf)
Уже нашёл ISO_First_Group ISO_Last_Group
А как это будет на языке xkbcomp?
Думаю, тут стоит упомянуть, что в gnome-3 переделывают работу с клавиатурой, и в gnome-3.8 переключение раскладки штатным методом, или ещё при каких-то переключениях окон, все кастомизации сносятся нахрен.

А «штатным» методом не получится настроить переключение по капс или перемапить Win/Menu.

Лечится выпиливанием файла /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so

При этом индикатор раскладки не работает, зато работают кастомизации.

Возможно, это касается только кастомизаций через xmodmap, а через xkbcomp всё будет работать.
По полю Original-Maintainer: 'ubuntu.com' 728 из 85142 пакетов
В во всякой глуши плохо говорят и на хинди и на английском.
Думаю, в России, в деревнях Алтая или в глубинах Чукотки и с русским не всё хорошо.
Как это она верна денбиановской репе, если у них даже init разный?

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity