Всего сообщений: 6
Год назад я начал разработку окружения рабочего стола на C++/Qt. Пока есть только панель и control center.
Целью разработки было легковесное окружение рабочего стола, которое в тоже время имеет широкие возможности кастомизации. Нужна была середина между легковесностью (как у того же LXDE) и кастомизацией, потому что в наиболее распространенных окружениях рабочего стола эти два понятия не сочетаются. В таких случаях обычно используется i3, но для его конфигурации нужно много времени, поэтому важным фактором также было user-friendly UI.
Среди доступных на текущий момент апплетов:
Панелей пока максимально может быть 2 (1 сверху и 1 снизу). Их можно делать нерастянутыми на всю ширину экрана и сдвигать. Из возможностей кастомизации внешнего вида: смена иконок, шрифта, акцента (любой из RGB), темы (их можно писать самому, лежат по пути /usr/share/plainDE/styles) и т.д. Список того, что можно изменить будет непрерывно пополняться. Для упрощения создания тем оформления можно будет их создавать из GUI.
Разработка активно ведется, поэтому есть много планов на будущее: вертикальные панели, написание своего оконного менеджера, поддержка Wayland, файловый менеджер, переход на QML, взаимодействие с сообществом (локализация, апплеты, artwork, …).
Потребление ресурсов в основном зависит от оконного менеджера. Сама панель потребляет не более 20-30 МБ ОЗУ. Дефолтный конфиг (Openbox + plainPanel) без композитного менеджера и pcmanfm –desktop потребляет в среднем 150-160 МБ ОЗУ на виртуальной машине. На нетбуке с 1 ГБ ОЗУ на дистрибутиве Arch Linux 32 результат ~120 МБ ОЗУ.
Мейнтейнер проекта: ivabus
На скриншоте: Arch Linux, plainDE, pcmanfm, picom.
Иконки: Mint-Y-Legacy.
>>> Просмотр (1280x768, 632 Kb)
Уже создавал как-то тему, но не в галерее. Сделал простой window manager под свои нужды, в нём нет ни одной детали, которая лично мне не была нужна. Управление окнами (мышка/клавиатура), таскбар, календарь. Отдельной программой — регулятор громкости. Ещё одной — мониторинг проца/памяти/сети, батарея ноута и регулятор подсветки.
Терминал планировал свой, но пока xfce4-terminal. Переключатель языка — xxkb с кастомным конфигом.
Поддерживается ведение списка окон, присвоение им статусов «всегда сверху», «сверху когда активно» и просто визуальное выделение цветом кнопки на панели задач. Кнопки можно передвигать.
Управление самими окнами (не в панели задач) — мышкой при нажатом Super (двигать левой, ресайз правой, maximize дабл-кликом), заголовки и т.п. не рисуются.
Регулятор громкости показывает и меняет значение master-настройки alsa — либо по хоткеям (спец. кнопки для громкости, обычно есть на ноутах), либо мышкой.
Как сделать глобальный кастомный конфиг для xxkb — не нашёл, видимо нельзя, а перезаписывать стандартный не хотелось, поэтому его придётся класть вручную в ~/.xxkbrc где надо.
Также в архиве исходников есть мой скрипт для настройки адекватного поведения тачпада, может кому тоже пригодится (но я не знаю, насколько он переносимый).
Скачать всё это можно тут: https://firk.cantconnect.ru/projects/fwmx/ (кроме мониторинга, там исходник привязан к конкретно моему железу, к тому же написан в черновую и не очень годится для публикации, может потом как-нибудь).
Там исходники и deb-пакеты для i386/amd64 (вариант из wheezy, думаю, везде запустится).
Там же внутри есть и man-страницы (rus/eng) по настройке.
>>> Просмотр (1365x767, 102 Kb)
Запустил тут в виртуалке новое DE под названием FyneDesk, которое написано на тулките fyne.
Там уже есть свои: эмулятор терминала, калькулятор, редактор изображений, дисплейный менеджер и прочее https://github.com/fyne-io
Как видно, все в зачаточном состоянии, но перспектива есть.
Ну и до кучи запущена OpenDiablo2 https://github.com/OpenDiablo2/OpenDiablo2
>>> Просмотр (1920x1080, 332 Kb)
Есть такой FOX Toolkit, очень давний кроссплатформенный тулкит на C++, который разрабатывается единственным разработчиком-энтузиастом. Тулкит не заброшен, хотя и не разрабатывается в активном темпе.
С самим тулкитом поставляются:
Есть еще двухпанельный ФМ XFE на этом тулките. Он укомплектован просмотрщиком изображений и еще одним простым редактором.
Раньше был еще проект fxdesktop
— попытка сделать на этом тулките DE. Не знаю, насколько глобальные были планы у автора, но удалось сделать только часть базовых функций экранной панели, и проект был заброшен. Всё это умерло где-то к концу 00-х.
Еще есть fxprocessview
— диспетчер процессов в полуработающем состоянии, тоже заброшен.
На самом деле я вспомнил о fxdesktop только потому, что у меня на машине остался неудаленный пакет с ним еще со времен до миграции с 32-битного на 64-битный Арч. (Я без переустановки ОС мигрировал; через принудительную переустановку всех системных пакетов.) Ну и тут я решил упороться, и понеслось…
Исходники fxdesktop
и fxprocessview
удалось найти чудом. При чем у fxdesktop
нашел два архива с разным набором багов, так что там еще предстоит разбираться с отличиями.
Пока что было сделано:
У ControlCenter исправил цветовую схему, чтобы она точно имитировала цвета Windows. Потом на этом не остановился и запилил все варианты:
Следом добавил цветовые схемы для классических стилей gtk2: Raleigh, Crux, Clearlooks, Industrial, ThinIce. То есть в сами эти стили FOX, разумеется, не умеет. Но при выборе соответствующих цветовых схем он, по крайней мере, использует такие же опорные цвета для окон и текста. Для Adwaita тоже добавил.
Плохая новость в том, что цветовые схемы хранятся не в конфигах, а вшиты прямо в ControlCenter. Выбранный набор цветов программа пишет в конфиг, чтобы другие приложения могли им пользоваться. А вот сами наборы — это массив в исходниках. Неудобно.
Кстати говоря, бесполезный факт, но внешний вид элементов управления практически с попиксельной точностью воспроизводит классическую Windows. Так вот по скрину окна (без рамок openbox-а) даже не знаю, можно ли отличить от Винды. Например, стиль Redmond в gtk2 сразу палится, что не винда — он совсем не pixel perfect.
Дальше я поржал с русской локализации XFE с опечатками типа «Измененять» и «Сравнитель файлов» и сел её править. Потом уперся в то, что часть бреда исправить не могу, потому что бред также в английском оригинале. (Разработчик из Франции, возможно, в этом дело.) Тут нужно будет писать письма в апстрим, ладно, это потом…
Ну и наконец я взялся за fxdesktop
. Сам код компилируется без проблем спустя 10+ лет, пришлось только кривой configure-скрипт переписать. На скриншоте видно рабочий стол (оранжевый фон без ничего) и панель вверху — это всё, что есть в этой программе. Иконки на рабочем столе программа рисовать не умеет, но умеет меню по ПКМ, где планировалось что-то полезное, но почти ничего нет. На панели слева направо видно:
HOME
, XDG_DESKTOP_DIR
, XDG_DOCUMENTS_DIR
, XDG_DOWNLOAD_DIR
и т.п.). Научил лаунчер распознавать и подставлять соответствующие специальные переменные окружения в путях. Научил примитивной логике загрузки иконок по имени. Пока без полной поддержки тем иконок.Что еще видно на скриншоте. «FOX Desktop Setup» — это утилита ControlCenter. А «FOX Desktop Settings» — это настройки самого fxdesktop
. Надо их какое-то более очевидно переименовать, что ли. Для скриншота открыл калькулятор и PathFinder. Текстовый редактор в композицию на мой монитор уже не влез.
PathFinder вот так по хардкору имитирует иконки то ли от 95-й винды, то ли вообще от 3.11-й. XFE пытается выглядеть чуть современнее и в свежем релизе даже обещали поддержку HiDPI.
Это никакое не DE, разумеется. Но некий смысл в этом сборнике недописанных программ всё же есть. Во-первых, их интересно дописывать. :D Во-вторых, на старом компе это должно летать. Кто-то тут у нас коллекционировал старые пни и всё такое?..
P.S. Дорогой движок форума, да какие я метки сюда поставлю? Тега «fox toolkit» у тебя, к сожалению, нет, а добавить его мне число звезд не даёт. Тега «практическая некромантия» тоже не подвезли.
>>> Просмотр (1280x1024, 210 Kb)
На скриншоте представлена компиляция различных версий KDE, начиная от Cool Desktop Environment Beta 3 и заканчивая KDE Plasma 5.
Предыдущая тема с хронологией развития GNOME.
>>> Просмотр (4814x2829, 1814 Kb)