Какими инструментами воспользоваться для манипуляции над окнами в системе?

Рейтинг: 1Ответов: 2Опубликовано: 15.02.2023

Появилась необходимость управления положением и размерами открытых окон в Linux. Начал гуглить оконные менеджеры для данной оси. Одним из первых понравившихся вариантов стал wmctrl, который написан на C.

Сам я пишу на пайтоне, но мне было бы удобно использовать команды терминала для управления окнами. В wmctrl как раз все так и организовано, мне понравился его функционал и я решил установить и попробовать. Потом я увидел год его выпуска и понял, что скорее всего возникнут проблемы)) По итогу он не видит половину открытых окон, и соответственно отпадает. При вводе wmctrl -l, в теории должен быть выведен список всех открытых окон, но я увидел только 1 из 4. Затем я нашел qtile, там возникла проблема с вэйландом, вероятно в силу моей криворукости.

Если кто нибудь пользовался подобными инструментами, можете посоветовать какой нибудь оптимальный вариант, который хотя бы корректно функционирует и не требует много зависимостей? Заранее спасибо

Ответы

▲ 1Принят

Если вы ищете легкий и эффективный оконный менеджер, которым можно управлять с помощью команд терминала, я рекомендую проверить i3. Это плиточный оконный менеджер, который разработан таким образом, чтобы управляться с клавиатуры и легко настраиваться.

Плюсы:

  1. i3 отлично поддерживает управление Windows с помощью инструментов командной строки и имеет простой формат файла конфигурации, который можно редактировать с помощью любого текстового редактора. Конфигурация по умолчанию довольно минимальна, но ее легко настроить в соответствии с вашими потребностями.

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

Чтобы начать работу с i3, вы можете установить его через менеджер пакетов вашего дистрибутива Linux. После установки вы можете запустить его из своего дисплейного менеджера или запустив новый сеанс. В Интернете также доступно множество ресурсов, которые помогут вам научиться использовать и настраивать i3, включая официальную документацию и форумы сообщества.

▲ 1

Но если пишете на python, то стоит попробовать Wnck именно для манипуляций с окнами

import time
import gi
gi.require_version('Gdk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gdk, Wnck

Gdk.init([]) # нужно если не запускаете GLib.MainLoop или Gtk.main()
screen = Wnck.Screen.get_default()
screen.force_update() 

for window in screen.get_windows():
    print(f'{window.get_application().get_name()}: {window.get_name()}')
    time.sleep(0.200)
    window.activate(time.time())