Pull to refresh

Создание собственной темы usplash

Configuring Linux *
Как и обещал в предыдущем топике, подробно описываю создание собственной темы usplash. Для начала нам понадобятся: GIMP и некоторые навыки работы в нем, а так же следующие пакеты:
gcc, libbogl-dev, libusplash-dev

Любая тема Usplash состоит минимум из трех компонент: фоновая картинка, тело прогресс-бара, фон прогресс-бара. С фоновой картинкой все понятно, это — основа, на которой будет все остальное. Тело прогресс-бара — картинка, которая по мере загрузки заменяет собой картинку-фон прогрессбара.

Итак, сначала сделаем себе фон. Я выбрал тот, который стоит у меня в качестве фона на рабочем столе. Определимся с размером нашего splash. Нужно выбрать наибольший из возможного — в моем случае 1024x768. Соответственно приводим размер фоновой картинки к этому размеру.
Теперь самое важное: необходимо создать и сохранить цветовую палитру вашего изображения. Все остальные изображения должны иметь ту же самую палитру.

Специально помечу — Окна->Панели->Образцы цветов, далее уже в окне: Меню->Меню палитр->Импортировать палитру. Далее выбираем наше изображение. Скриншот

Палитра может содержать до 256 цветов.
Сохраняем изображение с именем usplash_1024_768.png. Создаем такие же изображения для других разрешений — (Я делал только 800x600); сохраняем так же в формате png и в той же палитре. Называем usplash_800_600.png.

Теперь самое время создать прогресс-бар. Создаем два рисунка (я делал 216x8 px) — приводим их к уже созданной палитре (скриншот), сохраняем один — throbber_fore.png, второй — throbber_back.png (Передний и задний соответственно).
Далее немного программирования.

Непосредственно исходники моей темы можно найти тут

Остановлюсь на том, что действительно важно.

Начало описания структуры темы:
struct usplash_theme usplash_theme_1024_768 = {
.version = THEME_VERSION,
.next = NULL,
.ratio = USPLASH_4_3,


.next — указатель на следующую структуру. Чтобы сделать тему для других разрешений — копируем Структуры, указываем в указателях .next имя следующей структуры. Указатель в последней структуре должен указывать в NULL
.ratio = USPLASH_4_3 — эта строчка задает соотношение сторон темы.

/* Background and font */
.pixmap = &pixmap_usplash_1024_768,

/* Palette indexes */
.background = 0x0,
.progressbar_background = 0x0,
.progressbar_foreground = 0x200,
.text_background = 0x17,
.text_foreground = 0x32,
.text_success = 0x171,
.text_failure = 0x156,


Тут все должно быть понятно: слева — элемент, справа — какого цвета он будет. Номера цветов соответствуют их номерам в вашей палитре (посмотреть можно в том же GIMP).

/* Progress bar position and size in pixels */
.progressbar_x = 404, /* 1024/2 - 216/2 */
.progressbar_y = 524,
.progressbar_width = 216,
.progressbar_height = 8,


Позиция и размеры прогресс-бара. Позиция индивидуальна для каждого из разрешений. Размеры должны соответствовать размерам картинок throbber_fore и throbber_back.

/* Text box position and size in pixels */
.text_x = 322,
.text_y = 525,
.text_width = 380,
.text_height = 100,


Описание положения зоны текстового вывода (сюда выводятся системные сообщения, если появляются во время загрузки).

Собственно с большего все. Далее все это дело нужно собрать (в архиве есть makefile), и, полученный файл usplash.so, и будет нашей темой. Далее — или пользуемся StartUp manager или

# update-alternatives --config usplash.so

Вот и все! Пользуйтесь :)
Tags:
Hubs:
Total votes 22: ↑19 and ↓3 +16
Views 1.6K
Comments Comments 5