Принцип работы следующий: все клавиши печатают как обычно, но некоторые печатают типичные для программирования символы при удерживании Alt: Alt+N -> (, двойной Alt+N -> [ и удерживая Alt+N 300мс+ вы напечатаете блок кода с фигурными скобками { }и переносом строк.
Полный список зарегистрированных клавиш доступен ниже в секции allApps. пример:
allApps.add("<!sc031", LAlt_N_AllApps)
allApps.add("<!sc032", LAlt_M_AllApps)
LAlt_N_AllApps(taps, state) {
if (state = -1) {
if (taps = 1)
return SendChars('(')
SendChars('[')
} else if !state {
SendChars('+[')
if (taps = 1)
return
SendEvent('{Enter 2}')
SendEvent('{Up}')
SendEvent('{Tab}')
}
}
Здесь callback имеет state -1 если клавиша нажата, 1 если удерживается и 0 если отпущена. taps представляет собой количество нажатий. Можно просто быстро два раза нажать, а можно быстро нажать и удерживать, в этом случае taps == 2 и state == 1
Я в некоторых сборках это глобальный параметр, на который опираются все процессы. Его измнение может привести к отдаленным последствиям.
Если вы всё-таки хотите его изменить, необходимо протестировать, какие конкретно значения оптимальны для ваших задач и для вашей ОС
Нет универсальных или общих значений, они могут только испортить вашу работу. Вместо изменения этого параметра лучше вообще пойти другими путями.
Нужно стремиться не к уменьшению таймера, а к уменьшению прерываний процессора, к уменьшению его переключений между процессами.
Для этого нужно работать и с параметрами реестра, и с приоритетами, и отключать ненужные службы и много чего ещё. Это огромная и тонкая работа, по которой еще никто не написал подробную статью. Я когда-то хотел, но потом передумал: умный пользователь сам найдет свой правильный путь, а ленивый –проследует по чужому пути и упадёт в заготовленную яму.
Фантастика! Но я перестал писать на Python и перешёл на AutoHotkey из-за возможности работать с WinApi напрямую. Плюс язык pprototype-based. И вот тут вообще нет никаких типов, хорошо хоть под капотом один тип не преобразовывается тайно в другой, как в JavaScript:
encapsulate() {
static API_CONST := 0x008
...
API_CONST := 12 # nah we'll just ignore it
}
Хотя бы проблемы вроде "прочитал новый паттерн ООП и внедрил его на уоовне 1970 года" тут случаются редко, потому что язык дает очень много возможностей написать все в число процедурном стиле. А классы использовать в основном без интерфейсов и абстрактных методов, просто потому что здесь нет типов (а следовательно костыли из интерфейсов не нужны)
`ClipWait` лучше ставить на 1+ секунду, так как это верхняя граница времени ожидания. Более того, временами буфер обмена может быть закрыт для чтения, поэтому лучше опрашивать ее в цикле (polling) и сохранять `A_Clipboard` в любую переменную до восстановления содержимого `A_Clipboard := backup`. Сразу после – восстановить содержимое:
Ряд доменов из MEGA SDK, через которые идет маршрутизация при загрузке файлов *не-из-web-клиента*, заблокированы или недоступны на территории РФ. Тихо. Без огласки. Более того, оплата Mega официально недоступна на территории РФ.
Опять?
Если вам не страшен Autohotkey код, попробуйте моё решение (документация не прилагается): https://pixeldrain.com/u/J9r9TV1V
Принцип работы следующий: все клавиши печатают как обычно, но некоторые печатают типичные для программирования символы при удерживании
Alt:Alt+N->(, двойнойAlt+N->[и удерживаяAlt+N300мс+ вы напечатаете блок кода с фигурными скобками{ }и переносом строк.Полный список зарегистрированных клавиш доступен ниже в секции allApps. пример:
Здесь callback имеет
state-1 если клавиша нажата, 1 если удерживается и 0 если отпущена.tapsпредставляет собой количество нажатий. Можно просто быстро два раза нажать, а можно быстро нажать и удерживать, в этом случаеtaps == 2иstate == 1А какие есть адекватные расширения?
О, я тоже пишу скрипты на AHK :D Буду рад сотрудничеству: https://github.com/JoyHak
У меня есть два репозитория модов к нему:
https://github.com/JoyHak/Vivaldi-CSS-mods
https://github.com/JoyHak/customize-vivaldi-buttons
Исправил тут: https://www.autohotkey.com/boards/viewtopic.php?f=83&t=140529&p=617670#p617670
Исправил тут: https://www.autohotkey.com/boards/viewtopic.php?f=83&t=140529&p=617670#p617670
Данный код не учитывает проблемы с задержкой, из-за которой вводимые символы не соответствуют раскладке клавиатуры какое-то время после переключения. Исправил тут: https://www.autohotkey.com/boards/viewtopic.php?f=83&t=140529&p=617670#p617670
...и ни одной интересной статьи про него за последние годы.
Отдельным комментарием отмечу:
Хорошо что автор не стал менять
TdrDelayиTdrDebugMode, иначе с такими общими значениями он бы положил компьютеры всех, кто вслепую поставил твикер.Нет критических параметров для отключения фиксов уязвимостей процессора Spectre и Meltdown:
Наверное стоит полностью отключить Hyper-V в биос и Core Isolation если вам нигде не нужна виртуализация и вы не используете виртуальные машины:
Я бы рекомендовал почитать дискуссии прежде чем менять Timer Resolution:
Я в некоторых сборках это глобальный параметр, на который опираются все процессы. Его измнение может привести к отдаленным последствиям.
Если вы всё-таки хотите его изменить, необходимо протестировать, какие конкретно значения оптимальны для ваших задач и для вашей ОС
Нет универсальных или общих значений, они могут только испортить вашу работу. Вместо изменения этого параметра лучше вообще пойти другими путями.
Нужно стремиться не к уменьшению таймера, а к уменьшению прерываний процессора, к уменьшению его переключений между процессами.
Для этого нужно работать и с параметрами реестра, и с приоритетами, и отключать ненужные службы и много чего ещё. Это огромная и тонкая работа, по которой еще никто не написал подробную статью. Я когда-то хотел, но потом передумал: умный пользователь сам найдет свой правильный путь, а ленивый –проследует по чужому пути и упадёт в заготовленную яму.
Сам сгенерировал или кто помог?...
Фантастика! Но я перестал писать на Python и перешёл на AutoHotkey из-за возможности работать с WinApi напрямую. Плюс язык pprototype-based. И вот тут вообще нет никаких типов, хорошо хоть под капотом один тип не преобразовывается тайно в другой, как в JavaScript:
И нету констант нигде:
Хотя бы проблемы вроде "прочитал новый паттерн ООП и внедрил его на уоовне 1970 года" тут случаются редко, потому что язык дает очень много возможностей написать все в число процедурном стиле. А классы использовать в основном без интерфейсов и абстрактных методов, просто потому что здесь нет типов (а следовательно костыли из интерфейсов не нужны)
`ClipWait` лучше ставить на 1+ секунду, так как это верхняя граница времени ожидания. Более того, временами буфер обмена может быть закрыт для чтения, поэтому лучше опрашивать ее в цикле (polling) и сохранять `A_Clipboard` в любую переменную до восстановления содержимого `A_Clipboard := backup`. Сразу после – восстановить содержимое:
Я нашел тот самый пост с Moltbook: https://www.moltbook.com/post/cbd6474f-8478-4894-95f1-7b104a73bcd5
А еще я нашел вот это: https://www.reddit.com/r/vibecoding/comments/1qu96qe/the_ai_lobsters_are_taking_over_and_they_started/
Ряд доменов из MEGA SDK, через которые идет маршрутизация при загрузке файлов *не-из-web-клиента*, заблокированы или недоступны на территории РФ. Тихо. Без огласки. Более того, оплата Mega официально недоступна на территории РФ.
У меня даже есть один такой скрипт для Everything: https://github.com/JoyHak/Flow-Launcher-windows-key
Планирую добавить поддержку горячих клавиш для быстрого создания /редактирования макросов, а то разработчик забыл...
Ну и пример комплексного приложения на AHK: https://github.com/JoyHak/QuickSwitch
Предлагаю еще утилиту для улучшения файлового диалога: https://habr.com/ru/articles/897824/
Уменьшите нагрузку и количество зарегистрированных клавиш с помощью Tapholdmanager
Оригинальная документация: https://github.com/evilC/TapHoldManager/tree/master
Моя версия (чуть проще и читабельнее): https://github.com/JoyHak/Flow-Launcher-windows-key/tree/main/Libs
Он будет печатать клавиши с задержкой (весьма ощутимо при быстрой печати), зато на одну клавишу можно назначить неограниченное число отправок.
В качестве решения могу предложить два пути развития:
Ограничиться только подсчётом количества нажатий. создании экземпляра TapHoldManager передайте параметр holdTime равный нулю.
Ограничиться только удерживанием и одиночным нажатием. В этом случае параметр tapTime равен нулю.
Это опять ручное отключение :)