Ремесло программиста

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » Раскладка клавиатуры » Тема про "идеальную раскладку" переехала


Тема про "идеальную раскладку" переехала

Сообщений 1 страница 9 из 9

1

Теперь находится здесь: Идеальная раскладка для программирования в смешанных языках

2

Вроде начал получаться скрипт для AutoHotKey, который имитирует Яроклаву .  Продолжение следует.

Пока что он заменяет Пробел+латинская А на ☼, а появление пробела переносится на момент его отпускания, как в веб-версии яроклавы.
А то сегодня понадобилось набить текст с кириллицей в формате Markdown и очень уж неудобно...
К сожалению, пока нет времени доделать до полной Яро-раскладки. Вот здесь http://forum.script-coding.com/viewtopic.php?id=189 есть тема о том,
как определить, какая раскладка включена в настоящий момент. Скорее всего, если всё это сложить вместе, всё должно получиться. Хотя не будем зарекаться.
Клавиатура - дело тонкое!

Лучше всего было бы, конечно, придумать свою прошивку для той микросхемы, которую засовывают в клавиатуру, если это возможно, конечно. А, блин, нет.
Склероз и маразм. Всё время забываю о том, что это не решит проблему для ноутбуков. Т.е. решать это нужно созданием программ - отдельно для Win, отдельно для Lin.
Возможно, что для Win хватит подобного скрипта для AutoHotKey, а для Lin придётся делать что-то более сложное.

Отредактировано budden (2018-08-23 11:33:44)

3

Вроде удалось портировать Яроклаву на 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)

4

Проверено, что сочетание Shift-пробел не сломалось в веб-браузерах и LibreOffice. Следующая задача - сделать то же под Linux, вроде есть вот что:
https://unix.stackexchange.com/question … equivalent

5

Ну и ролик сделал на всякий случай https://www.youtube.com/watch?v=QF13Y4H … e=youtu.be

6

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

7

Соответственно, поскольку времени больше нет, появилась такая тема:

https://www.linux.org.ru/forum/job/14422324

8

https://www.linux.org.ru/forum/developm … 4670539287 - обсуждение, похожее на.

9

Начал делать вариант под линукс, успех вроде близко, но работает не полностью. Детали - тут: https://www.linux.org.ru/forum/job/1442 … t-14428473

Отредактировано budden (2018-08-23 18:11:59)


Вы здесь » Ремесло программиста » Раскладка клавиатуры » Тема про "идеальную раскладку" переехала