Комментарии 52
А не проще просто возвращать английскую раскладку целиком, пока зажата и удерживается AltGr? У пингвинов так.
В сценарии автора - проще. А у меня, например, по AltGr + гласные настроены те же гласные, но со знаками ударения. Ибо есть привычка всякие сто́ит/стои́т, бо́льшая/больша́я указывать явно. Ну и всякие прочие полезности, типа знаков рубля и кое-какой латинской диакритики, которая лично мне часто нужна.
Microsoft Keyboard Layout Creator
Что называется автору спасибо за подъём вопроса, комментаторам спасибо за решение...
Ну или Диспетчер клавиатуры в PowerToys
Я нарисовал свою раскладку в mklc, но чудо! Сгенерированный файл перестал устанавливаться под windows 11.
Поиск по всяким суппортам ничего не дал. Есть куча костылей, которые кому-то помогли, но не в моем случае.
Может, вы что-то делаете неправильно, у меня работает без проблем на 11, правда это LTSC — я себе сделал русско-немецкую клаву, расставив все знаки так, чтобы они на обоих языках оставались строго на одних и тех же местах (скобки со сдвигом на одну особо доставали). Правда ь и ю пришлось загнать в верхний ряд. Вот репозиторий с исходниками — может поможет понять, что у вас отличается.
Я просто нажал "build" и она собрала setup.exе. При запуске программа говорит, что "ваш процессор не поддерживается". Быстрый поиск показал, что я не один с такой проблемой. И решения проблемы я так и не нашел.
Обычно для любого наблюдаемого феномена существует рациональное объяснение, чудес не бывает, вы можете попробовать запустить мой setup (в виртуалке, если не доверяете) чтобы локализовать проблему (это может проблема как сборки, так и запуска конкретно у вас) и если вы закинете куда-нибудь ваш проект, включая setup и скриншот как выглядит ошибка, хоть на тот же гитхаб, то я могу запустить это у себя, отреверсить и пробежать его под отладчиком, чтобы понять откуда ноги растут у этого сообщения. Я никогда такого не видел, но поскольку вы не одиноки, то коммьюнити будет благодарно, если мы разберёмся, в общем я готов попробовать помочь в свободное время.
А если напрямую запустить сгенерированный msi для вашего процессора? Их там три штуки генерируется, вроде.
Я сам пользуюсь, но с ней есть одна проблема: каждый дурак считает своим долгом назначать мои комбинации для ввода шорткатами в своей программе. Если в браузере (FF) и, соответственно, веб-приложениях это решается глобально, то в какой-нибудь тележке — фигвам. А вот навесные перехватчики могут помогать. Думаю попробовать мигрировать на них с MSKLC.
Ты легенда, я использовал его, когда кодил на 1С, а потом просто не мог найти как оно называется!
Слишком примитивная штука. Но да, если нужно совсем немного символов (как у автора) — лучше сделать через MKLC, это стабильнее и безопаснее (если увлекаешься видеоиграми, некоторые из которых не жалуют использование AHK).
"Длинное" — а точнее, просто полноразмерное тире ставится на Windows по сочетанию Win+"-".
Не в укор автору, просто для информации (вдруг кто тире любит, а остальное им не нужно).
Терпеть не могу длинное тире (mdash), зато люблю среднее (ndash).
Есть разница. Тире длинное - нужно для текста. А средее - для диапазонов дат.
Но поскольку мы даже с ё не замарачиваемся, то до тонкостей с тире и дефисами нам очень далеко.
Не только для дат, но и других диапазонов и интервалов, например Москва–Париж. Но это не обязаловка, а чистая вкусовщина. А вот в списках литературы либо только длинное, либо только среднее, оно же короткое. Вообще, основное применение короткого тире — это замена длинного тире в узкополосном наборе, например в газетной верстке. А еще в крупных заголовках и отдельных надписях, если длинное тире выглядит ущербно или тупо места не хватает.
У меня почему-то не работает.
Конкретно для Obsidian есть плагин: Shortcuts Extender. Позволяет через Alt практически всё что нужно вводить.
Тоже столкнулась с такой проблемой, всё откладывала вопрос ее решения. Спасибо и автору, и комментаторам)
Есть программа espanso . Заменяет всякое на всякое, в частности №№ на ## и подобное. Работает и в windows и в linux и в macOS . Я его поставил ради Obsidian и именно этих решёток.
Я пользуюсь такой штукой как "Типографская раскладка Ильи Бирмана", легко гуглится. Это не совсем полностью то, что хочет автор, но очень близко. Достоинство в том, что работает без всяких дополнительных программ. Можно доработать до хотелок автора, там есть для этого возможность.
Раскладка Ильи Бирмана была основой для меня, но как уже говорилось в оригинальной раскладке Бирмана нет спецсимволов для markdown.
Я пользуюсь идеей и просто создал макрос и забиндил alt+shift+3 на решетку. Работает в идее в любой раскладке
определяет, что включена русская раскладка, и активирует модификаторы только для неё
То есть в английской раскладке у вас решетка это Shift+3, а в русской — AltGr+3. И самое главное, непонятно, зачем, ведь, насколько я знаю, в английской раскладке эти AltGr-сочетания все равно ничего не делают.
Autohotkey это очень крутая вещь, но кастомная раскладка все равно надежнее. Например, AHK не работает в режиме администратора, автозагрузку скрипта нужно ждать, да и лишний процесс висит в системе. Сам использую вот эту гибридную русско-английскую раскладку, которая позволяет переключать язык по CapsLock, а также вводить всё то, что описано в статье, причем чуть ли не на тех же сочетаниях)
Только я для себя внес одно маленькое изменение. Чтобы клавиша ? / , . в английской раскладке работала так же, как в русской — то есть для ввода точки и запятой. Сколько раз я матерился при правке смешанных русско-английских текстов, когда вместо точки получал слэш — не сосчитать. Поэтому у меня и возник вопрос, который в начале комментария.
А вы не думали оформить это в небольшой репозиторий/установщик с парой преднастроенных профилей (Markdown‑фокус, код‑фокус, типографика‑фокус), чтобы людям вообще не приходилось править AHK‑скрипт руками?
А одинэсники себе раскладку сделали и всё. Наверное, им нужно было ехать, а не шашечки.
Кто-то сталкивался с тем, что переключение раскладки на винде временами начинает тормозить (на секунду-две)? При быстрой печати особенно заметно, потому что новое слово печатается с первым символом в предыдущей раскладке. Ужасно бесячая хрень на винде (в числе множества прочих)
Сталкивались. Вот ветка обсуждения, где меня пытаются убедить, что я сам дурак, а винда не виновата.
Я потому и перешел на двуязычную раскладку, что там раскладку переключать не нужно. Раньше винду кастомизировали, потому что чего-то не хватало, сейчас винду кастомизируют, потому что что-то сломали.
Там не только тормоза. Иногда без какой-либо причины (в зависимости от погоды на Марсе видимо) не работает переключатель языка через ctrl+shift. Приходится нажимать несколько раз, бесит неимоверно.
Эта срань появилась где-то во времена XP и до сих пор есть даже на 11-й.
Проблему обсуждали на Reddit, решения нет.
Встречал эту проблему абсолютно на всех виндовых тачках за которыми работал, кроме свежеустановленных систем. Не замечают этого только те, кто не пользуется нормально клавой, либо печатает раз в месяц.
Решил проверить Crtl+Shift -- у меня оное вообще не работает) Впрочем, я переключаю язык через win+space -- когда-то эта комбинация очень понравилась на убунте, с тех пор использую только её. Однако при переключении почти всегда появляется окно со списком языков -- и весь процесс порой тормозит. Тоже на всех виндах.
А как быть в MacOS во всеми этими проблемами?
Пробовал Carabiner Elements, но не всегда срабатывает.
Для Linux советую xremap: https://github.com/xremap/xremap
Можно же просто зажать альт и набрать 35 на цифровой клавиатуре. Так вообще можно любой символ вводить. И разницы никакой что код запоминать, что горячие клавиши для него
Когда пишешь много в markdown то долго набирать спецсимволы сильно отвлекает от основной мысли
Разница в удобстве использования. Взять длинное тире: Alt+0151 или AltGr + «-»‽ Второе явно удобнее.
А насчёт любой — нет, не любой, а относительно малый набор символов (ворд с его фичами в расчёт не берём).
Спасибо тебе дорогой друг! Я до этого использовал ahk скрипт который вешает на среднею кнопку мыши теги markdown . Ваш скрипт немного переделаю : добавлю теги mardown которые будут добавлять теги вставки ссылки на картинку и вообще ссылку в markdown. Вечно из головы вылетает . Еще раз благодарю за идею!
Сделай как у вас в описании код... мне при запуске скрипта вылетает несколько окошек вот с такими ошибками
Note: The hotkey <^>![ will not be active because it does not exist in
the current keyboard layout.
Note: The hotkey <^>!] will not be active because it does not exist in
the current keyboard layout.
Note: The hotkey <^>!+[ will not be active because it does not exist in
the current keyboard layout.
hotkey <^>!+] will not be active because it does not exist in
the current keyboard layout.
Note: The hotkey <^>!' will not be active because it does not exist in
the current keyboard layout.
Вот интересно! Круто! Обнаружил проблему:
Если запустить этот скрипт при включенной русской раскладке, то выскакивают эти ошибки.
Если запустить при включенной английской, то все работает нормально.
Подумаю как исправить.
Ну я как бы исправил все эти проблемы, Grok подсказал. Еще для себя модифицировал некоторые символы и забиндил на правый CTRL, так как у меня нет правого ALT....
у меня такие же сообщения вылезают, если проблему решил то может поделишься кодом?)
#Requires AutoHotkey v2.0
#SingleInstance Force
; Скрипт активен только при русской раскладке (0x0419)
#HotIf GetKeyboardLayout() == "0x0419"
; --- Полный верхний ряд (Правый Ctrl + цифра = US Shift символ) ---
^1::SendText "!"
^2::SendText "@"
^3::SendText "#"
^4::SendText "$"
^5::SendText "%"
^SC007::SendText "^" ; ← исправлено на SC-код (6-я клавиша), убирает предупреждение
^7::SendText "&"
^8::SendText "*"
^9::SendText "("
^0::SendText ")"
^-::SendText "—" ; Длинное тире
^=::SendText "+"
; --- Квадратные и фигурные скобки ---
^SC01A::SendText "["
^SC01B::SendText "]"
^+SC01A::SendText "{"
^+SC01B::SendText "}"
; --- Пунктуация и кавычки-ёлочки (Б и Ю) ---
; Обычное нажатие дает символы для кода/Markdown, Shift — типографику
^SC033::SendText "<"
^SC034::SendText ">"
^+SC033::SendText "«"
^+SC034::SendText "»"
; --- Markdown и код ---
^SC027::SendText ";"
^+SC027::SendText ":"
^SC028::SendText "'"
^::SendText "|"
^/::SendText "/"
^s::SendText "_"
^k::SendText "" ; Обратная кавычка ^SC029::SendText "" ; Клавиша под Esc (тильда)
#HotIf
; Функция проверки текущей раскладки
GetKeyboardLayout() {
WinID := WinExist("A")
if !WinID
return 0
ThreadID := DllCall("GetWindowThreadProcessId", "UInt", WinID, "UInt", 0)
return Format("0x{:04X}", DllCall("GetKeyboardLayout", "UInt", ThreadID, "UInt") & 0xFFFF)
}
Тут я сделал под правый ctrl так как на 75% клавиатуре отсутствует правый alt, еще добавил двоеточие через ctrl+shift+ж.... уже пару дней полет нормальный 👍👍👍
В свое время программист 1С Павел Чистов сделал лёгкое приложение добавляющее нужные символы для программирования на русском. Клавиатура Павла Чистова. В сети можно найти, все нужные символы по правому Alt+...
Инженерная раскладка "Ручей". Все спецсимволы на своих местах не зависимо от языка. Стандартно присутствует в Линуксе, но есть и под Виню.

Как я перестал переключать раскладку ради одного символа: Прокачиваем русскую клавиатуру в Windows для Markdown и кода