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

Комментарии 88

Спасибо, во время работы в Windows приходилось делать так же. Может весьма пригодится, если опять за Windows засяду, привычка жать caps lock уже на уровне рефлексов.
Эх, когда-же кто-нибудь сделает программу, которая позволит переключать раскладку по alt+пробел и при этом не вызывать меню окна?
Даже Punto Switcher не ловит? Тогда скорее всего дело пропащее :(
Сейчас проверил, keyla вроде меню окна не вызывает. Разве что после нажатия Alt-пробел в меню приложения иногда (например, в проводнике) показываются подчёркивания, но это несущественно, мне кажется (и исправляется ещё двумя нажатиями Alt). При неправильном нажатии (нажал Alt — нажал пробел — отпустил Alt — отпустил пробел) да, фокус переводится в меню приложения, но это проблема пользователя, а не переключателя :) Больше недостатков не заметил. Напишите о проблеме поподробнее.
Чем Вам стандартные средства Windows — Alt(Ctrl)+Shift не угодили?
Стандартные сочетания неудобны вот чем:
— Alt+Shift — при быстром неаккуратном переключении (когда Alt отпускается раньше, чем Shift), главное меню приложения получает фокус. Происходит это очень неожиданно и сбивает с толку.
— Ctrl+Shift — мешает при наборе текста (чаще всего кода программы) с использаванием перемешения по словам. Например, для выделения двух-трех предыдущих слов, нужно зажать Ctrl+Shift и три-четыре раза нажать клавишу «влево». При этом частенько переключается раскладка клавиатуры.
А ещё их двумя пальцами нажимать надо.
Ctrl+Shift можно одним! =)
Клавишу [Shift] и так заколебёшься нажимать для ввода самого распространённого символа в русском тексте — запятой.
Надоело.
Отличная прога, долго искал вариант под винду…
Просили предложения: я использую две основные раскладки: рус и англ, но время от времени нужна и укр. Так вот все не удобство в том, что при трех установленных раскладках они переключаются циклически, и редкоиспользуемый укр. как кость в горле. Приходится подключать раскладку, когда она нужна, и потом сразу же отключать, что б не мешала.

Хотелось бы увидеть такую возможность: список основных раскладок, которые переключаются циклически (в моем случае рус и англ) и дополнительные раскладки, которые переключаются только спец. комбинациями клавиш (в моем случае укр).

p.s. Да, в Windows можно назначить отдельное сочетание на КАЖДУЮ раскладку, но согласитесь, что комбинация ALT+SHIFT+1, например, не очень удобна для каждодневного использования :(
Упс :)
Я пользуюсь совмещенной Рус-Укр Раскладкой, в качестве бонуса — символы из раскладки Бирмана.
Для Ubuntu code.google.com/p/rukbi/
Для Windows habrahabr.ru/blogs/typography/42990/
Спасибо вам огромное! Вы гений! Я счастлив!

p.s. Отблагодарил вас должным образом!
Спасибо за предложение. Ограничение списка раскладок, которые будут переключаться в цикле, реализую.
Реализовано в версии 0.1.5
Спасибо, но вариант от yuretsz the best!
Я на всякий случае написал, вдруг всё-таки понадобится :)
Feature Request:
Возможность ограничить список раскладок, которые будут переключаться в цикле.
Например, мне обычно нужны только английский и русский, и по отдельному хоткею хочется переключаться на японский.
Спасибо за предложение. Реализую.
Реализовано в версии 0.1.5
Посмотрите в сторону lswitch (http://haali.cs.msu.ru/winutils/).
Единственное неудобство для мышеюзеров — в автозагрузку нужно прописывать вручную.
Я ей пользовался, но перешёл на caps-min отсюда: yurez.narod.ru/capslang.html
С lswitch редко, но включался капслок, а выключить его было нельзя (Shift+CapsLock не работал).
С caps-min работает Shift+CapsLock, поэтому такой проблемы нет. Рекоммендую :)
Спасибо, гляну. Пока не актуально, но мало ли что :)
Программа lswitch удобна, но не имеет всех возможностей keyla. Кстати, список известных мне переключателей клавиатуры я собрал на отдельной странице сайта keyla.
Пунто — громоздкая программа??
ещё и косячная
напишите в чём косяк
не везде и не всегда работает (в пределах одной системы), хз от чего зависит
Маленький вопрос, точнее дополнение, лучше бы, если бы вы добавили в статье:
1. Сколько использует ресурсов программа.
2. Использует ли недокументированные возможности.
О ресурсах:
место на диске — 188 Кб
в памяти занимает 2 Мб

Недокументированные возможности на данный момент не используются. Но их использовать придётся, если пользователи потребуют от keyla правильного определения раскладки в консольных приложениях (командной строке, например).
реквестирую следующие фичи:
* переключение раскладки последнего «сеанса ввода» по break
* переключение раскладки выделенного текста по shift+break
* автозамена текста по ещё какой-нибудь спец клавише с возможеностью быстрого переключения между списками автозамен по спец клавише.
Для первых двух пунктов, похоже, можно использовать программу Snoop, упомянутую ниже.

Третий пункт полезен, но такой функционал для переключателя раскладок мне кажется лишним. В общем, я как-нибудь посмотрю, есть ли существующие программы для этого, и если нет, обдумаю уже реализацию.
для переключалки — конечно, но блин, если на каждую мелочь отдельную программу запускать — это ж на всех памяти не напасёшься…
Да, есть такой момент. И иногда сложно найти компромисс.

Если примусь-таки за реализацию, добавлю её в переключалку, так и быть :)
Попробуйте вынести все функции своей программы в отдельные библиотеки, которые подключаются в зависимости от настроек. В таком случае, программа будет занимать в памяти ровно столько, сколько необходимо, и никто не скажет, что в ней полно ненужных функций.
(Ведь динамические библиотеки для того и нужны? Или я ошибаюсь?)
Ещё насчёт третьего пункта. Он очень просто реализуется с помощью AutoHotKey (пример скрипта здесь). Но при этом замена производится автоматически, по пробелу, нажатию Enter или клавиши Tab.

Кстати, что ты подразумеваешь под переключением между списками автозамен?
когда я набираю текст — неплохо бы иметь способ быстрого типографирования
когда я пишу код на яваскрипте — наплохо бы иметь возможность, например, funс разворачивать в function(){}
когда я пишу хтмл…
погдя я чатюсь…
когда я открываю один из браузеров…
когда я в консоли…

и по пробелу мне такая самодеятельность совсем не нужна.
Понятно. Спасибо за пояснение.
мне кажется самая удобная тулза для переключения/работы с раскладкам это которая подсвечивает текущую рядом с текстовым курсором… нагрузки минимум, пользы максимум, не дрочит заставляя нажимать горячии чтобы после набора вернуть в «как надо» и в другой системе не мешает своим отсутвием
Среди всего этого разнообразия прог-переключателей раскладок по Капс-лок все жду прогу, которая бы имела возможность переконвертировать набранные глядя на клавиатуру (НЕ «слепым» методом) с англ. клавы на русскую и наоборот. Я имею ввиду РУЧНОЙ способ конвертирования, а не автоматический.
Только не надо говорить, что надо учиться печатать вслепую — это в общем то и не столько для меня нужно, сколько для моей девушки.
Да, Пунто-Свитчер тормозной и ресурсо-прожорливый, но пока только он это и умеет делать, хоть и не без некоторых кривостей.
А так — ну зачем плодить туеву хучу программ с абсолютно одинаковыми функциональными возможностями???
А, вот: еще желательно было бы сделать смену регистра введенного (+выделенного текста).
Arum Switcher
Ручной и неприхотливый. И регистр выделенного текста тоже можно поменять.
Жду бесплатный аналог. :/
Проект мёртв, увы.
И бажен. Самый неприятный баг, на мой взгляд, неработоспособность с GTK-софтом.
Жду бесплатный безбажный аналог тогда. ;)
Из GTK-софта у меня только… Gimp. Которому я всё-равно предпочитаю Paint.NET.
Да и проблеммы с отдельным софтом не заставят отказаться от общего удобства.
Кстати, когда версия 3.0 вышла, и когда его уже успели похоронить?
Не в курсе когда выщла. Я просто с год-полтора назад пытался найти где его купить или на бартер договориться (одно время было на сайте автора такое предложение), но увы. Оф. сайт не обновлялся к тому времени уже несколько лет. Если проэкт воскрес, то рад. Профиксить багу с GTK и очень нужная вещь в итоге.
Я думаю вам стоит взглянуть на программу Snoop, упомянутую ниже.
Под Windows есть такая замечательная бесплатная программ lswitch.exe.
Команда в автозагрузке: lswitch.exe 20 (переключение клавиатуры по Caps Lock).

В вашей программе можно было бы сделать усовершенствование, такое как подмена символов при вводе текста.

Объясню.
Стандартаная клавиатура в русском регистре позволяет вводить точку "." одним нажатием. Но чтобы ввести запятую ",", приходится нажать две клавиши [Shift] и [.]. Реально создать такое правило, чтобы действие было наоборот — так как запятые вводятся гораздо чаще точек, число нажатий клавиши [Shift] при этом для русского текста могло бы быть намного меньше.
AutoHotKey решает, но это будет как из пушки по воробьям :)
Идея насчёт замены символов мне нравится. Но может её логично будет реализовать в отдельной программе, а не добавлять такой функционал в переключатель раскладок?
Не согласен.
Преключатель раскладок и есть такой универсальный инструмент по крайней мере для Windows (но не в Unix), в котором можно интегрировать необходимые функции как по непосредственному переключению, так и по контролю ввода.
Автопереключение — завершающий шаг.
На днях взглянул на возможности AutoHotKey. Похоже, pietrovich прав, AutoHotKey для этой задачи очень удобен. Если бы мне захотелось реализовать подмену символов для себя, я безусловно написал бы лучше скрипт на AutoHotKey (c прописанными прямо в нём «маппингами» клавиш), чем добавлять такой функционал keyla и заниматься кодированием пользовательского интерфейса…
Что за мания такая — переделывать функции для функциональных кнопок? Может скажу грубо, но… Если руки-крюки и промахиваетесь по кнопкам (я имею в виду стандартное переключение языка) — тут уже не программа или ОС виновны.
А кто сказал вам, что есть какие-то стандарты на способ переключения раскладки? Их нет. А уж «вшивать намертво» способ переключения — это как раз руки-крюки софтописателей. Мне вот вообще на сегодня ничего удобней CapsLock с led-подсветкой не встречалось. Но если в lin это сделать элементарно, то в win нужен дополнительный софт, легковесных и нормально работающих представителей которого я пока не встречал. А перепробовано было много всего.
Как по вашему, почему CapsLock называется именно CapsLock, а не Lang, например?
А почему подавляющее большинство клавиатур с qwerty-раскладкой?
Почему в русской раскладке запятая набирается с шифом?
Почему знак доллара можно набрать по shift+7, а знак евро (на недавно выпущенных клавиатурах стали пихать на нумпад), йены, фунта стерлингов нельзя?

Мне CapsLock не нужен в принципе. И очень многим людям тоже. А вот полезную функцию на удобно расположенную кнопку грех не повесить. А что там написано — дело десятое. Вот у меня на клавишах Super и Meta почему-то майкрософтовские флажки нарисованы. Вот интересно: почему?
>А почему подавляющее большинство клавиатур с qwerty-раскладкой?

Для того, чтобы было привычно. Откуда это пошло, надеюсь, знаете.

По поводу всего остального… У меня такая мысль возникла — такие как вы и написали 1С. Не в обиду. Но доводы, мягко говоря, глупые.
Вообще я пытался намекнуть, что есть такая штука «традиция». Традиции стандартами не являются, следовать им не обязательно. А доводы нормальные. Глупые доводы это: «раз так решили в ms, то не согласиться с этим могут только маньяки». Не маньяк. Не согласен. Мне переключение по ctrl/alt+shift представляется неудобным, а невозможность это изменить — крайне неудобным.
Вы не поверите — даже стандартам следовать не обязательно, что происходило и происходит.

Про 1С я не зра сказал — задумайтесь ;).
Между «не обязательно» и «не следуют» пропасть. С 1С-Бухгалтерия (вы ведь этот продукт поминали?) не общался и, надеюсь, не придётся. К чему ваша фраза — не очень понятно. Поводов пнуть сей продукт видел в сети предостаточно. За какой именно зацепились вы — не знаю.
Что до переключения по CapsLock — задумайтесь, почему этот способ так популярен в *nix системах.
Вообще доводы про «стандарты переключения раскладки» мне смешны.
Ужель не слышали про дефолтные Shift+Shift, Command+Space?
Есть откровенно неудобные, например Shift+Ctrl+K. Есть терпимые, такие как Ctrl+Shift/Alt+Shift. А есть удобные: CapsLock и индикация led`ом. Причём вот такой рейтинг удобства у каждого пользователя свой. А значит самое удобное переключение раскладки то, которое поставил сам пользователь. К сожалению, не все системы ставят удобство пользователей выше дурости собственных сотрудников.
Кстати, насчёт отображения раскладки на индикаторах клавиатуры. Есть планы по реализации этого, но пока возникают технические трудности. Сейчас разбираюсь.
давайте представим…

у вас три(и это не так уж и много) раскладки: RU, EN, UA (обычная практика для жителя украины)

далее — вы, скажем, верстальщик и вам приходится периодически переключаться между двумя раскладками RU — текст, EN -теги.

при этом вас постоянно отвлекают… в аську стучатся, спрашиваю что-то…

сколько времени вам нужно чтобы сообразить какая раскладка включена и переключиться на нужную?
посмотреть в угол экрана. оценить расклад и с EN на RU через UA в два нажатия Ctrl+Shift переключиться!?
а ничего, что при работе в фотошопе вам приходится частенько нажимать Ctrl+Shift чтобы отзумиться при кропе и при этом раскладка меняется? а старенький 7-й фотошоп при активной «не-EN» раскладке перестает реагировать на шорткаты…

не проще-ли повесить EN на однократное нажатие левого Ctrl, RU на правый, а UA еще на что-нибудь и не думать КАК переключиться а просто нажимать один раз левый Ctrl и шпарить теги, а перед текстом один раз по правому?

и вы всё еще считаете Ctrl+Shift идеальным способом переключения?!

не человек должен подстраиваться под компьютер, а комп под человека!

З.Ы.: много лет назад, когда работал в РА и приходилось очень много работать в Corel Draw у меня только моих персональных шорткатов было за сотню. и я был признателен разработчикам Corel что они позволяли мне их настраивать как угодно, а не как Macromedia — «этот тип команд обязательно с Ctrl...» и да, я их не помню головой, у меня их руки помнят… до сих пор помнят!

спасибо!
уже очень много лет пользуюсь SwitchIt! для переключения раскладок и Snoop для манипуляций с выделениями.
под XP в принципе хватает, а вот под виста иногда возникали с ними проблемы, приходится использовать Punto с немного подкрученными настройками. попробую заменить Punto на вашу программу, т.к. держать пунто только из-за возможности менять раскладки левым(en)/правым(ru) контролами как то некомильфо :)
попробовал. неудачно :(

реквестирую фичу — возможность использовать в качестве шортката для раскладки одиночные нажатия таких кнопок как Ctrl, Alt, Shift.

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

З.Ы.: многолетняя привычка, не судите строго :) со временем становится удобно, зная какая раскладка тебе понадобится в данный момент, ткнуть в ону кнопку и получить ее, независимо от того какая была активна в момент нажатия…
Спасибо за предложение. Реализую.
буду очень признателен и по мере скромных возможностей постараюсь помочь в популяризации среди друзей и знакомых :)
у ваше программы будет несомненный плюс по сравнению со SwitchIt! который поддерживает такое переключение только между парой «основных» раскладок. ваша схема привязки хоткев позволит навесить по одной раскладке на каждую кнопку, т.е. 6 штук :) конечно в повседневной жизни оно не очень-то и нужно, но когда приходится переключаться на третью начинаешь понимать как этого не хватает SwitchIt! у…
Реализовано в версии 0.1.5
Супер! Спасибо!
в ближайшее время опробую (сейчас не могу, пишу с чужого компа...)
Об «опечатке» не знал. Теперь буду всем её советовать :)

Раз вы используете SwitchIt, скажите мне, требует он всё-таки регистрацию для использования или нет?
Раз вы используете SwitchIt, скажите мне, требует он всё-таки регистрацию для использования или нет?

o_0 о чем вы!? ничего она не просит :)
правда я бы рекомендовал если и использовать то 2.5beta
под 2K и XP ведет себя прекрасно, под вистой бывают проблемы из-за UACа, засим нужно искать альтернативу

жаль что она уже 7 лет не обновляется :"(

Об «опечатке» не знал. Теперь буду всем её советовать :)

опечатка скрывает в себе массу возможностей и подводных камней :)
несомненным плюсом является возможность настраивать таблицы перекодирования, а недостатком привязанность к ScrollLock по умолчанию. видели бы вы глаза людей у которых Excel «постоянно и непрдсказуемо» меняет свое «поведение» :D
за сим рекомендовал бы перебрасывать большинство ее функций на Break, он и расположен удобнее на большинстве клавиатур и не влияет на Excel ;)
ну и как большинство старых программ работает не всегда адекватно, особенно с Visual Studio :(
Хорошо, значит о SwitchIt мне ложную информацию сообщили.

За отзывы об «опечатке» отдельное спасибо. Раз она не лишена недостатков, подумаю о своей реализации.
а вы ее попробуйте, с месяцок-другой попользуйте и сразу поймете в чем ее плюсы и минусы. должен предостеречь — программа вызывает привыкание! ;)
Vista несовместимо?
Пробовал запускать. Отказалось работать.
К сожалению, не было возможности проверить на Висте. Какая ошибка выдаётся?
Диалоговое окно после запуска:

«Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна. Дополнительные сведения содержатся в журнале событий приложений»

Событие в журнале:
Ошибка при создании контекста активации для «C:\Users\rayz\Downloads\keyla\keyla.exe». Не найдена зависимая сборка «Microsoft.VC90.CRT,processorArchitecture=»x86",publicKeyToken=«1fc8b3b9a1e18e3b»,type=«win32»,version=«9.0.21022.8»". Используйте sxstrace.exe для подробной диагностики.

Vista Business x32. Не администраторские права.
Ошибка при создании контекста активации для "...\keyla.exe". Не найдена зависимая сборка "Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"". Используйте sxstrace.exe для подробной диагностики.
Выдалась свободная минутка. Я обновил на сайте версию, попробуй ещё раз.
есть такая программка — KbdFlip, которая помимо всего прочего поддерживает «нефиксирующее» переключение раскладки т.е. CapsLock + b => «и» (очень это удобно для ввода чего-нть вроде «break и continue»)
by sabio
Согласен, полезная возможность, попробую реализовать. Надо только выкроить время.
Благодарю за программу, пользовался, пропагандировал.
Но столкнулся с проблемой — если заходить на машину по RDP/MSTSC, то увы, CAPS LOCK не переключает раскладку (даже если на оба компа ставить keyla). Punto, кстати тоже не работает таким образом.

Вы случайно не исследовали проблему? Т.е. подозреваю что проблема глобальна (не keyla-specific) и нерешаема, но может есть какой workaround?
Нет, проблему не исследовал. Готового workaround'а у меня тоже нет. Возможно, проблема связана с тем, что (1) нажатие CapsLock в любом случае обрабатывается на хост-машине и через RDP не проходит; (2) RDP игнорирует сообщения о переключении раскладки, которые посылает Windows на хост-машине или обрабатывает их каким-то специальным образом, так что keyla, запущенная на хост-машине, не может переключить раскладку внутри RDP.
А вы программу не планируете дорабатывать? 64битная версия падает под Виндовс 10, и клавишу fn тоже, хотелось бы задействовать.
Наверное уже нет. Времени на неё давно не хватает, а работы для поддержки 64-битной Windows там будет прилично.

@mrShadow Программа жива?

Вопрос в чём. На MacOS переключение капсом есть на уровне системы. И вот что там удобно:

Разовое нажатие капса - переключает язык. Лампочка капса при этом не загорается.
Визуально видно что язык переключился, а капс не включен.

Удержание капса более 1-1.5 секунд включает режим капса. Лампочка капса горит - говорит о том что реально капс включен.
Повторное нажатие снимает капс, и опять ловятся "разовые нажатия"

Возможно ли в вашей проге сделать также?

Технически я вижу это так
1. Если поймали разовое нажатие - эмулировать повторное нажатие (гасить лампочку) + переключать язык.
2. Если поймали длинное нажатие - программе ничего не делать, клава сама включает капс.
3. Если капс включен и есть короткое нажатие\длинное нажатие - снимать капс (по сути опять программе ничего не надо делать, клава снимет капс сама)

Привет! Нет, программа давно не поддерживается, лет 5 уже.

Я забросил её, когда надо было поддержать работу в 64-битной Windows и внутри 32-х, и внутри 64-битных приложений. На это я так и не нашёл времени.

Хотел порекомендовать одну консольную утилитку, но не смог найти. Впрочем, есть вероятность что она вам тоже не подойдёт (и функции, которую вы предлагаете, там нет). Да я и сам её не пробовал, просто с разработчиком мельком знаком. И помню, что он благодарил меня за решение, позаимствованное из кода keyla. Но я сейчас я не смог найти эту утилиту и вспомнить название - слишком давно это было.

Данной функции, думаю, вы не найдёте нигде. Только если брать исходники и дорабатывать самому. К сожалению, не думаю что в Windows до сих пор есть единое универсальное решение для переключения по CapsLock. Такое чувство что каждый желающий пилит что-то своё, как 10 лет назад. Так что придётся искать в интернете и смотреть, что больше подходит.

Ну и сам я-таки свыкся в итоге с Alt-Shift…

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории