НовостиОбзорыСобытияIT@WorkРеклама
Open Source:

Блог

О «волшебных клавишах» и эргономике

Иногда бывает, что короткая реплика заставляет потратить несколько часов на обдумывание значительно более общих вопросов, чем тема обсуждения. Именно так получилось с комментарием Виталия Липатова к заметке «Волшебная кнопка Compose».

С одной стороны, Виталий абсолютно прав — использование «3-го ряда» для ввода специальных символов технически удобней. Пользователю, который уже привык к кнопке Shift не составит никакого труда расширить практику «двойного или тройного нажатия» на ещё одну клавишу. Но, разумеется, только в теории. Очень многое зависит от реализации.

[spoiler]Для предметности поговорим о кавычках. Рискну предположить, что эти символы востребованы более всех остальных.

Чаще всего в русском языке используются «ёлочки». Поэтому их ввод должен быть наиболее простым и хорошо запоминаемым. В «3-м ряду» по умолчанию используются комбинации «3levelkey + <» и «3levelkey + >» (здесь и далее 3keylevel означает клавишу выбора 3-го ряда). Уверен, такое решение ни у кого не вызывает никаких вопросов. Без 3keylevel набирается один «уголок», а с 3keylevel — два.

Немецкие «лапки» применяются значительно реже — для цитаты внутри слов, уже заключённых в кавычки. То есть, не стоит рассчитывать на то, что пользователь просто запомнит любую произвольную комбинацию.

В уже приведённом мной в заметке «Волшебная кнопка Compose» примере настроек с точки зрения пользователя всё выглядит вполне логично. Для ввода «лапок» используются те же самые клавиши, что и для «ёлочек». Это решение и интуитивно понятно, и хорошо запоминается.

А вот «3-й ряд» для воода «лапок» по умолчанию предлагает совершенно другое — «3levelkey + j» и «3levelkey + k». И совершенно непонятно, каким образом пользователь должен это запомнить. Согласитесь, значительно логичней было бы предложить другие комбинации — «3levelkey + Shift + <» и «3levelkey + Shift + >». Иными словами, редко применяемые кавычки набираются точно так же, как и часто употребляемые, но с клавишей Shift.

На этом можно было бы и закончить, если бы не одно обстоятельство. Я уверен, что в первом же комментарии к этой заметке будет сказано о том, что меня «забанил Google» и я не удосужился найти информацию по назначению собственных комбинаций для «3-го ряда». Разумеется, это не так.

Вот фрагмент из файла .XCompose, в котором описано правило ввода немецких кавычек при помощи Compose:

<Multi_key> <Cyrillic_be> <Cyrillic_be>   : "„"
<Multi_key> <Cyrillic_yu> <Cyrillic_yu>   : "“"

А вот фрагмент из /usr/share/X11/xkb/symbols/typo, в котором описано аналогичное правило, но для «3-го ряда»:

key <AC07> { [NoSymbol, NoSymbol, doublelowquotemark, singlelowquotemark] }; // "j"
key <AC08> { [NoSymbol, NoSymbol, leftdoublequotemark, leftsinglequotemark] }; // "k"

Думаю, разница очевидна. Для редактирования первого файла даже документацию читать не нужно, поскольку там и так всё понятно. Чего никак нельзя сказать о втором. Увы, на настройка «3-го ряда» значительно сложнее настройки Compose. По крайней мере, для непрограммиста.

Сергей Голубев
А какие нужные в каждом конкретном случае? И что делать, если кавычки надо поставить, например, тут? Писать тест в Ворде и копировать сюда?
К тому же, помимо кавычек есть ещё масса других символов. Их тоже будет сам ставить Ворд?
Нет, по-моему, программа должна быть «рабской». Ничего и никогда не делать сама. Только то, что приказал хозяин. Без всякой самодеятельности.
Владислав Чинючин
Для подавляющего большинства пользователей программа должна быть умной. Местами "пинками в рай". С возможностью отключения всех умностей и настройки горячих клавиш.
И что делать, если кавычки надо поставить, например, тут?
Проверка орфографии есть практически в каждом браузере. Следующий шаг - исправление мелких опечаток и всяческих кавычек, дефисов.
Сергей Голубев
Увы, даже в обсуждаемой заметке есть минимум одна опечатка. Хотя и сам проверял, и браузер проверял :).