You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 KiB
24 KiB
ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты ubl-settings-bootloader
- ОПИСАНИЕ:
Графическое средство настройки загрузчика ОС UBLinux
-
ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:
- Общий срок работ по созданию приложения составляет N дней:
- N дня - макет и дизайн приложения и его утверждение
- N дней - разработка приложения
- N дня - тестирование приложения и исправление ошибок
- Перечень этапов разработки приложения:
- Разработка макета и дизайна приложения
- Утверждение и доработка макета
- Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д.
- Проектирование алгоритма работы приложения
- Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
- Тестирование и исправление ошибок, самостоятельно
- Публикация
- Общий срок работ по созданию приложения составляет N дней:
-
ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:
- Приложение разрабатывается под нужды операционной системы UBLinux
- Использование фирменного логотипа компании
- Название приложения, техническое: ubl-settings-bootloader
- Название приложения, публичное: Загрузка системы
- Стек технологий:
- Язык программирования: Bash или C(++)
- Приложение для разработки графического интерфейса: Glade 3
- Графические библиотеки: GTK3
- Операционная система разработки: UBLinux DB
- Структура:
- Bash/C(++): Весь функционал сосредоточен в графической части, вызовы и исполнение процедур написаны на языках Bash, C(++) /usr/bin/ubl-settings-bootloader (скомпилированный бинарный файл)
- Графическая часть, фронт Файл glade скомпилирован в бинарный файл
- Стили виджетов GTK Файл css скомпилирован в бинарный файл
- Элементы изображений /usr/share/ubl-settings-bootloader/images/{*.png,*.svg}
- Локализация En/Ru /usr/share/locale/${LANG}/LC_MESSAGES/${FILE_MO} где ${LANG} - каталог с именем локали, например, "ru" или "ru_RU", ${FILE_MO} - файл локализации программы, например, "name_programm.mo"
- Файл с перечнем и описанием параметров ядра и загрузчика /usr/share/ubl-sttings-bootloadr/bootoptions.csv
-
ТЕХНИЧЕСКОЕ ЗАДАНИЕ:
- Ярлык (desktop-файл):
- Type: Application
- Exec: ubl-settings-bootloader
- Categories: X-UBL-SettingsManager;X-UBL-SystemSettings
- Главное окно:
- Требования к внешнему виду:
- Адаптивный (резиновый) дизайн.
- Наличие элементов интерфейса:
- Статических - не меняют свою ширину при изменении размеров окна или родительского элемента.
- Динамических - меняют свою ширину при изменении размеров окна или родительского элемента. Обычно занимают пространство от края до края окна или родительского элемента, либо пространство от рядом расположенного элемента до до края окна или родительского элемента.
- Минимальный размер окна до прекращения масштабирования 800 на 600 пикселей.
- Шапка в стиле приложений GTK3 с содержимым:
- Иконка приложения. Статический элемент. Выравнивание по левому краю.
- Кнопка с выпадающим списком "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). Статический элемент. Выравнивание по левому краю.
- Заголовок окна, название приложения. Выравнивание по центру между элементами.
- Кнопка с выпадающим списком "Сохранить" -> ("Сохранить в глобальную и локальную конфигурацию, Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию"). Статический элемент. Выравнивание по правому краю.
- Кнопка с иконкой с выпадающим списком -> "Справка, О приложении". Статический элемент. Выравнивание по правому краю.
- Стандартные элементы окна, кнопки "Свернуть, Минимизировать/На весь экран, Закрыть"
- В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением. Статические элементы. Выравнивание по левому краю.
- Срока уведомления, представляющая собой полосу с инфографикой строки уведомлений. Динамический элемент. От края до края окна по горизонтали.
- Рабочая область. Делится на два блока, которые обрамлены рамками с заголовками: «Локальная настройка», «Глобальная настройка».
- Требования к «Рабочей области». Динамический элемент. От края до края по горизонтали и вертикали окна. Выводятся группы настроек запуска:
- Блок с заголовком "Меню загрузки". Динамический элемент. От края до края окна по горизонтали.
- чекбокс "Таймер выбора варианта загрузки". Статический элемент. Выравнивание по левому краю.
- счётчик от 1 до 60 с лэйблом "секунд". Статический элемент. Выравнивание по левому краю.
- лэйбл "Загрузка по умолчанию:". Статический элемент. Выравнивание по левому краю.
- комбобокс с вариантами выбора ОС для загрузки. Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- чекбокс "Последний выбор станет выбором загрузки по умолчанию". Статический элемент. Выравнивание по левому краю.
- Блок с заголовком "Параметры, передаваемые ядру". Динамический элемент. От края до края окна по горизонтали.
- Таблица со скроллбаром. Динамический элемент. От края до края родительского элемента по горизонтали. Заголовок: столбец "Активно" чекбоксы (на активацию опции), столбец "Опция", столбец "Значение". Содержимое:
- чекбокс, quiet, Загрузка без текстовых сообщений
- чекбокс, splash, Показывать окно приветствия
- чекбокс, noplymouth, Отключить Plymouth
- чекбокс, acpi=off, Отключить ACPI
- чекбокс, noapic, Отключить APIC
- чекбокс, nolapic, Отключить локальный APIC
- чекбокс, single, Режим одного пользователя
- чекбокс, nomodeset, Отключить выбор и загрузку ядром драйверов видео
- чекбокс, i915.enable_dc=0, Отключить управление питанием графического процессора
- чекбокс, ahci.mobile_lpm_policy=1, Максимальная производительность, управление питанием
- чекбокс, snd-intel-dspcfg.dsp_driver=1, Принудительный выбор драйвера звукового устройства от Intel
- чекбокс, intel_idle.max_cstate=1, Предотвращает переход процессора в состояние глубокого сна
- чекбокс, intel_idle.max_cstate=4, Устраняет мерцание дисплея ноутбука на процессорах Ultra Voltage
- Поле ввода с лэйблом "Параметры командной строки:". Динамический элемент. От края до края родительского элемента по горизонтали.
- Таблица со скроллбаром. Динамический элемент. От края до края родительского элемента по горизонтали. Заголовок: столбец "Активно" чекбоксы (на активацию опции), столбец "Опция", столбец "Значение". Содержимое:
- Блок с заголовком "Терминал для ввода". Динамический элемент. От края до края окна по горизонтали.
- Таблица со скроллбаром. Динамический элемент. От края до края родительского элемента по горизонтали. Заголовок: столбец "Активно" чекбоксы (на активацию опции), столбец "Опция", столбец "Значение". Содержимое:
- чекбокс, console, PC BIOS & консоль EFI
- чекбокс serial, Последовательный терминал
- чекбокс, ofconsole, Консоль Open Firmware
- чекбокс, at_keyboard, Клавиатура PC AT (Coreboot)
- чекбокс, usb_keyboard, Клавиатура USB Keyboard (протокол HID Boot)
- поле ввода с лэйблом "Параметры командной строки:". Динамический элемент. От края до края родительского элемента по горизонтали.
- Таблица со скроллбаром. Динамический элемент. От края до края родительского элемента по горизонтали. Заголовок: столбец "Активно" чекбоксы (на активацию опции), столбец "Опция", столбец "Значение". Содержимое:
- Блок с заголовком "Терминал для вывода". Динамический элемент. От края до края окна по горизонтали.
- Таблица со скроллбаром. Динамический элемент. От края до края родительского элемента по горизонтали. Заголовок: столбец "Активно" чекбоксы (на активацию опции), столбец "Опция", столбец "Значение". Содержимое:
- чекбокс, console, PC BIOS & консоль EFI
- чекбокс, serial, Последовательный терминал
- чекбокс, ofconsole, Консоль Open Firmware
- чекбокс, gfxterm, Вывод в графическом режиме
- чекбокс, vga_text, Текстовый вывод VGA (Coreboot)
- поле ввода с лэйблом "Параметры командной строки:". Динамический элемент. От края до края родительского элемента по горизонтали.
- Таблица со скроллбаром. Динамический элемент. От края до края родительского элемента по горизонтали. Заголовок: столбец "Активно" чекбоксы (на активацию опции), столбец "Опция", столбец "Значение". Содержимое:
- Блок с заголовком "Меню загрузки". Динамический элемент. От края до края окна по горизонтали.
- Требования к внешнему виду:
-
ОСОБЕННОСТИ
- При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла (выполняются команды блоков "Чтение значений: из локального конфигурационного файла").
- Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через polkit.
- Кнопка "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). При нажатии на кнопку происходит открытие меню с пунктами: "Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию". Загрузка текущей и глобальной конфигурации в системе через скрипт ubconfig (выполняются команды блоков "Чтение значений: из локального конфигурационного файла"), загрузка конфигурации из файла настроек ОС ublinux.ini (выполняются команды блоков "Чтение значений: из глобального конфигурационного файла").
- Кнопка "Сохранить" -> ("Сохранить в глобальную и локальную конфигурацию). Сохраняет текущие настройки через скрипт ubconfig (выполняются команды блоков "Установить значение: в локальный конфигурационный файл") и в конфигурационный файл настроек ОС ublinux.ini (выполняются команды блоков "Установить значение: в глобальный конфигурационный файл"). При выборе пунктов "Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию" происходит отдельное сохранение настроек.
- Обработчик ошибок. Встроенный небольшой обработчик кодов внутренних ошибок, который должен передавать статус возникшей ошибки в строку уведомления. Например: "Невозможно прочитать значение параметра XXXXXX!"
- Строка уведомлений. Цвет в зависимости от сигнала:
- песочный, пиктограмма "Птичка", сообщения об удачных загрузках или сохранениях конфигураций системы.
- красный, пиктограмма "Восклицательный знак", сообщения об ошибках при сохранении, загрузке параметров конфигурации, при ошибках в работе программы, полученных от обработчика ошибок.
- Окно с выводом информации о программе:
- Заголовок окна по локализованному названию утилиты
- Копирайты, порядок:
- Иконка приложения
- Название утилиты
- Версия программы
- Название утилиты, локализованное
- Ссылка "Домашняя страница проекта" на https://ublinux.ru/
- Авторские права © ООО "Юбисофт", 2022 - $LASTYEAR
- локализованный (en_EN) вариант: "Copyright © UBSoft LLC, 2022 - $LASTYEAR"
- где $LASTYEAR - текущий год.
- Поля "Параметры командной строки" заполняются автоматически при выборе необходимых параметров в таблицах соответствующих блоков (активация через чекбоксы), в поле передаётся название параметра и его значение (если значение имеется), разделение через пробел.
- При удалении параметра из поля "Параметры командной строки" соответствующий параметр теряет свой статус активности (галочка снимается) в таблице соответствующего блока.
- При редактировании (изменении) параметра в поле "Параметры командной строки" соответствующий параметр теряет свой статус активности (галочка снимается) в таблице соответствующего блока.
- Значения параметров ядра и загрузчика берутся из файла /usr/share/ubl-sttings-bootloadr/list_bootoptions.csv
- Английские слова в файл проекта ubl-sttings-bootloadr.pot
Перевод в файле локализации проекта ubl-sttings-bootloadr_ru.po
-
КОМАНДЫ
- Меню загрузки
- Таймер выбора варианта загрузки:
- Чтение значения:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get config XXXXXX - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get config XXXXXX
- из локального конфигурационного файла:
- Установить значение:
- в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set config XXXXXX=$VALUE - в глобальный конфигурационный файл:
/usr/bin/ubconfig --target global set config XXXXXX=$VALUEгде $VALUE - параметр, цифровой, от 1 до 60.
- в локальный конфигурационный файл:
- Чтение значения:
- Загрузка по умолчанию:
- Должен быть получен список ОС и вариантов загрузки.
- Последний выбор станет выбором загрузки по умолчанию:
- Чтение значения:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get config XXXXXX - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get config XXXXXX
- из локального конфигурационного файла:
- Установить значение:
- в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set config XXXXXX=$VALUE - в глобальный конфигурационный файл:
/usr/bin/ubconfig --target global set config XXXXXX=$VALUEгде $VALUE - параметр, цифровой, 1 или 0. Указывает на включение или отключение данной опции.
- в локальный конфигурационный файл:
- Чтение значения:
- Таймер выбора варианта загрузки:
- Параметры, передаваемые ядру
- через функции фронтенда передавать выбранный параметр в поле "Параметры командной строки" блока "Параметры, передаваемые ядру"
- Параметры командной строки:
- Чтение значения:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get config CMDLINE - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get config CMDLINE
- из локального конфигурационного файла:
- Установить значение:
- в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set config CMDLINE=$VALUE - в глобальный конфигурационный файл:
/usr/bin/ubconfig --target global set config CMDLINE=$VALUEгде $VALUE - перечень параметров, полученных исходя из выбранных опций в блоке "Параметры, передаваемые ядру", разделённых пробелом.
- в локальный конфигурационный файл:
- Чтение значения:
- Терминал для ввода
- через функции фронтенда передавать выбранный параметр в поле "Параметры командной строки" блока "Терминал для ввода"
- Параметры командной строки:
- Чтение значения:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get config XXXXXX - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get config XXXXXX
- из локального конфигурационного файла:
- Установить значение:
- в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set config XXXXXX=$VALUE - в глобальный конфигурационный файл:
/usr/bin/ubconfig --target global set config XXXXXX=$VALUEгде $VALUE - перечень параметров, полученных исходя из выбранных опций в блоке "Терминал для ввода", разделённых пробелом.
- в локальный конфигурационный файл:
- Чтение значения:
- Терминал для вывода
- через функции фронтенда передавать выбранный параметр в поле "Параметры командной строки" блока "Терминал для вывода"
- Параметры командной строки:
- Чтение значения:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get config XXXXXX - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get config XXXXXX
- из локального конфигурационного файла:
- Установить значение:
- в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set config XXXXXX=$VALUE - в глобальный конфигурационный файл:
/usr/bin/ubconfig --target global set config XXXXXX=$VALUEгде $VALUE - перечень параметров, полученных исходя из выбранных опций в блоке "Терминал для вывода", разделённых пробелом.
- в локальный конфигурационный файл:
- Чтение значения:
- Меню загрузки
-
ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.
- Главное окно
