Организация быстрого запуска

В ходе работы привыкаешь к определенному набору софта. Сам набор, конечно, постепенно менялся — MS Word уступил своё место Sublime Text, а графические интерфейсы постепенно были заменены работой в строке терминала ConEmu. Но самое важное, что должно быть у такого софта — переносимость на флешке с одного компьютера на другой с сохранением всех настроек, ведь далеко не во всякой организации тебе позволят установить то, что ты считаешь нужным. К тому же, настройка того же MS Word на каждом рабочем компьютере по третьему или пятому разу может стать достаточно раздражающей задачей.

Так что для упрощения работы администраторам у меня постепенно оформилась подборка переносимого ПО, которое не нужно устанавливать.

Лаунчеров для таких комплектов достаточно много, но я пользовался PSMenu, в меню которого со временем образовалось больше 40 подменю редакторов текста, CSV и XML, аудиоредакторов и плееров, инструментов для сравнения текстов и графики, папок и файлов, ftp и ssh-клиентов, инструментов для работы с базами данных, просмотрщиков графики и шрифтов, редакторов графических, генераторов QR- и bar-кодов, поисковиков и индексаторов (из которых мне особо нравится hddb), редакторов реестра и т.д. и т.п. — мало ли что может понадобиться.

Конечно, со временем эта коллекция стала излишне большой, и управляться с ней стало достаточно сложно; часть инструментов больше не работает даже в Windows 7, потому что жили они у меня с незапямятных времён Windows XP и Vista.

К слову, та же проблема уже намечается и в хаосе консольных утилит, запомнить кто и что делает трудновато. Но там я дописываю ту или иную утилиту в справку, которая автоматически выдается при запуске новой консоли: там и fd и fzf, sd и rg, pandoc и pp, curl и aria2c, а также выводятся alias.

К тому же этот PSMenu стал не совсем удобным. Да, у него есть несколько очень полезных опций — к примеру, при запуске этого меню отдельные программы могут быть запущены автоматически. У меня это Minibin, ClipDiary и True XMouse (хотя вместо последнего уже прижилась настройка из WinAeroTweaker).

Однако помимо этого удобства заканчиваются, приходится делать много лишних щелчков мышью, а я после перехода на механическую клавиатуру предпочитаю последнюю. Не помню с чьей подсказки, но мне на глаза попался ueli, современное творчество на JS: по нажатию выбранной комбинации клавиш на экране возникает строка ввода, и по мере ввода в неё нужного слова происходит нечёткий поиск среди ярлыков программ, файлов в выбранных директориях, настроек системы и много чего ещё по выбору. Скорость и удобство совершенно другого уровня. Программа, что приятно, умеет быть переносимой (хотя индекс она, конечно, хранит в %USERPROFILE%, потому что в индекс как правило включаются и программы, установленные на компьютере).

Не обошлось и без недостатков — в частности, если старая версия ueli работала на Windows 7 нормально, то после обновления всё сломалось. К счастью, я достаточно хорошо разбираюсь, чтобы отследить источник проблемы: для получения списка файлов ueli под капотом использует Powershell, но поскольку в Windows 7 Powershell по умолчанию старый, то и ueli ломается, поскольку требует новой функциональности. К счастью, установка Win7AndW2K8R2-KB3191566-x64 решила проблему.

В начале при наличии профиля Powershell (Windows.Powershell_profile.ps1) в соответствующем месте пользовательского профиля индексация в ueli «ломается» (а это немаловажный момент, Chocolatey пишет в профиль загрузку автодополнений командной строки и прочего устанавливаемого), однако это легко поправимо: в строке Powershell, запущенной с полномочиями администратора, пишется Set-ExecutionPolicy -ExecutionPolicy Bypass. По умолчанию при наличии профиля применяется ограничение на исполнение скриптов, поэтому ueli и не может выполнить команду, из которой он получит список строк…

Конечно, натравить ueli индексировать всю помойку утилит в поисках исполняемых файлов неразумно, да и в меню они будут выведены как regass.exe — очень «информативно». Поэтому я решил создать ярлыки (.lnk) на отдельные файлы в отдельной же директории.

Создавать ярлыки вручную — последнее дело; к счастью, мне удалось найти утилиту shortcut от Marty List, которая позволяет одной командой создать ярлык в нужном месте расположения. В качестве параметров этой утилите можно передать не только полный путь до файла, но и путь до его директории, которая автоматически помещается в ярлык.

После чего осталось только переименовать нужные ярлыки, назвав их правильно, после чего у меня получилось вполне удобное и быстрое меню для всех нужных программ.

Второй выявленный недостаток: ueli не конвертирует имена файлов в UTF-8, из-за чего русский текст в именах файлов (ярлыков) превращается в непонятное месиво; возможно, это связано с тем, как Windows хранит имена файлов, но разработчикам программы я на это укажу.

К числу активно используемых мною функций относится и поиск из той же строки программы: пишешь g? запрос и производится поиск слова запрос в Google. По желанию можно указать свои сайты для выполнения поискового запроса. Аналогичным образом подключается и поиск по Everything (устанавливается Everything + интерфейс командной строки для него).