Mahou(魔法) - The magic layout switcher.
❗ Use latest-commit release if you encounter any problems: Mahou-latest-commit
Minor hotfix release.
Changes:
:memo: AddSpaceToLastWord to true by default. #243 :memo: Added __convert snippet expression. :memo: Typo ' ' to '|'... :bug: Bugfixes for __uppercase. :bug: Fixed ANY-like snippets in double-conversion. :gem: Added __uppercase snippet expression. :bug: Auray fixed new lines issue. thanks to ZiC for pointing out. :memo: typo AppearEnce => AppearAnce. :memo: Fix npre causes trouble for AltGr. #235 :memo: More rules to AltGr. #235 :memo: Added Any Alt+Ctrl to altgr rule. #235 :bug: Removed PRE-KEY fix for altgr 1KeySwitch. #235 :memo: Added some rules to AltGr. #235 :memo: Added Clipboard copy-paste to sync. :memo: Force UTF-8 encoding for sync. :bug: Fixed Upload wasn't have proxy. :memo: Fix for proxy in Sync. :memo: #231 W10 tab rows rule. :memo: Layout==0 fix. Related: #230. :gem: Added PreKey detect, KeyAfter for AltGr. related: #228 :memo: Real maxlength. :memo: Added Sync translation. related: #222 :gem: Added Sync tab. :gem: Improved JKL-workability checking. :gem: Added delay snippets-exp, to delay actions. :memo: Moved updates delay to uche thread. :memo: Added startup updates delay. :gem: Added JKL workability check. Now if JKL not works(or not found, etc.) as expected Mahou will try work without it. :memo: Added more Logging in configs read/write. :memo: Code format. :memo: You in Russian typo. :memo: Added more JKL logging. :bug: Use Int32.TryParse instead of Convert.ToInt32, on JKL uMSG id retrieve. :memo: jklx86 uMSG static. :memo: Fix for without JKL Convert Last. :bug: Added fix for Convert Last Word with JKL. :memo: Added more logging in Convert Last Word. :memo: Fixed error snip outside. :memo: Lessened the logging of clear word. Merge branch 'master' of https://github.com/BladeMight/Mahou with local :memo: Logging the Cycle Layout from JKL. :bug: Added fix for startup silent updates check. When no internet connection it caused an Exception, now it does not. :memo: Experimental fix for random crash on "Exit" in tray. Bad end. PayPal donate replaced with donate button. :memo: Typo. :gem: Added the Convert and Transliterate to tray. #221 The Latest context menu is not implemented at this time. :bug: Fixed rare "empty" tray icon bug. :bug: NULL FLAG exception fix. :memo: АЗ => Автозамена :memo: Added PayPal donation. :bug: Fixed snippet expand by Tab deletion. #225 :gem: Added To Upper/Lower selection conversion hotkeys. #199 :memo: Simplified case conversion code. 📝More statics. Fixes random crash on system boot Mahou startup with JKL enabled. 📝Suppress unneeded refresh flags when nowhere to display flags. :bug: Fixed clearing of LAST WORDS by Win key. affects #224 :memo: Most settings changed to static. #223
=================English=================
:bug: Обновлена функция обновлений. :memo: Изменен способ инициализации текущей раскладки для JKL. :bug: Исправлено что выбор тайминга был отключен во вкладке тайминга, Сделано так потому что при изменении этого значения так же меняется значение показа языковых подсказок при "только при смене" влкюченной. :bug: Исправлена ошибка инициализации панели переводчика. :bug: Исправлены ненужные отпускания модификаторов, когда они не были до этого нажаты. :memo: Добавлено больше лога. :bug: Исправлено что конверт выделения иногда был очень медленным. #193 :bug: Исправлен показ языков в некоторых случаях в подсказках языка при включенном режиме Windows сообщений. :buf: Исправлена функция "Конверт последнего слова" в "Эмуляции переключения раскладок" при JKL включенном. :memo: Добавлено правило чтобы изменялось окно Mahou в зависимости от вкладок. #181 :bug: Исправлено отображение значков "T", "L" и "->" во вкладке Функции. :bug: Добавлена проверка путей автозапуска при запуске. #198 Теперь она проверяет пути ярлыка и задачи. :memo: Добавлена клавиша Tab в "Переключать раскладки 1 клавишей". #182 :memo: Убрано переключение между всемя раскладками, когда текущая раскладка уже и есть нужная. :bug: Исправлено отображение неправильной иконки в подсказсках языка с JKL при запуске Mahou. :bug: Другие мелкие исправления с конверт последнего слова и сниппетами. :bug: Потенциальное исправление для #192. :gem: Некоторый код упрощен. :gem: Улучшены функции Автозамены и сниппетов. :gem: Добавлена возможность назначать 2-словные сниппеты(и автозамены). пример: сниппет: ->как то====>как-то<==== результат: "как то" => "как-то" :speech_balloon: Обнлвлены подсказки мыши возле "Смена раскладки в Конверт выделения.". :bug: Исправлено что GetNextLayout возвравшал последнюю раскладки, а не первую при break. :gem: Добавлена возможность использовать "Смена раскладки в Конверт выделения." СРдВС. #200 СРдВС = Считать раскладку для всего слова в КВ. При совместном использовании будет производится реальная смена раскладки, без - "реально" раскладка не будет изменена, только текст. :gem: Доабвлена возможность внедрять версию коммит для Mahou dev в сам Mahou.exe. #203 P.S. Только используя скрипт build.cmd (при git в путе), или вручную. :bug: Другие мелкие исправления. ----------------ENGLISH------------------------- bug: Updated update regex. :memo: Another way to initialize layout for JKL. now just switches 1 layout forward and backward. instead of switching through all layouts, :bug: Fixed numeric updown was disabled in timings tabs, Actually it is also used for language tooltip on change display time. due to enabled windows messages feature for language tooltips. :bug: Fixed translation panel initialization before MMain.mahou. :bug: Fixed un-needed send modifiers up. :bug: Minor bugs fixes. :memo: Added more debugging. :bug: Fixed Convert Last was sometimes too slow. :bug: Fixed language display display on switch in windows messages. :bug: Fixed Convert Last function in Emulate LS Between layouts mode with JKL. :bug: Fixed access to MMain.mahou through _TranslatePanel before init. :memo: Added rule to increase height based on count of tab rows. :gem: Added rule to increase height of Mahou window depending on tab rows. :bug: Fixed "T", "L" and "->" was empty in functions tab. :bug: Added checking of startup path of types. #198 Now it checks lnk and task path. :memo: Added Tab key to one key layout switch. #182 :memo: Removed useless switch between all layouts, when layout already desired. :bug: Fix for wrong layout icon at start in Language Displays with JKL. :bug: Some minor bug fixes with Convert Last and Snippets. :bug: Potential fix for #192. :gem: Some code simplified. :gem: Improved AutoSwitch and Snippets functions. :gem: Added ability to use 2-word snippets/autoswitch. example: chat room => chat-room :speech_balloon: Updated tooltips around "Use layout switching in CS.". :bug: Fixed GetNextLayout was returning last layout on break. :gem: Added ability to use Convert Selection Layout Switching with WWL. #200 WWL = Whole Word Layout :gem: Added ability to set commit on build. #203 P.S. Only using the build.cmd script(with git in path), or yourself. :memo: Saving real commit to Mahou.ini on start. :bug: Wrong function to write commit into configuration.
:memo: Упрощены проверки и убрана ненужная замена с Regex. :gem: Добавлена загрузка разделителя плавающих значений шрифта и замена его при необходимости. :gem: Упрощен код получения шрифта/цвета в функции загрузке конфигурации. :bug: Исправлено режим одной горяч. клавиши для конвертации выделенного и последнего: Теперь не вызывает неправильную раскладку после конвертации. :bug: Исправлена ошибка переключения раскладки перед конвертацией последнего: со включенной эмуляцией и сменой между раскладками, без этого исправления результат конверсии был бы в - перед-нужной раскладке а ПОСЛЕ конверсии текста раскладка стает нужной, а текст нет. :bug: Обновлены regex функции обновления. :bug: Добавлено исправления для функции угадывания раскладки слова, добавив несколько попыток. :gem: Добавлена возможность изменять шрифт Заголовка и Текста в панели перевода. :gem: Добавлена новая функция сниппетов: __paste(). Создана для быстрого ввода больших кусков текста, вместо того чтобы вводить каждый символ эта функция просто вставляет его. :bug: Потенциальное исправления для #189. :bug: Исправлено не запоминание раскладки при обычной смене раскладки через WinAPI. :memo: Исправлена опечатка.
---------------ENGLISH-----------------
:memo: Simplified checking and removed unneeded regex replace. :gem: Added font decimal retrieve and raw font conversion. :gem: Simplifice code about getting font/color in loadconfigs. :bug: Fixed wrong fonts pt in configs. :bug: Added try/catch for translate panel fonts loading. :bug: Fixed 1 hotkey for convert selection and last: Now using these two actions for 1 hotkey doesn't cause wrong layout switching after conversion of selected text. :bug: Fixed convert last layout switching before conversion: with emulation and switch between layouts enabled, without that fix the convert result would be in layout - pre-needed and after conversion LAYOUT(not text) switched to needed. :bug: Updated Mahou update title find regex. :bug: Another fix for guess word layout tries. :bug: Added guess tries fix for sometimes wrong guess. :gem: Added Title and Text font selection for Translate Panel. :chocolate_bar: Updated chocolatey uninstall script. :gem: Added new snippets function: __paste(). Text that expanded through that function is significally faster that from default snippet expansion type, because it just being copied and pasted through keyboard, instead of inputting every character like in default. :bug: Potential fix-for #189. :bug: Fixed layout wasn't remembering after winapi switch. :memo: Typo fixed.
***ANY***
в маленькие слова сниппетов для:
того что этот сниппет срабатывал при любых буквах/символах, полезно для создания сниппетов похожих на HTML/XML тэги,
например -><***ANY***>====><***ANY***>__cursorhere()</***ANY***><====
,
этот сниппет будут заменять все что будет начитанься на <
и заканчиватся на >
,
на все что было введено в скобках и с завершением и функцией __cursorhere()
ставит курсор между ними.-----------------------ENGLISH-----------------------
***ANY***
word to snippets small words.
It matches any words, useful for something like auto-insert-ending and move cursor between ihtml/xml tags, also added default snippets to autocomplete all html/xml tags.:memo: Доабавлена возможность ввода кодов клавиш в hex стиле для функции __keyboard. :memo: Доабавлена возможность ввода кодов клавиш для функции __keyboard. :memo: Добавлена поддержка не зависимо от регистра названий клавиш. :memo: Исправлено слишком быстрое выполнение клавиш в функции __keyboard разделенных пробелом. :gem: Добавлена функция __execute в функции сниппетов. :gem: Добавлена функция __keyboard в функции сниппетов. :gem: Добавлена поддержка нескольких линий в панели перевода. :bug: Исправлена невозможность уменьшить количество языков перевода до перезапуска. :memo: Исправлен показ окна перевода без никаких языков перевода. :bug: Исправлено поведений двойной горячей клавиши для перевода. :gem: Добавлена функция переводчика. :gem: Добавлена возможность показа перевода выделенного по двойному клику мыши. :gem: Добавлена гор. клавиша для показа перевода выделенного текста (по умолчанию: Alt x2).. :gem: Добавлена возможность выбора до 99 языков перевода (также как в смене раскладки одной клавишей - назначить гор. клавиши). :gem: Добавлена функция или для сниппетов #177. :gem: Добавлена функция "Функции в сниппетах" #176,#179. :memo: Добавлено больше стандартных сниппетов (с функциями). :memo: Добавлены старые флаги в репозиторий. :gem: Добавлены новые звуки в репозиторий. -----------------ENGLISH----------------- :memo: Added hex style key code in __keyboard expression. :bug: Fixed by keycode in __keyboard. :memo: Optimized wait time after __keyboard. :memo: Added by keycode key support to __keyboard expression. :memo: Added case-insensetive keys compararison, fixed numpad[0-9] being numpa[0-9]. :memo: Fixed multiple keystrokes in __keyboard were too fast executed one after another. :memo: Added esc and enter key for __keyboard expression. :memo: Simplified execute syntax to (file|args), due to windows path "|" restriction. :memo: Changed escape symbol for __execute expression from "" to "|", due to windows path. :gem: Added __execute expression to snippets expressions. :memo: Added base "win" to be "lwin". :gem: Added __keyboard expression to snippets expressions. :memo: Rewrited method for snippets expressions to support __keyboard(in future) function.:memo: etc... :gem: Added multiline support to translate panel. :memo: Fixed newlines, replaced just with spaces. :bug: Fixed translator language selector wasn't able to decrease translate languages. :memo: Fixed no languages translation. :bug: Fixed old version sets bug. :bug: Fixed show selection translation double hotkey wasnt resetting. :gem: Added translator feature. :gem: Added Double click show selection translation feature. :gem: Added hotkey for show selection translation feature (default: Alt x2). :gem: Added languages selector using sets(like change layout by specific key sets). :memo: A lot of work done to support that feature:
🐛 Исправлено что jkl не запускал jklx86 когда стартовая папка не папка jkl. 🐛 Добавлена проверка на консольных окон перед сменой раскладки при JKL включенном. Это исправляет переключения раскладки в консольных программах с JKL интеграцией включенной когда в системе установлено 3 и более раскладок. 📝 Добавлено обновление всех иконок(флагов) при поимке переключения раскладки с JKL. 📝 Исправлена иницализация сниппетов/автозамены. 🐛 Добавлена поддержка раскадки JKL в сниппетах. 📝 Добавлена функция “Только чтение если нет доступа”. 🐛 Исправлен верхний регистр в вводе/сниппеты/автозамена с CapsLock вкл./выкл… 📝 Изменена папка скачивания обновлений на %TEMP%. 📝 Добавлены звуки в репозиторий. Они могут быть использованы в новой функции “Звуки” в Mahou. Звуки в репозиторие в папке snd. 💎 Добавлена функция “Звуки”. -------------ENGLISH------------- 🐛 Fixed jkl wasn’t starting jklx86 when started with working directory not set to jkl’s directory. 🐛 Added checking for conhost windows before switching layout with JKL support enabled. This fixes switching layouts in console programs with JKL integration enabled when installed 3+ layouts. 📝 Added refresh all icons after layout change in JKL. 📝 Added instant snippets initialization, and changed to static variables for init function. 🐛 Added JKL layout detection support for snippets. 📝 Added read-only if no access function. 🐛 Fixed initialization of autoswitch dictionary at start. 🐛 Fixed input/snippets/autoswitch with CapsLock on/off. 📝 Changed updates download directory to temp. 📝 Added Hi-Quality sounds to repository. They will can used in Mahou sounds. More sounds can be found in repository folder snd. 💎 Added sounds feature.
📝 Добавлена информаци о версии, создателе и т.д. в бинарные файлы JKL (#172). 🐛 Исправлена инициализация главных 2 раскладок при первом запуске Mahou (#171). 🐛 Исправлена смена раскладки без эмуляции с включенной интеграцией JKL на Win7 (#171). 📝 Исправлена ошибка при запуске Mahou когда в системе установлено менее 2 раскладок (#167). 🐛 Исправлена ошибка при запуске когда пользователь не имеет прав на запись в главной папке Mahou (#167). 📝 Сменена папка расположения генерации umsg.id в %Temp%, (#167). т.к. есть вероятность что пользователь не имеет прав на запись в главной папке Mahou. 🐛 Исправление для "📝 Сменена папка расположения генерации umsg.id в %Temp%.", теперь реально генерирует umsg.id в %TEMP%. 🐛 Исправлен запуск jkl/jklx86 из-за установки рабочей папки при их запуске на %TEMP%, теперь используются полные пути. --------------------ENGLISH-------------------- 📝 Added version info to compiled JKL binaries (#172). 🐛 Fixed bug when Mahou didn't initialize main layouts on first start (#171). 🐛 Fixed layout switching without emulation with JKL enabled on Win7 (#171). 📝 Fixed error when starting Mahou with less than 2 layouts (#167). 🐛 Fixed Mahou crashing when started as user in folder which that user has no write access (#167). 📝 Changed umsg.id generation directory to %Temp%, (#167). since sometimes users has no write access in Mahou home directory. 🐛 Fix for "📝 Changed umsg.id generation directory to %Temp%.", now actually generating in %TEMP%. 🐛 Fixed jkl/jklx86 can't start, because working directory set to %TEMP%.
💎 Добавлена поддержка jkl.exe(монитор реальных изменений раскладки). 🐛 Исправлена клавиша развертывания сниппетов как Tab, теперь развертывание происходит только если сниппет не пуст, иначе вводится Tab. 🐛 Добавлены исправления для различных методов смены раскладки с интеграцией с JKL. 💎 Добавлено исправление для поведения консольных приложений в Windows 7 в мониторинге смены раслкадок JKL. 📝 Исправлено что JKL не запускался когда функция Конфигурации в AppData была включена. 📝 Добавлено исправление при переключении между консольными окон при включенной интеграции JKL. 📝 Добавлено исправление исключения NullReference в нативном коде. 📝 Добавлена проверка всех файлов JKL и информация об отсутствующих в подсказке над галочкой. 📝 Добавлен префикс "[JKL] >" для сообщений логгинга связанных с JKL. 🐛 Исправлено время таймаута для ожидания umsg.id при запуске JKL. 🐛 Исправлены пустые линии в логгинге в DEBUG/VSCDEBUG режимах сборки Mahou. 🐛 Исправлено устанавливание модификаторов в коде Mahou при их отпуске(из Mahou). 🐛 Убрана необходимость отпуска модификаторов горячих клавиш которые не делают никаких текстовых манипуляций, т.е. Показать/Скрыть/Выйти/Перезапуск Mahou/Языковой панели и т.д. 🐛 Исправлено определение начальной раскладки консольных окон при их активации в JKL. 🐛 Добавлено убирание таймера ожидания для обновления при запуске если нет соединения с интернетом. 🐛 Исправлено что Mahou иногда не мог найти umsg.id из JKL. 📝 Добавлена интеграция JKL в подсказки языка, и их обновление при смене раскладки. 💎 Добавлено несколько способов удаления старых файлов JKL при обновлении(В большинстве случаев хватает простого удаления, но если оно не срабатывает то тогда идет другой способ, подробности в коде и в issue #105). 💎 Добавлена возможность запусать jklx86.exe самостоятельно, полезно для систем с x86 архитектурой. 💎 Добавлена интеграция и правильная работа x86 JKL в системах с x86 архитектурой. 🐛 Исправлено что JKL не генерировал umsg.id в папке Mahou. 🐛 Исправлена ошибка в ловле букв для сниппета происходившая при отпускании клавиши. Раннее если вы отпустите Shift перед тем как отпустите буквенную клавишу Mahou поймает неправильную букву(нижний регистр)... P.S. Насчет getconkbl.dll - его поддержку я все же не выключал так что можете пользоваться либо им либо JKL либо вместе :) Я рекомендую JKL, т.к. он глобальный, а getconkbl.dll только для консольных приложений. -----------------------ENGLISH----------------------- 💎 Added support for jkl.exe(real layout change monitor). 🐛 Fixed snippets expand key as Tab, now expands only if c_snip is not empty. 🐛 Added fix for various layout switchings with JKL. 💎 Added fix for Windows 7's console get layout behaviour for layout changings with JKL. 📝 Fixed JKL wasn't starting when settings in AppData enabled. 📝 Added fix for ConHost windows switching with JKL layout detection. 📝 Added fix for NullReference exception in Native(unmanaged) code. 📝 Added check for all JKL files and info about missing in tooltip. 📝 Added "[JKL] >" prefix for loggings entries from JKL. 🐛 Fixed JKL startup umsg.id get timeout. 🐛 Fixed double line endings in debug output of DEBUG/VSCDEBUG modes. 🐛 Fixed sending modifiers up functions not settings Mahou's variables about modifiers states. 🐛 Removed clear modifiers for hotkeys that doesn't do text manipulations, e.g. Show/Hide/Exit/Restart Mahou/LangPanel etc. 🐛 Fixed ConHost window detect on first activate with JKL. 🐛 Fixed network error for startup updates. 🐛 Fixed umsg.id not found for JKL. 📝 Added JKL layout to language tooltips, and refresh on layout change. 💎 Added deletion or moving(and deleting in future) of JKL at update. 💎 Added jklx86.exe to be able to run as standalone, useful on x86 systems. 💎 Added integration with x86 only JKL on x86 system. 🐛 Fixed JKL wasn't generating umsg.id in Mahou's directory. 🐛 Fixed snippets was catching chars on key release. Earlier if you release shift before release character key, Mahou will catch wrong character(lowercase)...
P.S. About getconkbl.dll - i didn't remove it compatibility so you can choose with what Mahou will detect layout with it or JKL or both :) I recommend JKL, because it is global, and getconkbl.dll is only for console apps.
📝 Исправлены ошибка соединения с GitHub при обновлении. (#170)
Произошло из-за того что GitHub поменял свой сертификат доступа к сайту на более безопасный...
🐛 Исправлена работа Tab как клавиша развертываня сниппета, происходящая из-за его очистки ранее. (#169) 💎 Добавлена функция "Получать раскладку с панели задач". (#168) 🐛 Добавлено исправление неправильного флага при включенной функции эмуляции переключения раскладки. 💎 Исправлено что конвертация выделенного не работала для более чем 2 раскладках. 🐛 Исправлено исправление позиции подсказки языка возле каретки в Firefox. 💎 Добавлено исправление позиции подсказки языка возле каретки в Firefox для браузеров основаных на Chromium/Electron. 🐛 Исправлено что подсказка языка возле каретки не отображалась в Firefox(57+). 💎 Добавлен метод Ctrl+Shift для функции "Менять раскладку 1 клавишей". 📝 Исправлена ошибка возникающая при получении имени процесса, который уже не существует.
-------------------English----------------------
📝 Fixed updates connection to GitHub error. (#170)
Happens due to GitHub's switch to more secure protocol(i mean't cert..)...
🐛 Fixed Tab wasn't working properly for expand snippet due to snippet clear. (#169) 💎 Added Get layout from Taskbar feature. (#168) 🐛 Added fix for wrong country flag detection on emulate layout switching. 💎 Fixed convert selection wasn't switching for more than 2 layouts. 🐛 Fixed caret langauge tooltip Firefox scroll fix. 💎 Added Firefox caret language tooltip scroll fix for Chrome-alike browsers. 🐛 Fixed caret language tooltip wasn't displaying in new Firefox(57+). 💎 Added Ctrl+Shift to switch layout by 1 key. 📝 Process instance seems can't get process name after process exit.
It should just contain data, but even so it sometimes can't get it name because process exited, that means it should catch each exception on whole manipulation of process instance to determine if process really exists.