Написание Панели Для Оконного Менеджера I3 На Qt

я3 мой любимый оконный менеджер с плиткой.

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

В частности, он не может изменять размер или цвет границ.

Что делает пользователь Linux, когда программное обеспечение его не устраивает и альтернатив нет (да и нет)? Правильно, он патчит существующую, или пишет свою.

У меня совершенно нет желания иметь дело с xcb, на котором написана стандартная панель, поэтому я пошел по второму пути.

В качестве языка был выбран C++.

По поводу каркаса спросите К.

О.



Предисловие
Что вообще такое панель? Википедия сообщает нам об этом: «Панель задач — это приложение, которое используется для запуска других программ или управления уже запущенными, и представляет собой панель инструментов.

Особенно используется для управления окнами приложений».

А вот в тайловых оконных менеджерах все не так просто.

Окна в них не перекрывают друг друга.

Менеджер выделяет каждому окну свое пространство (плитка), на которое это окно растягивается.

Например:

Написание панели для оконного менеджера i3 на Qt

Ты видишь? Все окна видны.

Так что вопрос о необходимости панели задач в таких менеджерах отпадает сам собой.

Но на одном экране не уместишь много приложений.

Что делать? Именно здесь в игру вступает концепция нескольких рабочих столов.

Это чертовски удобно! Нет необходимости ежеминутно менять фокус окон, их размер и положение.

Перешел на первый рабочий стол - вот набор приложений для разработки, перешел на второй - держи рядом файловый менеджер и плеер.

И так далее.

Теоретически рабочих столов может быть бесконечное количество, но использовать более 10 одновременно может быть довольно проблематично.

Итак, наша панель будет управлять не окнами, а рабочими столами.

Поэтому я предпочитаю просто использовать слово «панель», а не словосочетание «панель задач».



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

Так что не будем отступать от традиций и первым делом напишем виджет для нашей будущей панели.

На данный момент это будет просто класс, унаследованный от QWidget. С конструктором и деструктором.

   

class Q3Panel : public QWidget { Q_OBJECT public:

Теги: #Qt #панель #i3 #программирование #Qt
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.