diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6e4c2d8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+.vscode/
+ubl-settings-kernel
+*~
+build/
+compile/
+*#
+terminal-commands/
+source/ubl-cmake.h
+vgcore*
+.BUILD.md
+.updatebuild.sh
+.install.sh
\ No newline at end of file
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c7e62fd
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,157 @@
+#!/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
+DEPENDS = /bin/cmake
+PREFIX ?= /usr/local
+PKGNAME = $(MAKEFILE_DIR)
+FILE_VER = source/${PKGNAME}.h
+PKGIDENT=$(subst /,-,${PREFIX})
+
+default_target: all
+
+.PHONY: all init depend debug prepare check build uninstall install clean help
+
+all: init build
+
+init:
+ @echo "Initialize ..."; \
+ if [ -d ".git" ]; then \
+ LATEST_TAG=$$(git describe --abbrev=0 --tags | sed 's/^v//'); \
+ if [ -z "$${LATEST_TAG}" ]; \
+ then \
+ LATEST_TAG=$$"0.0"; \
+ echo "$${LATEST_TAG} is empty"; \
+ fi; \
+ else \
+ LATEST_TAG="Development"; \
+ fi; \
+ sed -r "s/^(string version_application).*/\1 = \"$${LATEST_TAG}\";/" -i ${FILE_VER}; \
+ echo "-- Build path: ${CMAKE_BUILD_DIR}"
+
+depend:
+ @echo "Check depends ..."
+ @for FILE_DEPEND in $(DEPENDS); do \
+ if [ ! -f $${FILE_DEPEND} ]; then \
+ echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
+ exit 1; \
+ fi; \
+ done; \
+ $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B${CMAKE_BUILD_DIR} --check-build-system CMakeFiles/Makefile.cmake 1 || exit 1; \
+ echo "Check depends: OK"
+
+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="${PREFIX}"; \
+ 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="${PREFIX}"; \
+ 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 found !"; \
+ exit 1; \
+ fi
+
+build: depend prepare
+ @echo "Build ..."; \
+ $(MAKE_COMMAND) --directory=${CMAKE_BUILD_DIR}; \
+ sed -r "s/^(string version_application).*/\1;/" -i ${FILE_VER}; \
+ 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="${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
+ $(RM) "$${PATH_FILE_MO}"; \
+ done
+ @for SIZE in 16x16 32x32 48x48 scalable; do \
+ $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
+ $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
+ done
+ @for FILE_SVG in $(wildcard *.svg); do \
+ for SIZE in 16x16 32x32 48x48 scalable; do \
+ $(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
+ done; \
+ done
+ @$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
+ @$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
+ @$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
+ @for FILE_ICON in $(wildcard icons/*/*.svg); do \
+ SUB_NAME=$${FILE_ICON#*/}; SUB_NAME=$${SUB_NAME%/*}; \
+ install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/$${SUB_NAME}" $${FILE_ICON}; \
+ done
+ @if [ -z ${DESTDIR} ]; then \
+ [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
+ update-desktop-database --quiet &>/dev/null || true; \
+ [ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
+ fi
+ @echo "Uninstall: OK"
+
+install: check uninstall
+ @echo "Install ..."
+ @for FILE_PO in $(wildcard *.po); do \
+ LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
+ install -dm755 "${DESTDIR}/usr/share/locale/$${LANG}/LC_MESSAGES"; \
+ FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
+ PATH_FILE_MO="${DESTDIR}/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 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
+ rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
+ done
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
+ @cp ./com.ublinux.${PKGNAME}.policy ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy
+ @sed -e 's+/usr/bin+${PREFIX}/bin+' -e 's+.run+${PKGIDENT}.run+g' ./compile/com.ublinux.${PKGNAME}${PKGIDENT}.policy -i
+ @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
+ @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
+ @ldconfig -n /usr/local/lib
+ @if [ -z ${DESTDIR} ]; then \
+ [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \
+ update-desktop-database --quiet &>/dev/null || true; \
+ [ -d "${DESTDIR}/usr/share/applications" ] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
+ fi
+ @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 2816c3a..19cebb1 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,33 @@
# ubl-settings-kernel
+# Выполнить
+# Build
+In order to build ubl-settings-kernel you will need:
+
+- CMake
+- C compiler
+- GTK+ 3 & dependencies
+- webkit2gtk (optional)
+- vte-2.91
+- [libublsettings](https://gitea.ublinux.ru/Applications/libublsettings)
+- [libublsettings-gtk3](https://gitea.ublinux.ru/Applications/libublsettings-gtk3)
+- [libublsettingsui-gtk3](https://gitea.ublinux.ru/Applications/libublsettingsui-gtk3)
+
+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/com.ublinux.ubl-settings-kernel.checked.svg b/com.ublinux.ubl-settings-kernel.checked.svg
new file mode 100644
index 0000000..e3cab42
--- /dev/null
+++ b/com.ublinux.ubl-settings-kernel.checked.svg
@@ -0,0 +1,327 @@
+
+
diff --git a/com.ublinux.ubl-settings-kernel.policy b/com.ublinux.ubl-settings-kernel.policy
new file mode 100644
index 0000000..211c7c1
--- /dev/null
+++ b/com.ublinux.ubl-settings-kernel.policy
@@ -0,0 +1,24 @@
+
+
+
+
+ UBLinux
+ https://ublinux.ru
+
+
+ Run ubl-settings-kernel as root
+ Запуск утилиты ubl-settings-kernel с правами root
+ Authentication is required to run ubl-settings-kernel
+ Требуется авторизация для запуска утилиты ubl-settings-kernel с правами root
+
+ auth_admin
+ auth_admin
+ auth_admin
+
+ /usr/bin/ubl-settings-kernel
+ true
+
+
+
diff --git a/com.ublinux.ubl-settings-kernel.svg b/com.ublinux.ubl-settings-kernel.svg
new file mode 100644
index 0000000..f636c26
--- /dev/null
+++ b/com.ublinux.ubl-settings-kernel.svg
@@ -0,0 +1,4957 @@
+
+
diff --git a/com.ublinux.ubl-settings-kernel.warning.svg b/com.ublinux.ubl-settings-kernel.warning.svg
new file mode 100644
index 0000000..9a90dba
--- /dev/null
+++ b/com.ublinux.ubl-settings-kernel.warning.svg
@@ -0,0 +1,55 @@
+
+
diff --git a/gresource.xml b/gresource.xml
new file mode 100644
index 0000000..89ee9b6
--- /dev/null
+++ b/gresource.xml
@@ -0,0 +1,12 @@
+
+
+
+ ubl-settings-kernel.glade
+
+
+ ubl-settings-kernel.css
+
+
+ ubl-settings-kernel-banner.png
+
+
\ No newline at end of file
diff --git a/icons/actions/download.svg b/icons/actions/download.svg
new file mode 100644
index 0000000..6ed49b5
--- /dev/null
+++ b/icons/actions/download.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/actions/file-lines.svg b/icons/actions/file-lines.svg
new file mode 100644
index 0000000..be19f58
--- /dev/null
+++ b/icons/actions/file-lines.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/actions/hashtag.svg b/icons/actions/hashtag.svg
new file mode 100644
index 0000000..d4b49fd
--- /dev/null
+++ b/icons/actions/hashtag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/status/cubes.svg b/icons/status/cubes.svg
new file mode 100644
index 0000000..dbed1b8
--- /dev/null
+++ b/icons/status/cubes.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/status/dropbox.svg b/icons/status/dropbox.svg
new file mode 100644
index 0000000..7bccea6
--- /dev/null
+++ b/icons/status/dropbox.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/status/square-check.svg b/icons/status/square-check.svg
new file mode 100644
index 0000000..1f72889
--- /dev/null
+++ b/icons/status/square-check.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/kernel-list-addon.csv b/kernel-list-addon.csv
new file mode 100644
index 0000000..b0f0244
--- /dev/null
+++ b/kernel-list-addon.csv
@@ -0,0 +1,7 @@
+PAСKAGE_UBM;PAСKAGE;NAME;DESCRIPTION
+ubm-002-linux515-headers;linux515-headers;Linux 5.15 headers;The Linux kernel headers v5.15
+ubm-003-linux515-docs;linux515-docs;Linux 5.15 Docs;The Linux kernel docs v5.15
+ubm-linux515-dkms;linux515-dkms;Linux 5.15 DKMS modules;The Linux kernel DKMS modules v5.15 : acpi_call,r8125,r8168,rtl8723bu,rtl88x2bu,v4l2loopback,bbswitch,broadcom-wl,scap,tp_smapi-dkms,vhba-module,vboxhost
+ubm-002-linux517-headers;linux517-headers;Linux 5.17 headers;The Linux kernel headers v5.17
+ubm-003-linux517-docs;linux517-docs;Linux 5.17 Docs;The Linux kernel docs v5.17
+ubm-linux517-dkms;linux517-dkms;Linux 5.17 DKMS modules;The Linux kernel DKMS modules v5.17 : acpi_call,r8125,r8168,rtl8723bu,rtl88x2bu,v4l2loopback,bbswitch,broadcom-wl,scap,tp_smapi-dkms,vhba-module,vboxhost
\ No newline at end of file
diff --git a/kernel-list.csv b/kernel-list.csv
new file mode 100644
index 0000000..f8afc25
--- /dev/null
+++ b/kernel-list.csv
@@ -0,0 +1,4 @@
+PAСKAGE_UBM;PAСKAGE;NAME;TAG;DESCRIPTION
+ubm-001-linux515,ubm-001-linux515-headers;linux515,linux515-headers;Linux 5.15;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v5.15 and modules, headers
+ubm-001-linux517,ubm-001-linux517-headers;linux517,linux517-headers;Linux 5.17;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v5.17 and modules, headers
+ubm-001-linux66,ubm-001-linux66-headers;linux66,linux66-headers;Linux 6.6;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v5.6 and modules, headers
\ No newline at end of file
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
new file mode 100644
index 0000000..00a33a5
--- /dev/null
+++ b/source/CMakeLists.txt
@@ -0,0 +1,92 @@
+cmake_minimum_required(VERSION 3.7)
+project(ubl-settings-kernel)
+
+find_package(PkgConfig REQUIRED)
+
+pkg_check_modules(GTK REQUIRED gtk+-3.0)
+include_directories(${GTK_INCLUDE_DIRS})
+link_directories(${GTK_LIBRARY_DIRS})
+add_definitions(${GTK_CFLAGS_OTHER})
+
+pkg_check_modules(VTE291 REQUIRED vte-2.91)
+include_directories(${VTE291_INCLUDE_DIRS})
+link_directories(${VTE291_LIBRARY_DIRS})
+add_definitions(${VTE291_CFLAGS_OTHER})
+
+find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
+
+option(WEBKIT_FOUND "No" OFF)
+if(WEBKIT_LIBRARIES_FOUND)
+ option(WEBKIT_FOUND "Yes" ON)
+ PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
+ include_directories(${WEBKIT_INCLUDE_DIRS})
+ link_directories(${WEBKIT_LIBRARY_DIRS})
+ add_definitions(${WEBKIT_CFLAGS_OTHER})
+endif()
+
+set(GRESOURCE_C resources.c)
+set(GRESOURCE_XML gresource.xml)
+
+find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED)
+add_custom_target(GLADE ubl-settings-kernel.glade)
+
+set(DEPENDFILES
+ ../ubl-settings-kernel.glade
+ ../gresource.xml
+ ../ubl-settings-kernel-banner.png
+ ../ubl-settings-kernel.css
+ )
+
+file(COPY ${DEPENDFILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
+add_custom_command(
+ OUTPUT ${GRESOURCE_C}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND ${GLIB_COMPILE_RESOURCES}
+ ARGS
+ --generate-source
+ --target=${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
+ ${GRESOURCE_XML}
+ VERBATIM
+ MAIN_DEPENDENCY ${GRESOURCE_XML}
+ DEPENDS
+ ${GLADE}
+)
+add_custom_target(
+ dummy-resource
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
+)
+
+add_definitions(-DVTE_INCLUDE)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -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")
+
+set(SOURCE_FILES
+ ubl-settings-kernel.c
+ ubl-settings-kernel.h
+ ubl-strings.h
+ )
+
+set(LIBRARIES
+ ${GTK_LIBRARIES}
+ ${WEBKIT_LIBRARIES}
+ ${UTILS_LIBRARIES}
+ ${VTE291_LIBRARIES}
+ pthread
+ ublsettings
+ ublsettings-gtk3
+ ublsettingsui-gtk3)
+
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
+target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
+target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
+set_source_files_properties(
+ ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}
+ PROPERTIES GENERATED TRUE
+)
+install(TARGETS ${PROJECT_NAME} DESTINATION bin)
+add_dependencies(${PROJECT_NAME} dummy-resource)
\ No newline at end of file
diff --git a/source/ubl-cmake.in b/source/ubl-cmake.in
new file mode 100644
index 0000000..d4623a7
--- /dev/null
+++ b/source/ubl-cmake.in
@@ -0,0 +1 @@
+#cmakedefine WEBKIT_FOUND
diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c
new file mode 100644
index 0000000..b2c5791
--- /dev/null
+++ b/source/ubl-settings-kernel.c
@@ -0,0 +1,101 @@
+#include "ubl-settings-kernel.h"
+
+config main_config;
+
+//functions
+
+void yon_load_proceed(YON_CONFIG_TYPE type){
+ yon_config_clean();
+ if (!yon_char_is_empty(config_get_default_command))
+ yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
+ if (type==YON_CONFIG_GLOBAL){
+ yon_config_load_config(type,config_get_global_command,NULL);
+ } else if (type==YON_CONFIG_LOCAL){
+ yon_config_load_config(type,config_get_local_command,NULL);
+ } else if (type==YON_CONFIG_CUSTOM){
+ char *path="";
+ textdomain(template_ui_LocaleName);
+ GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
+ textdomain(LocaleName);
+ gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubl-settings-services");
+ gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL);
+ GtkFileFilter *filter = gtk_file_filter_new();
+ gtk_file_filter_add_pattern(filter,"*.ini");
+ gtk_file_filter_set_name(filter, "*.ini");
+ gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter);
+ gtk_widget_show(dialog);
+ int response = gtk_dialog_run(GTK_DIALOG(dialog));
+ if (response == GTK_RESPONSE_ACCEPT){
+ char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+ if (!yon_char_is_empty(file)){
+ path=file;
+ }
+ gtk_widget_destroy(dialog);
+ } else {
+ gtk_widget_destroy(dialog);
+ }
+ char *command = yon_config_get_custom_command(path);
+ yon_config_load_config(type,command,NULL);
+ }
+}
+
+// standard functions
+
+/**config_init()
+ * [EN]
+ *
+ * [RU]
+ * Функция инициализации всех параметров конфигурации
+*/
+void config_init(){
+ main_config.always_open_documentation=0;
+ main_config.socket_id=-1;
+ main_config.save_socket_id=-1;
+ main_config.load_socket_id=-1;
+ main_config.lock_help=0;
+ main_config.lock_help=0;
+ main_config.lock_load_global=0;
+ main_config.lock_save_global=0;
+ main_config.lock_save_local=0;
+ main_config.load_mode=1;
+}
+
+/**yon_main_window_complete(main_window *widgets)
+ * [EN]
+ *
+ * [RU]
+ * Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом.
+*/
+void yon_main_window_complete(main_window *widgets){
+ widgets = yon_remalloc(widgets,sizeof(main_window));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
+ gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0);
+ // Custom widgets configuration
+ {
+
+ }
+}
+
+int main(int argc, char *argv[]){
+ local=setlocale(LC_ALL, "");
+ textdomain (LocaleName);
+ config_init();
+
+ yon_ubl_connect_config((_template_config*)&main_config);
+ yon_ubl_window_init(TITLE_LABEL,TITLE_INFO_LABEL,LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
+ config_str unfound = NULL;
+ int size=0;
+ yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
+ gtk_init(&argc,&argv);
+ template_main_window *widgets = yon_ubl_window_setup();
+ yon_main_window_complete((main_window*)widgets);
+ char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
+ yon_window_config_load(path);
+ if (getuid()!=0){
+ textdomain(template_ui_LocaleName);
+ yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ textdomain(LocaleName);
+ }
+ gtk_main();
+ return 0;
+}
\ No newline at end of file
diff --git a/source/ubl-settings-kernel.h b/source/ubl-settings-kernel.h
new file mode 100644
index 0000000..764d92e
--- /dev/null
+++ b/source/ubl-settings-kernel.h
@@ -0,0 +1,67 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#ifdef WEBKIT_FOUND
+ #include
+#endif
+#include "ubl-strings.h"
+
+#define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-TEMPLATE"
+
+#define _(String) gettext(String)
+
+#define glade_path "/com/ublinux/ui/ubl-settings-kernel.glade"
+#define banner_path "/com/ublinux/images/ubl-settings-kernel-banner.png"
+#define CssPath "/com/ublinux/css/ubl-settings-kernel.css"
+#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
+
+#define LocalePath "/usr/share/locale"
+#define LocaleName "ubl-settings-kernel"
+
+#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get system PARAMETERS",NULL)
+#define config_get_local_command "ubconfig --source system get system PARAMETERS"
+#define config_get_global_command "ubconfig --source global get system PARAMETERS"
+#define config_get_default_command ""
+
+#define config_get_global_only_parameters ""
+#define config_get_local_only_parameters ""
+
+typedef char* string;
+string version_application;
+
+char *local;
+
+typedef struct {
+ template_config_fields
+
+} config;
+
+typedef struct {
+ template_window_fields
+} main_window;
+
+
+typedef struct {
+ GtkWidget *Window;
+ GtkWidget *HeaderLabel;
+
+ GtkWidget *AlwaysOpenCheck;
+
+ GtkWidget *CloseButton;
+ GtkWidget *AcceptButton;
+} documentation_confirmation_window;
+
+void yon_load_proceed(YON_CONFIG_TYPE type);
+
+void config_init();
+
+void yon_main_window_complete(main_window *widgets);
\ No newline at end of file
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
new file mode 100644
index 0000000..e3ccc26
--- /dev/null
+++ b/source/ubl-strings.h
@@ -0,0 +1,3 @@
+
+#define TITLE_LABEL _("ubl-settings-kernel")
+#define TITLE_INFO_LABEL _("kernel configuration")
diff --git a/ubl-settings-kernel-banner.png b/ubl-settings-kernel-banner.png
new file mode 100644
index 0000000..8eb67cb
Binary files /dev/null and b/ubl-settings-kernel-banner.png differ
diff --git a/ubl-settings-kernel.css b/ubl-settings-kernel.css
new file mode 100644
index 0000000..93fc7c6
--- /dev/null
+++ b/ubl-settings-kernel.css
@@ -0,0 +1,123 @@
+.tableborders>box {
+ border-right-width:0.5px;
+ border-style: solid;
+ border-color: @theme_fg_color;
+}
+.tableborders {
+ border-width:0.5px 0px 0.5px 0.5px;
+ border-style: solid;
+ border-color: @theme_fg_color;
+}
+.thin {
+ margin:0px;
+ padding:0px;
+}
+.noborder {
+ border:none;
+}
+.nobackground {
+background:transparent;
+}
+.nobackground:active {
+background:transparent;
+}
+.textHead{
+ text-shadow: 2px 2px @theme_bg_color;
+ color: @theme_text_color;
+}
+
+.inherited>* {
+ border:none;
+ background:inherit;
+}
+.workingbg {
+ background:@theme_base_color;
+}
+.menuitembottom{
+ margin-top:0px;
+ margin-bottom:3px;
+ border-color:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitemmiddle{
+ margin-top:0px;
+ margin-bottom:0px;
+ border-color:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+
+ .menuitemtop{
+ margin-bottom:0px;
+ border-color:inherit;
+ border-top-width:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitemtop>*{
+ margin:2px 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ /* padding: 5px 0px 3px 5px; */
+ border:transparent;
+ }
+ .menuitemmiddle>*{
+ margin:0 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ /* padding: 3px 0px 3px 5px; */
+ border:transparent;
+ }
+ .menuitembottom>*{
+ margin:0 2px 2px 2px;
+ padding: 3px 10px 3px 5px;
+ /* padding: 3px 0px 5px 5px; */
+ }
+ .menuitemtop:hover {
+ background:@theme_bg_color;
+ border-color:inherit;
+ border-top-width:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitemmiddle:hover {
+ background:@theme_bg_color;
+ border-color:inherit;
+ border-left-width:inherit;
+ border-right-width:inherit;
+ }
+ .menuitembottom:hover {
+ background:@theme_bg_color;
+ border-color:inherit;
+ border-bottom-width:0px;
+ border-left-width:inherit;
+ border-right-width:inherit;
+
+ }
+ .menuitemtop:hover>* {
+ margin:2px 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ /* padding: 5px 0 3px 5px; */
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+ }
+ .menuitemmiddle:hover>* {
+ margin:0 2px 0px 2px;
+ padding: 3px 10px 3px 5px;
+ /* padding: 3px 0px 3px 5px; */
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+ }
+ .menuitembottom:hover>* {
+ margin:0 2px 2px 2px;
+ padding: 3px 10px 3px 5px;
+ /* padding: 3px 0px 5px 5px; */
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+ }
+ .boxInfoMessError{
+ background-color: #ea9999;
+}
+
+.boxInfoMessOK{
+ background-color: #f3f0ac;
+}
\ No newline at end of file
diff --git a/ubl-settings-kernel.desktop b/ubl-settings-kernel.desktop
new file mode 100644
index 0000000..2624408
--- /dev/null
+++ b/ubl-settings-kernel.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=System kernel
+Name[ru]=kernel
+GenericName=ubl-settings-kernel
+GenericName[ru]=kernel
+Comment=Kernel downloading and installation for default load
+Comment[ru]=Приложение для kernel
+Type=Application
+Exec=pkexec ubl-settings-kernel
+Icon=com.ublinux.ubl-settings-kernel
+Terminal=false
+X-XfcePluggable=true
+X-UBLPluggable=true
+Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-Personal-Settings;
diff --git a/ubl-settings-kernel.glade b/ubl-settings-kernel.glade
new file mode 100644
index 0000000..192cfd0
--- /dev/null
+++ b/ubl-settings-kernel.glade
@@ -0,0 +1,684 @@
+
+
+
+
+
+
+
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.sync-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.important-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.source-symbolic
+
+
+ True
+ False
+ com.ublinux.libublsettingsui-gtk3.settings-symbolic
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ 5
+
+
+ True
+ False
+ 26
+ vertical
+ 6
+
+
+ True
+ True
+ True
+ image1
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ True
+ image2
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ True
+ True
+ image3
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ True
+ image4
+
+
+
+ False
+ True
+ 3
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ vertical
+
+
+ True
+ False
+ vertical
+
+
+ True
+ True
+ liststore2
+ 0
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+
+ Installed
+
+
+
+ 4
+ 0
+
+
+
+
+
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+ True
+
+
+ 6
+
+
+
+
+
+
+
+
+
+ 7
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ KernelsList
+
+
+ Status
+
+
+
+ 0
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ Kernel
+
+
+
+ 2
+
+
+
+
+
+
+ Kernel type
+
+
+
+ 3
+
+
+
+
+
+
+ Module
+
+
+
+ 4
+
+
+
+
+
+
+ Package
+
+
+
+ 5
+
+
+
+
+
+
+ Load
+
+
+ True
+
+
+ 6
+
+
+
+
+
+
+ Description
+
+
+
+ 7
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+
+
+ True
+ False
+ Kernels
+
+
+ False
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ vertical
+
+
+ True
+ True
+ liststore3
+
+
+
+
+
+
+
+
+
+
+
+ Installed
+
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ AdditionsList
+
+
+ Status
+
+
+
+
+ Addition
+
+
+
+
+ Module
+
+
+
+
+ Package
+
+
+
+
+ Description
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 1
+
+
+
+
+ True
+ False
+ Additions
+
+
+ 1
+ False
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
diff --git a/ubl-settings-kernel.pot b/ubl-settings-kernel.pot
new file mode 100644
index 0000000..3ee15f2
--- /dev/null
+++ b/ubl-settings-kernel.pot
@@ -0,0 +1,186 @@
+# Language translations for ubl-settings-kernel package.
+# Copyright (C) 2022, UBTech LLC
+# This file is distributed under the same license as the ubl-settings-kernel package.
+# UBLinux Team , 2022
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ubl-settings-kernel 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-22 16:12+0600\n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: source/ubl-strings.h:1
+msgid "Version:"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "ubl-settings-kernel version:"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Usage:"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "[OPTIONS]"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Options:"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Show this help"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Show package version"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Lock this help menu"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Lock configuration saving"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Lock local configration saving"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Lock global configration saving"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Lock global configration loading"
+msgstr ""
+
+#: source/ubl-strings.h:2
+msgid "Clear application configuration"
+msgstr ""
+
+#: source/ubl-strings.h:4
+msgid "ubl-settings-kernel"
+msgstr ""
+
+#: source/ubl-strings.h:5
+msgid "kernel configuration"
+msgstr ""
+
+#: source/ubl-strings.h:7
+msgid "Operation succeeded"
+msgstr ""
+
+#: source/ubl-strings.h:8
+msgid "Nothing were chosen"
+msgstr ""
+
+#: source/ubl-strings.h:9
+msgid ""
+"Warning! Application was launched without root - root-dependent actions are "
+"locked"
+msgstr ""
+
+#: source/ubl-strings.h:11
+msgid "About"
+msgstr ""
+
+#: source/ubl-strings.h:12
+msgid "Documentation"
+msgstr ""
+
+#: source/ubl-strings.h:14
+msgid "Save to local configuration"
+msgstr ""
+
+#: source/ubl-strings.h:15
+msgid "Save to global configuration"
+msgstr ""
+
+#: source/ubl-strings.h:16
+msgid "Save to global and local configuration"
+msgstr ""
+
+#: source/ubl-strings.h:17
+msgid "Save"
+msgstr ""
+
+#: source/ubl-strings.h:19
+msgid "Load local configuration"
+msgstr ""
+
+#: source/ubl-strings.h:20
+msgid "Load global configuration"
+msgstr ""
+
+#: source/ubl-strings.h:21
+msgid "Load"
+msgstr ""
+
+#: source/ubl-strings.h:23
+msgid "Cancel"
+msgstr ""
+
+#: source/ubl-strings.h:24
+msgid "Close"
+msgstr ""
+
+#: source/ubl-strings.h:25
+msgid "Apply"
+msgstr ""
+
+#: source/ubl-strings.h:27
+msgid "Would you like to read documentation in the Web?"
+msgstr ""
+
+#: source/ubl-strings.h:28
+msgid ""
+"You will be redirected to documentation website, where documentation is\n"
+"translated and supported by community."
+msgstr ""
+
+#: source/ubl-strings.h:29
+msgid "Always redirect to online documentation"
+msgstr ""
+
+#: source/ubl-strings.h:30
+msgid "Open documentation"
+msgstr ""
+
+#: source/ubl-strings.h:31
+msgid "Project Home Page"
+msgstr ""
+
+#: source/ubl-strings.h:33
+msgid "Global configuration loading succeeded."
+msgstr ""
+
+#: source/ubl-strings.h:34
+msgid "Local configuration loading succeeded."
+msgstr ""
+
+#: source/ubl-strings.h:35
+msgid "Config loading failed"
+msgstr ""
+
+#: source/ubl-strings.h:37
+msgid "Local and global configuration saving succeeded."
+msgstr ""
+
+#: source/ubl-strings.h:38
+msgid "Global configuration saving succeeded."
+msgstr ""
+
+#: source/ubl-strings.h:39
+msgid "Local configuration saving succeeded."
+msgstr ""
diff --git a/ubl-settings-kernel_ru.po b/ubl-settings-kernel_ru.po
new file mode 100644
index 0000000..a8682ce
--- /dev/null
+++ b/ubl-settings-kernel_ru.po
@@ -0,0 +1,190 @@
+# Russian translations for ubl-settings-kernel package.
+# Copyright (C) 2022, UBTech LLC
+# This file is distributed under the same license as the ubl-settings-kernel package.
+# UBLinux Team , 2022
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ubl-settings-kernel 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-05-22 16:12+0600\n"
+"PO-Revision-Date: 2023-01-01 00:00+0600\n"
+"Last-Translator: UBLinux Team \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"
+
+#: source/ubl-strings.h:1
+msgid "Version:"
+msgstr "Версия:"
+
+#: source/ubl-strings.h:2
+msgid "ubl-settings-kernel version:"
+msgstr "Версия ubl-settings-kernel: "
+
+#: source/ubl-strings.h:2
+msgid "Usage:"
+msgstr "Использование:"
+
+#: source/ubl-strings.h:2
+msgid "[OPTIONS]"
+msgstr "[АРГУМЕНТЫ]"
+
+#: source/ubl-strings.h:2
+msgid "Options:"
+msgstr "Аргументы:"
+
+#: source/ubl-strings.h:2
+msgid "Show this help"
+msgstr "Показать параметры справки"
+
+#: source/ubl-strings.h:2
+msgid "Show package version"
+msgstr "Показать текущую версию"
+
+#: source/ubl-strings.h:2
+msgid "Lock this help menu"
+msgstr "Блокировка вызова справки"
+
+#: source/ubl-strings.h:2
+msgid "Lock configuration saving"
+msgstr "Блокировка сохранения локальной и глобальной конфигурации"
+
+#: source/ubl-strings.h:2
+msgid "Lock local configration saving"
+msgstr "Блокировка сохранения локальной конфигурации"
+
+#: source/ubl-strings.h:2
+msgid "Lock global configration saving"
+msgstr "Блокировка сохранения глобальной конфигурации"
+
+#: source/ubl-strings.h:2
+msgid "Lock global configration loading"
+msgstr "Блокировка загрузки глобальной конфигурации"
+
+#: source/ubl-strings.h:2
+msgid "Clear application configuration"
+msgstr "Удалить конфигурацию приложения"
+
+#: source/ubl-strings.h:4
+msgid "ubl-settings-kernel"
+msgstr "Настройки kernel"
+
+#: source/ubl-strings.h:5
+msgid "kernel configuration"
+msgstr "Настройки kernel"
+
+#: source/ubl-strings.h:7
+msgid "Operation succeeded"
+msgstr "Операция завершена"
+
+#: source/ubl-strings.h:8
+msgid "Nothing were chosen"
+msgstr "Ничего не было выбрано"
+
+#: source/ubl-strings.h:9
+msgid ""
+"Warning! Application was launched without root - root-dependent actions are "
+"locked"
+msgstr ""
+"Внимание! Приложение было запущено без прав суперпользователя - действия, "
+"требующие их наличия заблокированы"
+
+#: source/ubl-strings.h:11
+msgid "About"
+msgstr "О программе"
+
+#: source/ubl-strings.h:12
+msgid "Documentation"
+msgstr "Справка"
+
+#: source/ubl-strings.h:14
+msgid "Save to local configuration"
+msgstr "Сохранить в локальную конфигурацию"
+
+#: source/ubl-strings.h:15
+msgid "Save to global configuration"
+msgstr "Сохранить в глобальную конфигурацию"
+
+#: source/ubl-strings.h:16
+msgid "Save to global and local configuration"
+msgstr "Сохранить в глобальную и локальную конфигурацию"
+
+#: source/ubl-strings.h:17
+msgid "Save"
+msgstr "Сохранить"
+
+#: source/ubl-strings.h:19
+msgid "Load local configuration"
+msgstr "Загрузить локальную конфигурацию"
+
+#: source/ubl-strings.h:20
+msgid "Load global configuration"
+msgstr "Загрузить глобальную конфигурацию"
+
+#: source/ubl-strings.h:21
+msgid "Load"
+msgstr "Загрузить"
+
+#: source/ubl-strings.h:23
+msgid "Cancel"
+msgstr "Отмена"
+
+#: source/ubl-strings.h:24
+msgid "Close"
+msgstr "Закрыть"
+
+#: source/ubl-strings.h:25
+msgid "Apply"
+msgstr "Применить"
+
+#: source/ubl-strings.h:27
+msgid "Would you like to read documentation in the Web?"
+msgstr "Вы хотите прочитать справку в Сети?"
+
+#: source/ubl-strings.h:28
+msgid ""
+"You will be redirected to documentation website, where documentation is\n"
+"translated and supported by community."
+msgstr ""
+"Вы будете перенаправлены на сайт с документацией, где страницы помощи\n"
+"переводятся и поддерживаются сообществом."
+
+#: source/ubl-strings.h:29
+msgid "Always redirect to online documentation"
+msgstr "Всегда перенаправлять"
+
+#: source/ubl-strings.h:30
+msgid "Open documentation"
+msgstr "Прочитать справку"
+
+#: source/ubl-strings.h:31
+msgid "Project Home Page"
+msgstr "Домашняя страница проекта"
+
+#: source/ubl-strings.h:33
+msgid "Global configuration loading succeeded."
+msgstr "Успешно загружена глобальная конфигурация"
+
+#: source/ubl-strings.h:34
+msgid "Local configuration loading succeeded."
+msgstr "Успешно загружена локальная конфигурация"
+
+#: source/ubl-strings.h:35
+msgid "Config loading failed"
+msgstr "Ошибка загрузки конфигурации"
+
+#: source/ubl-strings.h:37
+msgid "Local and global configuration saving succeeded."
+msgstr "Успешно записаны локальная и глобальная конфигурация"
+
+#: source/ubl-strings.h:38
+msgid "Global configuration saving succeeded."
+msgstr "Успешно записана глобальная конфигурация"
+
+#: source/ubl-strings.h:39
+msgid "Local configuration saving succeeded."
+msgstr "Успешно записана локальная конфигурация"
\ No newline at end of file