Pull to refresh

Comments 116

А еще лучше подсоединить к ардуино акселерометр и переворачивая кубик изменять раскладку. Шесть раскладок хватит почти для всех.
Была такая идея, но это just for fun, очень не удобный способ переключения. А вообще собирался вместо USB использовать Bluetooth с автономным питанием, тогда кубик можно ставить где угодно. Но подумал, что это не очень экологично да и плюс еще заряжать иногда нужно было бы.
Bluetooth с автономным питанием это хорошая идея. В большинстве акселерометров есть прерывание на переворот, можно его ловить и передавать в комп, дублируя вспышкой определенного цвета, и на верхнюю грань нанести название раскладки. Посмотрел, и ясно какая раскладка включена.
не получается, когда при переключении окна язык сменился. переварачивать кубик?
Для этого нужна отдельная робо-рука)
UFO just landed and posted this here
>Как известно, люди делятся на две категории: на тех, кто переключает раскладку с помощью Ctrl+Shift и тех, кто использует Alt+Shift.
Как однобоко, а как же те кто переключают с помощью Caps Lock, например?
У тех как индикатор в основном работает лампочка Caps Lock и проблем не возникает совсем. А кубик красивый, да.
Это удобно, когда 2 языка. У моего знакомого 4 языка в системе (английский, русский, украинский, иврит). За счет RGB светодиода можно сделать в кубике и 10 четко отличимых цветов.
За счёт лампочек можно 8, если лампочек 3
Можно ещё мигать :-)

Редко, но встречаются клавиатуры без лампочек. Например на моей, A4Tech, ни для одной из клавиш (Caps, Num и Scroll Lock) их нет. Вместо них вот такое всплывающее окно:

Ну как редко — практически любая беспроводная клавиатура.

Много лет пользуюсь Пунто и раскладку переключаю правым ctrl, на всех системах дома и на работе.
Пунто пробовал, но когда пишешь код, он не всегда корректно переключает.
Это частично решается через исключения. А вообще, Пунто очень полезная штука!
Зачем оставлять Punto на автопереключение раскладки? Ставим Punto, вырубаем автопереключение. Тычем текст, видем, что накосячили, нажимаем PrtScr и радуемся жизни.
А как увидеть, что накосячил при вводе пароля? В принципе, каждому свое, я не спорю, что Punto полезный инструмент.
а для паролей есть кипасс
скорее, Pause/Break, если по умолчанию
Никогда не пользовался его автоматикой, соответственно и проблем таких никогда не было.
точно так же делал много лет, пока не пересел на мак. еле отвык :/
Я почти 20 лет работаю на маках, поставил его с макос сразу, как только его портировали. Соответственно — и на работе тоже: один правый контрол.
хм… даже не подумал чего-то что его портировали. спасибо.
вот только там теперь нет различия правый/левый, переключается по любому из них
И правда нет, даже не задумывался. Но мне проще, только две раскладки.
Да, фраза не претендует на научность. Но, чего греха таить, обыграв этот мем, планировалось собрать перепись «альтернативщиков».
А как же сторонники Андроида с их Ctrl + пробел?
Идея переключения вообще убога.
Лучше включать нужные раскладки — например,
Caps — английская
Shift+Caps — русская
Ctrl+Caps — третья
Alt+Caps — четвёртая
Ctrl+Shift+Caps — работает как оригинальный Caps

С одной стороны, в Linux здорово то, что куда больше возможностей для выбора клавиш переключения. С другой, в Linux переключение действует на уровне ядра, а не на уровне приложения, что даёт много неочевидных проблем
Бесспорно, но что делать, когда у каждого приложения свой язык? Переключился на приложения и каждый раз включать раскладку N, даже если там уже стоит N или каждый раз смотреть на иконку, какой там язык?
> в Linux переключение действует на уровне ядра, а не на уровне приложения, что даёт много неочевидных проблем
А не расскажете, каких? Любопытно)
Это был идеальный вариант, но последних версиях убунты такую возможность удалили :(
Идея переключения вообще убога.

Вообще идея раскладок как режимов убога (см. книгу Джеффа Раскина).
А ещё есть те, кто использует два Shift-a, но это совсем редкость. А опытные админы, чтобы не терять время, сначала нажимают Ctrl+Shift, а затем сразу Alt+Shift.
я думал, это моё ноу-хау)
UFO just landed and posted this here
Лет пять использую комбинации
Ctr+Shift+8 — Язык1
Ctr+Shift+9 — Язык2
Ctr+Shift+0 — Язык3
Главное перед началом набора текста сказать себя на каком языке набираешь.
На раскладку не смотрю вообще.
Пробовал устанавливать комбинацию для каждого языка, не прижилось.

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

И, главное, если открыто много программ, то при переключении приложений (Alt+TAB) с таким способом придется нажимать комбинацию для Языка1, даже если в открывшемся приложении этот язык уже выставлен. Или, снова таки, смотреть ни индикатор.

Я использую Ctrl-Shift, при этом не приходится делать ни каких лишних движений, чтобы узнать, на какой язык переключился. Цвет кубика видно периферийным зрением. Мозг настолько адаптировался, что все это уже работает на полном автомате.
Аналогично. Но у меня комбинации, которые нажимаются одной рукой:
Alt+Shift+1
Alt+Shift+2
Alt+Shift+3
Тайком устанавливаю их на всех компьютерах, на которых доводится работать.
UFO just landed and posted this here
Есть еще много способов переключения раскладки, смотрите немного шире привычного мира Windows. Многие, например, используют Caps Lock.
Вопрос не в способе переключения (в Windows, кстати, тоже Caps Lock можно использовать). Вопрос в отображении текущего языка приложения. При чем кубик будет работать в любой ОС, в которой установится драйвер виртуального COM-порта Arduino.
Вообще, есть много уже реализованных идей на основе Arduino:

  • WEB-управление кондиционером или другим устройством (ESP8266+Drupal);
  • офисная сигнализация с WEB-управлением (Arduino + Ethernet Shield + Drupal);
  • сбор статистики с теплицы (ESP8266+датчики тока, температуры, влажности, давления + Drupal).

Есть нереализованные идеи:

  • контроль интернет-провайдеров в виде цифровой индикации пинга (Arduino + Ethernet Shield + LED матрица);
  • этот же кубик доделать, сделав индикацию сообщений (с почты о важных письмах или новых комментариев на сайте) в виде мигающею индикации.

Вопрос только, на сколько эта тематика востребована на гиктаймсе.

Про ESP и её связку с CMS интересно.
Единственный вопрос, который мучает лично меня — НУ ПОЧЕМУ DRUPAAAL&^%&!%?

Нет, серьёзно, есть же более подходящие варианты.
В холиварах типа какая лучше CMS или язык программирования в частных проектах (для себя) всегда выигрывает вариант «Что лучше знаю, на том и пишу».

Я с Drupal давно работаю, от него в данном случае нужно только ядро, респонсивная тема (Bootstrap + less), удобное подключение Highcharts для рисования графиков. Дальше свой модуль и удобное API в Drupal для работы с формами и базой (чтобы запросы с Arduino записывать в свою таблицу). И все, WEB-интерфейс с авторизацией и правами готов.

Ясно, что все можно и без CMS сделать, как и без Arduino. Но я не настолько люблю паять, чтобы свои платы травить. Если делать все с нуля, по ходу и желание закончить проект пропадет. Тут главное, после того, как идея проекта возникла, быстро его реализовать. Как раз кирпичики типа Arduino и CMS позволяют в работе сосредоточиться больше на самом проекте.

А Вы про какие варианты имеете ввиду? Какая-то CMS/CMF или другое что-то?
Ну, не соглашусь. Если я вижу, что для моих целей CMS, которую я хорошо знаю — избыточна, я скорее всё-таки потрачу время на изучение аналога, либо вообще попытаюсь велосипед написать. Хотя это лично мой подход.

Вообще я имел ввиду просто другую CMS, менее громоздкую. Что-нибудь в духе Textolite, например.
UFO just landed and posted this here
Ух ты, таки да, сам работаю на 7-ке и 10-ке и даже не заметил. Кубик то на 7-ке стоит.
UFO just landed and posted this here
Посмотрел, сейчас тоже в 10-ке настраивается.
И сейчас можно. В Win 8.1: Панель управления — Язык — Дополнительные параметры — Переключение методов ввода — метод ввода для каждого приложения
UFO just landed and posted this here

У меня при включении русского загорается светодиод "ScrollLock" на клаве,
при английском — выключается. Вдобавок флаг меняется в трее возле часиков.


Но идея с кубиком тоже неплоха, да.

В Linux Mint настроил аналогично, причем штатными средствами. В моем первом дистрибутиве ASP Linux 7.3 так по умолчанию было. Мне понравилось. Теперь всегда так настраиваю. Надо будет поискать, как в Windows подобное сделать можно.

Насколько помню, делал с помощь какой-то утилитки. Но возникала проблема с некоторыми программами. Например, в Excel невозможно было пользоваться стрелками при включенном русском языке — вместо перемещения в соседнюю ячейку, сдвигался весь вид. Помучился несколько месяцев, затем перешёл на Caps Lock (объединённая раскладка клавиатуры, а не спец. утилита).
У меня на каждом окне сверху справа возле кнопок флажок раскладки отображается :) Ещё удобнее (особенно когда в разных окнах разная раскладка). Xxkb сильно упрощает этим жизнь :)
Девайс вроде кажется удобным(мое мнение). Я например не владею мастерством слепого набора текста и посматриваю на клавиатуру, как раз световая сигнализация может мне помочь узнать на какой я сейчас раскладке. Но… Я работаю в последнее время только на лэптопах и тут для меня лишний провод и девайс, в автозагрузке болтается прога работающая с VCP Arduino. К тому же подсветка может отвлекать, а порой и раздражать. Как вариант, реализовать вежливую(интим)-подсветку по датчику освещенности, ну и HC05 можно приконектить, а устройство сделать в виде какой-нить прищепки на монитор с семисегментным индикатором (меня понесло =)).
HC05 можно, даже программу не нужно будет переписывать, он в системе как COM-порт виден. По поводу подсветка может раздражать — можно настроить под себя яркость каждого светодиода и даже менять яркость в зависимости от освещенности (добавив датчик освещенности). Но по опыту года использования скажу, что не раздражает абсолютно. Это на видео оно кажется ярко, на самом деле в глаза не светит, воспринимается просто как цветной кубик.
Ну, конечно, пользуюсь тремя языками под Mint. Но мне индикатора «Scroll Lock» — за глаза. Если где-то в «автоматическом» чет-нечет ошибся — просто вместо " ї " полезут " ъ ".
if (Serial.available() > 0) {
    delay(100);
    inByte = Serial.read();

Зачем здесь задержка?

    if (inByte == '2') { // RU
//...
    } else if (inByte == '1') { // EN
//...
    } else if (inByte == '3') { //UA
//...
    }

Для подобных вещей в C и C++ существует switch
Давно это писалось, видимо был использован какой-то пример чтения порта, в данном случае не критично.
Да, switch красивее будет.
А если в С есть switch, зачем там тогда конструкция else if? :)
UFO just landed and posted this here
switch работает только на совпадение с целыми константами, в if может быть любое выражение, значение которого может быть приведено к логическому true или false. Как таковой конструкции else if нету, наоборот, else является необязательной частью if. В последнем утверждении Вы можете убедиться расставив в цепочке с else if операторные скобки. Приведенная выше конструкция
if (inByte == '2') { // RU
//...
    } else if (inByte == '1') { // EN
//...
    } else if (inByte == '3') { //UA
//...
    }

эквивалентена
if (inByte == '2') { // RU
//...
} else {
  if (inByte == '1') { // EN
//...
  } else {
    if (inByte == '3') { //UA
//...
    }
  }
}

По поводу переключения. Я сейчас использую Punto Switcher в ручном режиме: английский — LCtrl, русский — RCtrl. Так и хочется написать свою программу, чтобы работала с тремя языками — правда, вечный облом.
Функции автоматического поиска порта. Это легко сделать, Arduino при старте будет посылать некий код, программа будет перебирать порты и остановиться в случае его прочтения.

А если у меня в ком-порт гильотина или другой важный прибор без crc в протоколе обмена подключён? Плохой способ, проще получить из ОС список портов и их имена.
Список портов и сейчас получаю. Т.е., если в системе только один порт — ничего и искать не нужно, в списке будет только один порт. По поводу имен — хорошая идея. А зачем Вам гильотина на компе? Или это не то, о чем я подумал? :-)
Пару лет назад сдался и перешел на дефолтный Альт-Шифт. А так с девяностолохматого года правоверный досовский Кантрл-Шифт был.
Но бог с ним. Десятка неимоверно бесит русским по-умолчанию. В 7 такого не было, чтобы я по три раза пароли набирал русским языком, переключив на английский. Что там творится — не знаю.

Поэтому в тему бы яркий индикатор в углу с текущей раскладкой. Софтовый.

А путнтосвитчер до сих пор переводит точку в «ю». Как можно не допилить алгоритмы, имея под рукой русскую клаву?
Софтофый, чтобы был заметен периферийным зрением, нужно большим делать, а это потеря полезной части экрана. Путнтосвитчер мне из-за таких глюков и не понравился.
Софтофый, чтобы был заметен периферийным зрением, нужно большим делать

Какой-нибудь яркий квадрат/круг поверх окон, до первого движения мышой или нажатия клавиши, до первой активности короче, чтобы не мешал.
А так да, со стандартными индикаторами проблема.
Десятка неимоверно бесит русским по-умолчанию.

Это решаемо. Клик по индикатору раскладки ➔ Настройки языка ➔ Дополнительные параметры даты и времени ➔ Изменение способа ввода
Здесь выстраиваем предпочтительный порядок переключения языков, самый первый — язык по умолчанию для только что открытого приложения. Устанавливаем в качестве первого английский.

Тут же жмём ссылку Дополнительные параметры ➔ Применить языковые параметры к экрану приветствия, системным учетным записям и новым учетным записям пользователей ➔ Вкладка «Дополнительно», жмём «Копировать параметры», подтверждаем запрос UAC.

Получаем английский по умолчанию, как для приложений так и запросов UAC, экрана входа — можно нормально набирать пароли, ничего не переключая. Бонусом, в эти экраны копируется метод переключения раскладки, больше никакого раздражения от того, что в системе установлен Ctrl+Shift, а системные диалоги вроде UAC требуют Alt+Shift.
А для пингвина приложение есть/будет?
Я точно не буду писать — больше по винде.
Здравствуйте. А исходник программы не покажите?
Дайте в личку e-mail, отправлю.
А есть такое решение чтобы раскладка высвечивалась прямо рядом с курсором?
А то мне все эти индикаторы внизу на панели или диоды на клавиатуре не помогают, потому что я на курсор смотрю и не обращаю внимания на них – мне хоть завешай всё вокруг гигантскими световыми баннерами с языками я всё равно буду ошибаться иногда.
Было бы удобно если бы в верхней части обычного курсора был маленький флажок или код раскладки (на MacOS).
habrahabr.ru/post/138940 (под Windows, вдруг кому будет полезно) — с кодом, который можно изменить под свои требования.
Использовать программы, которые переключают темы Windows – не каждому понравятся разноцветные панель задач или окна.

А вот такой вариант я искал, и что-то не нашёл, буду благодарен, если кто-нибудь подскажет.

Это очень просто ищется. И, конечно же, на современной ОС (10) не работает.

На Windows настроил через Punto по левому/правому Ctrl (один — русский, второй — английский).
на MacOS в High Sierra появилась возможность по капслоку переключать.
У меня клавиша ctrl переключает раскладку, клавиша CapsLk работает как контрол и светодиод капслока индицирует текущую раскладку(горит — рус, не горит — анг)

Использую LoloSwitcher. На LShift стоит US, на RShift — RU, на AltGr — UA. Перед вводом в определённой раскладке просто включаю её, не учитывая текущую. Переключение настолько удобное и ненавязчивое, что я уже даже знаки пунктуации, которые есть и на кириллических раскладках, ввожу в английской.

Интересно, что в Windows есть некоторая задержка после нажатия комбинации переключения языка

Как же я ненавижу эту долбанную задержку. Причём она есть не только в винде, но и в убунте. Уже не знаю как там какой приоритет кому задать, чтобы этот переключатель работал как нужно.
p.s. Извините, накипело.
Я вот тоже всегда удивлялся этой задержке. В кубике выставил 100 миллисекунд — вполне комфортно, хотя можно было и меньше поставить.
Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали). Т.е, если сейчас активен Word c английской раскладкой, то, переключившись в браузер, там может быть другая раскладка.

Не совсем так, система позволяет выбирать — использовать отдельную раскладку в каждой программе или глобальную, делается это в Панель управления\Часы, язык и регион\Язык\Дополнительные параметры\Переключение методов ввода (Win10).
Да, выше уже об этом написано, я не знал, что в 10-ке это можно.

Можно оставить всего лишь один резистор — между катодом светодиода и пином GND.

В данном случае можно, так как в примере используются или R или G или B. Но, если нужно будет добавить еще несколько языков (добавив при этом, например, желтый или фиолетовый цвет светодиода), то тогда не получим одинаковую яркость по всем цветам.
Согласен, тогда сопротивления придется подбирать под каждый светодиод эмпирически.
Не обязательно раскладку выделять посредством зрительной информации. Как вариант использовать разный звук нажатий клавиш для разных раскладок. Эта опция есть в xneur (видимо и в punto).
Лично меня такие звуки отвлекают. А если еще в офисе несколько рабочих мест? В этой какофонии никто ничего не разберет.
Прошу прощения, а зачем нужен микроконтроллер?

По спецификации RS-232 логическая еденица это +3...15В, логический ноль это -3...15В (относительно земли). Значения токов не помню, но для зажигания светодиода хватает (причем с конкретным запасом). У нас есть два выхода, которые «статичны» — DTR и RTS. Таким образом подключив (через резистор) два встречно включенных светодиода (допустим красный и зеленый) к контакту «DTR» и «земле» мы получим индикацию двух языков — русский и английский. Ну а если кому мало — есть еще RTS.

Еще раз прошу прощения, писал из любви в искусству :-)
UFO just landed and posted this here
Ну так все равно на ноутбуке COM-порта нет, напрямую не получится.

А так запас на будущее, дальше можно:

  • подключить датчик освещенности для регулирования яркости светодиодов при разной освещенности;
  • оповещения о событиях миганием разных цветов (почта, комментарии и т.д.);
  • обратная связь: нажал на кубик — экран заблокировался (эмуляция WIN+L);
  • и другое.

Делалось же из любви к Arduino :-)
Ох, слона то я и не заметил :-) Сам весь вечер удивлялся — неужели com-порт дожил до наших дней… Сорри, был невнимателен.
Я бы сделал на sn74hc595n или sn74hc164 (10 центов). Если нужен ещё ШИМ, то NE555 (5 центов). Не то, что бы ардуинка за 2,5 доллара напрягает бюджет, просто зажигать светодиодик процессором…
Но это только мои закидоны, понимаю.
С 595 я погорячился, хотя присобачив триггер к ней, можно даже и справиться двумя проводами. А вот sn74hc164 спокойно сейчас мигает мне RGB лентой семью цветами на двух проводах (от ардуинки, конечно, но точно так же это будет работать от USB).
Кажется, я промахнулся. Похоже, нужно подключать HID устройство или писать свой драйвер, чтобы просто дёргать USB D+ D-.
Прошу прощения.
что бы убрать задержку переключения в Windows надо отредактировать
HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response\DelayBeforeAcceptance
выставив 50 мс например
Супер, нужно будет попробовать. Это для любой винды?
UFO just landed and posted this here

Модернизируйте программку, чтобы слала раскладку на вайфай лампочки по сети

одна раскладка - одна лампа

другая раскладка - другая лампа

(или другой цвет одной LED лампы)

Sign up to leave a comment.

Articles

Change theme settings