|
|
(4 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | <span style="font-size: 300%">'''Оформление загрузчика Grub2 2.00'''</span>
| |
− | <br>
| |
− | Бороздя просторы большой сети, мне не посчасливилось найти подробного руководства по созданию тем оформления загрузчика GRUB2, которое бы помогло мне понять смысл каждого значения и каждой переменной на конкретных примерах. Несмотря на это, создавая тему оформления, хчется получить конкретный результат. Такой, что-бы каждая точка оформления находилась там, где нужно. Вот я и решил написать такое руководство, пока глядел в исходный код. Цель данного руковдства представить каждую возможность графического оформления, показать особенности и ограничения в офомлении загрузчика, представить план по созданию новой темы, с точностью до каждого пикселя.
| |
| | | |
− | ='''С чего начать'''=
| |
− |
| |
− | И так, мы хотим создать оформление для загрузчика. Давайте пройдём этот путь шаг за шагом.
| |
− |
| |
− | =='''Создай дирректорию'''==
| |
− |
| |
− | Сначала, создайте пустую папку для файлов новой темы оформления. <tt>/boot/grub2/themes/</tt>
| |
− | (примечание, предпологается что загрузчик установлен в папку <tt>/boot/grub2/</tt>)
| |
− |
| |
− | Так-же - желательно создать подпапку в этой папке <tt>/boot/grub2/themes/</tt>
| |
− | Пусть это будет папка <tt>/boot/grub2/themes/test/</tt>
| |
− |
| |
− | =='''Создай текстовый файл'''==
| |
− |
| |
− | Мы должны создать основной файл оформления в только что созданной папке.
| |
− |
| |
− | Желательно назвать файл <tt>theme.txt</tt>.
| |
− |
| |
− | И так - создайте файл <tt>/boot/grub2/themes/test/theme.txt</tt>
| |
− | (в дальнейшем, <tt>theme.txt</tt> или основной файл оформления)
| |
− |
| |
− | =='''Свойство <tt>GRUB_THEME</tt> в <tt>/etc/default/grub</tt>'''==
| |
− |
| |
− | Что-бы загрузчик включил наше офрмление нужно установить свойство <tt>GRUB_THEME</tt> в файле <tt>/etc/default/grub</tt>.
| |
− |
| |
− | Иначе говоря, мы должны написать строку <tt>GRUB_THEME=/boot/grub2/themes/test/theme.txt</tt>.
| |
− |
| |
− | После знака "<tt>=</tt>" нужно написать абсолютный путь к основному файлу оформления.
| |
− |
| |
− | Если строка <tt>GRUB_THEME=...</tt> уже присутствует в файле<tt>/etc/default/grub</tt>,
| |
− |
| |
− | нужно переписать её, что-бы она выглядела так <tt>GRUB_THEME=/boot/grub2/themes/test/theme.txt</tt>.
| |
− |
| |
− | Не должно быть двух одинаковых строк с одинаковыми параметрами.
| |
− |
| |
− | =='''Файл настроек загрузчика <tt>/boot/grub2/grub.cfg</tt>'''==
| |
− |
| |
− | Изменения в этом файле не будут применены пока мы не перезапишем настроки загрузчика.
| |
− |
| |
− | Обычно, в системе есть скрипт <tt>update-grub2</tt>. Он должен быть запущен с правами <tt>root</tt>.
| |
− |
| |
− | В случае если такого скрипта нет в системе нужно запустить команду <tt>grub2-mkconfig -o /boot/grub2/grub.cfg</tt> с правами <tt>root</tt>.
| |
− |
| |
− | Скрипт <tt>update-grub2</tt> выполняет точно такю команду.
| |
− |
| |
− | Скрипт <tt>update-grub2</tt> нужно вызывать всякий раз когда мы вносим изменения в настройки Grub2 <tt>/etc/default/grub</tt>.
| |
− |
| |
− | Большинство установок оформления Grub2 описываются в файле <tt>theme.txt</tt>. Загрузчик Grub2 всякий раз при запуске проверяет
| |
− | этот файл и читает из него настройки. Поэтому мы должны перезапускать машину всякий раз,что-бы увидеть результат наших изменений в
| |
− | файле <tt>theme.txt</tt> или изменений в папке темы. Скрипт <tt>update-grub2</tt> записывает путь к файлу настроек оформления
| |
− | в файл настроек загрузчика.
| |
− |
| |
− | <br>
| |
− |
| |
− | ='''Общие понятия'''=
| |
− |
| |
− | Начинаем изучать [[Grub2 theme / reference#Main file syntax | Синтаксис файла оформления]].
| |
− |
| |
− | Каждый параметр имеет определённый тип.
| |
− |
| |
− | Вы можете прочитать о типах данных [[Grub2 theme / reference#Data types | тут]].
| |
− |
| |
− | Заметьте, что имена общих(глобальных) свойств(параметров) и их значений(компонентов) строго определённы. Если будет допущена синтаксическая ошибка в названии свойства или было выбрано недопустимое свойство, то во время запуска на экран будет выведенна ошибка. Если же было выбрано неверное значение, то оно не будет примено к свойству и сообщение об ошибке не будет выведено на экран.
| |
− |
| |
− | =='''Типы элементов'''==
| |
− | Есть несколько определённых типов:
| |
− |
| |
− | ; Корневой элемент
| |
− | : Верхний уровень <tt>theme.txt</tt>. Здесь устанавливаются общие свойства.
| |
− |
| |
− | ; Меню загрузки (<tt>boot_menu</tt>)
| |
− | : Главный элемент. Здесь устанавливаются свойства загрузочного меню.
| |
− |
| |
− | ; Горизонтальный индикатор отсчёта (<tt>progress_bar</tt>)
| |
− | : Индикатор оставшегося времени до загрузки раздела меню указанного по умолчанию. Используется горизонтальная панель и текст.
| |
− |
| |
− | ; Круговой индикатор отсчёта (<tt>circular_progress</tt>)
| |
− | : Индикатор оставшегося времени до загрузки раздела меню указанного по умолчанию. Используется круговая анимация.
| |
− |
| |
− | ; Текстовая строка (<tt>label</tt>)
| |
− | : Отображает текстовую строку.
| |
− |
| |
− | ; Изображение (<tt>image</tt>)
| |
− | : Отображает картинку.
| |
− |
| |
− | ; Вертикальный ящик (<tt>vbox</tt>)
| |
− | : Элемент содержащий другие элементы. Отображает элементы столбцом, один за другим, сверху вниз.
| |
− |
| |
− | ; Горизонтальный ящик (<tt>hbox</tt>)
| |
− | : Элемент содержащий другие элементы. Отображает элементы в строку, один за другим, слева направо.
| |
− |
| |
− | ; Холст (<tt>canvas</tt>)
| |
− | : Элемент содержащий другие элементы. Для каждого элемента холста должны быть указаны собственные координаты позиции и размера.
| |
− |
| |
− | Корневой элемент это экземпляр элемента типа "холст" с некоторыми дополнительными параметрами. Он занимает всё пространство экрана.
| |
− |
| |
− | =='''Изображения'''==
| |
− | Если указанный размер изображения больше размера изображения в файле, то катринка растягивается до уканных размеров. Наименьший размер изображения - размер изображения в файле.
| |
− |
| |
− | Вам следует помнить эту особенность при выборе изображения для фона. Есть разные типы дисплеев. Одно и то-же изображение может по разному выглядеть на дисплеях с разным отношением сторон (4:3 и 16:9).
| |
− |
| |
− | Если изображением является логотип, то стоит использовать абсолютные значения для параметров ширины и высоты, что-бы избежать искривлений в изображении.
| |
− |
| |
− | Чаще всего растяжение изображения используется в различных градиентах. К примеру, вы можете использовать картинку гарадиентной заливки шириной в одну точку (1px).
| |
− |
| |
− | =='''Графическое оформление'''==
| |
− | Графическое оформление элемента состоит из 9-и областей - центальная, южная, юго-западная, западная и так далее.
| |
− |
| |
− | Изображения 4-х угловых областей (таких как северо-запад) не растягиваются.
| |
− |
| |
− | Восточная и западная области растягиваются по вертикали.
| |
− |
| |
− | Северная и южная области растягиваются по горизонтали.
| |
− |
| |
− | Центральная область растягивается и по горизонтали и по вертикали.
| |
− |
| |
− | Если в оформлении есть угловые области, то в оформлении должны быть и боковые области соединённые с угловой. Например, если есть северо-западная область, то так-же должны быть северная и западная области. Более того, значения размера угловой области должны быть равны соответствующим значениям боковых областей. В нашем примере, высота северо-западной области должна быть равна высоте северной области а ширина должна равняться ширине западной области.
| |
− |
| |
− | =='''Шрифты'''==
| |
− | Шрифт создаётся при помощи специальной программы <tt>grub2-mkfont</tt>. Более подробную информацию о программе смотрите в статье [["Font creation guide"|"Руководство по созданию шрифта"]]
| |
− |
| |
− | <br>
| |
− |
| |
− | ='''Описание тестовой схемы'''=
| |
− |
| |
− | =='''Элементы оформления'''==
| |
− |
| |
− | Увеличены в пять раз для лучшего понимания. Тёмно-красный фон - для ясности. Альфа-канал - 75%. (прозрачность)
| |
− |
| |
− | ===Элемент графического оформления===
| |
− |
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ inbox_*.png
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_nw.png|25px]] || [[Image:grub2_guide_inbox_n.png|5px]] || [[Image:grub2_guide_inbox_ne.png|25px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_w.png|25px]] || [[Image:grub2_guide_inbox_c.png|5px]] || [[Image:grub2_guide_inbox_e.png|25px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_sw.png|25px]] || [[Image:grub2_guide_inbox_s.png|5px]] || [[Image:grub2_guide_inbox_se.png|25px]]
| |
− | |}
| |
− |
| |
− | ===Элемент графического оформления===
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ button_*.png
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_se.png|25px]] || [[Image:grub2_guide_inbox_s.png|5px]] || [[Image:grub2_guide_button_ne.png|25px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_e.png|25px]] || [[Image:grub2_guide_inbox_c.png|5px]] || [[Image:grub2_guide_inbox_w.png|25px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_button_ne.png|25px]] || [[Image:grub2_guide_inbox_n.png|5px]] || [[Image:grub2_guide_inbox_nw.png|25px]]
| |
− | |}
| |
− |
| |
− | ===Оформление загрузочного меню===
| |
− |
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ menu_*.png
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_nw.png|25px]] || [[Image:grub2_guide_inbox_n.png|5px]] || [[Image:grub2_guide_menu_ne.png|75px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_w.png|25px]] || [[Image:grub2_guide_inbox_c.png|5px]] || [[Image:grub2_guide_menu_e.png|75px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_inbox_sw.png|25px]] || [[Image:grub2_guide_inbox_s.png|5px]] || [[Image:grub2_guide_menu_se.png|75px]]
| |
− | |}
| |
− |
| |
− | ===Фоновые изображения полосы прокрутки===
| |
− |
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ scrollbar_frame_*.png
| |
− | |-
| |
− | | [[Image:grub2_guide_frame_n.png|50px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_frame_c.png|50px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_frame_s.png|50px]]
| |
− | |}
| |
− |
| |
− | ===Изображения полосы прокрутки===
| |
− |
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ scrollbar_thumb_*.png
| |
− | |-
| |
− | | [[Image:grub2_guide_thumb_n.png|50px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_thumb_c.png|50px]]
| |
− | |-
| |
− | | [[Image:grub2_guide_thumb_s.png|50px]]
| |
− | |}
| |
− |
| |
− | ===Оформление горизонтального индикатора===
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ progress_*.png
| |
− | |-
| |
− | | [[Image:grub2_guide_progress_c.png|5px]]
| |
− | |}
| |
− |
| |
− | =='''Изображения'''==
| |
− |
| |
− | ===Центральное изображение кругового индикатора===
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ center.png
| |
− | |-
| |
− | | [[Image:grub-guide-circular-center.png]]
| |
− | |}
| |
− |
| |
− | ===Изображение одного такта кругового индикатора===
| |
− | {| class="wikitable" border="1" style="background: #600000;"
| |
− | |+ tick.png
| |
− | |-
| |
− | | [[Image:grub-guide-circular-tick.png|25px]]
| |
− | |}
| |
− |
| |
− | <br>
| |
− |
| |
− | ='''Свойства элементов'''=
| |
− |
| |
− | Полное описание значений свойств с картинками и схемами.
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Основные свойства'''==
| |
− | [[Grub2 theme / reference#Common options | подробней]]
| |
− |
| |
− | <tt>left, top, width, height</tt> - координаты позиции и размеров прямоугольника, содержащего элемент.
| |
− |
| |
− | <tt>id</tt> - Использование определённого значения для индефикатора элемента, изменяет способ его отображения. Использование неонпеделённого значения не изменяет ничего.
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Корневой элемент'''==
| |
− | [[Grub2 theme / reference#Global options | подробней]]
| |
− |
| |
− | Корневой элемент это элемент содержащий все элементы оформления. Так-же он содержит некоторые общие(глобальные) свойства(параметры). Корневой элемент это расширенный элемент типа "холст".
| |
− |
| |
− | Заметьте, имена общих свойств содержат символ минуса (<tt>"-"</tt>, например <tt>"terminal-box"</tt>), а свойства элементов содержат символ подчёркивания (<tt>"_"</tt>, например <tt>"item_height"</tt>). Ещё заметьте, что общие свойства используют двоеточие в качестве разделителя (<tt>":"</tt>, например <tt>"title_text: "GNU Grub""</tt>), а свойства элементов используют знак равенства в как разделитель (<tt>"="</tt>, например <tt>"item_height = 20"</tt>).
| |
− |
| |
− | ===Фон - <tt>desktop-color, desktop-image</tt>===
| |
− |
| |
− | Первое свойство <tt>desktop-color</tt> - цвет фона.
| |
− | Второе <tt>desktop-image</tt> - изображение фона.
| |
− |
| |
− | Если установленно свойство <tt>desktop-image</tt>, то свойство <tt>desktop-color</tt> не используется.
| |
− |
| |
− | Изображение должно находиться в папке темы оформления. <tt>/boot/grub2/themes/test/</tt>
| |
− |
| |
− | Изображение растягивается на всю область экрана.
| |
− |
| |
− | ===Настройки заголовка - <tt>title-text, title-color, title-font</tt>===
| |
− |
| |
− | Оформление заголовка.
| |
− | Если зголовок не нужен, то установите значение свойства пустым <tt>title-text=""</tt>.
| |
− |
| |
− | Заголовок всегда расположен по центру экрана на высоте <tt>40 + ascent</tt> от верхней границы экрана. (смотри [[#Font creating guide|Руководство по созданию шрифта]])
| |
− |
| |
− | title-text: "Title Text"
| |
− | title-color: "#FFFFFF"
| |
− | desktop-image: "background.png"
| |
− |
| |
− | [[Image:grub2-guide-title-en.png]]
| |
− |
| |
− | ===Оформление консоли - <tt>terminal-box</tt>===
| |
− |
| |
− | Графическое оформление консоли.
| |
− |
| |
− | Оформление отображается ВНЕ(за границами) прямоугольной области консоли. Координаты консоли постоянны и зашиты в загрузчик. Они могут быть изменены при помощи заплатки. (смотри [[#Console moving|ниже]])
| |
− |
| |
− | Заметьте, что консоль отображается в центральной области оформления с отступом по 3 точки от краёв.
| |
− |
| |
− | Фон консоли устанавливается в <tt>/etc/default/grub</tt>. (смотри [[#GRUB_BACKGROUND|ниже]])
| |
− |
| |
− | Изображение для консоли не должно содержать прозрачность (альфа-канал).
| |
− |
| |
− | По умолчанию фон будет чёрным.
| |
− |
| |
− | ===Консольный шрифт - <tt>terminal-font</tt>===
| |
− |
| |
− | Имя шрифта использующегося для консоли.
| |
− |
| |
− | После добавления нового шрифта в папку оформления должна быть запущена команда <tt>update-grub2</tt>.
| |
− |
| |
− | Смотрите подробнее о [[#Font creation guide|создании шрифта]]
| |
− |
| |
− | title-text: ""
| |
− | desktop-image: "background.png"
| |
− | terminal-font: "Droid Sans Mono Regular 11"
| |
− | terminal-box: "inbox_*.png"
| |
− |
| |
− | Далее, общие свойства остаются неизменными.
| |
− |
| |
− | [[Image:grub2-guide-terminal-en.png ]]
| |
− |
| |
− | ===Неиспользуемое - <tt>message-font, message-color, message-bg-color</tt>===
| |
− | Эти параметры могут быть установленны, но они не используются.
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Загрузочное меню - <tt>boot_menu</tt>'''==
| |
− | [[Grub2 theme / reference#Boot menu (boot_menu) | подробнее]]
| |
− |
| |
− | Основной элемент. Отображает список установленных операционных систем. Выбор системы для загрузки.
| |
− |
| |
− | ===Координаты и размеры прямоугольной области элементов меню - <tt>left, top, width, height</tt>===
| |
− | Обязательные свойства. Не забывайте их задавать.
| |
− |
| |
− | ===Шрифт и цвет для элеметов меню - <tt>item_color, item_font, selected_item_color, selected_item_font</tt>===
| |
− | Ползователб нужно видеть какой элемент меню выбран, по этому необходимо как-то подсветить выбранный элемент. Можно использовать шрифт, цвет или графическое оформление.
| |
− | <tt>item_color, item_font</tt> - цвет и шрифт неактивного элемента меню.
| |
− | <tt>selected_item_color, selected_item_font</tt> - цвет и шрифт выбранного элемента.
| |
− |
| |
− | + boot_menu {
| |
− | left = 50%-300
| |
− | top = 50%-100
| |
− | width = 600
| |
− | height = 300
| |
− |
| |
− | selected_item_color = "#0000FF"
| |
− | }
| |
− |
| |
− | [[Image:grub2-guide-bootmenu-simple-en.png]]
| |
− |
| |
− | Смотрите подробнее о создании шрфта в руководстве [[#Font creation guide|Создание шрифта]].
| |
− |
| |
− | ===Оформление елементов меню - <tt>seleted_item_pixmap_style, item_pixmap_style</tt>===
| |
− | Оформление отображается ВНЕ элемента меню, за границами прямоугольной области, заданной координатами.
| |
− |
| |
− | По умолчанию графическое оформление устанавливается только для активного элемента меню.
| |
− | В ROSA Вы можете установить графическое оформление для неактивных элементов меню.
| |
− |
| |
− | Давайте определим размер рамки активного элемента как <tt>pad_left</tt>, <tt>pad_top</tt>, <tt>pad_right</tt> и <tt>pad_bottom</tt>.
| |
− | Общая высота элемента тогда составит <tt>item_height + pad_top + pad_bottom - 1</tt>.
| |
− | (необходимо при расчете уменьшить значение на 1-у точку, что-бы достичь желаемого размера элемента.)
| |
− |
| |
− | + boot_menu {
| |
− | left = 50%-300
| |
− | top = 50%-100
| |
− | width = 600
| |
− | height = 300
| |
− |
| |
− | selected_item_color = "#0000FF"
| |
− | selected_item_pixmap_style = "button_*.png"
| |
− | }
| |
− |
| |
− | [[Image:grub2-guide-bootmenu-selected-box-en.png]]
| |
− |
| |
− | ===Оформление меню - <tt>menu_pixmap_style</tt>===
| |
− | Оформление меню отображается ВНУТРИ, определённого координатами прямоугольника. Размер оформления расчитывается из количества элементов меню.
| |
− | (элементы меню отображаются в центральной области оформления) Несколько сложнее размер расчитывается при использовании панели прокрутки. (смотри [[#scrollbar_frame, scrollbar_thumb, scrollbar_width, scrollbar - scrollbar settings|ниже]])
| |
− |
| |
− | ===Отступы - <tt>item_padding</tt>===
| |
− | Устанавливает печатную область для элементов загрузочного меню - прямоугольник, внутри центральной области графического оформления (или всей области элемента
| |
− | меню если не установленно оформление), с отступом <tt>item-padding</tt> от каждой стороны области (или сторон всего елемента если не установленно оформление).
| |
− |
| |
− | Заметьте, что <tt>item_padding</tt> не меняет отображения панели прокрутки. Изменяйте вместе и графическое оформление меню и оформление панели прокрутки, если нужно
| |
− | изменить отступы для панели прокрутки (например вы можете добавить прозрачные точки к изображениям соответствующих областей).
| |
− |
| |
− | ===Составление елементов меню - <tt>height, item_height, item_spacing</tt>===
| |
− | Расстояние между нижними границами элементов меню всегда равно <tt>item_height + item_spacing</tt>. (смотри картинку)
| |
− |
| |
− | Заметьте, что в формулу расчёта расстояния между элементами включены размеры рамки оформления меню и свойство<tt>item_padding</tt>,
| |
− | но исключены свойства <tt>pad_top</tt> и <tt>pad_bottom</tt>. (смотри картнку)
| |
− |
| |
− | Свойство меню <tt>height</tt> расчитывается по формуле:
| |
− | <tt>2*item_padding + menu_pad_top + menu_pad_bottom + (N - 1)*(item_height + item_spacing) + pad_top + pad_bottom + item_height - 1</tt>,
| |
− | где N - это число элементов которые дожны быть видны в списке меню.
| |
− |
| |
− | Так-же обратите внимание, что количество видимых элементов в меню N не может быть меньше 3-х.
| |
− |
| |
− | Если высота меню меньше размера расчитаного по этой формуле, количество элементов меню достаточно велико и выбран самый нижний элемент меню,
| |
− | тогда графическое оформление выбранного элемента не отобразится полностью. Если же высота меню больше, елементов меню достаточно и выбран самый
| |
− | нижний элемент, тогда нижняя граница панели прокрутки не будет отображаться вровень с оформлением нижнего(выбранного) элемента меню.
| |
− |
| |
− | + boot_menu {
| |
− | left = 50%-300
| |
− | top = 50%-100
| |
− | width = 600
| |
− | height = 289
| |
− |
| |
− | selected_item_color = "#0000FF"
| |
− | selected_item_pixmap_style = "button_*.png"
| |
− |
| |
− | menu_pixmap_style = "inbox_*.png"
| |
− |
| |
− | item_padding = 20
| |
− |
| |
− | item_spacing = 20
| |
− | item_height = 30
| |
− | }
| |
− | Высота расчитана согласно приведённой формуле.
| |
− |
| |
− | [[Image:grub2-guide-bootmenu-vertical-scheme.png]]
| |
− |
| |
− | ===Иконки и их расположение - <tt>icon-width, icon-height, item_icon_space</tt>===
| |
− |
| |
− | По умолчанию,
| |
− | icon_width = 32
| |
− | icon_height = 32
| |
− | item_icon_space = 4
| |
− |
| |
− | Текст отображается исходя из отступа <tt>icon_width + item_icon_space</tt> от левой границы элемента.
| |
− | Другими словами, независимо от того отображается ли иконка - с левой стороны всегда зарезервированно для неё поространство.
| |
− |
| |
− | Если такое поведение нежелательно вы можете установить для свойства <tt>icon_width</tt> значение <tt>null</tt> и выставить желаемое значение размера иконки <tt>item_icon_space</tt>.
| |
− | Так-же, обратите внимание на то, что после этих установок ширина элемента меню уменьшится на 2-е точки. Если вы не зададите новый размер - это станет видно возле правой области оформления.
| |
− | С правой стороны центральной области элемента появится пустое пространство шириной в две точки.
| |
− |
| |
− | Заметьте, что символы шрифта могут содержать пустые точки с любой стороны. К примеру в нашей тестовой схеме, расстояние от левой границы элемента
| |
− | равно 36-и точкам по умолчанию (<tt>icond_width + item_icon_space</tt>). Но у нас, расстояеие до ближней точки первого символа, равно 37-и точкам.
| |
− |
| |
− | [[Image:grub2-guide-bootmenu-icon-space.png]]
| |
− |
| |
− | ===Использование иконок===
| |
− |
| |
− | Если вы хотите использовать иконки вам необходимо создать папку <tt>image</tt> в папке темы.
| |
− | После этого сохраните иконки в формате <tt>png</tt> и положите их в эту папку. Имена файлов иконок должны соответствовать определённым классам.
| |
− |
| |
− | Базовые классы:
| |
− | * windows > os
| |
− | * gnu-linux > gnu > os
| |
− | * osx > darwin > os
| |
− | * hurd > gnu > os
| |
− |
| |
− | Классы с высоким приоритетом находятся слева. Если иконка <tt>windows.png</tt> присутствует, то она будет отображена, а иконка <tt>os.png</tt> - нет.
| |
− |
| |
− | Так же, будет доступен класс основной системы, согласно имени.(основная систеа в этом случае - это система где был вызван скрипт <tt>update-grub2</tt>). Этот класс имеет более высокий приоритет чем <tt>gnu-linux</tt>.
| |
− |
| |
− | К примеру для системы ROSA Linux этим классом будет "<tt>rosa</tt>". Вы можете найти классы в файле <tt>/boot/grub2/grub.cfg</tt>.
| |
− |
| |
− | С заплаткой используемой в ROSA такой класс будет выведен для всех других установленных систем на любом обычном компьютере.
| |
− |
| |
− | ===Настройки полосы прокрутки - <tt>scrollbar_frame, scrollbar_thumb, scrollbar_width, scrollbar</tt>===
| |
− |
| |
− | Давайте посмотрим подробное описание панели прокрутки.
| |
− |
| |
− | * Используйте для оформления <tt>scrollbar_thumb</tt> только области север, юг и центр.
| |
− |
| |
− | * Для <tt>scrollbar_frame</tt> можно использовать все 9 областей оформления.
| |
− |
| |
− | * Можно увеличить отступ от любого края панели прокрутки, добавив прозрачных точек в изображение соответствующей области.
| |
− |
| |
− | * Полоса прокрутки отображается в центральной области области оформления панели с правого краю. Если для меню нет графического оформления или нет восточной области в оформлении меню, полоса прокрутки не будет отображаться.
| |
− |
| |
− | * Полоса прокрутки отображается только когда она необходима.
| |
− |
| |
− | * Заметьте что ширина загрузочного меню при отображении прокрутки уменьшена на 2-е точки (от общей ширины). И за этого, расстояние между элементами меню
| |
− | и панелью прокрутки всегда составляет не менее двух точек.
| |
− |
| |
− | * Нобходимо устанавливать и <tt>scrollbar_frame</tt> и <tt>scrollbar_thumb</tt>. Если одно из этих свойст не установленно то панель прокрутки не отобразится.
| |
− |
| |
− | * Ширина <tt>scrollbar_frame</tt> и ширина <tt>scrollbar_thumb</tt> может различаться.
| |
− |
| |
− | * Оформление <tt>scrollbar_frame</tt> отображается в восточной области оформления меню. Полоса прокрутки <tt>scrollbar_thumb</tt> отображается в цетральной
| |
− | области панели прокрутки <tt>scrollbar_frame</tt>.
| |
− |
| |
− | * <tt>scrollbar_width</tt> - ширина панели. Обозначает ширину центральной области <tt>scrollbar_frame</tt>. Если сумма <tt>scrollbar_width</tt> и ширин восточной
| |
− | и заподной областей <tt>scrollbar_frame</tt> меньше чем ширина восточной области меню, тогда панель прокрутки не отобразится соовсем.
| |
− |
| |
− | * Можно установить значение <tt>false</tt> для <tt>scrollbar</tt>. В этом случае, панель не будет отображена. Или же можно просто не устанавливать
| |
− | значения свойств <tt>scrollbar_thumb</tt> и <tt>scrollbar_frame</tt>.
| |
− |
| |
− | * Как упоминалось ранее, <tt>item_padding</tt> не изменяет вид панели.
| |
− |
| |
− | В этом примере нет дополнительных прозрачных точек в изображении панели, восточной области оформления меню.
| |
− | + boot_menu {
| |
− | left = 50%-300
| |
− | top = 50%-100
| |
− | width = 600
| |
− | height = 289
| |
− |
| |
− | selected_item_color = "#0000FF"
| |
− | selected_item_pixmap_style = "button_*.png"
| |
− |
| |
− | menu_pixmap_style = "inbox_*.png"
| |
− |
| |
− | item_padding = 20
| |
− |
| |
− | item_height = 30
| |
− | item_spacing = 20
| |
− |
| |
− | scrollbar_thumb = "scrollbar_thumb_*.png"
| |
− | scrollbar_frame = "scrollbar_frame_*.png"
| |
− | scrollbar_width = 10
| |
− | }
| |
− |
| |
− | Как видно, панель не отобразилась полностью.
| |
− |
| |
− | [[Image:grub2-guide-bootmenu-scrollbar-incorrect-menu-box.png]]
| |
− |
| |
− | В этом примере мы изменили изображения графического оформления меню. В дальнейшем мы будем использовать эти настройки меню.
| |
− | <tt>boot_menu</tt>.
| |
− | + boot_menu {
| |
− | left = 50%-300
| |
− | top = 50%-100
| |
− | width = 600
| |
− | height = 289
| |
− |
| |
− | selected_item_color = "#0000FF"
| |
− | selected_item_pixmap_style = "button_*.png"
| |
− |
| |
− | menu_pixmap_style = "menu_*.png"
| |
− |
| |
− | item_padding = 20
| |
− |
| |
− | item_height = 30
| |
− | item_spacing = 20
| |
− |
| |
− | scrollbar_thumb = "scrollbar_thumb_*.png"
| |
− | scrollbar_frame = "scrollbar_frame_*.png"
| |
− | scrollbar_width = 10
| |
− | }
| |
− |
| |
− | Теперь панель отображается правильно. Так-же мы видим, что <tt>item_padding</tt> не влияет на панель.
| |
− |
| |
− | [[Image:grub2-guide-bootmenu-scrollbar-menu-box.png]]
| |
− |
| |
− | ==="Не показывай меню" - <tt>visible</tt>===
| |
− | Можно установить значение <tt>false</tt> для свойства <tt>visible</tt>. В этом случае меню не отобразится. Или можно просто не описывать элемент<tt>boot_menu</tt> в файле.
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Горизонтальный индикатор осчёта - <tt>progress_bar</tt>'''==
| |
− | [[Grub2 theme / reference#Horizontal indicator of elapsed time (progress_bar)| подробней]]
| |
− |
| |
− | Этот элемент отображает оствшееся до загрузки "по умолчанию", время.
| |
− |
| |
− | Отсчёт начинается с ненулевой длинны.
| |
− |
| |
− | ===Координаты и размеры прямоугольника - <tt>left, top, width, height</tt>===
| |
− | Обязательные параметры. Не забудьте их задать.
| |
− |
| |
− | Обратите внимание, что если <tt>width</tt> и/или <tt>height</tt> меньше необходимого для отображения текста, тогда <tt>width</tt> и/или <tt>height</tt> будут автоматически увеличены.
| |
− |
| |
− | ===Индефикатор - <tt>id</tt>===
| |
− | Для отображения осчёта (графической полосой или текстом) нужно установить определённое значение для <tt>id</tt>.
| |
− | id = "__timeout__"
| |
− |
| |
− | ===Отображение текста на панели индикатора - <tt>text</tt>===
| |
− | Вывод текста на панели индикатора.
| |
− | Есть несколько особых определённых значений. У них свой особый смысл и перевод на разные языки.
| |
− |
| |
− | * @TIMEOUT_NOTIFICATION_SHORT@ для "N"
| |
− | * @TIMEOUT_NOTIFICATION_MIDDLE@ для "N осталось."
| |
− | * @TIMEOUT_NOTIFICATION_LONG@ для "Подсвеченный выбор будет запущен через N секунд."
| |
− | <tt>N</tt> это колличество секунд до запуска выбранного варианта загрузки. Строчка обновляется каждую секунду.
| |
− | Можно установить свою строку.
| |
− |
| |
− | ===Шрифт и цвет текста - <tt>text-color, font</tt>===
| |
− | Шрифт и цвет текста для текстовой строки индикатора.
| |
− |
| |
− | Подробее про создание шрифта смотрите в руководстве [[#Font creation guide|Создание шрифта]]
| |
− |
| |
− | ===Сплошные цвета и графические режимы оформления===
| |
− |
| |
− | Для оформления есть два свойства:
| |
− |
| |
− | * mono-color режим - области окрашены заданными цветами и границами шириной в 1-у точку.
| |
− | * graphical режим - с отображением графического оформления
| |
− |
| |
− | Если свойству будет указан режим, то при отображении будет использован указанный режим. В противном случае, режим режим будет выбран в зависимости от использованных свойств.
| |
− | Подробней смотрите ниже.
| |
− |
| |
− | ===Для mono-color режима - <tt>bg_color, fg_color, border_color</tt> ===
| |
− |
| |
− | + progress_bar {
| |
− | left = 50%-300
| |
− | top = 50%+200
| |
− | width = 600
| |
− | height = 50
| |
− |
| |
− | id = "__timeout__"
| |
− | text = "@TIMEOUT_NOTIFICATION_LONG@"
| |
− |
| |
− | border_color = "white"
| |
− | }
| |
− |
| |
− | В данном примере используются стандартные значения:
| |
− |
| |
− | bg_color = "128, 128, 128"
| |
− | fg_color = "200, 200, 200"
| |
− |
| |
− | [[Image:grub2-guide-progress-bar-mono-en.png]]
| |
− |
| |
− | ===Для graphical режима - <tt>bar_style, highlight_style</tt>===
| |
− |
| |
− | Рекомендуется использовать только центральную область для <tt>highlight_style</tt>. В противном случае индикатор осчёта будет отображаться неправильно.
| |
− |
| |
− | Обратите внимание, что использование любого из этих параметров включит режим графического оформления.
| |
− |
| |
− | + progress_bar {
| |
− | left = 50%-300
| |
− | top = 50%+200
| |
− | width = 600
| |
− | height = 50
| |
− |
| |
− | id = "__timeout__"
| |
− | text = "@TIMEOUT_NOTIFICATION_LONG@"
| |
− |
| |
− | bar_style = "inbox_*.png"
| |
− | highlight_style = "progress_*.png"
| |
− | }
| |
− |
| |
− | [[Image:grub2-guide-progress-bar-styled-en.png]]
| |
− |
| |
− | ===Удаление оформления===
| |
− |
| |
− | Если вы хотите удалить оформление, так что-бы отображался только текст, нужно установить равные значения для свойств <tt>bar_style</tt> и <tt>highlight_style</tt>.
| |
− | Значение может быть любой текстовой строкой. Не обязательно значению быть именем действительно существующего графического оформлениея.
| |
− | The value can be any text value. This is not necessary for the value to be the name of some real graphical decoration.
| |
− |
| |
− | Значение должно содержать символ "<tt>*</tt>".
| |
− |
| |
− | В следующем примере цвет текста белый "white".
| |
− |
| |
− | + progress_bar {
| |
− | left = 50%-300
| |
− | top = 50%+200
| |
− | width = 600
| |
− | height = 50
| |
− |
| |
− | id = "__timeout__"
| |
− | text = "@TIMEOUT_NOTIFICATION_LONG@"
| |
− |
| |
− | text_color = "white"
| |
− |
| |
− | bar_style = "*"
| |
− | highlight_style = "*"
| |
− | }
| |
− |
| |
− | [[Image:grub2-guide-progress-bar-only-text-en.png]]
| |
− |
| |
− | ===Не отображать индикатор отсчёта - <tt>visible</tt>===
| |
− |
| |
− | Этому свойству можно установить значение <tt>false</tt>. В этом случае индикатор не будет отображён. По другому - можно просто не использовать элемент <tt>progress_bar</tt> в главном файле оформления.
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Круговой индикатор отсчёта - <tt>circular_progress</tt>'''==
| |
− | [[Grub2 theme / reference#Circular indicator of elapsed time (circular_progress)| подробней]]
| |
− |
| |
− | Круговой индикатор отображает время осчёта до запуска выбранного элемента меню в виде картинки.
| |
− |
| |
− | Осчитываемое время отображается в виде тактов/картинок такта.
| |
− |
| |
− | Если <tt>ticks_disappear</tt> не установлен то индекатор будет заполняться тактами до полного круга (по часовой стрелке).
| |
− |
| |
− | Если <tt>ticks_disappear</tt> установлен то такты будут исчезать.
| |
− |
| |
− | Значение колличества тактов всегда меньше колличества рисунков такта на 1 (ноль - тоже значение). Некоторое колличество тактов может быть отобразено с самого начала работы индикатора. (индикатор начинает работать с ненулевого значения)
| |
− |
| |
− | ===Координаты и размеры индикатора (прямоугольные) - <tt>left, top, width, height</tt>===
| |
− | Обязательные параметры.
| |
− |
| |
− | Желательно установить значения для ширины и высоты схожими. Подробную информацию о круговых координатах смотри [[#center_bitmap, tick_bitmap - images for the circular progress indicator | ниже]].
| |
− |
| |
− | ===Идентификатор - <tt>id</tt>===
| |
− | Для отобразения отсчёта необходимо установить предопределённое значения для <tt>id</tt>.
| |
− | id = "__timeout__"
| |
− |
| |
− | ===Изображения для кругового индикатора - <tt>center_bitmap, tick_bitmap</tt>===
| |
− |
| |
− | Центральная область оформления не может быть масштабированна или повёрнута. Она отображается в центре заданной прямоугольной области элемента. Если изображение меньше чем прямоугольник тогда часть изображения не отобразится. Это фон индикатора.
| |
− |
| |
− | Изображение такта так-же не масштабируется и не поворачивается. Оно несколько раз рисуется по кругу. круг вписан в заданный прямоугольник.
| |
− |
| |
− | Желательно использовать квадратные изображения (одинаковые ширина и высота).
| |
− |
| |
− | Расчёт производится из ширины фона и ширины такта. Если ширина элемента больше чем его высота то часть тактов не отобразится.
| |
− |
| |
− | [[Image:grub-guide-circular-wrongwidth.png]]
| |
− |
| |
− | Если высота больше ширины, такты будут отрисованны не полностью.
| |
− |
| |
− | [[Image:grub-guide-circular-wrongtickheight.png]]
| |
− |
| |
− | Рекомендуется сделать ширину такта с тем же отношением точек, что и у основного элемента. (только в этом случае изображение будет отображаться симметрично)
| |
− |
| |
− | ===Настройка кругового осчёта<tt>num_ticks, start_angle, ticks_disappear</tt>===
| |
− |
| |
− | <tt>num_ticks</tt> - количество тактов для заполнения индикатора.
| |
− |
| |
− | <tt>start_angle</tt> - начальный угол. (начинается с оси X). Угол измеряется в "попугаях". Один "попугай" - <tt>1/256</tt> полного круга. Тогда <tt>-90</tt> градусов (или <tt>-π/2</tt>) будет <tt>-64</tt> "попугая".
| |
− |
| |
− | <tt>tick_bitmap</tt> отображается без изменений (без поворотов и масштабирования) и углы измеряются (по алгоритму) в "попугаях". Так что желательно установить <tt>num_ticks</tt> со значениями равными N-ая степень 2-х. В этом случае получится симметричное и гладкое изображение.
| |
− |
| |
− | <tt>ticks_disappear</tt> - по умолчанию такты появляются.
| |
− |
| |
− | [[Image:grub-guide-ticks-appear.png]]
| |
− |
| |
− | Можно установить значение <tt>true</tt> для свойства <tt>ticks_disappear</tt>. В этом случае такты исчезают до тех пор пока их не останется.
| |
− |
| |
− | ticks_disappear = "True"
| |
− |
| |
− | [[Image:grub-guide-ticks-disappear.png]]
| |
− |
| |
− | Обратите внимание, что число отображаемых тактов всегда меньше на 1.
| |
− |
| |
− | ===Example===
| |
− | + circular_progress {
| |
− | left = 50%-450
| |
− | top = 50%+310
| |
− | id = "__timeout__"
| |
− | width = 51
| |
− | height = 51
| |
− | center_bitmap = "center.png"
| |
− | tick_bitmap = "tick.png"
| |
− | num_ticks = 8
| |
− | }
| |
− |
| |
− | [[Image:grub-guide-circular.png]]
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Текстовая строка - <tt>label</tt>'''==
| |
− | [[Grub2 theme / reference#Text string (label) | подробнее]]
| |
− |
| |
− | Можно отобразить текстовую строку исползуя элемент<tt>label</tt>.
| |
− |
| |
− | Если указанны особые значения для <tt>id</tt> и <tt>text</tt> то будет показан остаток времени до запуска выбранного элемента меню.
| |
− |
| |
− | Заметьте, что нет механизма переноса строки. Если длинна строки текста больше чем прямоугольная область тогда ширина области будет автоматически увеличена.
| |
− |
| |
− | ===Координаты и размер прямоугольника - <tt>left, top, width, height</tt>===
| |
− | Обязательные свойства. Не забывайте указывать их.
| |
− |
| |
− | Обратите внимание что <tt>width</tt> используется только для выравнивания если свойству <tt>align</tt> указано значение <tt>"center"</tt> или <tt>"right"</tt>.
| |
− |
| |
− | И ещё заметьте, что <tt>height</tt> не используется.
| |
− |
| |
− | ===Цвет и шрифт текста - <tt>font, color</tt>===
| |
− | Цвет и шрифт текста.
| |
− |
| |
− | Смотрите подробнее в руководстве [[#Font creation guide|Создание шрифта]]
| |
− |
| |
− | ===Выравнивание - <tt>align</tt>===
| |
− | Доступно три верных значения:
| |
− | * left - выравнивание текста по левому краю.
| |
− | * center - выравнивание текста по центру.
| |
− | * right - выравнивание текста по левому краю.
| |
− |
| |
− | ===Отображение истёкшего времени до загрузки по умолчанию===
| |
− | Для отображения истёкшего времени до загрузки нужно установить особое значение для <tt>id</tt> и свойство <tt>text</tt> не должно присутствовать в описании элемента в основном файле оформления.
| |
− |
| |
− | + label {
| |
− | left = 50%-350
| |
− | top = 50%+260
| |
− | height = 30
| |
− | width = 30
| |
− |
| |
− | id = "__timeout__"
| |
− |
| |
− | color = "white"
| |
− | }
| |
− |
| |
− | [[Image:grub-guide-label-timeout.png]]
| |
− |
| |
− | ===Отображённый текст - <tt>text</tt>===
| |
− | Можно вывести любое сообщение.
| |
− | Есть несколько значений:
| |
− | * @KEYMAP_SHORT@ для "enter: boot, `e': options, `c': cmd-line"
| |
− | * @KEYMAP_MIDDLE@ для "Нажмите enter для загрузки выбранной ОС, `e' для редактирования команы загрузки или `c' для запуска коммандной строки."
| |
− | * @KEYMAP_LONG@ для "Нажмите enter для загрузки выбранной ОС, `e' для редактирования команы загрузки или `c' для запуска коммандной строки. ESC для возврата в предыдущее меню."
| |
− |
| |
− | Особые значения переведены для языков, исползующихся в GRUB.
| |
− |
| |
− | Заметьте, что нет механизма перевода строки и ширина текстовой строки ограничена.
| |
− |
| |
− | ===Пример <tt>text</tt> с обычными значениями===
| |
− | + label {
| |
− | left = 50%-300
| |
− | top = 50%+220
| |
− | height = 30
| |
− | width = 600
| |
− |
| |
− | color = "white"
| |
− |
| |
− | align = "right"
| |
− |
| |
− | text = "Some text."
| |
− | }
| |
− |
| |
− | [[Image:grub-guide-label-text.png]]
| |
− |
| |
− | ===Пример <tt>text</tt> с особыми значениями===
| |
− | + label {
| |
− | left = 50%-300
| |
− | top = 50%+220
| |
− | height = 30
| |
− | width = 600
| |
− |
| |
− | color = "cyan"
| |
− |
| |
− | align = "center"
| |
− |
| |
− | text = "@KEYMAP_SHORT@"
| |
− | }
| |
− |
| |
− | [[Image:grub-guide-label-special.png]]
| |
− |
| |
− | <br>
| |
− |
| |
− | ==''' Изображение - <tt>image</tt>'''==
| |
− | [[Grub2 theme / reference#Image file (image) | подробней]]
| |
− |
| |
− | На экране может присутствовать изображение.
| |
− |
| |
− | Если высота изображения больше установленной тогда значение будет установленно исходя из размера изображения в файле. То-же самое верно и для ширины изображения.
| |
− | Если установленные ширина или высота больше чем настоящий размер изображения, то изображение будет растянуто до установленного размера.
| |
− |
| |
− | ===Координаты и размер прямоугольника<tt>left, top, width, height</tt>===
| |
− | Обязательные свойства. Не забывайте устанавливать их.
| |
− |
| |
− | Если нужно отобразить картинку в неизменённом виде то не устанавливайте свойства <tt>width</tt> и <tt>height</tt>. Они будут установленны автоматически.
| |
− |
| |
− | ===Полный путь к файлу изображения - <tt>file</tt>===
| |
− | Полный путь к файлу изображения.
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Вертикальный ящик - <tt>vbox</tt>'''==
| |
− | [[Grub2 theme / reference#Vertical box (vbox) | подробней]]
| |
− |
| |
− | Хранилище. Родительский элемент содержащий дочерние элементы.
| |
− |
| |
− | ===Координаты и размеры прямоугольника - <tt>left, top, width, height</tt>===
| |
− | Не забудьте установить свойства <tt>left</tt> и <tt>top</tt>. Свойства <tt>height</tt> и <tt>width</tt> не будут приняты во внимание и определяются автоматически.
| |
− |
| |
− | ===Составление элементов===
| |
− |
| |
− | Элементы содержащиеся в вертикальном яшике отображеются последовательно, сверху вниз, столбцом.
| |
− | Нет необходимости устанавливать свойства <tt>left</tt> и <tt>top</tt> для дочерних элементов. Они не будут приняты во внимание.
| |
− |
| |
− | Сперва находится самый широкий дочерний элемент, после чего ширина всех дочерних элеметов и ящика приравнивается к ширене найденого.
| |
− | Значения высоты дочерних элементов не изменяется.
| |
− |
| |
− | ===Пример===
| |
− |
| |
− | + vbox {
| |
− | left = 50%+310
| |
− | top = 50%-50
| |
− | width = 20
| |
− | height = 100
| |
− |
| |
− | #D1
| |
− | + image { left = 50 top = 10 width = 60 height = 60 file = "center.png" }
| |
− | #D2
| |
− | + image { left = 40 top = 20 width = 70 height = 70 file = "button_n.png" }
| |
− | }
| |
− |
| |
− | [[Image:grub-guide-vbox-layout.png]]
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Горизонтальный ящик - <tt>hbox</tt>'''==
| |
− | [[Grub2 theme / reference#Horizontal box (hbox) | подробней]]
| |
− |
| |
− | Хранилище. Родительский элемент содержащий дочерние элементы.
| |
− |
| |
− | ===Координаты и размер прямоугольника - <tt>left, top, width, height</tt>===
| |
− | Не забудьте установить свойства <tt>left</tt> и <tt>top</tt>. Свойства <tt>height</tt> и <tt>width</tt> не будут приняты во внимание и определяются автоматически.
| |
− |
| |
− | ===Составление элементов===
| |
− |
| |
− |
| |
− | Элементы содержащиеся в горизонтальном яшике отображеются последовательно, слева направо, в строчку.
| |
− | Нет необходимости устанавливать свойства <tt>left</tt> и <tt>top</tt> для дочерних элементов. Они не будут приняты во внимание.
| |
− |
| |
− | Сперва находится самый высокий дочерний элемент, после чего высота всех дочерних элеметов и ящика приравнивается к высоте найденого.
| |
− | Значения ширины дочерних элементов не изменяется.
| |
− |
| |
− | ===Пример===
| |
− |
| |
− | + hbox {
| |
− | left = 300
| |
− | top = 50%+310
| |
− | width = 20
| |
− | height = 100
| |
− |
| |
− | #D1
| |
− | + image { left = 50 top = 10 width = 60 height = 60 file = "center.png" }
| |
− | #D2
| |
− | + image { left = 40 top = 20 width = 70 height = 70 file = "button_n.png" }
| |
− | }
| |
− |
| |
− |
| |
− | [[Image:grub-guide-hbox-layout.png]]
| |
− |
| |
− | <br>
| |
− |
| |
− | =='''Холст- <tt>canvas</tt>'''==
| |
− | [[Grub2 theme / reference#Canvas (canvas) | подробней]]
| |
− |
| |
− | Хранилище. Родительский элементь содержащий дочерние элементы. Координаты дочерних элементов - относительны. Таким образом значения(0,0) для дочернего элемента - координаты верхнего левого угла родительского элемента.
| |
− |
| |
− | Корневой элемент - экземпляр элемента типа "холст".
| |
− |
| |
− | ===Координаты и размер прямоугольника - <tt>left, top, width, height</tt>===
| |
− | Обязательные свойства. Не забудьте установить их.
| |
− |
| |
− | <br>
| |
− |
| |
− | ='''Общие особенности'''=
| |
− |
| |
− | Общие особенности не относятся к конкретным объектам.
| |
− |
| |
− | =='''Порядок отображения элементов'''==
| |
− |
| |
− | Элементы отрисовываются последовательно, сверху вниз, в вертикальном ящике.
| |
− | Элементы отрисовываются последовательно, слева направо, в горизонтальном ящике.
| |
− |
| |
− | Дочерние элементы для холста отрисовываются в обратном порядке. Если в главном файле оформления элемент А расположен перед элементом Б, тогда элемент А будет отрисован после элемента Б.
| |
− |
| |
− | =='''Область отрисовки элемента'''==
| |
− |
| |
− | Для каждого элемента определена область отрисовки. Она устанавливается свойствами <tt>left</tt>, <tt>top</tt>, <tt>width</tt>, <tt>height</tt>.
| |
− |
| |
− | Всё, что пересекает назначенную область не будет отрисованно.
| |
− |
| |
− | =='''Наименьший размер элемента'''==
| |
− |
| |
− | Для каждого элемента есть функция определяющая минимальный размер прямоугольника, достаточного для отрисовки элемента. Если установленная ширина(высота) меньше допустимого значения тогда ширина(высота) будет установленна в минимальное значение
| |
− |
| |
− | =='''Что если число значения неправильное?'''==
| |
− | [[Grub2 theme / reference#Numeric | Описание численных значений.]]
| |
− |
| |
− | Одратите внимание, что абсолютные и относительные значения расщитываются относительно родительского элемента.
| |
− |
| |
− | В
| |
− | Lets call width and height of the parent container <tt>parent_width</tt> and <tt>parent_height</tt> correspondingly.
| |
− |
| |
− | Если значение <tt>left</tt> или <tt>top</tt> негоатвное - будет присвоено значение 0.
| |
− |
| |
− | Если значение <tt>left</tt> + <tt>width</tt> больше чем значение <tt>parent_width</tt> тогда свойству <tt>width</tt> будет присвоено значение <tt>parent_width - left</tt>. Таким образом, правая граница элемента будет совпадать с правой границей родительского элемента.
| |
− |
| |
− | Если значение <tt>top</tt> + <tt>height</tt> больше значения <tt>parent_height</tt> тогда свойству <tt>height</tt> будет присвоено значение <tt>parent_height - top</tt>. Таким образом, верхняя граница элемента будет совпадать с верхней границей родительского элемента.
| |
− |
| |
− | Можно использовать эту особенность для достижения нужной компановки элеметов при разных разрешениях экрана.
| |
− |
| |
− | =='''Выбор символа'''==
| |
− |
| |
− | Шрифт элемента описывается в основном файле темы оформления. Если нет нужного шрифта или шрифт не содержит нужного символа, будет использован наиболее подходящий символ из другого шрифта (присутствующего в оформлении).
| |
− |
| |
− | К примеру символы рамки не присутствуют в некоторых шрифтах. Если мы выберем такой шрифт для коммандной строки консоли тогда символ рамки будет взят из другого шрифта. Знание этой особенности поможет избежать непонимания в случае неожиданного результата. (к примеру символ пунктирной рамки или символ вопроса вместо символа рамки)
| |
− |
| |
− | <br>
| |
− |
| |
− | ='''Руководство по созданию шрифта'''=
| |
− | [[Grub2 theme / reference#Font name | подробнее]]
| |
− |
| |
− | GRUB использует свой собственный формат шрифта. Нужный шрифт может быть создан при помощи программы <tt>grub-mkfont</tt>.
| |
− | После создания шрифта и помещения его в папку оформления нужно запустить скрипт <tt>grub2-update</tt> для внесения изменений.
| |
− |
| |
− | =='''Создание шрифта при помощи <tt>grub2-mkfont</tt>'''==
| |
− |
| |
− | GRUB не использует кернинг. (изменение расстояния между символами в случае некоторых комбинаций символов).
| |
− |
| |
− | Созданный программой файл шрифта должен обладать расширением <tt>.pf2</tt>
| |
− |
| |
− | Синтаксис команды: <tt>grub2-mkfont INPUT_FONT [optional parameters] -o OUTPUT_FONT</tt>
| |
− |
| |
− | Созданный программой файл должен лежать в папке темы оформления.
| |
− |
| |
− | =='''Установки <tt>grub2-mkfont</tt>'''==
| |
− |
| |
− | ===<tt>--output, -o</tt>===
| |
− |
| |
− | Необходимый параметр. Имя выходного файла. Должно содержать расширение <tt>.pf2</tt>, для того что бы его мог использовать GRUB.
| |
− |
| |
− | ===<tt>--verbose, -v</tt>===
| |
− |
| |
− | grub2-mkfont DroidSansMono.ttf -o tmp.pf2 -v
| |
− | Font name: Droid Sans Mono Regular 16
| |
− | Max width: 13
| |
− | Max height: 17
| |
− | Font ascent: 17
| |
− | Font descent: 5
| |
− | Number of glyph: 591
| |
− |
| |
− | Выводит информацию о созданном файле шрифта.
| |
− | Выводит имя шрифта, ширину и высоту символов, подём и спуск сиволов, количество символов.
| |
− |
| |
− | ===<tt>--name, -n</tt>===
| |
− |
| |
− | устанавливает название шрифта.
| |
− |
| |
− | По умолчанию, название назначается автоматически по шаблону: FONT_NAME TYPE SIZE
| |
− |
| |
− | ===<tt>--size, -s</tt>===
| |
− |
| |
− | Устанавливает размер шрифта в точках.
| |
− | По умолчанию значение равно 16 точек.
| |
− |
| |
− | ===<tt>--bold, -b</tt>===
| |
− |
| |
− | Выводит шрифт с толсым стилем.
| |
− | По умолчанию используется обычный стиль.
| |
− |
| |
− | ===<tt>ascent</tt>, <tt>descent</tt> of the font===
| |
− | [[Image:grub-guide-font-scheme.png]]
| |
− |
| |
− | --asce, -c
| |
− | Подъём шрифта (смотри картинку)
| |
− |
| |
− | --desc, -d
| |
− | Спуск шрифта (смотри картинку)
| |
− |
| |
− | Можно установить эти параметры для достижения большего/меньшего пространства между строками, для выравнивания строки. (смотри картинку) Используя эти параметры нужно быть очень внимательным - все ли символы отображаются верно в оформлении меню.
| |
− |
| |
− | ===Выбор перечня символов для создания шрифта===
| |
− | Можно выбрать перечень символов для внесения их в файл шрифта.
| |
− |
| |
− | --ascii-bitmaps
| |
− | Использовать для шрифта только символы ascii.
| |
− |
| |
− | --range, -r
| |
− | для указания определённого перечня символов (от и до)
| |
− |
| |
− | <br>
| |
− |
| |
− | ='''Свойста устанавливаемые вне главного файла темы <tt>theme.txt</tt>'''=
| |
− |
| |
− | Настройки, которые устанавливаются не в файле темы.
| |
− |
| |
− | =='''Файл <tt>/etc/default/grub</tt>'''==
| |
− |
| |
− | ===GRUB_THEME===
| |
− |
| |
− | Полный путь к файлу темы оформления.
| |
− |
| |
− | ===GRUB_BACKGROUND===
| |
− |
| |
− | Полный путь к файлу изображения для фона консоли. Это изображение не должно содержать прозрачность (альфа-канал). Изображение растягивается на всю область консоли. (помните о границах в 3 точки)
| |
− |
| |
− | ===LANG и LANGUAGE===
| |
− |
| |
− | Если нужно установить язык используемый в загрузчике GRUB необходимо установить оба свойства с одинаковым значением.
| |
− |
| |
− | Может быть использовано разное написание: <tt>en</tt>, <tt>en_US</tt>, <tt>en_US.UTF-8</tt>.
| |
− |
| |
− | <br>
| |
− |
| |
− | <br><br>
| |
− | Author: Vladimir Testov, ROSA, 2013.
| |
− | Перевод: Василий подворняк, 2015.
| |
− | [[en:Grub2 theme tutorial]]
| |
− | [[ru:Grub2 (руководство по созданию темы оформления)]]
| |