Вы знали, что переключение раскладок придумали садисты? Ну хорошо, не садисты, а люди, которые не пользуются этим чаще, чем раз в два дня.
Операционные системы прививают нам привычку переключать раскладки клавиатуры. С русской на английскую, с английской на русскую. А кому-то еще и на украинскую, или другой язык. Кто-то пользуется сочетаниями 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, пишите в комментариях, обязательно добавлю рабочие способы в топик.
Операционные системы прививают нам привычку переключать раскладки клавиатуры. С русской на английскую, с английской на русскую. А кому-то еще и на украинскую, или другой язык. Кто-то пользуется сочетаниями 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, пишите в комментариях, обязательно добавлю рабочие способы в топик.