Программа показывает флаг на мониторе раскладки клавиатуры. Budgie-remix: индикаторы раскладки клавиатуры. Добавляем индикатор раскладки клавиатуры

Апплет панели Gnome, который отображает текущую раскладку клавиатуры, в качестве индикатора использует надписи вида США или Рус. Я расскажу, как сделать так, чтобы в качестве индикатора отображался флаг выбранной страны.

Добавляем индикатор раскладки клавиатуры

Если у вас на панели Gnome отсутствует индикатор раскладки, добавьте его. Об этом можно почитать в заметке Добавление элементов на панель и на рабочий стол Gnome в Ubuntu .

Подготавливаем изображения флагов

Для начала нужно найти рисунки (иконки) с нужными вам флагами. Файлы должны иметь названия ru.png для русской раскладки и us.png для английской. Я подготовил два рисунка флагов для России и США, которые вы можете использовать.

Поместите файлы с рисунками флагов в директорию ~/.icons/flags . Значок тильда ~ означает вашу домашнюю директорию. Например, /home/pingvinus/.icons/flags . Или же вы можете поместить эти файлы в директорию /usr/share/pixmaps , тогда у всех пользователей в системе будут использоваться иконки флагов для индикации раскладки.

Изменяем конфигурацию

Теперь нужно запустить утилиту gconf-editor (редактор конфигурации Gnome). Для этого можно нажать Alt+F2 , ввести в открышемся окне gconf-editor и нажать кнопку Запустить. В левой части окна выбрать путь desktop->gnome->peripherals->keyboard->indicator . В правой части окна поставить галочку напротив пункта showFlags .

Заключение

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

Каждый пользователь компьютера ежедневно сталкивается с проблемой ошибочного ввода: вы начинаете набирать некоторый текст на клавиатуре (при этом смотрите на клавиатуру, а не на экран), и уже набрав несколько слов понимаете, что набирали не в том языке ввода (эти вечные "Ghbdtn! Rfr ltkf&"). Приходится удалять плоды своих напрасных стараний, переключать язык и начинать все с чистого листа. Особенно неприятно, когда такое случается при наборе пароля. Если Вам тоже это надоело - прошу под кат.

Многие порекомендуют для борьбы с этой проблемой воспользоваться программами, которые автоматически переключают язык ввода, анализируя набираемый текст (Punto Switcher и т.п.). Однако те же многие согласятся, что такие программы несовершенны и часто непредсказуемы в своем поведении, что только повышает степень неоднозначности для пользователя и наносит больше вреда чем пользы.
Конечно, очень полезно в этом отношении было бы выработать привычку всегда смотреть на индикатор языка ввода на языковой панели прежде чем начинать набирать текст. Да вот только это довольно неудобно, особенно если приходится работать с полноэкранными приложениями, с несколькими мониторами... И вообще, часто переводить взгляд от поля ввода к индикатору как-то не комфортно. Более того, случается, что это самый индикатор по каким-то причинам может отображать недостоверную информацию либо вообще исчезать с экрана (согласитесь, случается такое). В таком случае остается только проверять язык ввода эмпирически.
Невольно напрашивается мысль о том, что традиционное средство, призванное обеспечить информированность пользователя о активном в текущий момент языке ввода и, следовательно, корректность ввода, совершенно неэффективно. Разумным решением было бы переместить злосчастный индикатор из угла экрана, куда так лень перевести взгляд, к текстовому курсору, куда взгляд пользователя направлен изначально. И увы - это самое решение разработчиками операционных систем пока не реализовано (а возможно и не будет). К счастью, существует ряд программ, которые могут помочь в той или иной степени устранить это упущение.

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

Надеюсь, прочитав эту статью, вы сможете выбрать программу, которая поможет вам оптимизировать работу с компьютером.

Алексей Федорчук

Докопавшись хоть и не до идеального, но устраивающего меня переключателя раскладок клавиатуры, следовало озаботиться индикацией текущего её состояния: при использовании циклического переключателя без этого не прожить. Ибо только нециклические переключатели избавляют от необходимости думать о текущем состоянии ввода символов. А нециклического переключения iBus не умеет. И это далеко не всё, чего не умеет этот хвалёный гиперпрогрессивный iBus.

Как известно, в качестве индикаторов раскладки можно использовать led-индикаторы на клавиатуре. И эта возможность задействована по умолчанию и при выборе русского языка в оригинальном дистрибутиве, и в моей mini-редакции - в качестве индикатора русской раскладки используется ScrollLock. Изменить ситуацию (например, если такого индикатора на клавиатуре нет) можно через редактор Dconf. Для чего надо пройти по схеме org.gnome.desktop.inputsources:

И вписать нужное значение в строку xkb-options:

Или, если led-индикатор по каким-то причинам окажется не включённым, дописать одно из двух: "grp_led:scroll" или "grp_led:caps" .

Правда, на клавиатуре без led-индикаторов вообще (а именно таковы большинство ноутбучных) радости от этого будет мало: потребуется экранный индикатор раскладки. Который не помешает и при наличии led’ов.

И таких индикаторов есть - в виде штатного апплета среды Budgie. Для помещения этого апплета на управляющую панель следует отправиться в конфигуратор среды Raven, запускаемый пиктограммой в правом верхнем углу, затем с помощью «шестерёночной» пиктограммы вызвать собственно панель конфигуратора, перейти на вкладку Панель , нажать плюсик в строке Апплеты , после чего отыскать нужный:

После чего апплет со всплывающей подсказкой появится на управляющей панели:

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

Возникает естественное желание прикрутить к Budgie какой-либо из вне-десктопных индикаторов раскладки, типа xxkb или gxkb , с их богатыми наборами флагов. Увы - как следует из их имён, они рассчитаны на работу с xkb , и с iBus функционируют, мягко говоря, некорректно. В частности, по моему опыту, gxkb способен заблокировать клавиатуру вусмерть. После чего остаётся только жать кнопку Power на корпусе машины до посинения. Точнее, до её срабатывания в соответствие с ATX-стандартом.

Пользователи, регулярно набирающие на компьютере даже небольшие объемы текста, замечают мелкие недостатки Windows, усложняющие ввод. Избавиться от них довольно просто с помощью нескольких программ, описанных ниже. Часть советов в этом материале окажутся полезны лишь тем, кто овладел слепым набором, но некоторые подсказки пригодятся абсолютно всем.

Полезные утилиты

Начнем с самых простых вещей – переключения раскладки. По умолчанию в Windows она назначена на комбинацию Alt+Shift или Ctrl+Shift. В последних версиях ОС пользователь может выбрать и «’» (апостроф), который на большинстве клавиатур находится прямо под кнопкой Esc. Однако это блокирует доступ к клавише «ё», расположенной там же. Расширить возможности Windows позволит утилита Punto Switcher .

С ее помощью переключение раскладки присваивается кнопкам Ctrl, Shift, Caps Lock. Именно на последней и рекомендуем остановиться: Caps Lock удобно нажимать мизинцем левой руки, и в тексте со смешанными языками такое переключение будет происходить гораздо быстрее, чем посредством комбинации клавиш, для которой понадобится поднимать всю руку.

Раз уж речь зашла о Punto Switcher, то остановимся и на других ее достоинствах. Программа автоматически исправляет типичные опечатки, возникающие при наборе, например две заглавные буквы в начале предложения. Автоматически корректируется и текст, набранный на неправильной раскладке (например, слово «пщщпду» будет исправлено на google). С помощью горячих клавиш утилита может отменять конвертацию раскладки или применять ее к любому выделенному фрагменту текста. У Punto Switcher есть собственный индикатор языка в системном трее, а еще она умеет отображать текущую раскладку в виде флага страны, что гораздо удобнее аббревиатур EN или RU.

Близким аналогом Punto Switcher является Arum Switcher . Программа также имеет индикатор в системном трее, исправляет различные типы опечаток, регистр текста и назначает абсолютно любую клавишу или их комбинацию на переключение раскладки.

Если пользователям нужна только функция конвертации раскладок (перевода уже набранных слов по типу «пщщпду»→google), то в этом случае выручит более простая утилита LangOver , которая после выделения текста и нажатия F10 (клавишу можно менять) конвертирует символы.

Language Indicator тоже выполняет лишь малую часть того, что умеют Punto Switcher и Arum Switcher, а именно отображает флаг страны указанного языка. При этом у программы все же есть одна дополнительная функция. Во время перемещения мышки по экрану утилита будет показывать выбранную раскладку в каждом конкретном приложении, над которым сейчас находится курсор. Программы, подобные Language Indicator, могут пригодиться тем, у кого по каким-то причинам из системного трея исчез стандартный индикатор языка и его невозможно вернуть назад (а это достаточно распространенная проблема).

Индикатор раскладки

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

Утилита Flean имеет настройки прозрачности и позиции индикатора на экране (возле текстового курсора или в поле для ввода). По умолчанию она показывает языки в виде флагов, но можно загрузить и любую другую иконку в формате BMP.

Если пользователю нужны более продвинутые возможности, следует обратить внимание на Aml Maple , у которой есть ряд преимуществ. Во-первых, программа отображает язык ввода возле текстового курсора только до начала набора (во Flean флаг виден постоянно, что может отвлекать от печати). Во-вторых, перемещение курсора происходит плавно (Flean применяет неоптимальный алгоритм прорисовки, из-за чего текстовый курсор с флагом перемещается по мере набора текста немного дерганно). Помимо флага, индикатором раскладки может служить и сам цвет текстового курсора. По умолчанию для английского языка он розовый, для русского – синий. Все параметры меняются, а чтобы не запоминать каждый цвет, справа от курсора можно дополнительно выводить флаг.

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

Как известно, люди делятся на две категории: на тех, кто переключает раскладку с помощью Ctrl+Shift и тех, кто использует Alt+Shift. А еще есть счастливчики, кому это не нужно – те, у кого только одна раскладка (как правило, английская). Остальные завидуют им и мучаются с двумя, а то и с тремя раскладками: английский, русский, украинский (белорусский, казахский и т.д.).


Проблема в том, что, переключая язык, приходится постоянно смотреть на эту маленькую иконку языка. Есть и другие варианты:

  • Использовать отдельные комбинации на разные языки (Ctrl+1(2.3)) – программисты, которые работают в разных IDE, согласятся, что это не вариант, так как такие комбинации часто же заняты и перекрываются, а использовать другие в IDE непривычно. Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали). Т.е, если сейчас активен Word c английской раскладкой, то, переключившись в браузер, там может быть другая раскладка. И приходится или смотреть на иконку снова или же повторно вбивать, например, Ctrl+1, даже если язык не менялся.
  • Использовать программы типа Punto switcher, которые пытаются автоматически исправлять раскладку – не всегда это получается правильно и часто еще больше усложняет набор.
  • Использовать программы, которые переключают темы Windows – не каждому понравятся разноцветные панель задач или окна.

Идея

А давайте сделаем на основе Arduino кубик с LED подсветкой, который будет стоять на столе и менять свой цвет в зависимости от раскладки. Каждый язык – разный цвет. Например, английский – зеленый, русский – красный, украинский – синий. Это позволит видеть язык текущего приложения периферийным зрением.



Сразу говорю, это не сложно сделать даже не электронщикам.

Аппаратная часть

  • Arduino Micro – плюс платы в том, что есть micro-USB, что позволяет соединить его популярным кабелем с ПК. Можно использовать любую компактную плату с micro-USB.
  • RGB-светодиод. Можно использовать вместо него и 3 разноцветных светодиода.
  • 3 резистора 220 ом.
  • “кубик”.

В качестве “кубика” можно использовать что угодно. Я купил часы-будильник с Aliexpress.com в виде кубика. Вот так выглядит сам куб:



Понравились размеры, цена и дополнительное использование в виде датчика температуры (сами часы в кубике не точные, потому бесполезные). На том же Aliexpress.com можно найти и другие варианты:

  • пирамида-часы;
  • просто кубик с подсветкой.

Учитывая сегодняшние возможности, можно и на 3D принтере что-то напечатать. Да и просто использовать рамку с фото.

Пишем код

Тут все просто, читаем в цикле COM-порт. При чтении значения 1 – включаем зеленый светодиод, остальные гасим. При получении 2 - включаем красный светодиод, остальные гасим. При получении 3 - включаем синий светодиод, остальные гасим.


int inByte = 0; int LED_R = 5;//красный пин int LED_G = 6;//зеленый пин int LED_B = 9;//синий пин int RV = 255; // яркость int GV = 255;// яркость int BV = 255;// яркость void setup() { Serial.begin(9600); pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); } void loop() { if (Serial.available() > 0) { delay(100); inByte = Serial.read(); if (inByte == "2") { // RU analogWrite(LED_R, RV); analogWrite(LED_G, 0); analogWrite(LED_B, 0); } else if (inByte == "1") { // EN analogWrite(LED_R, 0); analogWrite(LED_G, GV); analogWrite(LED_B, 0); } else if (inByte == "3") { //UA analogWrite(LED_R, 0); analogWrite(LED_G, 0); analogWrite(LED_B, BV); } } }

Паяем

Еще проще. Общий пин соединяем с землей (GND). Остальные через резистор 220 Ом с соответствующими пинами, как показано на рисунке.



Устанавливаем в куб, предварительно вырезав отверстие под разъем.


Программная часть

Тут немного сложней. При изменении языка нужно посылать на COM-порт соответствующее значение (1 или 2 или 3).


Для не программистов ниже есть ссылка на программу под Windows, которая это делает. Единственное, в программе нужно указать COM-порт, к которому подключена Arduino. Это не сложно узнать в диспетчере устройств. Программа после запуска сворачивается в трей, но ее нужно добавить в автозапуск при старте Windows.



Программа написана на Delphi, на данный момент не имеет:

  • Функции автоматического поиска порта. Это легко сделать, Arduino при старте будет посылать некий код, программа будет перебирать порты и остановиться в случае его прочтения.
  • Выбора языков. Программа работает только с русским, английским и украинским. Можно сделать возможность указывать по кодам любой язык.
  • Автозапуска программы.

Результат


Интересно, что в Windows есть некоторая задержка после нажатия комбинации переключения языка. При этом кубик срабатывает быстрее, чем индикатор, что очень удобно. Больше года использую данную систему и уже не могу представить, как без этого работать.



Если пост понравится, доработаю программу, добавив описанный выше недостающий функционал.

Теги: Добавить метки