Title: Делаем Windows удобнее
Author: Viva Calman
Date: 2023-05-27 15:24:15
Correction code: 16851902702146

Несмотря на всю мою любовь к опенсорсу, моей повседневной домашней системой, как ни странно, остается Windows. Долгое время это был Windows 7, а на протяжении последних лет семи — Windows 10. При этом, что не менее странно, я практически не допиливал эту систему под себя. Пользовался как есть. Мне сложно сказать, почему так происходило, но факт остается фактом — у меня была практически дефолтная винда, с минимумом твиков (Punto Switcher, единственной задачей которого является переключение раскладки по кнопке Caps Lock я даже твиком не считаю).

Однако даже у меня временами возникает желание перемен. Вот и сейчас я решил, что раз я провожу за Windows столько времени, мне стоит все же привести систему в такой вид, в котором мне будет комфортно ее использовать, а не только смотреть ютуб в браузере и играть в видеоигры.

Небольшое отступление: это может показаться забавным, что я решил заниматься этим в тот момент, когда до конца поддержки Windows 10 осталось совсем немного. Что ж, я иногда торможу. А что касается обновления до Windows 11 или какой-либо последующей версии ОС от Microsoft, то я пока что не испытываю никакого энтузиазма по этому поводу. Начиная от того, что в Windows 11 до сих пор нет возможности сделать таскбар с правой стороны экрана, и заканчивая изуверской политикой Microsoft-а по превращению личной машины пользователя в инструмент вовлечения в (как же я не люблю этот термин в применении к IT) экосистему, из которой у пользователя банально не будет выхода, если он захочет сохранить доступ к привычным инструментам.

Но это лирика. Вернемся к сути. Основной проблемой организации работы на Windows для меня был один рабочий стол. Да, в Windows 10 и более поздних версиях, есть встроенная поддержка нескольких рабочих столов. Вот только в десятке она очень, очень зачаточная и мне, откровенно говоря, пользоваться этими столами неудобно. Я пробовал, создавал десяток воркплейсов, по которым пытался разбрасывать окна, но ничего не вышло — даже с учетом того, что есть хоткей для переключения между рабочими столами. Подозреваю, что причина в том, что нет никой возможности "из коробки" заставить приложение запускаться на нужном воркплейсе. В конце концов, суть множества рабочих столов в том, чтобы так организовать окна запущенных приложений, чтобы они не перекрывались и не приходилось мучительно искать их Alt-Tab-ом или на таскбаре.

Так что, первый "подход к снаряду" можно было признать неудачным. Я удалил созданные десктопы и вернулся к прежней конфигурации.

Сразу скажу, что да, мультимониторная конфигурация решила бы часть моих проблем, но у меня пока что нет дополнительных мониторов. Думаю, когда я ими обзаведусь, я напишу еще одну заметку, с учетом этого изменения.

Раз не получилось "из коробки", пришлось искать сторонние решения. Есть такая отличная штука на Linux — тайлинговые WM. Awesome, DWM, лет десять назад они были признаком "крутого линукс-хакера, который освоил линукс дальше команды ls". Как бы то ни было, идея автоматической организации окон в мозаику, когда они в принципе (за редкими исключениями типа поп-апов) не перекрываются, является гениальной по удобству. Но если в Linux ты просто ставишь понравившийся WM в систему (или допиливаешь верный FVWM, как это сделал я, о чем будет следующая заметка), и после некоторых настроек пользуешься им, то в Windows с этим все несколько сложнее.

Из коробки система умеет раскидывать окна по половинам экрана и по углам — достаточно потянуть окно к границе экрана и система сама услужливо предложит растянуть его под нужный размер. И даже предложит организовать другие окна рядом с развернутым окном. Но ведь хочется, чтобы это делалось автоматически. К счастью, под Windows все же есть довольно много надстроек, обеспечивающих tiling-функционал. Все я перечислять не буду, расскажу про те, что попробовал.

Первой была штука под названием FancyWM. Она есть на гитхабе, она есть в MS-Stor-е, так что с ее установкой проблем быть не должно. Она даже, по идее, нормально работает с родными виртуальными десктопами. Однако, поставив ее к себе, я поигрался с системой минут двадцать, после чего сказал "нет" и удалил этот WM с машины. Почему? Ну он мне просто показался неудобным и не соответствующим моим требованиям. Он обеспечивает тайлинг, но тайлинг выполнен в виде "псевдоокон", с отдельными заголовками, которые крадут место и создают визуальный шум. Скорее всего это и было основной причиной отказа от данной программы.

Второй попыткой был WM с названием Komorebi. Он так же опенсорсный и есть на гитхабе. Штука довольно минималистичная и по сути не делает ничего, кроме как распихивает окна под нужный паттерн. При этом, как ни странно, не работает с виртуальными столами Windows (по словам автора, API у этих десктопов ужасный и у него нет желания с ним возиться), но предлагает довольно удобную систему им на замену.

Замена реализована так, что Komorebi позволяет организовать окна на одном физическом десктопе в "наборы", соответвующие "виртуальным" десктопам, к каждому из которых можно приписать определенную схему раскладки. На практике это означает, что переключившись на первый "десктоп", я получаю два окна браузера, расположенные бок о бок, в той пропорции, в какой я их установил. WM позволяет сохранить раскладку окон в json-файл, после чего ее можно загружать по требованию. Например, повесить на хоткей (но я пока не разобрался, можно ли эту раскладку прописать, чтобы она применялась автоматически к нужному воркплейсу). К сожалению, если Komorebi уже имеет какие-то правила, приписанные к используемому воркплейсу, эта раскладка скорее всего не применится.

Screenshot%202023-05-21%20213557.png

В определенный момент я обнаружил, что максимально удобная раскладка окон на мониторах с разрешением выше, чем FullHD — это 2:1, когда главное окно занимает две трети ширины экрана, а сбоку от него располагаются одно или два (больше уже довольно бессмысленно) других окна. Это позволяет, скажем, иметь браузер и консоль на одном экране и работать в консоли, подглядывая в браузер (или глядя ютуб на меньшей половинке). Я допускаю, что для Ultra-Wide мониторов будет удобнее раскладка "главное окно посередине и сборку по паре дополнительный, но так как у меня довольно обычный монитор, я не могу это проверить экспериментально.

Screenshot%202023-05-21%20214025.png

В то же время, для терминалов BSP-раскладка, когда окна размещаются по принципу "Экран пополам по вертикали, потом половину экрана еще пополам по горизонтали, потом оставшуюся четверть пополам по вертикали..." не является наиболее эффективной или удобной. У терминалов всегда есть минимальная ширина, при достижении которой терминал становится непригодным для использования. Поэтому для воркплейса, где у меня находятся все окошки Putty, я прописал схему "Экран пополам, а оставшуюся половину режем только по горизонтали". Это позволяет вполне удобно разместить штук пять терминалов на одном экране. Такое правило у меня прописано для двух воркплейсов, так как вряд ли мне потребуется больше десяти ssh-сессий одновременно. А если потребуется, это будет уже отдельная история.

Теперь к некоторым проблемам Komorebi. Так как софтина работает с окнами по принципу "дергаю за те ручки, которые мне позволяет дергать Windows", не все окна нормально подхватываются и тайлятся. Например почти весь кривой (а другого практически не бывает) софт для прошивки радиостанций, корежит воркплейсы так, что после определенного момента пользоваться программой становится невозможно. Кое-какие кросс-платформенные утилиты, использующие, как я понимаю, тулкиты типа QT или GTK, тоже не хотят подчиняться правилам, установленным Komorebi. Да и чего греха таить, софтина все таки иногда подглюкивает. Еще один момент, который не столько является проблемой, сколько остатками старых привычек, это то, что WM иногда считает себя слишком умным, и теперь не получится раскидать окна руками по углам и наслаждаться раскладкой в четыре равных окна. Но за неделю работы я ни разу не обнаружил себя в ситуации, когда это реально бы доставло мне проблем.

Несмотря на некоторые недостатки, про которые я написал в предыдущем абзаце, Komorebi оказался черезвычайно удобным способом организовать интерфейс Windows 10 во что-то, что хотя бы отдаленно обладает удобством рабочих столов в *nix. Как я уже писал, у меня нет планов по переходу на Windows 11 и выше, но до тех пор, пока я еще пользуюсь Windows 10, я, скорее всего, буду использовать и Komorebi. Просто потому что эта программа сделала мою жизнь комфортнее.

З.Ы. Это не последняя заметка про организацию окон на рабочем столе. Будут еще

^HOME