diff --git a/#ubl-settings-bootloader.glade# b/#ubl-settings-bootloader.glade# new file mode 100644 index 0000000..41c24f5 --- /dev/null +++ b/#ubl-settings-bootloader.glade# @@ -0,0 +1,1298 @@ + + + + + + False + О Программе + False + True + center + ubl-settings-datetime + dialog + True + ubl-settings-bootloader + 1.0 + Copyright © 2023 - UBSoft Software LLC + Setting the bootloader + https://ublinux.ru/ + Project Home Page + Это приложение распространяется без каких-либо гарантий. +Подробнее в <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, версии 2 или позднее</a>. + UBGroup + UBGroup + ublexec + True + gpl-2-0 + + + False + vertical + 2 + + + False + end + + + + + + False + False + 0 + + + + + + + + + + 750 + 550 + False + + + True + False + vertical + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 69 + ublexec + + + False + True + 0 + + + + + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + Running applications as a user with a +specified priority + + + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + + + True + True + in + + + True + False + + + True + False + vertical + + + True + True + both + True + + + + + + False + True + 0 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + + + Load variant selection timer + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Seconds + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Default download + + + False + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + + + False + True + 1 + + + + + False + True + 1 + + + + + The last selection will become the default boot choice + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Download menu + + + + + False + True + 1 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + vertical + + + True + False + + + splash (Show welcome window) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + quiet (Downloading without text messages) + 362 + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + + + nоapic (Disable APIC) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + nolapic (Disable local APIC) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + + + True + False + + + no plymouth (Disable Plymouth) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + + + + single (Single User Mode) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + + + acpi=off (Disable ACPI) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + + + + nomodeset (Disable kernel selection and loading of video drivers) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + + + i915.enable_dc=0 (Disable GPU power management) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + ahci.mobile_jpm_policy=1 (Maximum performance, power management) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 6 + + + + + snd-intel-dspcfg.dsp_driver=1 (Forced selection of a sound device driver from Intel) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 7 + + + + + intel_idle max_cstate=1 (Prevents the processor from going into a deep sleep state) + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 8 + + + + + intel_idle.max_cstate=4 (Eliminates flickering laptop display on processors Ultra Voltage) + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 9 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Command line parameters: + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + True + 1 + + + + + False + True + 10 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Parameters passed to the kernel + + + + + False + True + 2 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + vertical + + + console (PC BIOS & console EFI) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + serial (Serial terminal) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + ofconsole (Console Open Firmware) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + vertical + + + at_keyboard (Keyboard PC AT (Coreboot)) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + usb_keyboard (Keyboard USB Keyboard (protocol HID Boot)) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 6 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Command line parameters: + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + True + 1 + + + + + False + True + 7 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Input terminal + + + + + False + True + 3 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + + + ofconsole (Console Open Firmware) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + serial (Serial terminal) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + console (PC BIOS & console EFI) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + vertical + + + gfxterm (Output in graphical mode) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + vga_text (Text output VGA (Coreboot)) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 6 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Command line parameters: + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + True + 1 + + + + + False + True + 7 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Output terminal + + + + + False + True + 4 + + + + + + + + + True + True + 0 + + + + + True + True + 1 + + + + + + + True + False + True + + + True + False + UBConfig - Loading + + + + + True + False + 32 + ublexec + + + + + True + False + + + True + True + False + True + True + none + + + + + + False + True + 0 + + + + + end + 1 + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46763c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +ubl-settings-bootloader.glade~ +test.cpp +.vscode +ubl-settings-bootloader \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1341c01 --- /dev/null +++ b/Makefile @@ -0,0 +1,136 @@ +#!/usr/bin/make -f +#!/usr/bin/make -f + +#SHELL := /bin/bash +MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST))) +MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH)))) +MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH)) + +CMAKE_COMMAND = cmake +#CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source +#CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile +CMAKE_SOURCE_DIR = ./source +CMAKE_BUILD_DIR = ./compile +DEPENDS = cmake +#PKGNAME = $(MAKEFILE_DIR) +PKGNAME = ubl-settings-bootloader + +default_target: all +all: init build + +init: + @echo "Initialize ..."; \ + echo "-- Build path: ${CMAKE_BUILD_DIR}" + +depend: + @echo "Check depends ..."; \ + if [ ! -f /bin/${DEPENDS} ]; then \ + echo "-- Depend '${DEPENDS}' not fount !"; \ + exit 1; \ + fi; \ + echo "Check depends: OK" +# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 + +debug: + @echo "Debug ..." + if [ ! -d ${CMAKE_BUILD_DIR} ]; then \ + $(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="/usr"; \ + fi; \ + echo "Debug: OK" + +prepare: + @echo "Prepare ..."; \ + if [ ! -d ${CMAKE_BUILD_DIR} ]; then \ + $(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr"; \ + fi; \ + echo "Prepare: OK" + +check: + @echo "Check ..."; \ + if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \ + echo "Check: OK"; \ + else \ + echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not fount !"; \ + exit 1; \ + fi + +build: depend prepare + @echo "Build ..."; \ + make --directory=${CMAKE_BUILD_DIR}; \ + echo "Build: OK" + +uninstall: + @echo "Uninstall ..." + @for FILE_PO in $(wildcard *.po); do \ + LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ + FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \ + PATH_FILE_MO="/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ + $(RM) "/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ + done +# @for SIZE in 16x16 32x32 48x48 scalable; do \ + $(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${PKGNAME}.svg"; \ + $(RM) "/usr/share/icons/hicolor/$${SIZE}/apps/${PKGNAME}.png"; \ + done +# @for FILE_SVG in $(wildcard *.svg); do \ + for SIZE in 16x16 32x32 48x48 scalable; do \ + $(RM) "/usr/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \ + done; \ + done + @$(RM) "/usr/bin/${PKGNAME}" + @$(RM) "/usr/share/applications/${PKGNAME}.desktop" + @$(RM) "/usr/share/polkit-1/actions/ru.ublinux.pkexec.${PKGNAME}.exec.policy" + @$(RM) -rd "/usr/share/${PKGNAME}" + @gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ &>/dev/null + @update-desktop-database --quiet 2>/dev/null + @touch /usr/share/applications + @echo "Uninstall: OK" + +install: check uninstall + @echo "Install ..." + @for FILE_PO in $(wildcard *.po); do \ + LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ + install -dm755 /usr/share/locale/$${LANG}/LC_MESSAGES; \ + FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \ + PATH_FILE_MO="/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \ + echo $${FILE_PO}; \ + msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \ + done + @for SIZE in 16 32 48; do \ + install -dm755 /usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps; \ +# rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data ${PKGNAME}.svg -o "/usr/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/${PKGNAME}.svg"; \ + done + @install -dm755 /usr/share/icons/hicolor/scalable/apps +# @install -Dm644 -t /usr/share/icons/hicolor/scalable/apps/ ${PKGNAME}.svg + @install -Dm755 -t /usr/bin/ ${CMAKE_BUILD_DIR}/${PKGNAME} + @install -Dm644 -t /usr/share/applications/ ${PKGNAME}.desktop + @install -Dm644 -t /usr/share/polkit-1/actions/ org.ublinux.pkexec.${PKGNAME}.exec.policy + @install -dm755 /usr/share/${PKGNAME}/{ui,css,images} + @install -Dm644 -t /usr/share/${PKGNAME}/ui/ ${PKGNAME}.glade + @install -Dm644 -t /usr/share/${PKGNAME}/css/ style.css + @install -Dm644 -t /usr/share/${PKGNAME}/images/ bg_top.png +# @install -Dm644 -t /usr/share/${PKGNAME}/images/ ${PKGNAME}.svg +# @install -Dm644 -t /usr/share/${PKGNAME}/images/ ${PKGNAME}.png + @gtk-update-icon-cache -fiq /usr/share/icons/hicolor/ + @update-desktop-database --quiet 2>/dev/null + @touch /usr/share/applications + @echo "Install: OK" + +clean: + @echo "Clean ..." + @$(RM) -rd ${CMAKE_BUILD_DIR} + @if [ -d ${CMAKE_BUILD_DIR} ]; then \ + echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \ + else \ + echo "Clean: OK"; \ + fi + +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... init" + @echo "... debug" + @echo "... prepare" + @echo "... compile" + @echo "... install" + @echo "... uninstall" + @echo "... clean" \ No newline at end of file diff --git a/README.md b/README.md index f8c2bcf..ecd29db 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,31 @@ # ubl-settings-bootloader +# Настройка grub +[RU] Утилита для настройки grub +Utility for setting the grub + +![alt text](screenshot/screenshot.png) + +# Build +In order to build ubl-settings-bootloader you will need: + +- CMake +- C compiler +- GTK+ 3 & dependencies + +Once you have all the necessary dependencies, you can use: +```sh +$ make +``` + +# Installation +After a successful build, just use: +```sh +$ sudo make install clean +``` + +# Uninstallation +After a successful build, just use: +```sh +$ sudo make uninstall +``` diff --git a/bg_top.png b/bg_top.png new file mode 100644 index 0000000..8eb67cb Binary files /dev/null and b/bg_top.png differ diff --git a/org.ublinux.pkexec.ubl-settings-bootloader.exec.policy b/org.ublinux.pkexec.ubl-settings-bootloader.exec.policy new file mode 100644 index 0000000..3664113 --- /dev/null +++ b/org.ublinux.pkexec.ubl-settings-bootloader.exec.policy @@ -0,0 +1,24 @@ + + + + + UBLinux + https://ublinux.ru + + + Run "ublexec" as root + Запус "Выполнить" с правами root + Authentication is required to run ublexec + Требуется авторизация для запуска "Выполнить" с правами root + + auth_admin + auth_admin + auth_admin + + /usr/bin/ublexec + true + + + diff --git a/screenshot/screenshot.png b/screenshot/screenshot.png new file mode 100644 index 0000000..3d555ab Binary files /dev/null and b/screenshot/screenshot.png differ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt new file mode 100644 index 0000000..8f211c8 --- /dev/null +++ b/source/CMakeLists.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 3.7) +project(ubl-settings-bootloader) + +find_package(PkgConfig REQUIRED) + +pkg_check_modules(GTK REQUIRED gtkmm-3.0) +include_directories(${GTK_INCLUDE_DIRS}) +link_directories(${GTK_LIBRARY_DIRS}) +add_definitions(${GTK_CFLAGS_OTHER}) + +#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a -g") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ + -O2 -pipe -fno-plt -fexceptions \ + -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ + -fstack-clash-protection -fcf-protection -g") + +set(SOURCE_FILES + main.cc + ubl-settings-bootloader.cc + ubl-settings-bootloader.h) + +set(LIBRARIES + ${GTK_LIBRARIES} + pthread) + +add_executable(ubl-settings-bootloader ${SOURCE_FILES}) +target_link_libraries(ubl-settings-bootloader ${LIBRARIES}) +install(TARGETS ubl-settings-bootloader DESTINATION bin) diff --git a/source/main.cc b/source/main.cc new file mode 100644 index 0000000..3ebb17f --- /dev/null +++ b/source/main.cc @@ -0,0 +1,50 @@ +#include "ubl-settings-bootloader.h" + +int main(int argc, char** argv) +{ + string str_cmd_argv = ""; + for (int i=1; irun(plug); + return 0; + } + else { + MainWindow* wnd = nullptr; + builder->get_widget_derived("window", wnd); + auto r = app->run(*wnd); + delete wnd; + return r; + } + +} diff --git a/source/ubl-settings-bootloader.cc b/source/ubl-settings-bootloader.cc new file mode 100644 index 0000000..7179203 --- /dev/null +++ b/source/ubl-settings-bootloader.cc @@ -0,0 +1,238 @@ + +#include "ubl-settings-bootloader.h" +using namespace std; + +string path_app= "/usr/bin/"; +string path_glade= "/usr/share/ubl-settings-bootloader/ui/ubl-settings-bootloader.glade"; +string path_css = "/usr/share/ubl-settings-bootloader/css/style.css"; +string app_name = "ubl-settings-bootloader"; +CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help) +: Glib::OptionGroup{p_name, p_description, p_help} { + Glib::OptionEntry socketIDArg; + socketIDArg.set_long_name("socket-id"); + socketIDArg.set_short_name('s'); + socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN); + socketIDArg.set_description("Settings manager socket"); + add_entry(socketIDArg, m_socketID); +} +::Window CmdArgParser::GetSocketID() const{ + return m_socketID; +} + +SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr builder) + : Gtk::Plug{p_socketID} { + MainWindow* wnd = nullptr; + builder->get_widget_derived("window", wnd); + builder->get_widget("plugBox", plugBox); + plugBox->get_parent()->remove(*plugBox); + add(*plugBox); + show_all_children(); +} + +MainWindow::MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder) + : Gtk::ApplicationWindow(obj), builder{builder} { + this->builder = builder; + this->settings(); +} + +MainWindow::MainWindow(Glib::RefPtr const& builder) { + this->builder = builder; + this->settings(); +} + +void MainWindow::settings(){ + this->get_builder(); + this->localization(); + this->event(); + this->add_CSS(); +} + +void MainWindow::get_monitor_size(){ + GdkRectangle workarea; + gdk_monitor_get_workarea( + gdk_display_get_primary_monitor(gdk_display_get_default()),&workarea); + screen_width = workarea.width; + screen_hight = workarea.height; +} + +void MainWindow::get_builder(){ + builder->get_widget("chbLoadVariantSelectionTimer", chbLoadVariantSelectionTimer); + builder->get_widget("chbLastSelectionWillBecome", chbLastSelectionWillBecome); + builder->get_widget("chbQuiet", chbQuiet); + builder->get_widget("chbSplash", chbSplash); + builder->get_widget("chbPlymouth", chbPlymouth); + builder->get_widget("chbAcpi", chbAcpi); + builder->get_widget("chbNоapic", chbNоapic); + builder->get_widget("chbNolapic", chbNolapic); + builder->get_widget("chbSingle", chbSingle); + builder->get_widget("chbHomodeset", chbHomodeset); + builder->get_widget("chbI915Enable", chbI915Enable); + builder->get_widget("chbAhci", chbAhci); + builder->get_widget("chbSndIntel", chbSndIntel); + builder->get_widget("chbintelMax1", chbintelMax1); + builder->get_widget("chbintelMax4", chbintelMax4); + builder->get_widget("chbconsoleIT", chbconsoleIT); + builder->get_widget("chbSerialIT", chbSerialIT); + builder->get_widget("chbofConsoleIT", chbofConsoleIT); + builder->get_widget("chbAtKeyboard", chbAtKeyboard); + builder->get_widget("chbUsbKeyboard", chbUsbKeyboard); + builder->get_widget("chbofConsoleOT", chbofConsoleOT); + builder->get_widget("chbSerialOT", chbSerialOT); + builder->get_widget("chbconsoleOT", chbconsoleOT); + builder->get_widget("chbGfxterm", chbGfxterm); + builder->get_widget("chbVgaText", chbVgaText); + + builder->get_widget("lblInfoCommand", lblInfoCommand); + builder->get_widget("lblInfoCommand1", lblInfoCommand1); + builder->get_widget("lblInfoCommand2", lblInfoCommand2); + builder->get_widget("lblInfoDefaultDonw", lblInfoDefaultDonw); + builder->get_widget("lblInfoSeconds", lblInfoSeconds); + builder->get_widget("lblDownloadMenu", lblDownloadMenu); + builder->get_widget("lblInfoInputTerminal", lblInfoInputTerminal); + builder->get_widget("lblInfoOutputTerminal", lblInfoOutputTerminal); + builder->get_widget("lblInfoSeconds", lblInfoSeconds); + builder->get_widget("lblHeaderName", lblHeaderName); + builder->get_widget("lblInfoHead", lblInfoHead); + + builder->get_widget("spbSecond", spbSecond); + builder->get_widget("entryKernel", entryKernel); + builder->get_widget("entryIT", entryIT); + builder->get_widget("entryOT", entryOT); + + builder->get_widget("boxInput1", boxInput1); + builder->get_widget("boxInput2", boxInput2); + builder->get_widget("boxOtput1", boxOtput1); + builder->get_widget("boxOtput2", boxOtput2); + builder->get_widget("boxKernel", boxKernel); + builder->get_widget("boxKernel1", boxKernel1); + builder->get_widget("boxKernel2", boxKernel2); + builder->get_widget("aboutWindows", aboutWindows); + builder->get_widget("boxColor", boxColor); + + + + + +} + +void MainWindow::localization(){ + lblInfoHead->set_text(gettext("Configuring system boot parameters")); + lblHeaderName->set_text(gettext("UBConfig - Loading")); + aboutWindows->set_comments(gettext("Setting bootloader")); + aboutWindows->set_website_label(gettext("Project Home Page")); + lblInfoCommand->set_text(gettext("Command line parameters:")); + lblInfoCommand1->set_text(gettext("Command line parameters:")); + lblInfoCommand2->set_text(gettext("Command line parameters:")); + lblInfoDefaultDonw->set_text(gettext("Default download")); + lblInfoSeconds->set_text(gettext("Seconds")); + lblDownloadMenu->set_text(gettext("Download menu")); + lblInfoInputTerminal->set_text(gettext("Input terminal")); + lblInfoOutputTerminal->set_text(gettext("Output terminal")); + + chbLoadVariantSelectionTimer->set_label(gettext("Load variant selection timer")); + chbLastSelectionWillBecome->set_label(gettext("The last selection will become the default boot choice")); + chbQuiet->set_label(gettext("quiet (Downloading without text messages)")); + chbSplash->set_label(gettext("splash (Show welcome window)")); + chbPlymouth->set_label(gettext("no plymouth (Disable Plymouth)")); + chbAcpi->set_label(gettext("acpi=off (Disable ACPI)")); + chbNоapic->set_label(gettext("nоapic (Disable APIC)")); + chbNolapic->set_label(gettext("nolapic (Disable local APIC)")); + chbSingle->set_label(gettext("single (Single User Mode)")); + chbHomodeset->set_label(gettext("nomodeset (Disable kernel selection and loading of video drivers)")); + chbI915Enable->set_label(gettext("i915.enable_dc=0 (Disable GPU power management)")); + chbAhci->set_label(gettext("ahci.mobile_jpm_policy=1 (Maximum performance, power management)")); + chbSndIntel->set_label(gettext("snd-intel-dspcfg.dsp_driver=1 (Forced selection of a sound device driver from Intel)")); + chbintelMax1->set_label(gettext("intel_idle max_cstate=1 (Prevents the processor from going into a deep sleep state)")); + chbintelMax4->set_label(gettext("intel_idle.max_cstate=4 (Eliminates flickering laptop display on processors Ultra Voltage)")); + chbconsoleIT->set_label(gettext("console (PC BIOS & console EFI)")); + chbSerialIT->set_label(gettext("serial (Serial terminal)")); + chbofConsoleIT->set_label(gettext("ofconsole (Console Open Firmware)")); + chbAtKeyboard ->set_label(gettext("at_keyboard (Keyboard PC AT (Coreboot))")); + chbUsbKeyboard->set_label(gettext("usb_keyboard (Keyboard USB Keyboard (protocol HID Boot))")); + chbofConsoleOT->set_label(gettext("ofconsole (Console Open Firmware)")); + chbSerialOT->set_label(gettext("serial (Serial terminal)")); + chbconsoleOT->set_label(gettext("console (PC BIOS & console EFI)")); + chbGfxterm->set_label(gettext("gfxterm (Output in graphical mode)")); + chbVgaText->set_label(gettext("chbVgaText")); + + //set_label(gettext("Command line parameters:")); +} + + + +void MainWindow::event(){ + chbintelMax1->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::fn_event_intelMax1)); + chbintelMax4->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::fn_event_intelMax4)); + signal_configure_event().connect(sigc::mem_fun(*this, &MainWindow::gui_set_orientation), false); +} + +void MainWindow::fn_event_intelMax1(){ + chbintelMax4->set_active(false); +} + +void MainWindow::fn_event_intelMax4(){ + chbintelMax1->set_active(false); +} + +bool MainWindow::gui_set_orientation(GdkEventConfigure* event){ + if (event){} + int w,h; + this->get_monitor_size(); + w = this->get_width(); + h = this->get_height(); + int padding = w*0.11; + float padding_interest = 0.6; + if ((width!=w) || heigh!=h){ + if (((screen_width/2)<=w) && ((screen_hight-padding)<=h)){ + boxOtput1->set_orientation(Gtk::ORIENTATION_VERTICAL); + boxOtput2->set_orientation(Gtk::ORIENTATION_VERTICAL); + boxInput1->set_orientation(Gtk::ORIENTATION_VERTICAL); + boxInput2->set_orientation(Gtk::ORIENTATION_VERTICAL); + boxKernel->set_orientation(Gtk::ORIENTATION_VERTICAL); + boxKernel1->set_orientation(Gtk::ORIENTATION_VERTICAL); + boxKernel2->set_orientation(Gtk::ORIENTATION_VERTICAL); + cout << 1 << endl; + } + else if (((screen_width*padding_interest)<=w) && ((screen_hight*padding_interest)<=h)){ + boxOtput1->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + boxOtput2->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + boxInput1->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + boxInput2->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + boxKernel->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + boxKernel1->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + boxKernel2->set_orientation(Gtk::ORIENTATION_HORIZONTAL); + cout << 2 << endl; + } + else{ + } + + + width=w; + heigh=h; + } + + + return false; +} + +void MainWindow::add_CSS(){ + Glib::RefPtr cssProvider = Gtk::CssProvider::create(); + cssProvider->load_from_path(path_css); + Glib::RefPtr styleContext = Gtk::StyleContext::create(); + Glib::RefPtr screen = Gdk::Screen::get_default();//get default screen + styleContext->add_provider_for_screen(screen, cssProvider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);//add provider for screen in all application + Glib::RefPtr context_box = boxColor->get_style_context(); + Glib::RefPtr context_lbl_head = lblInfoHead->get_style_context(); + context_box->add_class("cssboxColor1"); + context_lbl_head->add_class("textHead"); +} + + + + + + + + + + diff --git a/source/ubl-settings-bootloader.h b/source/ubl-settings-bootloader.h new file mode 100644 index 0000000..e3865c5 --- /dev/null +++ b/source/ubl-settings-bootloader.h @@ -0,0 +1,117 @@ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +extern string path_app; +extern string app_name; +extern string path_glade; +extern string path_css; +void me_thread(string cmd); +class CmdArgParser : public Glib::OptionGroup +{ +public: + CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help); + ::Window GetSocketID() const; + +private: + int m_socketID = 0; + +}; + +class MainWindow : public Gtk::ApplicationWindow { +public: + MainWindow(BaseObjectType* obj, Glib::RefPtr const& builder); + MainWindow(Glib::RefPtr const& builder); + void get_builder(); + void add_CSS(); + void localization(); + void event(); + void settings(); + void fn_event_intelMax1(); + void fn_event_intelMax4(); + void get_monitor_size(); + bool gui_set_orientation(GdkEventConfigure* configure_event); + public: + Glib::RefPtr builder; + Gtk::SpinButton *spbSecond; + + Gtk::Label *lblInfoSeconds; + Gtk::Label *lblInfoDefaultDonw; + Gtk::Label *lblInfoCommand; + Gtk::Label *lblInfoCommand1; + Gtk::Label *lblInfoCommand2; + Gtk::Label *lblDownloadMenu; + Gtk::Label *lblInfoInputTerminal; + Gtk::Label *lblInfoOutputTerminal; + Gtk::Label *lblHeaderName; + Gtk::Label *lblInfoHead; + + Gtk::CheckButton *chbLoadVariantSelectionTimer; + Gtk::CheckButton *chbofConsoleOT; + Gtk::CheckButton *chbSerialOT; + Gtk::CheckButton *chbconsoleOT; + Gtk::CheckButton *chbGfxterm; + Gtk::CheckButton *chbVgaText; + Gtk::CheckButton *chbconsoleIT; + Gtk::CheckButton *chbSerialIT; + Gtk::CheckButton *chbofConsoleIT; + Gtk::CheckButton *chbAtKeyboard; + Gtk::CheckButton *chbUsbKeyboard; + Gtk::CheckButton *chbintelMax4; + Gtk::CheckButton *chbintelMax1; + Gtk::CheckButton *chbSndIntel; + Gtk::CheckButton *chbAhci; + Gtk::CheckButton *chbI915Enable; + Gtk::CheckButton *chbAcpi; + Gtk::CheckButton *chbPlymouth; + Gtk::CheckButton *chbSplash; + Gtk::CheckButton *chbQuiet; + Gtk::CheckButton *chbNоapic; + Gtk::CheckButton *chbNolapic; + Gtk::CheckButton *chbSingle; + Gtk::CheckButton *chbHomodeset; + Gtk::CheckButton *chbLastSelectionWillBecome; + Gtk::Entry *entryKernel; + Gtk::Entry *entryIT; + Gtk::Entry *entryOT; + Gtk::Box *boxOtput1; + Gtk::Box *boxOtput2; + Gtk::Box *boxInput1; + Gtk::Box *boxInput2; + Gtk::Box *boxKernel; + Gtk::Box *boxKernel1; + Gtk::Box *boxKernel2; + Gtk::Box *boxColor; + Gtk::AboutDialog *aboutWindows; + int width; + int heigh; + int screen_width; + int screen_hight; + + + + + +}; + +class SettingsPlug : public Gtk::Plug{ +public: + Gtk::Window *window; + SettingsPlug(::Window p_socketID, Glib::RefPtr builder); + +private: + Gtk::Widget *plugBox; + Gtk::Widget *parent; +}; + + diff --git a/style.css b/style.css new file mode 100644 index 0000000..41a96a0 --- /dev/null +++ b/style.css @@ -0,0 +1,7 @@ +.cssboxColor1{ + background: url("/usr/share/ublexec/images/bg_top.png") no-repeat; +} +.textHead{ + text-shadow: 1px 1px #ffffff; +} + diff --git a/ubl-settings-bootloader.desktop b/ubl-settings-bootloader.desktop new file mode 100644 index 0000000..89ff86d --- /dev/null +++ b/ubl-settings-bootloader.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=ubl-settings-bootloader +Name[ru]=Загрузчик +GenericName=Загрузчик +GenericName[ru]=Загрузчик +Comment=ubl-settings-bootloader +Comment[ru]=Загрузчик +Type=Application +Exec=ubl-settings-bootloader +Icon=ubl-settings-bootloader +Terminal=false +X-XfcePluggable=true +Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-SystemSettings; \ No newline at end of file diff --git a/ubl-settings-bootloader.glade b/ubl-settings-bootloader.glade new file mode 100644 index 0000000..71a945c --- /dev/null +++ b/ubl-settings-bootloader.glade @@ -0,0 +1,1282 @@ + + + + + + False + О Программе + False + True + center + ubl-settings-datetime + dialog + True + ubl-settings-bootloader + 1.0 + Copyright © 2023 - UBSoft Software LLC + Setting the bootloader + https://ublinux.ru/ + Project Home Page + Это приложение распространяется без каких-либо гарантий. +Подробнее в <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, версии 2 или позднее</a>. + UBGroup + UBGroup + ublexec + True + gpl-2-0 + + + False + vertical + 2 + + + False + end + + + + + + False + False + 0 + + + + + + + + + + 750 + 550 + False + + + True + False + vertical + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + 69 + ublexec + + + False + True + 0 + + + + + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + Running applications as a user with a +specified priority + + + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + + + True + True + in + + + True + False + + + True + False + vertical + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + + + Load variant selection timer + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + False + True + 1 + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Seconds + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Default download + + + False + True + 0 + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + + + False + True + 1 + + + + + False + True + 1 + + + + + The last selection will become the default boot choice + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Download menu + + + + + False + True + 1 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + vertical + + + True + False + + + splash (Show welcome window) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + quiet (Downloading without text messages) + 362 + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + + + nоapic (Disable APIC) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + nolapic (Disable local APIC) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + + + True + False + + + no plymouth (Disable Plymouth) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + + + + single (Single User Mode) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + + + acpi=off (Disable ACPI) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + + + + nomodeset (Disable kernel selection and loading of video drivers) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + + + i915.enable_dc=0 (Disable GPU power management) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + ahci.mobile_jpm_policy=1 (Maximum performance, power management) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 6 + + + + + snd-intel-dspcfg.dsp_driver=1 (Forced selection of a sound device driver from Intel) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 7 + + + + + intel_idle max_cstate=1 (Prevents the processor from going into a deep sleep state) + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 8 + + + + + intel_idle.max_cstate=4 (Eliminates flickering laptop display on processors Ultra Voltage) + True + True + False + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 9 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Command line parameters: + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + True + 1 + + + + + False + True + 10 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Parameters passed to the kernel + + + + + False + True + 2 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + vertical + + + console (PC BIOS & console EFI) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + serial (Serial terminal) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + ofconsole (Console Open Firmware) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + vertical + + + at_keyboard (Keyboard PC AT (Coreboot)) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + usb_keyboard (Keyboard USB Keyboard (protocol HID Boot)) + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 6 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Command line parameters: + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + True + 1 + + + + + False + True + 7 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Input terminal + + + + + False + True + 3 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 12 + + + True + False + vertical + + + True + False + + + ofconsole (Console Open Firmware) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + serial (Serial terminal) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + console (PC BIOS & console EFI) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + vertical + + + gfxterm (Output in graphical mode) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 0 + + + + + vga_text (Text output VGA (Coreboot)) + 362 + True + True + False + start + 5 + 5 + 5 + 5 + 6 + 6 + True + + + False + True + 1 + + + + + False + True + 6 + + + + + True + False + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Command line parameters: + + + False + True + 0 + + + + + True + True + 5 + 5 + 5 + 5 + 6 + 6 + + + True + True + 1 + + + + + False + True + 7 + + + + + + + + + True + False + 5 + 5 + 5 + 5 + 6 + 6 + Output terminal + + + + + False + True + 4 + + + + + + + + + True + True + 0 + + + + + True + True + 1 + + + + + + + True + False + True + + + True + False + UBConfig - Loading + + + + + True + False + 32 + ublexec + + + + + True + False + + + True + True + False + True + True + none + + + + + + False + True + 0 + + + + + end + 1 + + + + + + diff --git a/ubl-settings-bootloader_ru.po b/ubl-settings-bootloader_ru.po new file mode 100644 index 0000000..d8fc7db --- /dev/null +++ b/ubl-settings-bootloader_ru.po @@ -0,0 +1,116 @@ +# Russian translations for PACKAGE package. +# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: ubconfig 1.0\n" +"Report-Msgid-Bugs-To: info@ublinux.ru\n" +"POT-Creation-Date: 2020-02-22 23:22+0600\n" +"PO-Revision-Date: 2020-02-22 23:28+0600\n" +"Last-Translator: ublinux \n" +"Language-Team: Russian - UBLinux Team \n" +"Language: Russian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Configuring the boot loader settings" +msgstr "Настройка параметров загрузчика системы" + +msgid "UBConfig - Loading" +msgstr "UBConfig - Загрузка" + +msgid "Configuring system boot parameters" +msgstr "Настройка параметров загрузки системы" + +msgid "Setting bootloader" +msgstr "Настройка загрузчика" + +msgid "Project Home Page" +msgstr "Домашняя страница проекта" + +msgid "Download menu" +msgstr "Меню загрузки" + +msgid "Load variant selection timer" +msgstr "Таймер выбора варианта загрузки" + +msgid "Seconds" +msgstr "Секунд" + +msgid "Default download" +msgstr "Загрузка по умолчанию:" + +msgid "The last selection will become the default boot choice" +msgstr "Последний выбор станет выбором загрузки по умолчанию" + +msgid "Parameters passed to the kernel" +msgstr "Параметры, передаваемые ядру" + +msgid "quiet (Downloading without text messages)" +msgstr "quiet (Загрузка без текстовых сообщений)" + +msgid "splash (Show welcome window)" +msgstr "splash (Показать окно приветствия)" + +msgid "no plymouth (Disable Plymouth)" +msgstr "no plymouth (Отключить Plymouth" + +msgid "acpi=off (Disable ACPI)" +msgstr "acpi=off (Отключить ACPI)" + +msgid "apic (Disable APIC)" +msgstr "apic (Отключить APIC)" + +msgid "nolapic (Disable local APIC)" +msgstr "nolapic (Отключить локальный APIC)" + +msgid "single (Single User Mode)" +msgstr "single (Однопользовательский режим)" + +msgid "nomodeset (Disable kernel selection and loading of video drivers)" +msgstr "nomodeset (Отключите выбор ядра и загрузку видеодрайверов)" + +msgid "i915.enable_dc=0 (Disable GPU power management)" +msgstr "i915.enable_dc=0 (Отключите управление питанием GPU)" + +msgid "ahci.mobile_jpm_policy=1 (Maximum performance, power management)" +msgstr "ahci.mobile_jpm_policy=1 (Максимальная производительность, управление питанием)" + +msgid "snd-intel-dspcfg.dsp_driver=1 (Forced selection of a sound device driver from Intel)" +msgstr "snd-intel-dspcfg.dsp_driver=1 (Принудительный выбор драйвера звукового устройства от Intel)" + +msgid "intel_idle max_cstate=1 (Prevents the processor from going into a deep sleep state)" +msgstr "intel_idle max_cstate=1 (Предотвращает переход процессора в состояние глубокого сна)" + +msgid "intel_idle.max_cstate=4 (Eliminates flickering laptop display on processors Ultra Voltage)" +msgstr "intel_idle.max_cstate=4 (Устраняет мерцание дисплея ноутбука на процессорах Ultra Voltage)" + +msgid "Command line parameters:" +msgstr "Параметры командной строки:" + +msgid "serial (Serial terminal)" +msgstr "serial (Последовательный терминал)" + +msgid "at_keyboard (Keyboard PC AT (Coreboot))" +msgstr "at_keyboard (Клавиатура PC AT (Coreboot))" + +msgid "usb_keyboard (Keyboard USB Keyboard (protocol HID Boot))" +msgstr "usb_keyboard (Клавиатура USB Keyboard (protocol HID Boot))" + +msgid "Output terminal" +msgstr "Выходной терминал" + +msgid "console (PC BIOS & console EFI)" +msgstr "Консоль (PC BIOS & console EFI)" + +msgid "ofconsole (Console Open Firmware)" +msgstr "ofconsole (Консоль Open Firmware)" + +msgid "gfxterm (Output in graphical mode)" +msgstr "gfxterm (Вывод в графическом режиме)" + +msgid "vga_text (Text output VGA (Coreboot))" +msgstr "vga_text (Текстовый вывод VGA (Coreboot))"