diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..05736ea
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,159 @@
+#!/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
+FILE_VERSION = VERSION.md
+DEPENDS = /bin/cmake
+PREFIX ?= /usr
+PKGNAME = $(MAKEFILE_DIR)
+#PKGNAME = ubl-settings-resourcequota
+
+default_target: all
+
+.PHONY: all init depend debug prepare check build uninstall install clean up_ver help
+
+all: init build
+
+init:
+ @echo "Initialize ..."; \
+ sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/view/ubl-settings-resourcequota.cc; \
+ 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; \
+ 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="${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 --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="${DESTDIR}${PREFIX}/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}${PREFIX}/share/${PKGNAME}/images/logo-background.png"
+ @$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"
+ @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
+ @$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}"
+ @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}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
+ FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
+ PATH_FILE_MO="${DESTDIR}${PREFIX}/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 png --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
+ done
+ @install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
+ @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
+ @install -dm755 "${DESTDIR}${PREFIX}/share/applications"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
+ @install -dm755 "${DESTDIR}${PREFIX}/share/polkit-1/actions"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"
+ @install -dm755 "${DESTDIR}${PREFIX}/share/${PKGNAME}"/{ui,css,images}
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}.glade"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/css/" "${PKGNAME}.css"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/images/" "logo-background.png"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.checked.svg"
+ @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
+ @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 "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
+
+up_ver:
+ @CURRENT=$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2); \
+ MAJOR=$$(cut -d. -f1 <<< $${CURRENT}); \
+ MINOR=$$(cut -d. -f2 <<< $${CURRENT}); \
+ VER="$${MAJOR}.$$(($${MINOR}+1))"; \
+ sed "s/VERSION *[[:digit:]]*.*/VERSION $${VER}/" -i ${FILE_VERSION}; \
+ echo "Updated version to VERSION.md: $${CURRENT} to $${VER}"
+
+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"
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..516bb46
--- /dev/null
+++ b/README.md
@@ -0,0 +1,49 @@
+# ubl-settings-resourcequota
+# Настройки квот
+[RU] Утилита для настройки квот процессора и ОЗУ
+
+Utility for setting the disk quotas
+
+
+
+# Build
+In order to build ubl-settings-resourcequota 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
+```
+# Usage
+```sh
+$ ubl-settings-resourcequota --help
+GTK settings resource quota for UBLinux
+
+Usage: ubl-settings-resourcequota [OPTIONS...]
+Options:
+ -h, --help Show this help
+ -V, --version Show package version
+ --lock-help Lock utility help
+ --lock-save Lock saving local and global configuration
+ --lock-save-local Lock save global configuration
+ --lock-save-global Lock load global configuration
+ --lock-load-global Lock load global configuration
+
+$ ubl-settings-resourcequota --version
+ubl-settings-resourcequota version: x.xx
+```
diff --git a/VERSION.md b/VERSION.md
new file mode 100644
index 0000000..12ebd01
--- /dev/null
+++ b/VERSION.md
@@ -0,0 +1 @@
+VERSION 1.0
diff --git a/com.ublinux.ubl-settings-resourcequota.checked.svg b/com.ublinux.ubl-settings-resourcequota.checked.svg
new file mode 100644
index 0000000..e3cab42
--- /dev/null
+++ b/com.ublinux.ubl-settings-resourcequota.checked.svg
@@ -0,0 +1,327 @@
+
+
diff --git a/com.ublinux.ubl-settings-resourcequota.funnel.svg b/com.ublinux.ubl-settings-resourcequota.funnel.svg
new file mode 100644
index 0000000..38540ea
--- /dev/null
+++ b/com.ublinux.ubl-settings-resourcequota.funnel.svg
@@ -0,0 +1,45 @@
+
+
+
+
diff --git a/com.ublinux.ubl-settings-resourcequota.warning.svg b/com.ublinux.ubl-settings-resourcequota.warning.svg
new file mode 100644
index 0000000..9a90dba
--- /dev/null
+++ b/com.ublinux.ubl-settings-resourcequota.warning.svg
@@ -0,0 +1,55 @@
+
+
diff --git a/logo-background.png b/logo-background.png
new file mode 100644
index 0000000..8eb67cb
Binary files /dev/null and b/logo-background.png differ
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
new file mode 100644
index 0000000..ef22461
--- /dev/null
+++ b/source/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.23)
+project(ubl-settings-resourcequota)
+
+find_package(PkgConfig REQUIRED)
+
+pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
+include_directories(${GTK3_INCLUDE_DIRS})
+link_directories(${GTK3_LIBRARY_DIRS})
+add_definitions(${GTK3_CFLAGS_OTHER})
+
+pkg_check_modules(GTKMM30 REQUIRED gtkmm-3.0)
+include_directories(${GTKMM30_INCLUDE_DIRS})
+link_directories(${GTKMM30_LIBRARY_DIRS})
+add_definitions(${GTKMM30_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()
+
+configure_file(ubl-settings-resourcequota.h.in ubl-settings-resourcequota-cm.h)
+
+#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")
+
+set(SOURCE_FILES
+ ubl-settings-resourcequota-cm.h
+ ubl-settings-resourcequota.h
+ ubl-settings-resourcequota.c
+ ubl-util-standard.h
+ ubl-util-standard.c
+ main.c)
+
+set(LIBRARIES
+ ${GTK3_LIBRARIES}
+ ${GTKMM30_LIBRARIES}
+ ${WEBKIT_LIBRARIES}
+ pthread)
+
+add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
+target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
+install(TARGETS ${PROJECT_NAME} DESTINATION bin)
diff --git a/source/main.c b/source/main.c
new file mode 100644
index 0000000..e69de29
diff --git a/source/view/ubl-settings-resourcequota.c b/source/view/ubl-settings-resourcequota.c
new file mode 100644
index 0000000..e69de29
diff --git a/source/view/ubl-settings-resourcequota.h b/source/view/ubl-settings-resourcequota.h
new file mode 100644
index 0000000..e69de29
diff --git a/source/view/ubl-settings-resourcequota.h.in b/source/view/ubl-settings-resourcequota.h.in
new file mode 100644
index 0000000..17ba454
--- /dev/null
+++ b/source/view/ubl-settings-resourcequota.h.in
@@ -0,0 +1 @@
+#cmakedefine WEBKIT_FOUND
\ No newline at end of file
diff --git a/source/view/ubl-util-standard.c b/source/view/ubl-util-standard.c
new file mode 100644
index 0000000..3b753b1
--- /dev/null
+++ b/source/view/ubl-util-standard.c
@@ -0,0 +1,91 @@
+#include "ubl-util-standard.h"
+#ifndef __cplusplus
+#ifndef UBL_GET_STANDARD_UI
+#define UBL_GET_STANDARD_UI
+
+
+inline returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id){
+ returnstruct *ret=(returnstruct*)malloc(sizeof(returnstruct*));
+ if (left_plug_id>0&&LeftWidget){
+ GtkWidget *plug=gtk_plug_new(left_plug_id);
+ GtkWidget *toplug=LeftWidget;
+ if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
+ g_object_ref(G_OBJECT(toplug));
+ GtkWidget *parent=gtk_widget_get_parent(toplug);
+ gtk_container_remove(GTK_CONTAINER(parent),toplug);
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ } else
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ gtk_widget_show(GTK_WIDGET(plug));
+ ret->plugLeft=plug;
+ }
+ if (right_plug_id>0&&RightWidget){
+ GtkWidget *plug=gtk_plug_new(right_plug_id);
+ GtkWidget *toplug=RightWidget;
+ if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
+ g_object_ref(G_OBJECT(toplug));
+ GtkWidget *parent=gtk_widget_get_parent(toplug);
+ gtk_container_remove(GTK_CONTAINER(parent),toplug);
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ } else
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ gtk_widget_show(GTK_WIDGET(plug));
+ ret->plugRight=plug;
+ }
+ return ret;
+}
+
+#endif
+
+#else
+
+
+inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id){
+ if (left_plug_id>0&&LeftWidget){
+ GtkWidget *plug=gtk_plug_new(left_plug_id);
+ GtkWidget *toplug=GTK_WIDGET(LeftWidget->gobj());
+ {GdkScreen *screen = gtk_widget_get_screen(plug);
+ gtk_widget_set_app_paintable(plug,TRUE);
+ GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
+ gtk_widget_set_visual(plug, colormap);}
+ {GdkScreen *screen = gtk_widget_get_screen(toplug);
+ gtk_widget_set_app_paintable(toplug,TRUE);
+ GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
+ gtk_widget_set_visual(toplug, colormap);}
+ if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
+ g_object_ref(G_OBJECT(toplug));
+ GtkWidget *parent=gtk_widget_get_parent(toplug);
+ gtk_container_remove(GTK_CONTAINER(parent),toplug);
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ } else
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ gtk_widget_show(GTK_WIDGET(plug));
+ gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
+ gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
+ gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
+ }
+ if (right_plug_id>0&&RightWidget){
+ GtkWidget *plug=gtk_plug_new(right_plug_id);
+ GtkWidget *toplug=GTK_WIDGET(RightWidget->gobj());
+ {GdkScreen *screen = gtk_widget_get_screen(plug);
+ gtk_widget_set_app_paintable(plug,TRUE);
+ GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
+ gtk_widget_set_visual(plug, colormap);}
+ {GdkScreen *screen = gtk_widget_get_screen(toplug);
+ gtk_widget_set_app_paintable(toplug,TRUE);
+ GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
+ gtk_widget_set_visual(toplug, colormap);}
+ if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
+ g_object_ref(G_OBJECT(toplug));
+ GtkWidget *parent=gtk_widget_get_parent(toplug);
+ gtk_container_remove(GTK_CONTAINER(parent),toplug);
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ } else
+ gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
+ gtk_widget_show(GTK_WIDGET(plug));
+ gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
+ gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
+ gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
+ }
+}
+#endif
\ No newline at end of file
diff --git a/source/view/ubl-util-standard.h b/source/view/ubl-util-standard.h
new file mode 100644
index 0000000..3209625
--- /dev/null
+++ b/source/view/ubl-util-standard.h
@@ -0,0 +1,20 @@
+#ifndef __cplusplus
+#include
+#include
+
+typedef struct {
+ GtkWidget *plugLeft;
+ GtkWidget *plugRight;
+
+
+} returnstruct;
+static returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id);
+#else
+#include
+#include
+#include
+#include
+
+
+static void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id);
+#endif
\ No newline at end of file
diff --git a/ubl-settings-resourcequota.css b/ubl-settings-resourcequota.css
new file mode 100644
index 0000000..34e17f4
--- /dev/null
+++ b/ubl-settings-resourcequota.css
@@ -0,0 +1,156 @@
+.textHead{
+ text-shadow: 2px 2px @theme_bg_color;
+ color: @theme_text_color;
+}
+.boxInfoMessError{
+ background-color: #ea9999;
+}
+.boxInfoMessOK{
+ background-color: #f3f0ac;
+}
+.bannerbackground {
+ background-color: #404040;
+}
+.view_app {
+ background-color: @theme_bg_color;
+}
+.view_app.view.cell:selected {
+ background-color:@theme_selected_bg_color;
+ color:@theme_selected_text_color;
+ transition: 10ms ease-out;
+ border-radius: 3px;
+}
+#GnomeIcon{
+ border-style:solid;
+ border-bottom-width: 1px;
+ border-image: linear-gradient(90deg, alpha(@theme_text_color,0.4) 55%, alpha(@theme_bg_color, 0) 100%);
+ border-image-slice: 1;
+}
+
+#SepIcon{
+ background-color: alpha(@theme_text_color, 0.6);
+}
+
+#iconlabel {
+ font-size:14px;
+ font-weight: bold;
+
+}
+.roundborder * {
+ border-width:0px;
+ border-radius:5px;
+}
+.noborder {
+ border: none;
+}
+.menu:hover {
+ border-color:alpha(@theme_text_color, 0.01);
+}
+.menu {
+ border-color:alpha(@theme_text_color, 0.01);
+}
+.menu:hover >* {
+ border-color:alpha(@theme_text_color, 0.01);
+}
+.menuitembottom{
+ margin-top:0px;
+ margin-bottom:3px;
+}
+.menuitemmiddle{
+ margin-top:0px;
+ margin-bottom:0px;
+}
+
+.menuitemtop{
+ margin-bottom:0px;
+}
+.menuitemtop *{
+ margin:2px 2px 0 2px;
+ padding: 5px 10px 3px 5px;
+}
+.menuitemmiddle *{
+ margin:0 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+}
+.menuitembottom *{
+ margin:0 2px 2px 2px;
+ padding: 3px 10px 5px 5px;
+}
+.menuitemtop:hover {
+ background:@theme_bg_color;
+ border-color: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-left-width:inherit;
+ border-right-width:inherit;
+
+}
+.menuitemtop:hover* {
+ margin:2px 2px 0 2px;
+ padding: 5px 10px 3px 5px;
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+}
+.menuitemmiddle:hover* {
+ margin:0 2px 0 2px;
+ padding: 3px 10px 3px 5px;
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+}
+.menuitembottom:hover* {
+ margin:0 2px 2px 2px;
+ padding: 3px 10px 5px 5px;
+ background:@theme_selected_bg_color;
+ border-radius:2px;
+}
+
+.workingbg, #workingbg {
+ background-color:@theme_base_color;
+}
+.workingbg.view.cell:selected {
+ background-color:@theme_selected_bg_color;
+}
+.workingbg.view.cell:hover {
+ background-color:darker(@theme_selected_bg_color);
+ color:@theme_selected_text_color;
+ border-radius:3px;
+}
+.bkim {
+ transition: 200ms ease-out;
+ background-image: none;
+}
+.noborder{
+border:none;
+}
+
+.bkim{
+opacity:0.99;
+border:none;
+}
+
+.bkim_no_plug{
+background-color: transparent;
+opacity:0.99;
+}
+
+
+.thin{
+ margin:0px;
+ padding: 0px;
+}
+.nobg{
+ background: none;
+}
+.addbg * {
+ background-color: @theme_bg_color;
+}
\ No newline at end of file
diff --git a/ubl-settings-resourcequota.desktop b/ubl-settings-resourcequota.desktop
new file mode 100644
index 0000000..beb2f96
--- /dev/null
+++ b/ubl-settings-resourcequota.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=ubl-settings-resourcequota
+Name[ru]=Настройка квот процессора и ОЗУ
+GenericName=ubl-settings-resourcequota
+GenericName[ru]=Настройка квот процессора и ОЗУ
+Comment=Application for managing and configuring CPU and RAM quotas
+Comment[ru]=Приложение по управлению и настройке квот процессора и ОЗУ
+Type=Application
+Exec=pkexec ubl-settings-resourcequota
+Icon=com.ublinux.ubl-settings-resourcequota
+Terminal=false
+X-XfcePluggable=true
+X-UBLPluggable=true
+Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-SystemSettings;
diff --git a/ubl-settings-resourcequota.glade b/ubl-settings-resourcequota.glade
new file mode 100644
index 0000000..cf5610e
--- /dev/null
+++ b/ubl-settings-resourcequota.glade
@@ -0,0 +1,1645 @@
+
+
+
+
+
+
+
+
+ True
+ False
+
+
+ 90
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 69
+ com.ublinux.ubl-settings-resourcequota
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ False
+
+
+ True
+ False
+ vertical
+
+
+ 255
+ True
+ False
+ CPU and RAM quotas
+
+
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+
+ 800
+ 500
+ False
+ center
+ com.ublinux.ubl-settings-resourcequota
+ center
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 25
+ 1
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ start
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ 81
+ True
+ False
+
+
+ True
+ False
+ start
+
+
+ -1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ True
+ True
+ vertical
+
+
+ True
+ True
+
+
+ True
+ False
+ vertical
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+
+
+
+
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Filters
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Add
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 2
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Edit
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 3
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Remove
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 4
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Information
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 5
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+
+ True
+ False
+ List quotas
+
+
+ False
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ Update every
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ seconds
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+
+
+ True
+ True
+ 3
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+ natural
+ natural
+ UTF-8
+ True
+ False
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 1
+
+
+
+
+ True
+ False
+ Dispatcher
+
+
+ 1
+ False
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ All groups including empty
+ True
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ Core streams
+ True
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ True
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+ natural
+ natural
+ UTF-8
+ True
+ False
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 2
+
+
+
+
+ True
+ False
+ Processes
+
+
+ 2
+ False
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ View properties for
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+ natural
+ natural
+ UTF-8
+ True
+ False
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 3
+
+
+
+
+ True
+ False
+ Information
+
+
+ 3
+ False
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+
+
+
+
+
+ False
+ start
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ vertical
+
+
+ Type quota
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ Quota volume
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 3
+
+
+
+
+ Soft RAM limit, (volume)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+ end
+ 5
+ 5
+ True
+
+
+ gtk-cancel
+ True
+ True
+ True
+ center
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ end
+ 5
+
+
+
+
+ Hard RAM limit, (volume)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 6
+
+
+
+
+ Swap file limit (volume)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 7
+
+
+
+
+ CPU limit (%)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 8
+
+
+
+
+ I/O limit (write)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 8
+
+
+
+
+ I/O limit (read)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 9
+
+
+
+
+
+
+
+
+
+ False
+ start
+ start
+ False
+ 450
+ 250
+ dialog-question-symbolic
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ start
+ 20
+ 20
+ dialog-question-symbolic
+ 5
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ start
+ start
+ 10
+ 10
+ You will be redirected to documentation website where documentation is
+translated and supported by community.
+ True
+ 0
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ Always redirect to online documentation
+ True
+ True
+ False
+ end
+ 10
+ True
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 30
+ True
+
+
+ Cancel
+ True
+ True
+ True
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ Read Online
+ True
+ True
+ True
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+
+
+
+ 800
+ 600
+ False
+ True
+ True
+ com.ublinux.ubl-settings-resourcequota
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-resourcequota.glade~ b/ubl-settings-resourcequota.glade~
new file mode 100644
index 0000000..97614ec
--- /dev/null
+++ b/ubl-settings-resourcequota.glade~
@@ -0,0 +1,1645 @@
+
+
+
+
+
+
+ False
+
+
+
+
+
+ False
+ False
+ True
+ center
+ com.ublinux.ubl-settings-resourcequota
+ dialog
+ True
+ ubl-settings-resourcequota
+ 1.0
+ Copyright © 2022 - 2023, UBSoft LLC
+ Setting user quotas
+ 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
+ com.ublinux.ubl-settings-resourcequota
+ True
+ gpl-2-0
+
+
+ True
+ False
+ vertical
+ 2
+
+
+ False
+ end
+
+
+ False
+ False
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ False
+
+
+ 90
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 69
+ com.ublinux.ubl-settings-resourcequota
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ False
+
+
+ True
+ False
+ vertical
+
+
+ 255
+ True
+ False
+ CPU and RAM quotas
+
+
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+
+
+ 800
+ 500
+ False
+ center
+ com.ublinux.ubl-settings-resourcequota
+ center
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 25
+ 1
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ start
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+ 81
+ True
+ False
+
+
+ True
+ False
+ start
+
+
+ -1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ True
+ True
+ vertical
+
+
+ True
+ True
+
+
+ True
+ False
+ vertical
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+
+
+
+
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Filters
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ label
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 2
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ label
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 3
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+ gtk-missing-image
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ label
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 4
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+ True
+ False
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ Information
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+ False
+ True
+ end
+ 5
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+
+ True
+ False
+ List quotas
+
+
+ False
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ Update every
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ seconds
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ True
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ True
+ False
+
+
+
+
+ True
+ True
+ 3
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+ natural
+ natural
+ UTF-8
+ True
+ False
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 1
+
+
+
+
+ True
+ False
+ Dispatcher
+
+
+ 1
+ False
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ All groups including empty
+ True
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+ Core streams
+ True
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ True
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+ natural
+ natural
+ UTF-8
+ True
+ False
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 2
+
+
+
+
+ True
+ False
+ Processes
+
+
+ 2
+ False
+
+
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ View properties for
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ False
+ True
+ 1
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+
+
+ False
+ True
+ 2
+
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ True
+ in
+
+
+ True
+ False
+
+
+ True
+ True
+ natural
+ natural
+ UTF-8
+ True
+ False
+
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ 3
+
+
+
+
+ True
+ False
+ Information
+
+
+ 3
+ False
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ False
+ True
+ 2
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+
+
+
+
+
+ False
+ start
+ False
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ vertical
+
+
+ Type quota
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 2
+
+
+
+
+ Quota volume
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 3
+
+
+
+
+ Soft RAM limit, (volume)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 4
+
+
+
+
+ True
+ False
+ end
+ 5
+ 5
+ True
+
+
+ gtk-cancel
+ True
+ True
+ True
+ center
+ True
+
+
+ False
+ True
+ 0
+
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+ False
+ True
+ end
+ 5
+
+
+
+
+ Hard RAM limit, (volume)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 6
+
+
+
+
+ Swap file limit (volume)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 7
+
+
+
+
+ CPU limit (%)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 8
+
+
+
+
+ I/O limit (write)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 8
+
+
+
+
+ I/O limit (read)
+ True
+ True
+ False
+ start
+ True
+
+
+ False
+ True
+ 9
+
+
+
+
+
+
+
+
+
+ False
+ start
+ start
+ False
+ 450
+ 250
+ dialog-question-symbolic
+
+
+ True
+ False
+ vertical
+
+
+ True
+ False
+
+
+ True
+ False
+ start
+ 20
+ 20
+ dialog-question-symbolic
+ 5
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ vertical
+
+
+
+ False
+ True
+ 0
+
+
+
+
+ True
+ False
+ start
+ start
+ 10
+ 10
+ You will be redirected to documentation website where documentation is
+translated and supported by community.
+ True
+ 0
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ Always redirect to online documentation
+ True
+ True
+ False
+ end
+ 10
+ True
+
+
+
+ False
+ True
+ 2
+
+
+
+
+
+ True
+ True
+ 1
+
+
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ True
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
+ 30
+ True
+
+
+ Cancel
+ True
+ True
+ True
+
+
+
+ True
+ True
+ 0
+
+
+
+
+ Read Online
+ True
+ True
+ True
+
+
+
+ True
+ True
+ 1
+
+
+
+
+ False
+ True
+ 1
+
+
+
+
+
+
+
+
+
+ 800
+ 600
+ False
+ True
+ True
+ com.ublinux.ubl-settings-resourcequota
+
+
+
+
+
+
+
+
diff --git a/ubl-settings-resourcequota.pot b/ubl-settings-resourcequota.pot
new file mode 100644
index 0000000..d0ae190
--- /dev/null
+++ b/ubl-settings-resourcequota.pot
@@ -0,0 +1,21 @@
+# Language translations for ubl-settings-diskquota package.
+# Copyright (C) 2022, UBTech LLC
+# This file is distributed under the same license as the ubl-settings-diskquota package.
+# UBLinux Team , 2022
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-04-10 16:09+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid ""
+msgstr ""
\ No newline at end of file
diff --git a/ubl-settings-resourcequota_ru.po b/ubl-settings-resourcequota_ru.po
new file mode 100644
index 0000000..a660759
--- /dev/null
+++ b/ubl-settings-resourcequota_ru.po
@@ -0,0 +1,178 @@
+# Russian translations for ubl-settings-diskquota package.
+# Copyright (C) 2022, UBTech LLC
+# This file is distributed under the same license as the ubl-settings-diskquota package.
+# UBLinux Team , 2022
+#
+#, fuzzy
+msgid "test"
+msgstr ""
+"Project-Id-Version: ubl-settings-bootloader 1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-04-10 16:09+0000\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"
+
+msgid "Type quota"
+msgstr "Тип квоты"
+
+msgid "Quota volume"
+msgstr "Объем квотирования"
+
+msgid "Soft RAM limit, (volume)"
+msgstr "Мягкий лимит ОЗУ, (объём)"
+
+msgid "Hard RAM limit, (volume)"
+msgstr "Жёсткий лимит ОЗУ, (объём)"
+
+msgid "Swap file limit (volume)"
+msgstr "Лимит файлов подкачки (объём)"
+
+msgid "CPU limit (%)"
+msgstr "Лимит ЦПУ (%)"
+
+msgid "I/O limit (read)"
+msgstr "Лимит I/O (чтение)"
+
+msgid "I/O limit (write)"
+msgstr "Лимит I/O (запись)"
+
+msgid "Filters"
+msgstr "Фильтры"
+
+msgid "List quotas"
+msgstr "Список квот"
+
+msgid "Dispatcher"
+msgstr "Диспетчер"
+
+msgid "Processes"
+msgstr "Процессы"
+
+msgid "Information"
+msgstr "Информация"
+
+msgid "seconds"
+msgstr "сек."
+
+msgid "Update every"
+msgstr "Обновлять каждые"
+
+msgid "Core streams"
+msgstr "Потоки ядра"
+
+msgid "All groups including empty"
+msgstr "Все группы включая пустые"
+
+msgid "View properties for"
+msgstr "Посмотреть свойства для"
+
+msgid "Setting resource quotas"
+msgstr ""
+
+msgid "CPU and RAM quotas"
+msgstr "Квоты процессора и ОЗУ"
+
+msgid "Information"
+msgstr "Информация"
+
+msgid "Delete"
+msgstr "Удалить"
+
+msgid "Edit"
+msgstr "Редактировать"
+
+msgid "Add"
+msgstr "Добавить"
+
+msgid "Error saved local and global configuration"
+msgstr "Сохранить глобальную и локальную конфигурацию"
+
+msgid ""
+"GTK settings disk quota for UBLinux\n"
+"\n"
+"Usage: ubl-settings-diskquota [OPTIONS...]\n"
+"Options:\n"
+" -h, --help\t Show this help\n"
+" -V, --version\t Show package version\n"
+" --lock-help Lock utility help\n"
+" --lock-save Lock saving local and global configuration\n"
+" --lock-save-local Lock save global configuration\n"
+" --lock-save-global Lock load global configuration\n"
+" --lock-load-global Lock load global configuration\n"
+msgstr ""
+"GTK утилита настройки дисковых для UBLinux\n"
+"\n"
+"Использование: ubl-settings-diskquota [Параметры приложения...]\n"
+"Параметры приложения:\n"
+" -h, --help\t Показать параметры справки\n"
+" -V, --version\t Показать версию пакета\n"
+" --lock-help Блокировка вызова справки\n"
+" --lock-save Блокировка сохранения локальной и глобальной "
+"конфигурации\n"
+" --lock-save-local Блокировка сохранения локальной конфигурации\n"
+" --lock-save-global Блокировка сохранения глобальной конфигурации\n"
+" --lock-load-global Блокировка загрузки глобальной конфигурации\n"
+
+msgid "Global configuration read error"
+msgstr "Сохранить глобальную конфигурацию"
+
+msgid "Global configuration write error"
+msgstr "Сохранить глобальную конфигурацию"
+
+msgid "Nothing to save!"
+msgstr "Нечего сохранять!"
+
+msgid "Project Home Page"
+msgstr "Главная страница проекта"
+
+msgid "Save"
+msgstr "Сохранить"
+
+msgid "Save in global and local configuration"
+msgstr "Сохранить в глобальную и локальную конфигурацию"
+
+msgid "Save in global configuration"
+msgstr "Сохранить в глобальную конфигурацию"
+
+msgid "Save in local configuration"
+msgstr "Сохранить в локальную конфигурацию"
+
+msgid "Global configuration downloaded successfully"
+msgstr "Успешно загружена глобальная конфигурация"
+
+msgid "Load"
+msgstr "Загрузить"
+
+msgid "Load global configuration"
+msgstr "Загрузить глобальную конфигурацию"
+
+msgid "Load local configuration"
+msgstr "Загрузить локальную конфигурацию"
+
+msgid "Local configuration downloaded successfully"
+msgstr "Успешно загружена локальная конфигурация"
+
+msgid "Local configuration reading error"
+msgstr "Загрузить локальную конфигурацию"
+
+msgid "Local configuration successfully written"
+msgstr "Успешно записана локальная конфигурация"
+
+msgid "Local configuration write error"
+msgstr "Загрузить локальную конфигурацию"
+
+msgid "Help"
+msgstr "Справка"
+
+msgid "About"
+msgstr "О программе"
+
+msgid ""
+msgstr ""
+
+