Вопрос или проблема
Power Toys — это инструмент с открытым исходным кодом, который содержит множество очень полезных инструментов для Windows 10+ и я использую его ежедневно на работе. Однако один из них, который я действительно хотел бы использовать в своей личной системе, которая работает на Ubuntu 20.04.4. Этот инструмент называется FancyZones.
Вы можете перейти по ссылке для подробного объяснения всех его функций, но в общем, FancyZones — это инструмент для разметки области экрана, чтобы вы могли размещать окна в этих зонах. Как это работает: я перетаскиваю окно, удерживая нажатой левую кнопку мыши, и в это время щелкаю правой кнопкой, чтобы зоны появились. Когда я отпускаю левую кнопку мыши, окно займёт зону, или я могу отменить это, щёлкнув правой кнопкой ещё раз, пока продолжаю перетаскивать.
Зоны должны быть полностью настраиваемыми, и должна быть возможность переключаться между макетами зонирования для каждого монитора с помощью сочетания клавиш.
Например, у меня есть экран ноутбука и ультраширокий монитор. На экране ноутбука макет имеет 4 зоны по одному в каждом углу, в то время как на ультрашироком мониторе есть 3 макета: 1 такой же, как у ноутбука, 2 — 4 зоны рядом, а 3 — это сфокусированное пространство слева, немного ниже, чем было бы у обычного монитора, а остальная часть справа — это не сфокусированный контент. У этого также есть другая зона сверху, имитирующая монитор размером 720p, когда я делюсь экраном, чтобы я мог показать только одно окно с идеальным соотношением и размером, что означает, что люди могут наслаждаться полноэкранным режимом, не зумируя для понимания того, что я делюсь.
Это не является обязательным, но если возможно, я хотел бы, чтобы он был доступен в приложении “Программное обеспечение Ubuntu”.
Существует расширение Tiling Assistant (см. этот пост о том, как установить расширения GNOME Shell: Как установить расширения GNOME Shell в Ubuntu 22.04 LTS?). Это потрясающее расширение, которое значительно расширяет стандартный опыт работы с таймингом GNOME и является крайне настраиваемым. Расширение предлагает базовую тайминг по четвертям, а также тайминг, аналогичный Windows, как перетаскиванием окна мышью, так и с помощью настраиваемых сочетаний клавиш. По умолчанию меню опций расширения имеет только две вкладки: Общее и Сочетания клавиш, показанные на следующих скриншотах:
Однако настоящая сила расширения и то, что более интересно для вас, заключается в скрытой вкладке. Эту вкладку можно найти, если вы щелкните на значок лампы в верхнем левом углу окна расширения, выберите Дополнительные… и включите Дополнительные / Экспериментальные настройки:
Тогда у вас также будет доступ к вкладке Макеты:
Вкладка Макеты содержит список предустановленных пользовательских макетов, которые вы можете использовать, и также позволяет добавлять собственные пользовательские макеты. Чтобы разместить окно в пользовательском макете, вы перетаскиваете окно мышью, удерживая клавишу Alt. Затем появляется предварительный просмотр макета, и вы отпускаете окно, где хотите.
Чтобы изменить макет, вы можете использовать сочетание Ctrl+Alt+O, которое открывает всплывающее окно, позволяющее вам выбрать другой макет.
Чтобы добавить пользовательский макет:
Вы определяете прямоугольники макета, вводя их
x
иy
координаты, а также ихширину
ивысоту
в текстовом введении, разделяя их –. Это значения с плавающей точкой, которые могут варьироваться от 0 до 1. Точка (0,0) представляет верхний левый угол вашего рабочего пространства, а (1,1) — нижний правый. Тип цикла устанавливается путём добавления--h
или--v
к текстовому введению для горизонтального и вертикального циклов соответственно. Вы можете прикрепить приложение, используя кнопкуAdd Button
справа от текстового поля. Она действует как переключатель. Если вы уже прикрепили приложение к нему, нажатием на него снова удалите приложение.
Например, чтобы добавить макет с 3 колонками, вы нажимаете кнопку + внизу вкладки Макеты и добавляете следующее (скриншот из Руководства пользователя проекта, ссылка ниже):
Вы можете найти больше в Руководстве пользователя расширения.
Вот как выглядят три окна на моём рабочем столе с использованием настроенного макета 3-Колонки с:
- Rect 0:
0--0--0.25--1
- Rect 1:
0.25--0--0.5--1
- Rect 2:
0.75--0--0.25--1
Я попробовал несколько решений с таймингом и оставил свои заметки здесь: https://gist.github.com/bmaupin/5ebd4d7fd52f8911e14fa55cd58aee2d
Вот мои текущие рекомендации в порядке:
Tiling Shell
В настоящее время я использую Tiling Shell. Из всех расширений для тайминга оно мне кажется наиболее похожим на FancyZones. Оно работает очень хорошо сразу после установки, с полезными стандартными макетами. Ctrl работает сразу, чтобы зацепиться за зону, а Ctrl плюс Alt работает для охвата нескольких зон.
Единственный недостаток, который я нашёл, это то, что если вы хотите настроить больше, чем просто макеты (например, убрать зазор между зонами, отключить всплывающее окно помощника захвата), вам нужно сделать это через менеджер расширений Gnome.
gSnap
gSnap был тем, что я использовал ранее. Это ещё одно отличное расширение, которое также работает хорошо, хотя мне не так нравятся его стандартные настройки, и в редких случаях функция захвата в зону просто переставала работать на некоторых рабочих пространствах.
Я сделал несколько изменений, чтобы оно работало больше как FancyZones:
-
Щелкните на значок в области уведомлений > Настройки
-
Я снял галочку с Показать вкладки. У FancyZones их нет, и мне очень не нравилось, сколько места они занимают или как иногда закрывают части экрана, которые я пытался видеть. Плюс есть много других способов изменять окна (из значка приложения в доке, Alt+Tab и т. д.).
-
Я установил галочку на Удерживайте CTRL для захвата окон. У FancyZones окна также по умолчанию не захватываются за зоны. Стандартное поведение gSnap — захватывать каждое окно в зону, что мне не нравилось. Иногда я не хочу перемещать окно в зону, особенно маленькие окна. И когда появлялось новое окно (например, запрос пароля), оно захватывало его в зону, распределяя элементы интерфейса в места, где я не ожидал их увидеть.
Вы также можете дополнительно имитировать FancyZones, установив отступы в настройках gSnap, хотя я этого не делал.
Tiling Assistant
Я попробовал Tiling Assistant, и это не мой первый выбор. Оно кажется таким же мощным и настраиваемым, как Tiling Shell (и более, чем gSnap), но с менее интуитивным интерфейсом. Также поддержка макетов в Tiling Assistant всё ещё помечена как “экспериментальная”.
Pygrid был моим выбором на протяжении многих лет.
Я только что наткнулся на Linux-PowerToys, и он выглядит очень похоже на Windows PowerToys. Вы можете создавать зоны и перетаскивать приложения в зону, как в Windows PowerToys.
Ответ или решение
Альтернативы FancyZones от Microsoft PowerToys для Ubuntu
Microsoft PowerToys включает в себя множество полезных инструментов, среди которых FancyZones выделяется как мощная программа для организации окон на экране. Пользователи Ubuntu, желающие добиться схожей функциональности, могут воспользоваться несколькими достойными альтернативами. В данной статье мы рассмотрим наиболее подходящие решения, которые помогут организовать пространство рабочего стола на Ubuntu.
1. Tiling Assistant
Tiling Assistant — это расширение для GNOME, которое существенно расширяет стандартные возможности по укладке окон. Это решение позволяет менять размещение окон с помощью мыши и настраиваемых сочетаний клавиш.
Ключевые особенности:
- Поддерживает "квартирную" укладку и укладку, аналогичную Windows.
- Позволяет настраивать собственные схемы укладки через скрытую вкладку "Layouts", доступную после активации режима "Advanced".
- Можно создавать и добавлять собственные схемы укладки по заданным координатам, что открывает широкие возможности для кастомизации рабочего пространства.
2. Tiling Shell
Tiling Shell является еще одним отличным вариантом, который многими пользователями рассматривается как наиболее схожий с FancyZones.
Преимущества:
- Проста в использовании с заранее заданными макетами.
- Позволяет быстро привязывать окна к зонам с помощью комбинаций клавиш (например,
Ctrl
для укладки иCtrl + Alt
для spanning). - Удобные, настраиваемые параметры укладки, однако для более глубоких настроек может понадобиться Gnome Extension Manager.
3. gSnap
gSnap — еще одно расширение для GNOME, которое позволяет управлять укладкой окон.
Как улучшить использование gSnap:
- Настройка параметров, таких как скрытие вкладок и возможность удерживания клавиши
Ctrl
для привязки окон. - При правильной настройке gSnap может максимально адаптироваться под удобства пользователя, хотя может возникать незначительная потеря функциональности.
4. Pygrid
Pygrid — это приложение с открытым исходным кодом, которое предоставляет простую в использовании интерфейс для укладки окон. Это решение оптимально для пользователей, предпочитающих рабочий стол без излишних настроек.
Основные функции:
- Легко управляемая система для установки звуковых окон.
- Простота в использовании и настройках, многие параметры можно менять через графический интерфейс.
5. Linux-PowerToys
Nовая инициатива Linux-PowerToys стремится воспроизвести возможности Windows PowerToys на Linux. Это предложение сходно с FancyZones, так как позволяет создавать зоны и перетаскивать приложения, тем самым вдохновившись функциональностью оригинала.
Ключевые моменты:
- Создавайте зоны для упрощения работы с несколькими окнами.
- Предоставляет интуитивно понятный интерфейс для управления окнами.
Заключение
Хоть FancyZones от Microsoft PowerToys остается популярным инструментом для организации рабочего пространства в Windows, пользователи Ubuntu имеют в своем распоряжении несколько мощных альтернатив. Tiling Assistant, Tiling Shell, gSnap, Pygrid и Linux-PowerToys представляют собой отличные варианты для эффективного управления окнами на рабочем столе.
Каждое из предложенных решений обладает своими уникальными функциями и настройками, что позволяет пользователям выбрать оптимальный инструмент для своих нужд. При этом большинство из них можно установить через Ubuntu Software, что упрощает процесс внедрения.