mel.

Mel Education Launcher — сенсорное рабочее пространство для интерактивных досок и больших экранов на Linux.

Версия: 1.0
Основная среда: KDE Plasma / Wayland
Лицензия: GPL-3.0-or-later

Проблема

Обычный рабочий стол KDE рассчитан прежде всего на мышь, клавиатуру и работу с окнами. На интерактивной доске это создаёт лишние действия:

  • преподавателю приходится искать приложения в системном меню;
  • панели, рамки и другие окна перекрывают учебный материал;
  • небольшие системные элементы неудобны для большого сенсорного экрана.

Решение

mel. устанавливается поверх существующей KDE Plasma и превращает её в единое touch-first пространство. Дистрибутив и системные приложения не заменяются: браузер, файловый менеджер и OpenBoard продолжают работать как обычные программы Linux.

Главный экран предоставляет три крупных сценария — файлы, интернет и доску. После запуска приложение растягивается до границ экрана, а поверх него остаётся панель mel. с рисованием, экранной клавиатурой и кнопкой возврата домой.

Возможности

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

Интерфейс

Мокап использования на интерактивной доске Главный экран mel.

Установка

Скачайте и распакуйте архив, затем выполните:

cd mel-1.0
chmod +x install.sh
./install.sh

Установщик:

  1. создаёт каталог ~/mel;
  2. создаёт виртуальное окружение ~/mel/.venv;
  3. устанавливает Python-зависимости из requirements.txt;
  4. добавляет mel. в меню приложений;
  5. включает пользовательский автозапуск при входе в KDE.

Основная установка не вызывает sudo и не изменяет системные файлы. Для скачивания PyQt5 требуется интернет или доступное локальное зеркало pip.

Чтобы установить mel. без автозапуска:

MEL_AUTOSTART=0 ./install.sh

Повторный запуск установщика обновляет файлы программы и сохраняет пользовательские настройки.

Системные требования

Обязательно:

  • Linux x86_64;
  • Python 3.7 или новее;
  • модуль venv для Python;
  • графическая сессия Wayland или X11.

Рекомендуется:

  • KDE Plasma 5 или 6;
  • gdbus для интеграции с KWin;
  • OpenBoard для режима интерактивной доски;
  • Onboard, Maliit или другая экранная клавиатура;
  • wmctrl и xprop для расширенной поддержки X11.

Команды приложений можно изменить в разделе Настройки → Дополнительные → Приложения.

Onboard в Wayland

На некоторых системах Onboard требует доступа к /dev/uinput. mel. не запрашивает административный пароль и не устанавливает udev-правила самостоятельно. При необходимости системный администратор может установить правило, которое поставляется вместе с Onboard:

/usr/share/onboard/72-onboard-uinput.rules

Это необязательный административный шаг и не влияет на основную установку mel..

Автозапуск

Установщик создаёт:

~/.config/autostart/mel.desktop

После следующего входа в KDE mel. откроется автоматически. Автозапуск можно отключить стандартными средствами Plasma или удалить этот файл.

Совместимость

Среда Статус Особенности
KDE Plasma 6 / Wayland Основная Полноэкранная область KWin, ожидание реального окна, устойчивый оверлей
KDE Plasma 5 / Wayland Требует дополнительного тестирования Используются совместимые KWin D-Bus и scripting API
niri / Wayland Экспериментальная Приложения в tiling-слое, оверлей во floating-слое
KDE, IceWM и другие WM / X11 Поддерживается Используются EWMH, wmctrl и override-redirect окна
Другие Wayland-композиторы Базовая Результат зависит от политики размещения окон композитора

KDE Plasma является приоритетной и наиболее полно управляемой средой.

Как это работает

mel. не использует эксклюзивный системный fullscreen для основного окна и приложений. Вместо этого окна становятся безрамочными и занимают полную область экрана. Благодаря этому панель рисования может оставаться выше приложения.

В KDE приложение взаимодействует с KWin через краткоживущие D-Bus-скрипты:

  • ищет окно строго по PID или классу приложения;
  • ждёт подтверждения появления окна;
  • снимает конфликтующее fullscreen-состояние;
  • размещает окно на FullScreenArea;
  • удерживает оверлей и экранную клавиатуру в верхнем слое;
  • поднимает новые окна, открытые из файлового менеджера.

Настройки хранятся в mel.json внутри пользовательской установки ~/mel.

Структура проекта

mel-1.0/
├── assets/             # значок и встроенные фоны
├── main.py             # приложение
├── install.sh          # пользовательский установщик
├── requirements.txt    # Python-зависимости
├── niri-mel.kdl        # дополнительные правила niri
├── CHANGELOG.md
├── LICENSE
└── README.md

Статус проекта

Версия 1.0 предназначена для открытого тестирования и пилотного использования на интерактивных досках.

Идея проекта

mel. создавался как небольшая надстройка над уже используемым школьным Linux. Цель проекта — оставить надёжную основу KDE Plasma, но убрать из повседневного сценария преподавателя управление окнами и мелкими системными элементами.

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

Лицензия

mel. распространяется на условиях GNU General Public License v3.0 or later. Полный текст находится в файле LICENSE.

При разработке mel. использовался Codex как вспомогательный инструмент для написания, анализа и отладки кода, подготовки документации и проработки интерфейса. Все изменения проверялись и тестировались автором проекта.