Merge pull request 'master' (#19) from YanTheKaller/ubl-settings-info:master into master

Reviewed-on: #19
pull/21/head
Dmitry Razumov 7 months ago
commit 9a58f15e1e

21
.gitignore vendored

@ -1,11 +1,12 @@
ubl-util-standard.glade~
ubl-settings-info
/css/
/ui/
.vscode/
/ubl-standard-ui.c
ubl-settings-info.glade~
*ubl-settings-info.glade#
*.o
source/ubl-util-standard-ui.c
source/ubl-util-standard-ui.h
ubl-settings-info
*~
build/
compile/
*#
terminal-commands/
source/ubl-cmake.h
vgcore*
.BUILD.md
.updatebuild.sh
.install.sh

@ -8,9 +8,14 @@ MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
CMAKE_COMMAND = cmake
CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
DEPENDS = /bin/cmake /bin/screenfetch
PREFIX ?= /usr
DEPENDS = /bin/cmake
PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR)
FILE_VER = source/${PKGNAME}.h
PKGIDENT=$(subst /,-,${PREFIX})
FILE_MO := $(PKGNAME).mo
LOCALE_DIR := ./locale
default_target: all
@ -21,11 +26,16 @@ all: init build
init:
@echo "Initialize ..."; \
if [ -d ".git" ]; then \
LATEST_TAG=$$(git describe --tags | sed 's/^v//'); \
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="0.0"; \
LATEST_TAG="Development"; \
fi; \
sed -r "s/^(string version_application = ).*/\1\"$${LATEST_TAG}\";/" -i source/${PKGNAME}.c; \
sed -r "s/^(string version_application).*/\1 = \"$${LATEST_TAG}\";/" -i ${FILE_VER}; \
echo "-- Build path: ${CMAKE_BUILD_DIR}"
depend:
@ -36,8 +46,8 @@ depend:
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"
# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
debug:
@echo "Debug ..."
@ -64,7 +74,8 @@ check:
build: depend prepare
@echo "Build ..."; \
make --directory=${CMAKE_BUILD_DIR}; \
$(MAKE_COMMAND) --directory=${CMAKE_BUILD_DIR}; \
sed -r "s/^(string version_application).*/\1;/" -i ${FILE_VER}; \
echo "Build: OK"
uninstall:
@ -72,7 +83,7 @@ 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}"; \
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 \
@ -86,9 +97,7 @@ uninstall:
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/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}"
@$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@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; \
@ -98,33 +107,28 @@ uninstall:
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}"; \
@for po in $(LOCALE_DIR)/$(PKGNAME)_*.po; do \
lang=$$(basename $$po | sed -E 's/^$(PKGNAME)_([^.]+)\.po$$/\1/'); \
file=$$(find ./locale/ -name '*_'"$$lang"'.po'); \
msgfmt $$file -v -f -o ${DESTDIR}/usr/share/locale/$$lang/LC_MESSAGES/$(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"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "icons/apps/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/" "icons/apps/com.ublinux.${PKGNAME}.svg"
@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
@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/${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" \
"ublinux-logo.svg"
@ldconfig -n /usr/local/lib
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
[ -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}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
[ -d "${DESTDIR}/usr/share/applications" ] && touch "${DESTDIR}/usr/share/applications" &>/dev/null || true; \
fi
@echo "Install: OK"

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/com/ublinux/ui">
<file>ubl-settings-info.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-info.css</file>
</gresource>
</gresources>

Before

Width:  |  Height:  |  Size: 207 KiB

After

Width:  |  Height:  |  Size: 207 KiB

@ -17,22 +17,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-info.c:37
msgid "Basic System Information"
#: source/ubl-settings-info.h:26
msgid "fastfetch --logo none --disable-linewrap --config all.jsonc"
msgstr ""
#: source/ubl-settings-info.c:38 source/ubl-settings-info.c:67 source/ubl-settings-info.c:68
#: source/ubl-strings.h:2
msgid "System Information"
msgstr ""
#: source/ubl-settings-info.c:40
msgid "Project Home Page"
msgstr ""
#: source/ubl-settings-info.c:41
msgid "About ubl-settings-info"
#: source/ubl-strings.h:3
msgid "Basic System Information"
msgstr ""
#: source/ubl-settings-info.c:70
msgid "About program"
#: source/ubl-strings.h:4
msgid ""
"https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
"ubl-settings-info"
msgstr ""

@ -17,22 +17,20 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-info.c:41
msgid "Basic System Information"
msgstr "Основная информацией о системе"
#: source/ubl-settings-info.h:26
msgid "fastfetch --logo none --disable-linewrap --config all.jsonc"
msgstr ""
#: source/ubl-settings-info.c:38 source/ubl-settings-info.c:67 source/ubl-settings-info.c:68
#: source/ubl-strings.h:2
msgid "System Information"
msgstr "Информация о системе"
#: source/ubl-settings-info.c:40
msgid "Project Home Page"
msgstr "Домашняя страница проекта"
#: source/ubl-settings-info.c:45
msgid "About ubl-settings-info"
msgstr "О программе ubl-settings-info"
#: source/ubl-strings.h:3
msgid "Basic System Information"
msgstr "Основная информация о системе"
#: source/ubl-settings-info.c:70
msgid "About"
msgstr "О программе"
#: source/ubl-strings.h:4
msgid ""
"https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
"ubl-settings-info"
msgstr ""

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

@ -3,24 +3,79 @@ project(ubl-settings-info)
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED gtkmm-3.0)
pkg_check_modules(GTK REQUIRED gtk+-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 \
pkg_check_modules(VTE291 REQUIRED vte-2.91)
include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER})
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-info.glade)
set(DEPENDFILES
../ubl-settings-info.glade
../gresource.xml
../ubl-settings-info.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}
)
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 \
-Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection")
string(FIND "${CMAKE_CXX_FLAGS}" "-D_FORTIFY_SOURCE" FORTIFY_FOUND)
if(FORTIFY_FOUND EQUAL -1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2")
endif()
set(SOURCE_FILES
ubl-settings-info.c)
ubl-settings-info.c
ubl-settings-info.h
)
set(LIBRARIES
${GTK_LIBRARIES}
pthread)
${WEBKIT_LIBRARIES}
${VTE291_LIBRARIES}
ublsettings
ublsettings-gtk3
ublsettingsui-gtk3)
add_executable(ubl-settings-info ${SOURCE_FILES})
target_link_libraries(ubl-settings-info ${LIBRARIES})
install(TARGETS ubl-settings-info DESTINATION bin)
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)

@ -1,179 +1,76 @@
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <getopt.h>
#include <libintl.h>
#include <locale.h>
#include "ubl-util-standard.c"
#define cssPath "/usr/share/ubl-settings-info/css/ubl-settings-info.css"
#define gladePath "/usr/share/ubl-settings-info/ui/ubl-settings-info.glade"
#define HeadBackgroundImagePath "/usr/share/ubl-settings-info/images/logo-background.png"
#define LogoImagePath "/usr/share/ubl-settings-info/images/ublinux-logo.svg"
#define LocaleName "ubl-settings-info"
#define LocalePath "/usr/share/locale"
#include "ubl-settings-info.h"
typedef char* string;
string version_application = "1.3";
config main_config;
#define _(String) gettext(String)
char *yon_char_get_augumented(char *source, char *append){
int size=strlen(source)+strlen(append)+1;
char *final=malloc(size);
memset(final,0,size);
sprintf(final,"%s%s",source,append);
return final;
void yon_terminal_style_update(VteTerminal *, main_window *widgets){
GdkRGBA *bg_color = NULL, *color=NULL;
gtk_style_context_get(gtk_widget_get_style_context(widgets->TerminalTemplateLabel),GTK_STATE_FLAG_NORMAL,GTK_STYLE_PROPERTY_BACKGROUND_COLOR,&bg_color,GTK_STYLE_PROPERTY_COLOR,&color,NULL);
vte_terminal_set_color_background(VTE_TERMINAL(widgets->InfoTerminal),bg_color);
vte_terminal_set_color_foreground(VTE_TERMINAL(widgets->InfoTerminal),color);
vte_terminal_set_color_cursor_foreground(VTE_TERMINAL(widgets->InfoTerminal),bg_color);
vte_terminal_set_color_cursor(VTE_TERMINAL(widgets->InfoTerminal),bg_color);
if (bg_color->blue>0.5&&bg_color->green>0.5&&bg_color->red>0.5){
gtk_image_set_from_file(GTK_IMAGE(widgets->InfoIcon),logo_icon_path);
gtk_image_set_pixel_size(GTK_IMAGE(widgets->InfoIcon),255);
} else if (bg_color->blue<0.5&&bg_color->green<0.5&&bg_color->red<0.5){
gtk_image_set_from_file(GTK_IMAGE(widgets->InfoIcon),logo_dark_icon_path);
gtk_image_set_pixel_size(GTK_IMAGE(widgets->InfoIcon),255);
}
}
char *yon_cut(char *source, int size, int startpos){
char *cut=NULL;
cut=malloc(size+1);
memset(cut,0,size+1);
memcpy(cut,source+startpos,size);
return cut;
void on_theme_changed(GSettings *, char *, main_window *widgets){
yon_terminal_style_update(NULL, widgets);
}
void on_about(GtkWidget *button){
GtkBuilder *builder = gtk_builder_new_from_file(gladePath);
GtkWidget *AboutButtons = GTK_WIDGET(gtk_builder_get_object(builder,"AboutButtons"));
GtkWidget *About = GTK_WIDGET(gtk_builder_get_object(builder, "About"));
GtkWidget *HeaderAboutTopic = GTK_WIDGET(gtk_builder_get_object(builder, "headerAboutTopic"));
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(About),version_application);
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(About),_("Basic System Information"));
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(About),_("System Information"));
gtk_widget_show(GTK_WIDGET(gtk_builder_get_object(builder,"About")));
gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(About),_("Project Home Page"));
gtk_label_set_text(GTK_LABEL(HeaderAboutTopic),_("About ubl-settings-info"));
gtk_widget_set_visible(AboutButtons,0);
/**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
{
widgets->InfoIcon = yon_gtk_builder_get_widget(builder,"InfoIcon");
widgets->InfoTerminal = yon_gtk_builder_get_widget(builder,"InfoTerminal");
widgets->TerminalTemplateLabel = yon_gtk_builder_get_widget(builder,"TerminalTemplateLabel");
}
{
yon_terminal_integrated_start(widgets->InfoTerminal,main_command);
yon_terminal_style_update(NULL, widgets);
void yon_on_window_close_dont_destroy(){
GSettings *settings = g_settings_new("org.gnome.desktop.interface");
g_signal_connect(G_OBJECT(settings), "changed",G_CALLBACK(on_theme_changed),widgets);
}
GList *children = gtk_container_get_children(GTK_CONTAINER(widgets->RightBox));
gtk_widget_hide(GTK_WIDGET(g_list_nth_data(children,0)));
gtk_widget_hide(widgets->LeftBox);
gtk_widget_hide(widgets->StatusBox);
g_list_free(children);
}
int main(int argc, char *argv[]){
int argsc=0;
char *arv="";
char **argsv=&arv;
GError *err=NULL;
gtk_init(&argsc, &argsv);
setlocale(LC_ALL, "");
bindtextdomain (LocaleName, LocalePath);
textdomain (LocaleName);
GtkBuilder *builder = gtk_builder_new_from_file(gladePath);
GtkWidget *plugBox = GTK_WIDGET(gtk_builder_get_object(builder, "plugBox"));
GtkWidget *labelInfo = GTK_WIDGET(gtk_builder_get_object(builder, "InfoLabel"));
GtkWidget *iconInfo = GTK_WIDGET(gtk_builder_get_object(builder, "InfoIcon"));
GtkWidget *headLabel = GTK_WIDGET(gtk_builder_get_object(builder, "headLabel"));
GtkWidget *HeaderTopic = GTK_WIDGET(gtk_builder_get_object(builder, "headerTopic"));
GtkWidget *AboutButton = GTK_WIDGET(gtk_builder_get_object(builder,"MenuItemAbout"));
GtkWidget *buttonSettings = GTK_WIDGET(gtk_builder_get_object(builder,"buttonSettings"));
GtkWidget *headBackgroundIcon = GTK_WIDGET(gtk_builder_get_object(builder,"HeadBackgroundImage"));
GtkWidget *headOverlay = GTK_WIDGET(gtk_builder_get_object(builder,"HeadOverlay"));
GtkWidget *headbox = GTK_WIDGET(gtk_builder_get_object(builder,"boxColor"));
gtk_image_set_from_file(GTK_IMAGE(headBackgroundIcon),HeadBackgroundImagePath);
gtk_overlay_add_overlay(GTK_OVERLAY(headOverlay),headbox);
gtk_label_set_text(GTK_LABEL(HeaderTopic),_("System Information"));
gtk_label_set_text(GTK_LABEL(headLabel),_("System Information"));
g_signal_connect(G_OBJECT(AboutButton), "activate", G_CALLBACK(on_about),NULL);
gtk_menu_item_set_label(GTK_MENU_ITEM(AboutButton),_("About"));
gtk_image_set_from_pixbuf(GTK_IMAGE(iconInfo),gdk_pixbuf_new_from_file_at_size(LogoImagePath,256,256,&err));
if (err){
printf("%s\n",err->message);
g_error_free(err);
}
GtkCssProvider *css=gtk_css_provider_new();
gtk_css_provider_load_from_path(css,cssPath,&err);
if (err){
printf("%s\n",err->message);
g_error_free(err);
}
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
GTK_STYLE_PROVIDER(css),
-1);
FILE *fp;
char path[1035];
char *loc=setlocale(LC_ALL,NULL);
if (strcmp(loc,"ru_RU.UTF-8")==0)
fp = popen("screenfetch -N -n | sed 's/OS:/Система:/' | sed 's/Kernel:/Ядро:/g' | sed 's/Uptime:/Время работы:/g' | \
sed 's/Packages:/Установлено пакетов:/g' | sed 's/Shell:/Оболочка:/g' | sed 's/Resolution:/Разрешение:/g' | sed 's/DE:/Среда рабочего стола:/g' | \
sed 's/WM:/Оконный менеджер:/g' | sed 's/WM Theme:/Тема оконного менеджера:/g' | sed 's/GTK Theme:/Тема GTK:/g' | sed 's/Icon Theme:/Тема значков:/g' | sed 's/Font:/Шрифт:/g' | \
sed 's/Disk:/Диск:/g' | sed 's/RAM:/Оперативная память:/g'", "r");
else fp = popen("screenfetch -n -w -N", "r");
if (fp == NULL) {
printf("Failed to run command\n" );
exit(1);
}
char *line=NULL;
line="";
char *prevline="";
char *pth;
char *preph="";
line="";
while (fgets(path, sizeof(path),fp)!=NULL){
line=strstr(path,": ");
if (line!=NULL){
line=yon_cut(line,strlen(line),1);
int size=strlen(path)-strlen(line)+1;
pth=yon_cut(path,size,0);
pth=yon_char_get_augumented("<span color='#1a5fb4'>",pth);
pth=yon_char_get_augumented(pth,"</span>");
line=yon_char_get_augumented(pth,line);
} else {
line=path;
pth="<span size=\"12pt\">\n";
line=yon_char_get_augumented(pth,line);
if (strlen(line)>40){
char *fnd=strstr(line," ");
*fnd='\n';
}
}
prevline=yon_char_get_augumented(prevline,line);
}
prevline=yon_char_get_augumented(prevline,"</span>");;
gtk_label_set_text(GTK_LABEL(labelInfo),prevline);
gtk_label_set_markup (GTK_LABEL(labelInfo),prevline);;
int socket_id=0;
int socket_ext_id=0;
int socket_trd_id=0;
int option_index=0;
int textsize=0;
int pointer=0;
static struct option long_options[] = {
{"socket-id", 1, 0, 's'},
{"socket-ext-id", 1, 0, 'e'},
{"socket-trd-id", 1, 0, 't'},
};
int socket_find;
for (int i=0;i<argc;i++){
socket_find=getopt_long(argc,argv,"s:t:e",long_options,&option_index);
if (socket_find=='s') if (optarg!=NULL) socket_id=atoi(optarg); else socket_id=-1;
else if (socket_find=='e') if (optarg!=NULL) socket_ext_id=atoi(optarg); else socket_ext_id=-1;
else if (socket_find=='t') if (optarg!=NULL) socket_trd_id=atoi(optarg); else socket_trd_id=-1;
}
printf("%d\n\n%d\n\n",socket_id,socket_ext_id);
if (socket_id<1){
printf("Solo mod\n");
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"window"));
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit),NULL);
gtk_widget_show_all(window);
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();
} else {
printf("Plug mod\n");
ubl_make_plugs(NULL,buttonSettings,0,socket_ext_id);
// GtkStyleContext *context = gtk_widget_get_style_context(gtk_widget_get_parent(buttonSettings));
// gtk_style_context_add_class(context,"primary-toolbar");
GtkWidget *plug=GTK_WIDGET(gtk_plug_new(socket_id));
g_signal_connect(G_OBJECT(plug), "destroy", G_CALLBACK(gtk_main_quit),NULL);
GtkWidget *parentWindow = gtk_widget_get_parent(plugBox);
gtk_container_remove(GTK_CONTAINER(parentWindow),plugBox);
gtk_container_add(GTK_CONTAINER(plug),plugBox);
gtk_widget_show_all(plug);
}
//turn off if custom presented
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);
gtk_main();
return 0;
}

@ -0,0 +1,51 @@
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <libintl.h>
#include <getopt.h>
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#include "ubl-strings.h"
#define _(String) gettext(String)
#define glade_path "/com/ublinux/ui/ubl-settings-info.glade"
#define CssPath "/com/ublinux/css/ubl-settings-info.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define icon_path "com.ublinux.ubl-settings-info"
#define logo_icon_path "/usr/share/pixmaps/ublinux-logo-text.png"
#define logo_dark_icon_path "/usr/share/pixmaps/ublinux-logo-text-dark.png"
#define LocaleName "ubl-settings-info"
#define main_command _("fastfetch --logo none --disable-linewrap --config all.jsonc")
typedef char* string;
__attribute__((unused)) static \
string version_application;
typedef struct {
template_config_fields
int save_config;
config_str launch_arguments;
int launch_size;
} config;
typedef struct {
template_window_fields
GtkWidget *InfoIcon;
GtkWidget *InfoTerminal;
GtkWidget *TerminalTemplateLabel;
} main_window;
void yon_main_window_complete(main_window *widgets);
void on_theme_changed(GSettings *, char *, main_window *widgets);
void yon_terminal_style_update(VteTerminal *, main_window *widgets);

@ -0,0 +1,4 @@
#define TITLE_LABEL _("System Information")
#define TITLE_INFO_LABEL _("Basic System Information")
#define WIKI_LINK _("https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-info")

@ -1,82 +0,0 @@
#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;
gtk_widget_set_visual(plug,gdk_screen_get_rgba_visual(gtk_widget_get_screen(plug)));
gtk_widget_set_app_paintable(plug,1);
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;
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"button");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"opacited");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"color");
}
if (right_plug_id>0&&RightWidget){
GtkWidget *plug=gtk_plug_new(right_plug_id);
GtkWidget *toplug=RightWidget;
gtk_widget_set_visual(plug,gdk_screen_get_rgba_visual(gtk_widget_get_screen(plug)));
gtk_widget_set_app_paintable(plug,1);
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;
GtkStyleContext *context = gtk_widget_get_style_context(plug);
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"opacited");
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"color");
}
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());
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));
}
if (right_plug_id>0&&RightWidget){
GtkWidget *plug=gtk_plug_new(right_plug_id);
GtkWidget *toplug=GTK_WIDGET(RightWidget->gobj());
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));
}
}
#endif

@ -1,20 +0,0 @@
#ifndef __cplusplus
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
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 <gtkmm.h>
#include <gtkmm/stock.h>
#include <gtkmm/window.h>
#include <gtkmm/plug.h>
static void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id);
#endif

@ -1,44 +1,131 @@
.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;
}
.button {
background-image: -gtk-gradient(linear,
left top, left bottom,
from(@entry_background_a),
color-stop(0.20, @entry_background_b),
color-stop(0.85, @entry_background_c),
to(@entry_background_d));
}
.opacited {
transition: 0ms ease-out;
opacity:0.98;
.inherited>* {
border:none;
border-radius:0px;
background:inherit;
}
.color {
background-color: inherit;
.workingbg {
background:@theme_base_color;
}
.menuitemsolo {
border-color:alpha(@theme_text_color, 0.4);
border-style:solid;
border-width:inherit;
.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:6px 2px 0 2px;
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitemmiddle >*{
margin:0 2px 0 2px;
padding: 3px 10px 3px 5px;
border:transparent;
}
.menuitemsolo *{
.menuitembottom >*{
margin:0 2px 2px 2px;
padding: 3px 10px 5px 5px;
padding: 3px 10px 3px 5px;
}
.menuitemtop:hover {
background:@theme_bg_color;
border-color:inherit;
border-top-width:inherit;
border-left-width:inherit;
border-right-width:inherit;
}
.menuitemsolo:hover {
.menuitemmiddle:hover {
background:@theme_bg_color;
border:inherit;
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;
}
.menuitemsolo:hover* {
.menuitemtop:hover>* {
margin:6px 2px 0 2px;
padding: 3px 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;
padding: 3px 10px 3px 5px;
background:@theme_selected_bg_color;
border-color:transparent;
border-radius:2px;
}
.boxInfoMessError{
background-color: #ea9999;
}
.boxInfoMessOK{
background-color: #f3f0ac;
}
.errorBox {
border-width: 2px;
border-color: #ea9999;
border-style:solid;
}
.chosenOutline{
transition: 0ms;
border-width: 1px;
border-color: #f3f0ac;
border-style:solid;
}
.debugborders *{
border-width: 2px;
border-color: #000000;
border-style: solid;
}
.terminaltemplate{
background: @theme_bg_color;
color: @theme_fg_color;
}

@ -2,83 +2,40 @@
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<requires lib="vte-2.91" version="0.76"/>
<!-- interface-css-provider-path ubl-settings-info.css -->
<object class="GtkAboutDialog" id="About">
<property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="window-position">center</property>
<property name="icon-name">com.ublinux.ubl-settings-info</property>
<property name="type-hint">dialog</property>
<property name="urgency-hint">True</property>
<property name="program-name">System info</property>
<property name="version">1.1</property>
<property name="copyright" translatable="yes">Copyright © 2022 - 2023, UBSoft LLC</property>
<property name="comments" translatable="yes">Sum up system information</property>
<property name="website">https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-info</property>
<property name="website-label" translatable="yes">Project Home Page</property>
<property name="authors">UBGroup</property>
<property name="artists">UBGroup</property>
<property name="logo-icon-name">com.ublinux.ubl-settings-info</property>
<property name="license-type">gpl-2-0</property>
<child internal-child="vbox">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="AboutButtons">
<property name="can-focus">False</property>
<property name="layout-style">end</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="headerAboutTopic">
<object class="GtkLabel" id="TerminalTemplateLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">System info</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<property name="valign">center</property>
<property name="margin-left">10</property>
<property name="margin-right">10</property>
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="label" translatable="yes">label</property>
<property name="wrap">True</property>
<property name="xalign">0.019999999552965164</property>
<property name="yalign">0.5</property>
<style>
<class name="terminaltemplate"/>
</style>
</object>
</child>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkBox" id="boxColor">
<object class="GtkBox" id="BoxMain">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkImage">
<property name="width-request">90</property>
<object class="GtkImage" id="InfoIcon">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="pixel-size">69</property>
<property name="icon-name">com.ublinux.ubl-settings-info</property>
<property name="valign">center</property>
<property name="xalign">1</property>
<property name="pixel-size">255</property>
<property name="icon-name">com.ublinux.ubl-settings-info.logo</property>
</object>
<packing>
<property name="expand">False</property>
@ -87,57 +44,36 @@
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<object class="VteTerminal" id="InfoTerminal">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="headLabel">
<property name="width-request">255</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System Info</property>
<attributes>
<attribute name="weight" value="bold"/>
<attribute name="size" value="15360"/>
</attributes>
<property name="hscroll-policy">natural</property>
<property name="vadjustment">adjustment1</property>
<property name="vscroll-policy">natural</property>
<property name="encoding">UTF-8</property>
<property name="scroll-on-keystroke">True</property>
<property name="scroll-on-output">False</property>
<style>
<class name="textHead"/>
<class name="terminal"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkScrollbar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
</object>
@ -158,182 +94,4 @@
</object>
</child>
</object>
<object class="GtkWindow" id="window">
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-info</property>
<child>
<object class="GtkBox" id="plugBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="standartHead">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkOverlay" id="HeadOverlay">
<property name="height-request">81</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkImage" id="HeadBackgroundImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<child>
<object class="GtkImage" id="InfoIcon">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<property name="xalign">1</property>
<property name="stock">gtk-missing-image</property>
<property name="pixel-size">255</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="InfoLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<property name="margin-start">10</property>
<property name="margin-end">10</property>
<property name="label" translatable="yes">label</property>
<property name="xalign">0.019999999552965164</property>
<property name="yalign">0.5</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="headerTopic">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">System info</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-info</property>
</object>
</child>
<child>
<object class="GtkMenuButton" id="buttonSettings">
<property name="visible">True</property>
<property name="app-paintable">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="draw-indicator">True</property>
<property name="popup">menu2</property>
<property name="direction">none</property>
<child>
<placeholder/>
</child>
<style>
<class name="noborder"/>
</style>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<style>
<class name="toolbar"/>
</style>
</object>
</child>
</object>
</interface>

@ -1,241 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="360"
height="360"
version="1.0"
id="svg36"
sodipodi:docname="ublinux-dark-glow-sc.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
inkscape:export-filename="/media/Data/ShareMX/temp/archtoub_icons/ublinux.png"
inkscape:export-xdpi="68.26667"
inkscape:export-ydpi="68.26667"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs40">
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter2327-6-3"
x="-0.14509785"
y="-0.44791076"
width="1.2901957"
height="1.8958215">
<feFlood
flood-opacity="0"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood2317-0-6" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite2319-6-1" />
<feGaussianBlur
in="composite1"
stdDeviation="80"
result="blur"
id="feGaussianBlur2321-2-2" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset2323-6-9" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="fbSourceGraphic"
id="feComposite2325-1-3" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix2435" />
<feFlood
id="feFlood2437"
flood-opacity="0.698039"
flood-color="rgb(255,255,255)"
result="flood"
in="fbSourceGraphic" />
<feComposite
in2="fbSourceGraphic"
id="feComposite2439"
in="flood"
operator="in"
result="composite1" />
<feGaussianBlur
id="feGaussianBlur2441"
in="composite1"
stdDeviation="159.96"
result="blur" />
<feOffset
id="feOffset2443"
dx="-1.94289e-16"
dy="3.05311e-16"
result="offset" />
<feComposite
in2="offset"
id="feComposite2445"
in="fbSourceGraphic"
operator="over"
result="composite2" />
</filter>
</defs>
<sodipodi:namedview
id="namedview38"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="1.0347222"
inkscape:cx="-3.8657719"
inkscape:cy="134.81879"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="text4648-6-8-1" />
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
style="display:none">
<g
transform="translate(-201.63,22.962)"
id="g34">
<path
d="m 381.06,24.896 c -8.7636,21.486 -14.055,35.559 -23.813,56.406 5.9823,6.3413 13.325,13.691 25.25,22.031 -12.821,-5.2756 -21.558,-10.535 -28.094,-16.031 -12.487,26.056 -32.08,63.133 -71.781,134.47 31.198,-18.011 55.398,-29.104 77.938,-33.344 -0.96715,-4.1618 -1.5061,-8.6782 -1.4688,-13.375 l 0.0312,-0.96875 c 0.49515,-19.992 10.899,-35.388 23.219,-34.344 12.319,1.0438 21.901,18.133 21.406,38.125 -0.0931,3.7597 -0.50934,7.3639 -1.25,10.719 22.29,4.3659 46.232,15.424 77,33.188 -6.0696,-11.174 -11.514,-21.219 -16.688,-30.812 -8.1493,-6.3162 -16.63,-14.538 -33.969,-23.438 11.918,3.0967 20.474,6.6628 27.125,10.656 -52.602,-97.935 -56.868,-110.95 -74.906,-153.28 z"
fill="#1793d1"
fill-rule="evenodd"
id="path2" />
<text
x="475.51663"
y="207.00311"
fill="#87cdde"
font-family="'DejaVu Sans Mono'"
stroke-width="1px"
style="line-height:0%"
xml:space="preserve"
id="text6"><tspan
x="475.51663"
y="207.00311"
font-size="6.1069px"
style="line-height:1.25"
id="tspan4">TM</tspan></text>
<g
transform="matrix(0.47879,0,0,0.47879,65.332,87.93)"
fill="#ffffff"
fill-rule="evenodd"
id="g16">
<path
d="m 339.97,309.09 c -14.471,-0.0239 -26.481,2.9437 -31.125,4.5625 l -4.7812,25.812 c -0.0116,0.0951 23.795,-6.3486 34.281,-5.9688 17.362,0.62381 18.959,6.6354 18.656,14.75 0.29595,0.47462 -4.4793,-7.3319 -19.5,-7.5938 -18.95,-0.32687 -45.693,6.7095 -45.656,35.312 -0.51086,32.174 24.034,41.639 40.75,41.812 15.028,-0.27364 22.078,-5.6914 25.938,-8.5938 5.0712,-5.3024 10.873,-10.634 16.406,-17.031 -5.2357,9.5128 -9.7747,16.09 -14.5,21.125 v 4.25 l 22.844,-3.8438 0.15625,-62.094 c -0.23141,-8.7884 5.0412,-42.418 -43.469,-42.5 z m -3.2812,54.062 c 9.4689,0.12995 20.328,4.7971 20.344,16.031 0.049,10.218 -12.8,15.712 -21.156,15.625 -8.3598,-0.0868 -19.451,-6.5698 -19.5,-16.531 0.16016,-8.9044 10.46,-15.354 20.312,-15.125 z"
id="path8" />
<path
d="m 398.5,314.83 -0.15505,102.83 26.612,-5.1272 0.0449,-58.302 c 0.006,-8.6809 12.406,-18.825 27.963,-18.663 3.302,-5.9741 9.5087,-21.242 11.021,-24.715 -34.756,-0.0833 -35.199,9.9899 -41.244,14.945 -0.0631,-9.4528 -0.0213,-15.127 -0.0213,-15.127 z"
id="path10" />
<path
d="m 548.27,328.33 c -0.25696,-0.12068 -13.879,-15.934 -41.266,-16.059 -25.652,-0.42638 -54.426,9.519 -54.886,52.533 0.22457,37.819 27.64,52.598 55.031,52.886 29.313,0.30451 40.977,-18.329 41.676,-18.791 -3.4976,-3.0321 -16.598,-16.013 -16.598,-16.013 0,0 -8.1824,11.651 -24.058,11.799 -15.879,0.1512 -29.682,-12.273 -29.878,-29.609 -0.20349,-17.336 12.689,-26.728 29.997,-27.487 14.985,-0.003 23.63,9.6733 23.63,9.6733 z"
id="path12" />
<path
d="m 581.81,278.84 -25.125,5.9062 0.1875,133.94 24.75,-4.4688 0.28125,-63.031 c 0.0529,-6.6093 9.5613,-16.759 25.438,-16.438 15.18,0.15775 18.572,10.118 18.531,11.375 l 0.4375,72.969 24.406,-4.3125 0.0937,-77.375 c 0.1607,-7.4454 -16.308,-23.17 -42.781,-23.281 -12.581,0.0202 -19.548,2.8682 -23.094,4.9688 -6.0666,4.6856 -13,9.1754 -19.812,14.906 6.2981,-8.091 11.586,-13.685 16.75,-17.844 z"
id="path14" />
</g>
<g
transform="matrix(0.70885,0,0.010031,0.70885,96.753,-223.33)"
fill="#1793d1"
fill-rule="evenodd"
id="g28">
<path
d="m 400.68,629.8 7.6817,-1.9158 -0.92851,91.208 -7.7957,1.3243 z"
id="path18" />
<path
d="m 421.1,657.02 6.7506,-2.9867 -0.86808,65.399 -6.4978,1.3392 z m -1.2606,-23.583 5.4717,-4.4153 4.4226,4.9995 -5.4756,4.5322 z"
id="path20" />
<path
d="m 440.44,655.83 7.6776,-1.562 -0.1573,13.672 c -0.007,0.58717 4.4194,-15.274 24.685,-14.921 19.68,0.10952 22.684,15.346 22.529,18.762 l -0.43759,48.078 -6.7304,1.4563 0.63316,-47.489 c 0.0974,-1.3868 -2.8814,-13.114 -16.789,-13.158 -13.905,-0.0404 -23.684,10.1 -23.758,16.579 l -0.48127,41.835 -7.8039,2.0313 z"
id="path22" />
<path
d="m 561.53,720.2 -7.6776,1.5619 0.15737,-13.672 c 0.007,-0.58742 -4.422,15.274 -24.685,14.921 -19.68,-0.10944 -22.684,-15.346 -22.529,-18.762 l 0.43757,-48.079 8.1567,-1.6423 -0.54644,47.49 c -0.0149,1.2968 1.3684,13.3 15.276,13.343 13.905,0.0405 23.766,-8.3736 24.015,-21.044 l 0.43105,-37.469 7.5978,-1.932 z"
id="path24" />
<path
d="m 577.45,655.29 -5.4272,4.2002 20.199,26.933 -22.391,31.116 5.635,4.226 21.044,-28.897 20.878,29.582 5.3273,-4.201 -22.376,-31.629 18.57,-25.578 -5.5319,-4.7343 -16.921,23.668 z"
id="path26" />
</g>
<text
x="550.83258"
y="284.34351"
fill="#87cdde"
font-family="'DejaVu Sans Mono'"
stroke-width="1px"
style="line-height:0%"
xml:space="preserve"
id="text32"><tspan
x="550.83258"
y="284.34351"
font-size="6.3363px"
style="line-height:1.25"
id="tspan30">TM</tspan></text>
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<g
id="g866"
style="display:inline"
transform="matrix(2.8604707,0,0,2.8604707,-28.282302,-401.23688)">
<path
sodipodi:type="star"
style="display:inline;fill:#0d597f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.264583;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path9225"
sodipodi:sides="6"
sodipodi:cx="103.70058"
sodipodi:cy="104.69581"
sodipodi:r1="89.197571"
sodipodi:r2="77.247368"
sodipodi:arg1="1.0471976"
sodipodi:arg2="1.5707963"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
transform="matrix(0,0.48761957,-0.48761957,0,123.86572,140.10617)"
d="m 148.29936,181.94317 -89.197572,0 -44.598782,-77.24737 44.598789,-77.247356 89.197575,4e-6 44.59878,77.247362 z" />
<path
d="m 68.071141,169.19256 h 16.33386 c 3.39111,0 5.86851,0.11539 7.43219,0.34611 1.58252,0.23075 3.1462,0.74032 4.69104,1.5287 1.601349,0.82684 2.788229,1.94211 3.560659,3.34582 0.79125,1.38448 1.18689,2.97085 1.18689,4.75912 0,2.07672 -0.53691,3.91307 -1.61078,5.50906 -1.07385,1.57676 -2.590419,2.80742 -4.549739,3.69195 v 0.23074 c 2.750559,0.55764 4.926539,1.71138 6.527889,3.46119 1.6202,1.74981 2.43031,4.0573 2.43031,6.92239 0,2.07672 -0.41448,3.93227 -1.24342,5.56672 -0.8101,1.63445 -1.93104,2.99009 -3.36285,4.06691 -1.65787,1.26908 -3.485299,2.17283 -5.482289,2.71125 -1.97817,0.53841 -4.49323,0.80556 -7.54524,0.80761 l -18.52368,0.0125 -7.65381,-0.005 c -6.160521,0 -10.823301,-1.38471 -13.988341,-4.15412 -3.1462,-2.76939 -4.7193,-6.7445 -4.7193,-11.92538 v -26.87542 h 10.90808 v 26.25285 c 0,2.92012 0.61229,5.09609 1.83685,6.52789 1.22457,1.4318 3.21214,2.14769 5.962711,2.14769 2.71289,0 4.69104,-0.68761 5.93445,-2.06289 1.26225,-1.37529 1.89338,-3.57951 1.88394,-6.64543 z m 22.09875,12.14301 c 0,-0.71147 -0.17897,-1.42295 -0.53692,-2.13441 -0.33911,-0.71146 -0.9514,-1.24025 -1.83686,-1.58638 -0.79125,-0.30766 -1.78033,-0.47111 -2.96722,-0.49033 -1.16805,-0.0384 -2.81651,-0.0576 -4.94537,-0.0576 h -1.01734 v 9.08561 h 1.69556 c 1.7144,0 3.17445,-0.0288 4.38018,-0.0864 1.20573,-0.0577 2.15713,-0.24993 2.85419,-0.57687 0.97966,-0.44226 1.6202,-1.00952 1.92164,-1.70175 0.30143,-0.71148 0.45214,-1.52869 0.45214,-2.45167 z m 2.65637,17.479 c 0,-1.36526 -0.26375,-2.41322 -0.79126,-3.14391 -0.50866,-0.74993 -1.3847,-1.30755 -2.62811,-1.6729 -0.84778,-0.24997 -2.01582,-0.38457 -3.50415,-0.40382 -1.48832,-0.0193 -3.04259,-0.0289 -4.66278,-0.0289 h -2.37378 v 10.70083 h 0.79127 c 3.05199,0 5.23738,-0.009 6.55615,-0.0288 1.31876,-0.0192 2.53391,-0.26918 3.64544,-0.74991 1.13036,-0.48072 1.90279,-1.11526 2.31726,-1.90365 0.43331,-0.80763 0.64996,-1.7306 0.64996,-2.76895 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:50.8px;line-height:1.25;font-family:Verdana;-inkscape-font-specification:'Verdana Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.113933;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
id="path4640-7-5-9-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscccsccccscccscccsccscscccscccsccssccssscccsccssccss" />
</g>
<g
aria-label="Linux"
transform="matrix(0.05476725,0,0,0.05476725,-46.447362,267.18595)"
id="text4648-6-8-1"
style="font-weight:bold;font-size:1683.65px;line-height:1.25;font-family:'Century Gothic';-inkscape-font-specification:'Century Gothic Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#4d4d4d;stroke-width:8.769;filter:url(#filter2327-6-3);enable-background:new">
<path
d="m 2150.1859,55.619904 h 230.1865 V 1045.422 h 335.4147 v 219.4993 h -565.6012 z"
id="path3719" />
<path
d="m 2954.1945,2.1837463 q 59.1908,0 101.1177,42.7489267 42.7489,42.748926 42.7489,103.583937 0,60.01292 -41.9268,102.76184 -41.9269,41.92683 -100.2956,41.92683 -60.0129,0 -102.7618,-42.74892 -41.9269,-43.57102 -41.9269,-105.22813 0,-59.19082 41.9269,-101.117652 41.9268,-41.9268317 101.1176,-41.9268317 z M 2841.5675,370.48219 h 225.254 v 894.43911 h -225.254 z"
id="path3721" />
<path
d="m 3269.8789,370.48219 h 223.6098 v 91.25252 q 76.4548,-64.12339 138.1119,-88.78624 62.4792,-25.48493 127.4247,-25.48493 133.1793,0 226.076,92.8967 78.099,78.9211 78.099,233.47491 V 1264.9213 H 3841.2347 V 872.78207 q 0,-160.30847 -14.7977,-212.92253 -13.9756,-52.61407 -50.1478,-79.74319 -35.35,-27.95122 -87.9641,-27.95122 -68.2339,0 -117.5595,46.0373 -48.5036,45.21521 -67.4118,125.7805 -9.8651,41.92683 -9.8651,181.68293 v 359.25544 h -223.6098 z"
id="path3723" />
<path
d="m 4279.4112,370.48219 h 226.8981 v 430.77764 q 0,125.7805 17.264,175.10618 17.264,48.50359 55.0803,75.63269 38.6385,27.1292 94.5409,27.1292 55.9025,0 94.5409,-26.3071 39.4606,-27.1291 58.3688,-78.92107 13.9756,-38.63846 13.9756,-165.24105 V 370.48219 h 225.2539 v 378.98567 q 0,234.297 -36.9942,320.61694 -45.2152,105.2281 -133.1794,161.9527 -87.9641,55.9024 -223.6098,55.9024 -147.1549,0 -238.4074,-65.7676 -90.4304,-65.7675 -127.4247,-183.3271 -26.307,-81.38737 -26.307,-295.95409 z"
id="path3725" />
<path
d="m 5210.0225,370.48219 h 260.604 l 175.1062,244.16214 177.5724,-244.16214 h 258.1378 l -305.8193,423.37879 343.6356,471.06032 h -260.604 L 5645.7327,971.43344 5435.2764,1264.9213 h -257.3156 l 338.703,-471.06032 z"
id="path3727" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

Loading…
Cancel
Save