Как стать автором
Обновить

Национальные раскладки клавиатур и способы их переключения

Интерфейсы *
Вы знали, что переключение раскладок придумали садисты? Ну хорошо, не садисты, а люди, которые не пользуются этим чаще, чем раз в два дня.

Операционные системы прививают нам привычку переключать раскладки клавиатуры. С русской на английскую, с английской на русскую. А кому-то еще и на украинскую, или другой язык. Кто-то пользуется сочетаниями alt-shift, кто-то ctrl-shift, кто-то еще какими-то. Неудобство испытывают все. Интернет набит вопросами, как повесить переключение раскладок на ненужную клавишу Caps Lock (одна клавиша — не две). Предлагаются различные варианты под различные операционные системы и различные окружения рабочего стола. Непременный атрибут любого рабочего стола любой операционной системы — индикатор текущей раскладки клавиатуры. Люди переключают раскладки, набирают буквы не на том языке, матерятся, переключают снова.

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

Предположим, нам нужно написать пару слов в поле поиска поисковой системы Goggle. Давайте придумаем несколько алгоритмов того, как разные пользователи могут решить эту задачу.

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

Или, другой алгоритм:

1) Поставить фокус в текстовое поле.
2) Найти на экране индикатор текущей раскладки.
3) Сравнить, тот ли язык на индикаторе, на котором нужно напечатать запрос.
4) и 5) — те же, что и в предыдущем случае.

А некоторые поступают так:

1) Поставить фокус в текстовое поле.
2) Попробовать начать печатать запрос (мне повезет!).
3) Сравнить, тот ли язык получился, на котором нужно напечатать запрос.
4) Если нет, стереть напечатанное.
5) и 6) — те же, что и 4), 5) из предыдущего случая.

Мрак, да? А теперь правильный алгоритм:

1) Поставить фокус в текстовое поле.
2) Включить нужную раскладку.

Т.е. все эти действия по выяснению текущей раскладки, индикации и переключению — полный бред. Раскладки не нужно переключать, раскладки нужно включать непосредственно перед вводом текста.

Переключение раскладок — это переключение режима. Режим мы переключаем, например, у лампочки, когда включаем или выключаем. Мы делаем так, потому что нам важно, чтобы лампочка горела пока мы в комнате и не мешала, когда мы ложимся спать, или не тратила энергию, когда мы уходим. В случае с клавиатурой, нам не важно, какая выбрана раскладка большую часть времени. Пока мы не набираем текст, это ни на что не влияет.

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

На словах все хорошо. А на деле?

Могу обрадовать пользователей Microsoft Windows, для них есть рабочее решение. По крайней мере под Windows XP 32-бита работает просто замечательно — punto switcher. Да, ирония судьбы — приложение, которое задумалось как лекарство недостатков смены раскладок как режима, отлично подходит для смены раскладок как команды. Правда, только для двух языков. Настраивается очень просто — во-первых, нужно выключить автопереключение. Во-вторых, выбрать подходящий способ переключения в первом диалоге настройки:

Лично я выбрал левый ctrl — английский, правый — русский.

Признаюсь честно, данным вопросом для Linux-пользователей я не интересовался. Но Малышев Александр подсказывает, что это можно сделать прямо в настройке клавиатуры в Gnome. Но, как замечает sevka_fedoroff, тогда эти клавиши перестают работать как функциональные, что, конечно, совсем не дело.

А вот для любителей Маков у меня хороших новостей нет — не смотря на то, что есть Mac-версия пунто свичера, нужного функционала в ней нет. И другие приложения, которые я пробовал, также не позволяют указывать разные сочетания клавиш для разных раскладок. Я сам оказался в сложном положении, пристрастившись к такому способу смены раскладок под Windows, а потом перейдя на Мак.

Добавлено 1 октября: В твиттере Макс Зорин подсказал, что есть такое расширение для системных настроек, как KeyRemap4MacBook. Оно позволяет делать много полезных переназначений клавиш, и может повесить переключение раскладок на шифты или на ко́манды, почти как punto под Windows. Жаль только, что переключает она только строго между раскладками Русская и США, а, скажем, с раскладкой Ильи Бирмана уже не справляется. Но потом я догадался скачать последнюю нестабильную версию и в ней была поддержка именно это раскладки. Но почему-то, для этого нужно использовать сокращения из двух клавиш: правый ко́манд-шифт и левый. Нет в жизни счастья. Но зато теперь хоть как-то работает.

Что в итоге

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

Если у вас есть идеи, как сделать включение раскладок по определенным клавишам в Linux или Mac OS, пишите в комментариях, обязательно добавлю рабочие способы в топик.
Теги: клавиатураклавиатурные сочетанияраскладка клавиатурыpunto switcher
Хабы: Интерфейсы
Всего голосов 76: ↑55 и ↓21 +34
Комментарии 187
Комментарии Комментарии 187

Похожие публикации

Лучшие публикации за сутки