Теперь находится здесь: Идеальная раскладка для программирования в смешанных языках
Тема про "идеальную раскладку" переехала
Сообщений 1 страница 9 из 9
Поделиться22018-08-18 00:04:18
Вроде начал получаться скрипт для AutoHotKey, который имитирует Яроклаву . Продолжение следует.
Пока что он заменяет Пробел+латинская А на ☼, а появление пробела переносится на момент его отпускания, как в веб-версии яроклавы.
А то сегодня понадобилось набить текст с кириллицей в формате Markdown и очень уж неудобно...
К сожалению, пока нет времени доделать до полной Яро-раскладки. Вот здесь http://forum.script-coding.com/viewtopic.php?id=189 есть тема о том,
как определить, какая раскладка включена в настоящий момент. Скорее всего, если всё это сложить вместе, всё должно получиться. Хотя не будем зарекаться.
Клавиатура - дело тонкое!
Лучше всего было бы, конечно, придумать свою прошивку для той микросхемы, которую засовывают в клавиатуру, если это возможно, конечно. А, блин, нет.
Склероз и маразм. Всё время забываю о том, что это не решит проблему для ноутбуков. Т.е. решать это нужно созданием программ - отдельно для Win, отдельно для Lin.
Возможно, что для Win хватит подобного скрипта для AutoHotKey, а для Lin придётся делать что-то более сложное.
Отредактировано budden (2018-08-23 11:33:44)
Поделиться32018-08-20 17:23:44
Вроде удалось портировать Яроклаву на AutoHotkey, см. репозиторий
https://bitbucket.org/budden/iaroklava- … Hotkey.ahk
Обратите внимание, что текст должен быть в кодировке utf-8 с BOM.
;;;; Этот файл должен быть в кодировке utf-8 с BOM. ;;;; Яро-раскладка ;;;; Общая идея такова: ;;;; Пробел становится модификатором, который ;;;; позволяет, не выходя из русской раскладки набивать латиницу и некоторые спец.значки ;;;; При этом оставлен только один способ набивать ;;;; знаки препинания .,:;/\, это позволяет меньше путаться. ;;;; ;;;; Проверено на AutoHotkey v1.1.29.01 (Unicode 64-bit), ;;;; под Windows 10. ;;;; ;;;; https://bitbucket.org/budden/iaroklava-js ;;;; http://программирование-по-русски/яроклава-js.яргт ;;;; ;;;; (C) Денис Будяк 2018, budden73@mail.ru ;;;; Код распространяется по лицензии MIT ;;;; ;;;; Установка: инсталлируйте программу AutoHotkey ;;;; скопируйте этот файл в свою папку "документы" ;;;; и запустите AutoHotkey. #UseHook, On ; $vk41:: Print("{vk41}","{U+263C}") ; Space+A -> Sun ;;; Нижеследующий фрагмент генерируется так: ;;; - откройте пример.html в браузере ;;; - откройте консоль (F12) ;;; - вызовите ГенерируйКодДляAutoHotKey() $vkc0:: Нажато("{vkc0}","~") $+vkc0:: Нажато("+{vkc0}","`") $vk31:: Нажато("{vk31}","☼") $+vk31:: Нажато("+{vk31}","≠") $vk32:: Нажато("{vk32}","@") $+vk32:: Нажато("+{vk32}","@") $vk33:: Нажато("{vk33}","#") $+vk33:: Нажато("+{vk33}","§") $vk34:: Нажато("{vk34}","$") $+vk34:: Нажато("+{vk34}","†") $vk35:: Нажато("{vk35}","°") $+vk35:: Нажато("+{vk35}","<НЕТ>") $vk36:: Нажато("{vk36}","^") $+vk36:: Нажато("+{vk36}","☭") $vk37:: Нажато("{vk37}","&") $+vk37:: Нажато("+{vk37}","¿") $vk38:: Нажато("{vk38}","<НЕТ>") $+vk38:: Нажато("+{vk38}","<НЕТ>") $vk39:: Нажато("{vk39}","<НЕТ>") $+vk39:: Нажато("+{vk39}","<НЕТ>") $vk30:: Нажато("{vk30}","<НЕТ>") $+vk30:: Нажато("+{vk30}","<НЕТ>") $vkbd:: Нажато("{vkbd}","<НЕТ>") $+vkbd:: Нажато("+{vkbd}","<НЕТ>") $vkbb:: Нажато("{vkbb}","≈") $+vkbb:: Нажато("+{vkbb}","≡") $vk51:: Нажато("{vk51}","q") $+vk51:: Нажато("+{vk51}","Q") $vk57:: Нажато("{vk57}","w") $+vk57:: Нажато("+{vk57}","W") $vk45:: Нажато("{vk45}","e") $+vk45:: Нажато("+{vk45}","E") $vk52:: Нажато("{vk52}","r") $+vk52:: Нажато("+{vk52}","R") $vk54:: Нажато("{vk54}","t") $+vk54:: Нажато("+{vk54}","T") $vk59:: Нажато("{vk59}","y") $+vk59:: Нажато("+{vk59}","Y") $vk55:: Нажато("{vk55}","u") $+vk55:: Нажато("+{vk55}","U") $vk49:: Нажато("{vk49}","i") $+vk49:: Нажато("+{vk49}","I") $vk4f:: Нажато("{vk4f}","o") $+vk4f:: Нажато("+{vk4f}","O") $vk50:: Нажато("{vk50}","p") $+vk50:: Нажато("+{vk50}","P") $vkdb:: Нажато("{vkdb}","[") $+vkdb:: Нажато("+{vkdb}","{{}") $vkdd:: Нажато("{vkdd}","]") $+vkdd:: Нажато("+{vkdd}","{}}") $vkdc:: Нажато("{vkdc}","|") $+vkdc:: Нажато("+{vkdc}","<НЕТ>") $vk41:: Нажато("{vk41}","a") $+vk41:: Нажато("+{vk41}","A") $vk53:: Нажато("{vk53}","s") $+vk53:: Нажато("+{vk53}","S") $vk44:: Нажато("{vk44}","d") $+vk44:: Нажато("+{vk44}","D") $vk46:: Нажато("{vk46}","f") $+vk46:: Нажато("+{vk46}","F") $vk47:: Нажато("{vk47}","g") $+vk47:: Нажато("+{vk47}","G") $vk48:: Нажато("{vk48}","h") $+vk48:: Нажато("+{vk48}","H") $vk4a:: Нажато("{vk4a}","j") $+vk4a:: Нажато("+{vk4a}","J") $vk4b:: Нажато("{vk4b}","k") $+vk4b:: Нажато("+{vk4b}","K") $vk4c:: Нажато("{vk4c}","l") $+vk4c:: Нажато("+{vk4c}","L") $vkba:: Нажато("{vkba}","<НЕТ>") $+vkba:: Нажато("+{vkba}","<НЕТ>") $vkde:: Нажато("{vkde}","'") $+vkde:: Нажато("+{vkde}","<НЕТ>") $vk5a:: Нажато("{vk5a}","z") $+vk5a:: Нажато("+{vk5a}","Z") $vk58:: Нажато("{vk58}","x") $+vk58:: Нажато("+{vk58}","X") $vk43:: Нажато("{vk43}","c") $+vk43:: Нажато("+{vk43}","C") $vk56:: Нажато("{vk56}","v") $+vk56:: Нажато("+{vk56}","V") $vk42:: Нажато("{vk42}","b") $+vk42:: Нажато("+{vk42}","B") $vk4e:: Нажато("{vk4e}","n") $+vk4e:: Нажато("+{vk4e}","N") $vk4d:: Нажато("{vk4d}","m") $+vk4d:: Нажато("+{vk4d}","M") $vkbc:: Нажато("{vkbc}","<") $+vkbc:: Нажато("+{vkbc}","«") $vkbe:: Нажато("{vkbe}",">") $+vkbe:: Нажато("+{vkbe}","»") $vkbf:: Нажато("{vkbf}","<НЕТ>") $+vkbf:: Нажато("+{vkbf}","♥") ;;; Конец сгенерированного фрагмента ПробелУдерживается := 0 ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи := 0 $Space:: ПробелУдерживается := 1 ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи := 0 Return $+Space:: ПробелУдерживается := 1 ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи := 0 Return $Space Up:: if (ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи == 0) { Send, {Space} } ПробелУдерживается := 0 ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи := 0 Return $+Space Up:: if (ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи == 0) { Send, +{Space} } ПробелУдерживается := 0 ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи := 0 Return Нажато(vk,s) { Global if (ПробелУдерживается == 1) { ДругаяКнопкаБылаНажатаВоВремяУдержанияПробелаЛи := 1 SendInput, %s% } Else { SendEvent, %vk% } }
Отредактировано budden (2018-08-23 11:50:02)
Поделиться42018-08-20 17:25:04
Проверено, что сочетание Shift-пробел не сломалось в веб-браузерах и LibreOffice. Следующая задача - сделать то же под Linux, вроде есть вот что:
https://unix.stackexchange.com/question … equivalent
Поделиться52018-08-20 17:57:31
Ну и ролик сделал на всякий случай https://www.youtube.com/watch?v=QF13Y4H … e=youtu.be
Поделиться62018-08-21 00:00:22
Сижу в браузере, печатаю в своей раскладке. Пока не очень комфортно, икается на каждом пробеле. Посмотрим, удастся ли привыкнуть. Теперь дело за линуксом. На самом деле для меня эта задача очень актуальна, т.к. я открыл свой сайт и увидел там матёрый рунглиш. Без нормальной раскладки практически нереально его развивать.
Поделиться72018-08-21 00:20:13
Соответственно, поскольку времени больше нет, появилась такая тема:
Поделиться82018-08-21 21:03:48
https://www.linux.org.ru/forum/developm … 4670539287 - обсуждение, похожее на.
Поделиться92018-08-23 18:11:45
Начал делать вариант под линукс, успех вроде близко, но работает не полностью. Детали - тут: https://www.linux.org.ru/forum/job/1442 … t-14428473
Отредактировано budden (2018-08-23 18:11:59)