Branding
Материал из ALT Linux Wiki
м (→branding-*-bootloader: +' ') |
м (→Состав: исправил очепятку, добавил ссылок, обобщил) |
||
(19 промежуточных версий не показаны.) | |||
Строка 7: | Строка 7: | ||
Минимальная адаптация состоит в замене нескольких констант в spec-файле: например, для Lite: | Минимальная адаптация состоит в замене нескольких констант в spec-файле: например, для Lite: | ||
- | < | + | <source lang="Spec">%define theme lite |
%define Theme Lite | %define Theme Lite | ||
%define codename none | %define codename none | ||
%define brand altlinux | %define brand altlinux | ||
%define Brand ALT Linux | %define Brand ALT Linux | ||
- | |||
- | При желании можно поменять картинки. Но по крайней мере в текстах почти везде в качестве имени дистрибутива, версии и производителя будут введённые вами значения. | + | %define variants ... |
+ | |||
+ | %define status альфа | ||
+ | %define status_en alpha | ||
+ | %define distro_name ALT Linux Lite (alpha) | ||
+ | %define distro_name_ru Альт Линукс Лёгкий (альфа) | ||
+ | </source> | ||
+ | |||
+ | При желании можно поменять картинки (потребуются 800x600 и 1920x1080). Но по крайней мере в текстах почти везде в качестве имени дистрибутива, версии и производителя будут введённые вами значения. | ||
+ | |||
+ | {{Attention|Нелатинские буквы должны (например, в '''%define status''') должны идти сильно ниже заголовка по требованию <tt>rpmbuild</tt>. Поэтому в начале следует '''%define variants''' с большим объёмом текста}} | ||
+ | |||
+ | {{Note|Непустой статус ('''%define status''') отрисовывается на обоях. Чтобы сделать его пустым, укажите <source lang="Spec">%define status %nil | ||
+ | %define status_en %nil</source>}} | ||
Некоторые ресурсы могут попадать в несколько подпакетов, некоторые предназначены для целевой укладки. | Некоторые ресурсы могут попадать в несколько подпакетов, некоторые предназначены для целевой укладки. | ||
+ | |||
+ | === Политика конфликтов === | ||
+ | |||
+ | Чтобы не было конфликтов по именам файлов, необходимо объявить возможные варианты брендингов для '''каждого''' подпакета: | ||
+ | <source lang="Spec">%define variants altlinux-backup-server altlinux-desktop altlinux-gnome-desktop altlinux-kdesktop \ | ||
+ | altlinux-lite altlinux-lxdesktop altlinux-office-desktop altlinux-office-server altlinux-school-server altlinux-sisyphus \ | ||
+ | altlinux-spt altlinux-tablet altlinux-workbench informika-schoolmaster ivk-chainmail lxde-desktop lxde-school-lite \ | ||
+ | Platform6-server-light school-junior school-lite school-master school-server school-teacher school-terminal simply-linux \ | ||
+ | sisyphus-server-light</source> | ||
+ | |||
+ | Далее в подпакетах (например, для '''bootloader''') | ||
+ | прописывается: | ||
+ | <source lang="Spec">Conflicts: %(for n in %variants ; do [ "$n" = %brand-%theme ] || echo -n "branding-$n-bootloader ";done )</source> | ||
== Состав == | == Состав == | ||
Обычно состоит из пакетов: | Обычно состоит из пакетов: | ||
- | + | ; branding-<название дистрибутива>-alterator | |
- | branding-<название дистрибутива>-bootloader | + | : стили оформление программы установки и Центра управления системой ([[alterator]]), включая значки этапов |
- | branding-<название дистрибутива>-bootsplash | + | ; branding-<название дистрибутива>-bootloader |
- | branding-<название дистрибутива>-graphics | + | : оформление меню загрузки с диска и загрузчика ОС ([[lilo]] или [[grub]]) |
- | branding-<название дистрибутива>-indexhtml | + | ; branding-<название дистрибутива>-bootsplash |
- | branding-<название дистрибутива>-menu | + | : оформление экрана прогресса загрузки ([[plymouth]]) |
- | branding-<название дистрибутива>-notes | + | ; branding-<название дистрибутива>-graphics |
- | branding-<название дистрибутива>-release | + | : обои, аватары и логотипы |
- | branding-<название дистрибутива>-slideshow | + | ; branding-<название дистрибутива>-indexhtml |
- | branding-<название дистрибутива>- | + | : титульная страница дистрибутва со ссылками |
+ | ; branding-<название дистрибутива>-menu | ||
+ | : пункты меню (если используется настраиваемое меню) | ||
+ | ; branding-<название дистрибутива>-notes | ||
+ | : лицензионный договор и примечания к выпуску (показываются в конце установки) | ||
+ | ; branding-<название дистрибутива>-release | ||
+ | : название дистрибутива (обычно с кодовым именем) в {{path|/etc/redhat-release}} | ||
+ | ; branding-<название дистрибутива>-slideshow | ||
+ | : изображения для слайдшоу при установке | ||
+ | ; branding-<название дистрибутива>-*-settings | ||
+ | : параметры среды по умолчанию | ||
+ | Типичная насыщенность изображений деталями: bootloader <= installer <= wallpaper (в любом случае перебарщивать ни к чему). | ||
=== [[Branding/bootloader|branding-*-bootloader]] === | === [[Branding/bootloader|branding-*-bootloader]] === | ||
Строка 39: | Строка 75: | ||
: значение <tt>theme</tt> в секции <tt>[base]</tt> должно соответствовать тому, куда в подпакете {{pkg|branding-*-bootsplash}} укладываются файлы (<tt>/boot/splash/%theme</tt>) | : значение <tt>theme</tt> в секции <tt>[base]</tt> должно соответствовать тому, куда в подпакете {{pkg|branding-*-bootsplash}} укладываются файлы (<tt>/boot/splash/%theme</tt>) | ||
- | + | {{Attention|{{pkg|gfxboot}} (см. тж. [http://en.opensuse.org/SDB:Gfxboot здесь]) весьма привередлив по части вариаций сжатия и прочего; см. [http://ftp.altlinux.org/pub/people/zerg/misc/design-bootsplashloader-convert.tar.gz скрипты zerg@] во избежание чёрной картинки под загрузочным меню вместо {{path|images/boot.jpg}} (который становится {{path|back.jpg}} перед попаданием в cpio-архив {{path|bootlogo}}). | |
+ | |||
+ | Известно, что {{pkg|grub}} не переваривает PNG с индексированным цветом.}} | ||
+ | |||
+ | Для того, чтобы для grub установить цвет полосы выделения (он может быть задан в теме grub только изображением), выполните в branding ([http://git.altlinux.org/people/cas/packages/branding.git?p=branding.git;a=commitdiff;h=d6eeed73f3b849824c153c09f3fafa6898d5c036 пример]), допустим, для цвета #0c2c6c: | ||
+ | <source lang="Bash">convert -size 16x16 -define png:color-type=2 -depth 8 xc:'#0c2c6c' components/grub2/selected_blob_c.png</source> | ||
+ | |||
+ | Расположение элементов и их цвета задаются в {{path|components/bootloader/gfxboot.cfg.in}}. Наиболее важные: | ||
+ | {|class="standard" | ||
+ | !Название параметра | ||
+ | !Описание | ||
+ | |- | ||
+ | |mainmenu.bar.color||Цвет фона полосы выделения | ||
+ | |- | ||
+ | |mainmenu.normal.fg||Цвет текста неактивного пункта меню | ||
+ | |- | ||
+ | |mainmenu.selected.fg||Цвет текста выделенного пункта меню | ||
+ | |- | ||
+ | |bootopt.label.fg||Цвет надписи параметров ядра | ||
+ | |- | ||
+ | |bootopt.text.fg||Цвет текста в поле параметров ядра | ||
+ | |- | ||
+ | |progress.bar.color||Цвет полосы прогресса загрузки ядра | ||
+ | |- | ||
+ | |panel.title.fg||Цвет надписи функциональной клавиши внизу | ||
+ | |- | ||
+ | |panel.normal.fg||Цвет значения функциональной клавиши внизу | ||
+ | |- | ||
+ | |panel.f-key.fg||Цвет функциональной клавиши внизу | ||
+ | |} | ||
=== branding-*-bootsplash === | === branding-*-bootsplash === | ||
; bootsplash/images/silent-*.jpg (если присутствуют, а не генерируются) | ; bootsplash/images/silent-*.jpg (если присутствуют, а не генерируются) | ||
- | : картинки для отображения в процессе загрузки установленной системы (для разных разрешений фреймбуфера; начинать стоит либо с дефолтного 800x600, либо с наиболее высокого из поддерживаемых — уменьшать проще)<br/>'''Внимание:''' {{pkg|bootsplash}} «переваривает» не всякие jpeg, при проблемах попробуйте сжать другим инструментом | + | : картинки для отображения в процессе загрузки установленной системы (для разных разрешений фреймбуфера; начинать стоит либо с дефолтного 800x600, либо с наиболее высокого из поддерживаемых — уменьшать проще)<br/>'''Внимание:''' {{pkg|bootsplash}} «переваривает» не всякие jpeg, при проблемах попробуйте сжать другим инструментом<br/>'''Внимание:''' {{pkg|plymouth}} не поддерживает jpeg и принимает png, но будьте осторожны с размером — слишком большой {{pkg|full.cz}}<ref>30M уже слишком много, 24M работает; с 26M пока неясно</ref> может привести к проблемам загрузки на [[UEFI]], при проблемах включайте indexed color и/или понижайте разрешение (например, с 1920x1080 до 1600x900). |
Подпакет должен содержать <tt>Provides: plymouth(system-theme)</tt> во избежание излишнего вытягивания, скажем, {{pkg|plymouth-theme-fade-in}}. | Подпакет должен содержать <tt>Provides: plymouth(system-theme)</tt> во избежание излишнего вытягивания, скажем, {{pkg|plymouth-theme-fade-in}}. | ||
Строка 74: | Строка 139: | ||
''Примечание:'' Если не хотите показа слайд-шоу, удалите все графические файлы и создайте текстовый файл любого содержимого (хоть пустой). | ''Примечание:'' Если не хотите показа слайд-шоу, удалите все графические файлы и создайте текстовый файл любого содержимого (хоть пустой). | ||
+ | |||
+ | == Сборка == | ||
+ | |||
+ | Во время сборки запускается скрипт configure, которому передаются параметры для подстановки: | ||
+ | |||
+ | <source lang="Spec">%build | ||
+ | autoconf | ||
+ | THEME=%theme NAME='%name' BRAND_FNAME='%brand' BRAND='%brand' STATUS_EN=%status_en STATUS=%status \ | ||
+ | VERSION=%version PRODUCT_NAME_RU='%distro_name_ru' PRODUCT_NAME='%distro_name' CODENAME='%codename' X86='%x86' \ | ||
+ | ./configure | ||
+ | make</source> | ||
+ | |||
+ | {{Note|Значения, которые могут содержать пробелы должны обязательно указываться в одинарных кавычках}} | ||
+ | |||
+ | === Подстановка значений === | ||
+ | |||
+ | Перечень подставляемых значений и файлы, где осуществляется подстановка описываются в файле {{path|configure.ac}}. По традиции файлы, в которых осуществляется подстановка, имеют суффикс {{path|.in}}, который во время подстановки удаляется. | ||
+ | |||
+ | Сначала описываются все переменные подстановки, например, | ||
+ | <source lang="text">AC_SUBST(NAME)</source> | ||
+ | |||
+ | Затем все файлы, где будут сделаны подстановки всех заявленных переменных (без суффикса {{path|.in}}), но будут обработаны именно файлы Makefile.in и так далее: | ||
+ | <source lang="text">AC_CONFIG_FILES([ | ||
+ | Makefile | ||
+ | components/bootloader/config | ||
+ | components/bootsplash/theme.plymouth | ||
+ | ... | ||
+ | ])</source> | ||
+ | |||
+ | В указанных файлах с расширением {{path|.in}} подстановочные значения указываются в виде '''@ИМЯ_ПЕРЕМЕННОЙ@'''. Например, так: | ||
+ | <source lang="Make">NAME=@NAME@</source> | ||
== Настройки == | == Настройки == | ||
Строка 88: | Строка 184: | ||
== Сообщения об ошибках == | == Сообщения об ошибках == | ||
- | [https://bugzilla.altlinux.org/buglist.cgi?query_format=advanced&classification=Development&product=Sisyphus&component=^%28branding|design%29-.*%24&component_type=regexp&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&chfieldto=Now&cmdtype=doit&order=Reuse%20same%20sort%20as%20last%20time Существующие]; [ | + | [https://bugzilla.altlinux.org/buglist.cgi?query_format=advanced&classification=Development&product=Sisyphus&component=^%28branding|design%29-.*%24&component_type=regexp&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&chfieldto=Now&cmdtype=doit&order=Reuse%20same%20sort%20as%20last%20time Существующие]; [[altbug:22482|метабаг]] |
+ | |||
+ | == Советы и секреты == | ||
+ | Обратите внимание на то, что в [http://git.altlinux.org/people/cas/packages/?p=branding.git наработках cas@] уделено заметное внимание вычистке дублирующихся изображений; собственный вариант брендинга есть смысл начинать именно от его веток <tt>branding-school-*</tt>. | ||
+ | |||
+ | === Обои по умолчанию === | ||
+ | Обои по умолчанию должны быть сохранены в файле {{path|/usr/share/design/current/backgrounds/default.png}}. Этот путь из темы формируется альтернативой: | ||
+ | <source lang="Spec">install -d %buildroot//etc/alternatives/packages.d | ||
+ | cat >%buildroot/etc/alternatives/packages.d/%name-graphics <<__EOF__ | ||
+ | %_datadir/design-current %_datadir/design/%theme $GRAPHICS_ALTPRIO | ||
+ | %_datadir/design/current %_datadir/design/%theme $GRAPHICS_ALTPRIO | ||
+ | __EOF__ | ||
+ | ... | ||
+ | %files graphics | ||
+ | %config /etc/alternatives/packages.d/%name-graphics</source> | ||
+ | |||
+ | === Значки на рабочий стол === | ||
+ | |||
+ | ;Для KDE4 | ||
+ | :Поместите файл .desktop в {{path|%_datadir/kde4/apps/kio_desktop/DesktopLinks/}} | ||
+ | |||
+ | === Пустой экран в KDE4 === | ||
+ | |||
+ | Не упаковывайте файл {{path|/etc/skel/.kde4/share/config/plasmarc}} — это может привести к пустому рабочему столу Plasma. Виджеты и прочие элементы по умолчанию настраиваются через каталоги {{path|/usr/share/kde4/apps/plasma-desktop/init}} и {{path|/usr/share/kde4/apps/plasma/layout-templates}}. | ||
+ | |||
+ | == Примечания == | ||
+ | <references /> | ||
{{Category navigation|title=Branding|category=Branding|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Branding|category=Branding|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 12:35, 11 апреля 2016
Содержание |
Пакеты branding
Пакеты branding-бренд-дистрибутив содержат в себе по возможности всю дистрибутивоспецифичную информацию (графику, настройки и тексты). Исходный git-репозиторий находится в git.alt boyarsh@ (обратите внимание на набор бранчей).
Минимальная адаптация состоит в замене нескольких констант в spec-файле: например, для Lite:
%define theme lite %define Theme Lite %define codename none %define brand altlinux %define Brand ALT Linux %define variants ... %define status альфа %define status_en alpha %define distro_name ALT Linux Lite (alpha) %define distro_name_ru Альт Линукс Лёгкий (альфа)
При желании можно поменять картинки (потребуются 800x600 и 1920x1080). Но по крайней мере в текстах почти везде в качестве имени дистрибутива, версии и производителя будут введённые вами значения.
%define status %nil %define status_en %nil
Некоторые ресурсы могут попадать в несколько подпакетов, некоторые предназначены для целевой укладки.
Политика конфликтов
Чтобы не было конфликтов по именам файлов, необходимо объявить возможные варианты брендингов для каждого подпакета:
%define variants altlinux-backup-server altlinux-desktop altlinux-gnome-desktop altlinux-kdesktop \ altlinux-lite altlinux-lxdesktop altlinux-office-desktop altlinux-office-server altlinux-school-server altlinux-sisyphus \ altlinux-spt altlinux-tablet altlinux-workbench informika-schoolmaster ivk-chainmail lxde-desktop lxde-school-lite \ Platform6-server-light school-junior school-lite school-master school-server school-teacher school-terminal simply-linux \ sisyphus-server-light
Далее в подпакетах (например, для bootloader) прописывается:
Conflicts: %(for n in %variants ; do [ "$n" = %brand-%theme ] || echo -n "branding-$n-bootloader ";done )
Состав
Обычно состоит из пакетов:
- branding-<название дистрибутива>-alterator
- стили оформление программы установки и Центра управления системой (alterator), включая значки этапов
- branding-<название дистрибутива>-bootloader
- оформление меню загрузки с диска и загрузчика ОС (lilo или grub)
- branding-<название дистрибутива>-bootsplash
- оформление экрана прогресса загрузки (plymouth)
- branding-<название дистрибутива>-graphics
- обои, аватары и логотипы
- branding-<название дистрибутива>-indexhtml
- титульная страница дистрибутва со ссылками
- branding-<название дистрибутива>-menu
- пункты меню (если используется настраиваемое меню)
- branding-<название дистрибутива>-notes
- лицензионный договор и примечания к выпуску (показываются в конце установки)
- branding-<название дистрибутива>-release
- название дистрибутива (обычно с кодовым именем) в /etc/redhat-release
- branding-<название дистрибутива>-slideshow
- изображения для слайдшоу при установке
- branding-<название дистрибутива>-*-settings
- параметры среды по умолчанию
Типичная насыщенность изображений деталями: bootloader <= installer <= wallpaper (в любом случае перебарщивать ни к чему).
branding-*-bootloader
- images/boot.png
- первая картинка, которую увидит пользователь при загрузке образа или установленной системы. Автоматически ужимается до размера 800x600.
- components/bootloader/gfxboot.cfg.in или bootloader/gfxboot.cfg.in
- значение theme в секции [base] должно соответствовать тому, куда в подпакете branding-*-bootsplash укладываются файлы (/boot/splash/%theme)
Для того, чтобы для grub установить цвет полосы выделения (он может быть задан в теме grub только изображением), выполните в branding (пример), допустим, для цвета #0c2c6c:
convert -size 16x16 -define png:color-type=2 -depth 8 xc:'#0c2c6c' components/grub2/selected_blob_c.png
Расположение элементов и их цвета задаются в components/bootloader/gfxboot.cfg.in. Наиболее важные:
Название параметра | Описание |
---|---|
mainmenu.bar.color | Цвет фона полосы выделения |
mainmenu.normal.fg | Цвет текста неактивного пункта меню |
mainmenu.selected.fg | Цвет текста выделенного пункта меню |
bootopt.label.fg | Цвет надписи параметров ядра |
bootopt.text.fg | Цвет текста в поле параметров ядра |
progress.bar.color | Цвет полосы прогресса загрузки ядра |
panel.title.fg | Цвет надписи функциональной клавиши внизу |
panel.normal.fg | Цвет значения функциональной клавиши внизу |
panel.f-key.fg | Цвет функциональной клавиши внизу |
branding-*-bootsplash
- bootsplash/images/silent-*.jpg (если присутствуют, а не генерируются)
- картинки для отображения в процессе загрузки установленной системы (для разных разрешений фреймбуфера; начинать стоит либо с дефолтного 800x600, либо с наиболее высокого из поддерживаемых — уменьшать проще)
Внимание: bootsplash «переваривает» не всякие jpeg, при проблемах попробуйте сжать другим инструментом
Внимание: plymouth не поддерживает jpeg и принимает png, но будьте осторожны с размером — слишком большой full.cz[1] может привести к проблемам загрузки на UEFI, при проблемах включайте indexed color и/или понижайте разрешение (например, с 1920x1080 до 1600x900).
Подпакет должен содержать Provides: plymouth(system-theme) во избежание излишнего вытягивания, скажем, plymouth-theme-fade-in.
branding-*-graphics
альтернатива /usr/share/design/current; для совместимости могут быть альтернативы
- /usr/share/artworks
- /usr/share/design-current
фоновый рисунок: /usr/share/design/current/backgrounds/default.png
NB: для kde4 разрешение background.png и название каталога под graphics/kde4/ksplash-themes/Default/ должны соответствовать друг другу!
branding-*-indexhtml
- components/indexhtml/*
- содержание и оформление страницы по умолчанию для браузеров
branding-*-release
/etc/altlinux-release (%_sysconfdir/altlinux-release), генерируемый в branding.spec.
branding-*-notes
- notes/*.html*
- лицензионное соглашение, примечания к дистрибутиву, домашняя страница по умолчанию
branding-*-slideshow
- slideshow/*.{jpg,png,gif}
- картинки 650x300 для слайдов в процессе установки
Примечание: Если не хотите показа слайд-шоу, удалите все графические файлы и создайте текстовый файл любого содержимого (хоть пустой).
Сборка
Во время сборки запускается скрипт configure, которому передаются параметры для подстановки:
%build autoconf THEME=%theme NAME='%name' BRAND_FNAME='%brand' BRAND='%brand' STATUS_EN=%status_en STATUS=%status \ VERSION=%version PRODUCT_NAME_RU='%distro_name_ru' PRODUCT_NAME='%distro_name' CODENAME='%codename' X86='%x86' \ ./configure make
Подстановка значений
Перечень подставляемых значений и файлы, где осуществляется подстановка описываются в файле configure.ac. По традиции файлы, в которых осуществляется подстановка, имеют суффикс .in, который во время подстановки удаляется.
Сначала описываются все переменные подстановки, например,
AC_SUBST(NAME)
Затем все файлы, где будут сделаны подстановки всех заявленных переменных (без суффикса .in), но будут обработаны именно файлы Makefile.in и так далее:
AC_CONFIG_FILES([ Makefile components/bootloader/config components/bootsplash/theme.plymouth ... ])
В указанных файлах с расширением .in подстановочные значения указываются в виде @ИМЯ_ПЕРЕМЕННОЙ@. Например, так:
NAME=@NAME@
Настройки
Пакеты из серии *-settings-* содержат в себе настройки по-умолчанию, которые делают пользовательские окружения более удобными в работе и/или затачивают их под какую-нибудь задачу. В идеале настройки не должны производиться через /etc/skel-каталог, т.к. тогда они будут влиять только на новых пользователей и их нельзя будет централизованно сменить.
Более подробно настройки описываются далее:
Изменение всех branding-*
Изменения, которые хочется видеть во всех branding-*, надо делать в бранче master и потом мержить в другие бранчи. Писать по поводу принятия полезных вещей в апстрим стоит boyarsh@; при существенных изменениях стоит предварительно обсудить в devel-distro@ (подписывает mike@).
Отключение в инсталяторе
С версии installer-1.4.11-alt1 введена опция загрузки nodesign; см. тж. tests/ в mkimage-profiles-desktop.
Сообщения об ошибках
Советы и секреты
Обратите внимание на то, что в наработках cas@ уделено заметное внимание вычистке дублирующихся изображений; собственный вариант брендинга есть смысл начинать именно от его веток branding-school-*.
Обои по умолчанию
Обои по умолчанию должны быть сохранены в файле /usr/share/design/current/backgrounds/default.png. Этот путь из темы формируется альтернативой:
install -d %buildroot//etc/alternatives/packages.d cat >%buildroot/etc/alternatives/packages.d/%name-graphics <<__EOF__ %_datadir/design-current %_datadir/design/%theme $GRAPHICS_ALTPRIO %_datadir/design/current %_datadir/design/%theme $GRAPHICS_ALTPRIO __EOF__ ... %files graphics %config /etc/alternatives/packages.d/%name-graphics
Значки на рабочий стол
- Для KDE4
- Поместите файл .desktop в %_datadir/kde4/apps/kio_desktop/DesktopLinks/
Пустой экран в KDE4
Не упаковывайте файл /etc/skel/.kde4/share/config/plasmarc — это может привести к пустому рабочему столу Plasma. Виджеты и прочие элементы по умолчанию настраиваются через каталоги /usr/share/kde4/apps/plasma-desktop/init и /usr/share/kde4/apps/plasma/layout-templates.
Примечания
- ↑ 30M уже слишком много, 24M работает; с 26M пока неясно