Темы и магазин тем
Тема меняет весь вид одним щелчком: цвета, обои, полку, лаунчер, окна, экран блокировки, шрифты, значки и звуки. Всё это — в Настройки → Персонализация.
Как пользоваться
- Применить: щёлкните по теме в разделе Темы.
- Сохранить свой вид: Сохранить текущий вид как тему. Ваши обои копируются рядом.
- Экспорт: Экспорт текущего вида сохраняет
.jsonс упакованными внутрь обоями — его можно просто переслать. Импорт темы добавляет такой файл к вашим темам. - Удалить: наведите на свою тему и нажмите корзину.
Магазин тем
В Магазине тем — темы, опубликованные на GitHub. Установить скачивает, проверяет и применяет тему, после чего она появляется среди ваших. Проверено HypeDE значит, что именно эту версию посмотрел человек; Ещё не проверено — тема прошла только автоматические проверки.
Можно вставить ссылку на любой репозиторий в поле под магазином и нажать Установить.
Как опубликовать свою тему
- Настройте нужный вид и выберите Экспорт текущего вида.
- Создайте открытый репозиторий на GitHub и положите файл в корень под именем
theme.json. - По желанию добавьте
preview.png— снимок экрана 16:9 до 4 МБ. - В Магазине тем вставьте ссылку на репозиторий и нажмите Опубликовать.
- HypeDE проверит репозиторий и откроет готовую заявку на GitHub. Отправьте её: в течение минуты бот ещё раз проверит тему, добавит её в магазин и закроет заявку.
Магазин запоминает тот коммит, который проверил. Чтобы опубликовать изменения, отправьте их в репозиторий и подайте новую заявку (снова Опубликовать): бот переведёт магазин на новый коммит.
Что проверяется
Тема — это данные, а не программа, и каждая скачанная тема считается недоверенной:
- применяются только настройки внешнего вида из фиксированного списка, каждая проверяется по типу и допустимому диапазону;
- картинка должна действительно быть того формата, что указан в имени; она распаковывается и собирается заново в отдельном процессе с ограничением памяти и времени — остаются только пиксели;
- в SVG нельзя скрипты, обработчики событий, внешние ссылки, сущности и вложенные файлы;
- видео — только MP4, WebM, MKV или MOV, и перед использованием оно разбирается; файлы до 64 МБ;
- если установлен ClamAV, каждый файл проверяется и им;
- скачанная тема может брать обои только из системных папок и своей собственной;
- магазин закрепляет каждую тему за коммитом, поэтому автор не может тихо подменить опубликованную тему.
Формат файла
Тема — JSON-файл с "hypede-theme": 1, полем name и любыми из этих групп:
| Группа | Поля |
|---|---|
colors |
scheme (default, prefer-dark), accent (#rrggbb), gnome-accent, shelf, menus |
wallpaper |
light, dark, fit, color, live, live-speed |
shelf |
position, alignment, style, size, icon-size, opacity, blur, indicator, hover-zoom, show-date |
launcher |
style, columns, icon-size, labels, opacity, blur |
desktop |
icons, icon-size, show-home, show-trash |
windows |
corner-radius, rounded-windows, window-radius, animations, animation-speed, genie, jelly, buttons, notifications, greeting |
lockscreen |
style, clock, clock-color, clock-size, message, wallpaper, blur, dim, waves, cards |
fonts |
interface, documents, monospace |
icons |
theme, cursor, cursor-size |
sounds |
theme |
Обои — пути file:///usr/share/… или embedded:ИМЯ, указывающие в объект files с картинками в base64.
Пример:
{
"hypede-theme": 1,
"name": "Deep Forest",
"author": "вы",
"description": "Моховой зелёный на тёмной хвое.",
"colors": { "scheme": "prefer-dark", "gnome-accent": "green", "accent": "#9bd77c",
"shelf": "#0e1a12", "menus": "#132219" },
"wallpaper": { "light": "file:///usr/share/hypede/wallpapers/forest.svg",
"dark": "file:///usr/share/hypede/wallpapers/forest.svg" },
"shelf": { "style": "floating", "opacity": 82 },
"windows": { "corner-radius": 20, "genie": true }
}
Из терминала: hypede-theme list, apply, save, export, import, install, check.