Пришло время рассмотреть, как можно ускорить работу с системой через AHK. Для себя я выделил следующие действия:
-
изменение положения открытого окна (у меня 3 монитора, и каждый раз руками двигать какое-то окно в удобное место — боль невыносимая)
-
автоматическое создание нескольких папок с определенным названием
-
открытие определенных папок в определенной директории одной кнопкой
-
копирование имени файла
Приступим!
Изменение положения открытого окна
Двигать окна руками и выставлять положение каждый раз — выбор слабых. Сейчас сделаем так, чтобы при нажатии кнопки активное окно сразу вставало, куда надо. Я решил сделать три варианта положения окна: на весь экран, половинка слева, половинка справа (и так для трех мониторов). Собсна, пишем такую функцию:
MoveWindow_Main_Left(width, height) { WinMove, A, , 0, 0, width, height ToolTip, %width%x%height% Sleep, 500 ToolTip, Return }
А затем вызов функции:
Numpad4:: MoveWindow_Main_Left(1280, 1400) return
Что к чему? Функция:
WinMove, A, , 0, 0, width, height
— тут на месте 4 и 5 аргумента (в данном примере 0 и 0) пишем смещение(положение) окна. Отсчет ведется от левого верхнего угла основного монитора. Тут у нас функция для «половинки слева», поэтому смещение по X и Y равны нулю
Вызов функции:
MoveWindow_Main_Left(1280, 1400)
— тут прописываем аргументы, а именно — размер окна. Тут, скорее всего, придется подгонять ручками. У меня монитор 2560 х 1440, поэтому для «половинки» делим ширину на 2, а высоту оставляем исходной (хотя опытным высоту поставил не 1440, а 1400)
Подробное пояснение:
И так пишем для всех мониторов. Мой пример можно посмотреть тут. Добавлю лишь, что если у вас есть монитор, стоящий слева (или сверху) от основного, то положение окна будет отрицательным (т.к. отсчет у нас идет от левого верхнего угла основного монитора):
Теперь одной кнопкой (у меня это 9 кнопок нумпада) можно двигать окна по всем мониторам — ну не красота ли?
Автоматическое создание папок
У меня структура проекта выглядит примерно так:
[ИМЯ_ПРОЕКТА]
[IN]
[OUT]
[NUKE]
В папке IN хранятся все исходники, в OUT все рендера, а в NUKE все файлы проектов по шотам. Годы идут, новые проекты начинаются, старые сдаются, но неизменно одно — иерархия проекта. А значит, это можно автоматизировать :). На этот раз не будет чего-то интересного, просто последовательно вызываем функцию для создания папок:
f11:: CreateFolder("IN") CreateFolder("NUKE") CreateFolder("OUT") CreateFolder(Folder_Name) { Send, ^+n Send, %Folder_Name% Send, {Enter} Sleep, 200 } return
Итог — три папки.
Открытие определенных папок в определенной директории одной кнопкой
Частенько во время работы надо открывать папку с исходниками, чтобы закинуть туда что-то новое и потом затянуть в проект. Или открыть папку с рендером, чтобы скинуть посмотреть кому-то. Но каждый раз открывать проводник и идти до нужной директории руками может быть утомительно, скучно, грустно и медленно. Исправим!
В самом начале скрипта объявим переменную для рабочей директории глобальной:
global dir_path
На отдельную кнопку f12 я забил код, который спрашивает вашу рабочую директорию:
f12:: InputBox, dir_path, dir path, Enter dir path,,,,,,,, %dir_path% return
InputBox
— вызов окна
1 аргумент
— переменная, в которую запишется занчение
2 аргумент
— имя всплывающего окна
3 аргумент
— надпись внутри окна
Более подробное разъяснение:
При исполнении кода, появляется такое окно с полем для ввода:
Сюда вставляем прям из проводника путь до папки проекта. Ну и все, теперь можно сделать скрипт для открытия любой папки в этой директории:
f1:: global dir_path open = \IN dir_path_open = %dir_path%%open% Run, %dir_path_open% return
open = \IN
— сюда пишем папку, которую надо открыть
global dir_path
— это нужно, чтобы переменной можно было воспользоваться внутри скрипта
dir_path_open = %dir_path%%open%
— объединяем рабочую директорию и папку, которую надо открыть, в один путь
Run, %dir_path_open%
— открываем итоговый путь
Так как у меня в основном 3 папки, выглядит это все примерно так:
Копирование имени файла
Осталась мелочь. Периодически (часто, на самом деле) мне нужно копировать имя файла. Сначала, я делал так: ПКМ по файлу — переименовать, ctrl+c. Через какое-то время стал выделять файл, F2 (хоткей для переименования) и ctrl+c. Быстрее, но все равно неудобно. Как всегда, сделаем это нажатием кнопки:
f10:: Send, {f2} Send, ^c Send, {Enter} return
Заключение
Себе я обклеил все используемые кнопки на клавиатуре, чтобы было более наглядно и не забывал, что где
На данный момент это все мои «лайфхаки» через AHK. Возможно, через какое-то время будут новые — обязательно приведу в человеческий вид и поделюсь. Так что, не прощаюсь!
P.s. мой полный скрипт для AHK можно скачать тут
Мой телеграмм канал с полезными инструментами для работы в Nuke и не только:
ссылка на оригинал статьи https://habr.com/ru/articles/829370/
Добавить комментарий