20.12.2015      873      123
 

Удобная раскладка клавиатуры. Как самому создать удобную раскладку?


LayoutУдобная раскладка клавиатуры, это когда знаки препинания расположены на одних и тех же местах вне зависимости от того, какой язык включен — русский или английский. И такую раскладку можно сделать самостоятельно. Полюбуйтесь на классическую клавиатуру — в русской раскладке знак вопроса, к примеру, сидит на цифре семь, а в английской — рядом с буквой Ю. Ну, бред же! И такая ерунда творится с большинством символов. Если вы хотите внести изменения в раскладку своей клавиатуры, а то и добавить на неё кое-какие символы, эта статья для вас.

Решение уже есть

Гугление проблемы привело меня на Хабрахабр к замечательной статье «Клавиатурная раскладка «рус-лат» с совместимыми знаками препинания» за авторством Spmbt. Обязательно прочтите. Автор разработал удобнейшую раскладку клавиатуры с минимальным количеством отклонений от стандарта. Он зафиксировал кавычки, точку с запятой, двоеточие, знак вопроса, точку и запятую на их «русских местах». Теперь они и в английском режиме клавиатуры располагаются совершенно предсказуемо. Доллар, «собаку» и амперсенд автор перебросил поближе к правому шифту. Опять-таки, в русском режиме эти символы оказываются там же. Вот его идея в виде картинки:

Удобная раскладка клавиатурыСозданный автором файл раскладки прилагается к его статье, но мне захотелось кое-что изменить, и я решил создать раскладку на основе авторской идеи самостоятельно. Предложенный автором способ создания раскладки мне почему-то не понравился. Гуглил я недолго…

Программа для создания собственной раскладки

Для создания и редактирования клавиатурных раскладок разработана программа «MS Keyboard Layout Creator». Совершенно бесплатно, законно и очень торжественно я скачал её с официального сайта Microsoft (скачать MS Keyboard Layout Creator). У программы есть пара недостатков — она не переведена на русский язык и её результаты некорректно работают под Windows 10.

Итак, мы скачали, установили и запустили программу MSKLC. Чтобы не создавать раскладку совсем уж с нуля, открываем существующую в нашей системе стандартную раскладку: File→Load Existing Keyboard.

MS Keyboard Layout Creator загрузка раскладки

Откроется список всех наличествующих в системе раскладок.

MS Keyboard Layout Creator выбор раскладки для редактирования

Сначала откроем раскладку США, отредактируем её, сохраним проект и сгенерируем файл для установки раскладки.

Обратите внимание: затем потребуется сделать то же самое отдельно с раскладкой Русская.

Редактирование раскладки

Нашей будущей раскладке надо присвоить имя. Заходим в Project→Properties.

MS Keyboard Layout Creator параметры проекта

В поле Name вводим имя нашего проекта (под этим именем будет создана папка с файлами раскладки). В поле Description вводим название созданной раскладки. Именно под этим именем наша раскладка будет фигурировать в виндовском списке всех раскладок. Обязательно укажите уникальное имя для собственной раскладки, чтоб без труда найти её потом в списке.

MS Keyboard Layout Creator присвоение имени новой раскладкеВообще, эти поля программа заполняет самостоятельно, но я рекомендую ввести внятные имена, чтоб потом не запутаться в похожих названиях. Стоит отметить, что при дальнейшем редактировании вашей раскладки каждую новую редакцию раскладки приходится сохранять под новым именем файла и новым именем проекта.

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

MS Keyboard Layout Creator путь для сохранения

Чтобы присвоить клавише новое значение, кликаем на неё мышкой, и в открывшемся окошке вводим (вставляем из буфера обмена) новый символ или его код:

MS Keyboard Layout Creator изменение значения кнопки

Ставим галочку у пункта Shift и редактируем «верхние» значения клавиш.

MS Keyboard Layout Creator значение клавиши при нажатом Shift

Если в окне ввода символа нажать кнопку All, откроется окно, где данной клавише можно присвоить значения для всех комбинаций: с Shift, с правым Alt (AltGr) и с Shift+AltGr. Это гораздо удобнее.

MS Keyboard Layout Creator все значения кнопки

MS Keyboard Layout Creator окно редактирования всех значений кнопки

Так вот, в соответствии с задумкой автора мы присваиваем клавишам английской раскладки новые значения. Буквы фактически не трогаем. Просто ставим запятую, точку, знак вопроса, точку с запятой и т.д. на то же место, что и в русской раскладке. Соответственно, прежние английские значения этих кнопок переезжают на другие места. Подробнее см. на картинке. Потом надо будет привести в соответствие и русскую раскладку!

Вот какой раскладкой пользуется теперь ваш покорный слуга (картинки кликабельны):

Rones_EN Rones_ENShft
Rones_RU Rones_RUShft

Если эти раскладки полностью устраивают вас, вы можете скачать готовые проекты.

Добавление новых символов

Если в ваши планы входит не только переезд знаков препинания, но и добавление новых символов, обратите внимание на то, что в обычных раскладках никакого значения не присвоено нажатию кнопок с префиксами AltGr и AltGR+Shift. Кнопка AltGr — это правый Alt. Если такой кнопки нет на вашей клаве, её заменит комбинация Alt+Ctrl.

MS Keyboard Layout Creator AltGr

То есть, мы можем по собственному произволу присвоить каждой клавише по два дополнительных значения. Многие наверняка хотели бы привязать к клавиатуре те символы, которые нам бывают нужны, но простым способом их не ввести. Например: ©, ÷, Ω, ★, ±, €, ₽. Весьма активно используется этот клавиатурный резерв в Типографской раскладке Бирмана. Надо лишь иметь в виду, что во многих шрифтах навороченных символов просто нет. Где есть полный набор символов, так это в шрифте Arial Unicode.

Чтобы найти нужный нам символ, открываем Таблицу Unicode. В поле поиска вводим запрос, например «телефон» и получаем символы телефонного аппарата. Или вводим запрос «римские», и получаем полный комплект римских цифр. Можно скопировать в буфер обмена как сам символ, так и его код (разницы нет), и вставить в поле выбранной вами клавиши.

Таблица Unicode

В нашем примере я сделал так, чтоб при нажатии на цифру (и некоторую букву) одновременно с кнопкой AltGr выводилось римское начертание этой цифры.

MS Keyboard Layout Creator

Есть ещё одна ниша — префикс Ctrl, но присваивать значения клавишам с этим префиксом я не советую. Комбинации с Ctrl заняты под так называемые горячие клавиши (Скопировать — Ctrl+C, вставить — Ctrl+V, вырезать Ctrl+X и т.д.).

Сохранение

Внесли все изменения? Сохраняем проект: File→Save Source File As… Позже его можно будет открыть через File→Load Source File.

MS Keyboard Layout Creator сохранение проекта

Но этот файл не является действующей раскладкой. Нужно сгенерить инсталляционный пакет. Инсталляха раскладки представляет собой папку с группой файлов, где setup.exe и является установщиком. Для создания такой папки нажмите в Project→Build DLL and Setup Package.

MS Keyboard Layout Creator создание раскладки

Прога задаст пару вопросов: Создавать ли лог операции (я отвечаю «Нет») и открыть ли папку с инсталляхой в проводнике («Да»).

Установка раскладок

Чтобы установить свежеиспечённую раскладку, запустите в открывшейся папке файл Setup.exe.

Затем заходим в виндовскую Панель Управления, нажимаем «Язык и языковые стандарты», вкладка «Языки и клавиатуры», кнопка «Изменить клавиатуру…». Нажимаем «Добавить» и в открывшемся списке находим нашу раскладку. У неё будет то имя, что мы присвоили ей в графе Descriprion. Ставим галочку и нажимаем Ok.

Теперь надо бы удалить стандартные раскладки, ставшие ненужными (не беспокойтесь, стандартная раскладка не будет удалена из системы, просто она не будет использоваться при переключении клавы с одного языка на другой). Но чтобы удалить оба стандартных языка, нужно установить один из наших самодельных языков ввода для использования по умолчанию. До этого по умолчанию была установлена одна из стандартных раскладок. Пока мы не освободим её от этой ответственности, мы не сможем её удалить.

Отключение старых раскладок клавиатуры

Удаление старых версий раскладки

Клавиатурные раскладки удаляются точно так же как деинсталируются программы: ПускПанель управленияПрограммы и компоненты. В списке программ находите старую раскладку, выделяете, правой кнопкой мыши вызываете контекстное меню и нажимаете «Удалить».

Последние штрихи

Разумеется, надо бы наклеить на клавиши их новые значения. Я распечатал новые значения кнопок на самоклеющейся бумаге. Как видите, за основу была взята легендарная раскладка Бирмана. Должен обратить внимание на то, что символов «подчёркнутая 6», «подчёркнутая 9»  и «зачёркнутый ноль» в шрифтах не существует. Их я добавлял в свои любимые шрифты самостоятельно.

Наклейки на клаву под новую раскладку

С помощью программы Punto Switcher я установил переключение на русский язык по нажатию на левую кнопку Shift, а на латинский — по нажатию на правую кнопку Shift. После чего с чистой совестью наклеил на эти кнопки надписи «Рус» и «Лат» соответственно.

Возможные проблемы

Во избежание ошибок при работе программы следуйте следующим рекомендациям:

  1. Используйте пути без пробелов и кириллических букв.
  2. Нажав букву, выбирайте кнопку «All», в открывшемся меню ставьте галку «Dead Key View» и проверяйте, отсутствие галок в пунктах «Dead key?»

Раскладки наших читателей

«Выборочная» раскладка

Идея в том, чтобы все символы на клавишах оставались на своих местах, там где они и нарисованы, а выбирать их можно было бы с помошью модификаторов: Shift и AltGr (правый Alt или Alt+Ctrl). Русская раскладка остается без изменений, меняется только три клавиши в английской раскладке: VK_OEM_2 (/,?), VK_OEM_5 (\,|)и VK_7 (7, &)


Черный — это только английская.
Красный — только русская
Синий — совпадающие в английской и русской раскладках.
Зелёный — альтернативные в английской
Жёлтые — альтернативные в русской (тут я ничего не добавлял, но есть готовые, например, AltGr-8 — это новый символ деревянного ₽).

На клавише VK_OEM_2 в русской и английской раскладках стали точка и запятая (Shift), и остались альтернативно косая черта (AltGr) и знак вопроса (Shift+AltGr).

На клавише VK_OEM_5 в русской и английской раскладках стали обратная косая черта и косая черта (Shift), и осталась альтернативно вертикальная черта (AltGr). Все 3 черты собраны на одной клавише (впрочем они там и нарисованы).

Ну и самая спорная клавиша VK_7. Я выбрал вариант 7 и ? (c Shift) в английской и русской раскладках и символ & (c AltGr) альтернативно в английской раскладке.

Была еще идея вместо Shift и AltGr использовать левый и правый Shift, но я не нашел варианта как это осуществить в программе Microsoft Keyboard Layout Creator 1.4.

Раскладку можно скачать и установить отсюда : cloud.mail.ru/public/FUXZ/exB748HL6

Раскладка «JCUKEN»

Разработана нашим читателем Виталием (см. подробное описание) и призвана помочь тем, кто владеет слепым набором в русской раскладке, но не владеет набором в английской раскладке и хотел бы, чтоб латинские буквы повторяли по расположению русские буквы. Да, эта раскладка подобна достопочтенной «JCUKEN», известной многим по советским компьютерам «Искра» и «Электроника». Скачать раскладку YCUKEN.

Этим же автором разработана «обратная» раскладка — «Eng_RU». Подробности и файл для скачивания.

Rones_EN Rones_ENShft


Об авторе: Rones

Обсуждение: 123 комментария
  1. Зжравствуйте! Создал раскладку но при создании exe выдает ошибку. В чем может быть проблема!

    Ответить
    1. Rones:

      Вышлите файл раскладки на rones@ya.ru, постараюсь разобраиься.

      Ответить
  2. У меня другая проблема. Я не хочу создавать свою раскладку. У меня с компьютера исчезла русская раскладка. машинописью пользоваться не хочу. Помогите пожалуйста как вернуть на комп русскую раскладку она у меня вообще пустая.

    Ответить
    1. Rones:

      Видимо отключена поддержка русского языка. Сообщите подробнее, что значит пустая раскладка; есть ли индикатор RU?
      Я не эксплуатирую Windows новее 7 версии, так что с более новой не подскажу.

      Ответить
  3. пояснительная таблица

    Ответить
  4. И, наконец третий и на мой взгляд — наилучший вариант. Идея в том, чтобы все символы на клавишах оставались на своих местах, там где они и нарисованы, а выбирать их можно было бы с помошью модификаторов: Shift и AltGr (правый Alt или Alt+Ctrl). Русская раскладка остается без изменений, меняется только три клавиши в английской раскладке: VK_OEM_2 (/,?), VK_OEM_5 (\,|)и VK_7 (7, &)

    Черный — это только английская, красный — только русская, синий — совпадающие в английской и русской раскладках. Зеленый — альтернативные в английской, желтые — альтернативные в русской (тут я ничего не добавлял, но есть готовые, например, AltGr-8 — это новый символ деревянного ₽).

    На клавише VK_OEM_2 в русской и английской раскладках стали точка и запятая (Shift), и остались альтернативно косая черта (AltGr) и знак вопроса (Shift+AltGr).

    На клавише VK_OEM_5 в русской и английской раскладках стали обратная косая черта и косая черта (Shift), и осталась альтернативно вертикальная черта (AltGr). Все 3 черты собраны на одной клавише (впрочем они там и нарисованы).

    Ну и самая спорная клавиша VK_7. Я выбрал вариант 7 и ? (c Shift) в английской и русской раскладках и символ & (c AltGr) альтернативно в английской раскладке.

    Была еще идея вместо Shift и AltGr использовать левый и правый Shift, но я не нашел варианта как это осуществить в программе Microsoft Keyboard Layout Creator 1.4.

    Раскладку можно скачать и установить отсюда : https://cloud.mail.ru/public/FUXZ/exB748HL6

    Ответить
    1. Rones:

      Эта раскладка очень хороша для тех, кому приходится работать на множестве разных компьютеров, которые под себя не настроишь! Добавлю в статью.

      Ответить
      1. Еще упростил — до 2 клавиш. Не нравилось мне, что «?» вытеснил «&».

        На клавише VK_OEM_2 в русской и английской раскладках стали точка, запятая (Shift), и знак вопроса (AltGr). Тут все эти 3 символа и надо набирать в обеих раскладках. AltGr (правый Alt) как раз удобно расположен рядом с клавишей.

        На клавише VK_OEM_5 в русской и английской раскладках стали обратная косая черта, косая черта (Shift), и вертикальная черта (AltGr). Все 3 черты собраны на одной клавише (впрочем они там и нарисованы).

        Раскладку можно скачать и установить отсюда: https://cloud.mail.ru/public/FUXZ/exB748HL6

        Ответить
  5. Автор явно увлекся. Надо было всего лишь решить пробелму с путаницей точик и запятой в английской и русской раскладках, затронув как можно меньшее число символов.

    Я предлагаю переставить местами 4 символа в английской раскладке: «,» с «/» и «.» c «?». Это три рядом расположенных клавиши «БЮ/». Русская раскладка остается без изменений.

    Ответить
    1. Rones:

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

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

        Тоже неплохо. Буквы «Б» и «Ю» отправились в дальние страны, как недавно реабилитированная буква «Ё», зато точка и запятая на отдельных клавишах.

        Ответить
  6. Стало быть, на первой фотке печатается цифра 1, а на второй — просто End. А код клавиши один и тот же: 4f.

    Ответить
  7. Num Lock не горит.

    Ответить
  8. Более конкретный пример: переназначаю через реестр на Num 5 клавишу BackSpace. Очень удобно стирать в обе стороны находящимися рядышком (что называется, в ладони) клавишами Del и Num 5 (теперь BS), но цифры 5 уже нету.

    Ответить
    1. Rones:

      То есть, вы хотите, чтобы при активном NumLock клавиша [Num5] как обычно выдавала цифру 5, а при отключенном NumLock клавиша [Num5] выполняла функцию BackSpace?
      Это лишь предстоит выяснить.
      Пока удалось с помощью Key Manager заставить работать комбинацию Ctrl+Num5 как BackSpace. А вот Shift+Num5 переназначить почему-то не удалось. Буду разбираться.

      Ответить
      1. У вас, наверное, опыта побольше и вы должны разобраться, что да как нарисовано в коде самой раскладки, то есть, в файле, который вы предлагали модифицировать в самом начале этой темы. Если этот файл с расширением .klc открыть как текстовый файл, то можно без «MS Keyboard Layout Creator» все там проставить для нужных клавиш. Может быть, вы раскумекаете синтаксис и догадаетесь, каким образом задать нужные коды и обойтись без вмешательства в реестр.

        Ответить
      2. А вам, наверное, надо докопаться до механизма виртуальных кодов. Буду надеяться, что докопавшись, мне подскажете. Фотки прилагаются.

        Ответить
        1. Rones:

          Я пришёл к выводу, что идея расширить функциональность NumPad не осуществима чуть ли не на железном уровне. Вот самая продвинутая прога по редактированию раскладки: http://www.kbdedit.com/
          Платная, но есть демо-версия (нельзя сохранить результаты редактирования раскладки). Не требует инсталляции. Посмотрите.

          В ней есть возможность назначить буквенной кнопке различные значения для [Shift+] и для [CapsLock on] — за это отвечает параметр «Effect os CapsLock» в значении «Separate mappin for CapsLock». Но сделать это для Num-кнопок нельзя!

          Ещё я ожидал наличие аналогичного параметра для NumLock, типа «Effect of NumLock», но его нет!

        2. Rones:

          Вот статья о NumPad из help программы kbdedit: http://www.kbdedit.com/manual/high_level_numpad.html
          Если я правильно понял (в чём не уверен), перспективы нормально переназначить Num-кнопки неутешительные.

        3. Может быть, надо как-то с виртуальным кодами разобраться. Видно же по фоткам, что скан один, а виртуальные клавиши разные. Какая прога это делать умеет?
          Я, например, через реестр знаю, как переопределить скан-код, а как виртуальный — не знаю.

        4. Rones:

          Я пришёл к выводу, что нужно править dll-файл раскладки. Именно там прописано соответствие VK и скан-кодов. Вот статья, из которой я толком ничего не понял: https://habrahabr.ru/post/301882/

        5. Так файлы .dll и создавались по данным программы MKLC из файла .klc.
          Какие коды мы туда заложили, те и вставились после setup’а.
          По-моему, прежде чем с .dll заморачиваться, надо как следует с .klc разобраться: например, что в нем означают столбцы с названиями клавиш. Для символов там все очень ясно и просто: и мертвые, и Caps Lock, и сочетания с модификаторами; любые символы можно навставлять без всякого дизассемблера на все четыре этажа (см. фото).

        6. Rones:

          Уверен, что MKLC со своим .klc — не единственный способ создания раскладки. Как иначе создаётся раскладка клавиш NumPad? Склоняюсь к мысли, что редактирование этой части клавиатуры просто не поддерживается форматом .klc.
          Эксперименты с ручной вставкой строки, описывающей значения Num-клавиш, в текст файла .klc ни к чему не привели — программа не генерирует dll

        7. Может быть, и не единственный, только тогда файл раскладки должен на что-то ссылаться для определения NumPad-клавиш.
          Это я, как слепой котенок, тыкаюсь в эти коды и не могу найти программиста, которому все уже давно известно.

          Что, например, по этим колонкам делается?

          KEYNAME

          01 Esc
          0e Backspace
          0f Tab
          1c Enter
          1d Ctrl
          2a Shift
          36 «Right Shift»
          37 «Num *»
          38 Alt
          39 Space
          3a «Caps Lock»
          3b F1
          3c F2
          3d F3
          3e F4
          3f F5
          40 F6
          41 F7
          42 F8
          43 F9
          44 F10
          45 Pause
          46 «Scroll Lock»
          47 «Num 7»
          48 «Num 8»
          49 «Num 9»
          4a «Num -»
          4b «Num 4»
          4c «Num 5»
          4d «Num 6»
          4e «Num +»
          4f «Num 1»
          50 «Num 2»
          51 «Num 3»
          52 «Num 0»
          53 «Num Del»
          54 «Sys Req»
          57 F11
          58 F12
          7c F13
          7d F14
          7e F15
          7f F16
          80 F17
          81 F18
          82 F19
          83 F20
          84 F21
          85 F22
          86 F23
          87 F24

          KEYNAME_EXT

          1c «Num Enter»
          1d «Right Ctrl»
          35 «Num /»
          37 «Prnt Scrn»
          38 «Right Alt»
          45 «Num Lock»
          46 Break
          47 Home
          48 Up
          49 «Page Up»
          4b Left
          4d Right
          4f End
          50 Down
          51 «Page Down»
          52 Insert
          53 Delete
          54
          56 Help
          5b «Left Windows»
          5c «Right Windows»
          5d Application

          Ведь смог же я для отсутствующей клавиши (куда вы запятую ставили) с кодом 56 дать значение (-) и переопределить на нее Num — ?

          Я же писал фрагмент:

          39 SPACE SGCap 0020 0020 -1 // SPACE, SPACE,
          -1 -1 0 0020 0020 // SPACE, SPACE
          56 OEM_102 0 002d 002d -1 // HYPHEN-MINUS, HYPHEN-MINUS,
          53 DECIMAL 0 002c 002c -1 // COMMA, COMMA,

          Синтаксис СИ-шный надо изучать, наверное.

        8. Rones:

          Такое впечатление, что это чисто информативный фрагмент файла, он ничего не определяет.
          Я просто скопировал часть строки, определяющей назначения буквенной клавиши, и вставил после 4c «Num 5». Не прокатило. Потом эту строку добавил в конец списка буквенных клавиш, но тоже без результата.

          Не думаю, что это Си-шный синтаксис. Просто таблица, где колонки разграничены «символом» Tab. Если применить к тексту файла моноширный шрифт типа Courier, всё становится более наглядным.

        9. Неспроста в .klc некоторые клавиши в кавычках пишутся.

        10. Rones:

          Да, это подозрительно. Я пробовал и убирать кавычки — ничего.

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

        12. Я Врублевскому писал, думал, он внутрь залазил. А он ответил, что только в графическом редакторе правил.
          Получается, что я даже глубже тыкался, потому что через Visual Studio я эти файлы открываю — и .klc, и .dll и пр..

        13. Скорее всего, это и есть то средство, какое мне может помочь, только оно на абсолютно новом языке. Разобраться чтоб, время нужно. Ну, да делать нечего: я приступил к изучению этого дизассемблера.
          Одно огорчает: зря он два языка сует туда и столько разных символов да еще с мертвыми клавишами и каной этой. Спятить можно и запоминать очень трудно. Напишу ему, пусть штатные две раскладки на свой язык переведет и опубликует. Тогда можно будет чуток подправить.
          А с его фантазиями не сладишь.

        14. Rones:

          Мне остаётся только ждать. Я сдался.

        15. По крайней мере на те сочетания, о которых я говорил, мне удалось поставить свои команды, преодолев капризы Word’а, которых я пока не разгадал.
          __________
          А если вы фанат Word’а, то у вас появится второе дыхание после знакомства с моими таблицами для горячих клавиш. И даже не обязательно будет именно моей системой сочетаний пользоваться: размещайте на них свои любимые сочетания для любой программы. Более удобных таблиц я лично не встречал. А в комплексе с расширенной лентой Word’а — я их считаю вообще фантастикой компактности и наглядности. Надо только приглядеться.

  9. Может быть, вы знаете как вручную править код раскладки в файле .klc?

    Ответить
    1. Rones:

      Нет, этого я не знаю. Пока ищу чёткую информацию о том, где конкретно хранится таблица соответствия скан-кодов и символов. И как её править вручную.

      Ответить
      1. Я все больше прихожу к выводу, что все можно сделать через файл с условным названием «rackladka_rus.klc» прямым редактированием. Так мне подсказывают опытные люди. Только никак не в’еду пока в его условные обозначения, хотя синтаксис там простой.

        Ответить
        1. Rones:

          Спасибо за идею. Сейчас проэкспериментирую.

        2. Обратите внимание на два списка внизу: в них же не указано, что и как делают клавиши, и почему там спутаны расширенные и простые клавиши.
          Еще добавлю: кнопке с кодом 56, которая якобы только японцам нужна, я дал назначение:
          39 SPACE 0 0020 0020 -1 // SPACE, SPACE,
          56 OEM_102 0 002d 002d -1 // HYPHEN-MINUS, HYPHEN-MINUS,
          53 DECIMAL 0 002e 002e -1 // FULL STOP, FULL STOP,
          и добавил ее. Потом на нее переназначил через реестр Num -, и это сработало.

        3. Rones:

          Посмотрите ещё раскладку (https://habrahabr.ru/company/microsoft/blog/238763/#comment_8021855) — может это как-то поможет понять синтаксис файла .klc
          Там рус/лат переключается по нажатию CapsLock.

        4. На ночь глядя, я в том птичьем базаре не разберусь…

        5. Rones:

          Да и не надо читать весь базар. Я же дал ссылку на конкретный комментарий.
          А вот ссылка на самодельную раскладку, где переключение языка делается с помощью CapsLock: http://veg.by/habr/kbdxenru.zip
          Весьма интересное содержимое.

        6. Хорошо, попробую разобраться. И чувствую, что надо напрямую к этому Евгению обратиться.

        7. Да! Здоровскую раскладочку он сделал! Так все просто и штатной программой.

        8. Rones:

          Я так и не понял, как он в стандартной проге задал различные значения для Shift+ и для CapsLock.
          По-моему, он влезал в klc файл.
          Теоретически, так можно и для NumLoock отдельные значения задать.

        9. Слепил такую же раскладку, как у Евгения, только на базе русской (смысл в том, что Num Lock теперь горит для английских букв, как бы сигнализируя мне о чужеродном языке). Опробовал в Блокноте и в Word’е, прогнав все знаки, включая Shift и Num Lock. Так как в английском меньше знаков, то для уменьшения кол-ва повторов добавил в него несколько знаков, отсутствовавших ранее.
          Не проверил только то, о чем он писал: как будет с языками там, где это имеет значение. Думаю, что система будет воспринимать английские буквы из этой раскладки как русские, ну да ладно.
          У меня были еще свои заморочки, так вот именно их и удалось решить, когда две жидкости оказались в одном флаконе (но это долго объяснять, и касается это сочетаний в Word’е). Пока существовали две отдельные раскладки, мешала одна проблема, а при таком раскладе эта проблема улетучилась.
          Кстати, у Евгения в раскладке слэш рядом с левым шифтом (кнопка VK_OEM_102, код 56) работает только на тех клавах, где эта кнопка есть, а где ее нет, там о ней никто и не знает (значит, место вакантно). А у меня тот символ, который на нее поставлен в раскладке, действует на другой клавише, которая переопределена в реестре.
          Из моих проблем осталась одна: как сделать, чтобы мой BackSpace, переопределенный на Num 5, по Caps Lock’у становился 5-кой?

        10. А они и задаются в самой проге: внизу в последней строке. Он просто туда вписывал параллельно коды из русской раскладки, вот и получились масло с водой в одном стакане, а Caps Lock невольно стал переключателем.
          Я, когда так делал для нескольких кнопок, увидел, что код валидацию не проходит, и отказался. А у Евгения нервы железные – он до конца довел, и все действует. Я попробовал в Word’е, мне понравилось. У него на базе английской раскладки, а я решил сейчас на базе русской переделать.
          А вот каким образом в его примере все это на NumPad подействовало – я у него и хочу спросить.

        11. К сожалению, после тщательных проб и проверок могу сказать: такая раскладка себя не оправдывает. Ее нельзя назвать раскладкой для двух языков. Может быть, на Caps Lock надо посадить вторую раскладку своего же языка, например, для того, чтобы ощутить разницу между традиционной русской и машинописью. В этом толк вижу.
          А для другого языка должна быть своя «именно раскладка», а не просто переключатель Caps Lock.
          Вывод такой.
          Это может пригодиться для новичков на первый ознакомительный период.
          Есть смысл по такому типу создать две раскладки (русскую и английскую), поставив в каждой на Caps Lock какую-то вторую версию своего же языка. Да и то на время обучения, чтобы решить, какой тип раскладки в дальнейшем больше понравится.
          Например: традиционная русская – машинопись; традиционная американская – Дворака.

        12. Rones:

          Не уловил, почему «такая раскладка себя не оправдывает». В чём неудобство?

        13. Ниже написал, почему не оправдывает.
          Здесь же добавлю совет, относящийся ко всем раскладкам, где запятая и точка находятся на одной кнопке (например, между буквой «ю» и правым шифтом), то есть, под правым мизинцем.
          Как правило, большинство не задумываясь, повторяет одну и ту же ошибку: точку ставят в нижний регистр, а запятую — в верхний. Раз уж решили изменить раскладку под себя, так делать надо рациональней.
          Возьмите любой текст и посчитайте, сколько в нем запятых и сколько точек. Вот и делайте вывод, куда ставить запятую — вниз или вверх.

        14. Rones:

          Я так и сделал в первом варианте раскладки, но был вынужден вернуться к «классическому» расположению точки и запятой — пальцы по привычке сами нажимали Shift, когда была нужна запятая. Я так и не смог переучиться.
          Ко мне попала клава, у которой между левым [Shift] и [Я] затесалась кнопка [/] — вот её-то я и переделал под «бесшифтовую» запятую.

        15. Привычка — дело наживное.
          А статистика показывает, что в обычном тексте запятых всегда больше, чем точек. Я быстро переучился.
          Так же и с другими знаками препинания надо сделать (без шифта), а цифры перевести как раз на то положение по Caps Lock, которое у Врублевского мы видели.

        16. А делается все очень просто в обсуждаемой программе: открываются параллельно в двух копиях программы две раскладки; одна раскладка так и остается сверху (строчные_заглавные), из второй полностью копируются в первую — в регистр по Caps Lock — все символы второй (строчные_заглавные).

        17. Вероятно, говорить, что у Врублевского Caps Lock переключает раскладку нельзя, потому что раскладка остается та же.

        18. Rones:

          Можно сказать, что эта раскладка включает в себя два языка.

        19. Символы, заданные в нижней части, печатать будет хоть японские, но программы не будут эти символы воспринимать другим языком. Откройте раскладку блокнотом.
          Там и кодовый номер в файле .klc будет всего один, например:

          DESCRIPTIONS
          0419 russian english (здесь что угодно можно написать)
          LANGUAGENAMES
          0419 Russian

          Или: Project\Properties\Language

        20. Rones:

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

  10. Тот редактор раскладки, о котором вы пишете, не имеет же этих клавиш? Как же на них назначить другие символы, да еще чтобы они не реагировали на Shift?

    Ответить
    1. Rones:

      Вот редактор, позволяющий менять значение любой клавиши, в том числе и из области NumPad: http://atnsoft.ru/keymanager/
      В этом редакторе можно дать различные значения, к примеру, [Num/] и [Shift]+[/]. Пока не разобрался, как редактировать интерпретацию той или иной клавиши в зависимости от активности модификатора NumLock.
      Вы можете и сами поискать подобного рода редакторы по запросу «Переназначить клавиши».

      Ответить
      1. Что-то не очень хочется пользоваться программами, которые остаются в памяти и без которых сочетания потом не действуют. Мне больше нравятся такие, чтоб только один раз «показали» какие изменения надо внести в реестр, а я бы потом сам это правил без них.

        Ответить
    2. Rones:

      Чтобы значение клавиши, например [Num9] не изменялось при нажатом Shift, нужно и клавише [Num9] и комбинации [Shift]+[Num9] присвоить в редакторе одинаковые значения.

      Ответить
      1. Здесь не надо бы на цифровые клавиши отвлекаться: с ними все в порядке. Речь шла только о знаках арифметики и средней кнопке Num 5, которая от природы «немая».
        То, о чем вы пишете, я и сделал уже себе: назначил и в верхнем, и нижнем регистре один и тот же символ. Все работает, но это ненормально; программа фиксирует ошибку. У Num Lock есть что-то свое особенное, и это видно по коду раскладки.
        И другой вопрос: в коде раскладки есть клавиши с одинаковыми кодами, и непонятно, как они уживаются.
        Еще непонятно, почему на майкрософтской клаве не NumLock-клавиши идут как расширенные, а именно другие четыре отдельных кнопки со стрелками.

        Ответить
      2. Ну и, естественно, при одинаковых назначениях клавиши-то расходуются зря. У английской раскладки еще есть запас, а в русской-то нету лишних клавиш.

        Ответить

Ваш комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Если нужно, добавьте картинку (только JPG)

Рубрики