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 @@
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
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
+
+
+
+# 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
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
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))"