ubl-settings-bootloader remake WIP 90%

pull/83/head
parent 8dac902ceb
commit ec1586f15a

@ -11,8 +11,8 @@ CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
DEPENDS = /bin/cmake
PREFIX ?= /usr/local
PKGNAME = $(MAKEFILE_DIR)
FILE_VER = source/${PKGNAME}.cc
PKGIDENT = $(subst /,-,$(subst /usr,,${PREFIX}))
FILE_VER = source/${PKGNAME}.h
PKGIDENT=$(subst /,-,${PREFIX})
default_target: all
@ -72,6 +72,7 @@ check:
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:
@ -93,13 +94,7 @@ uninstall:
done
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@$(RM) "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@$(RM) "${DESTDIR}/usr/share/${PKGNAME}/grub-cmdline-linux.csv"
@$(RM) "${DESTDIR}/usr/share/${PKGNAME}/grub-terminal-input.csv"
@$(RM) "${DESTDIR}/usr/share/${PKGNAME}/grub-terminal-output.csv"
@$(RM) "${DESTDIR}/usr/share/${PKGNAME}/grub-play.csv"
@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; \
@ -121,23 +116,19 @@ install: check uninstall
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}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
@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}${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"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/" grub-cmdline-linux.csv
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/" grub-terminal-input.csv
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/" grub-terminal-output.csv
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/" grub-play.csv
@install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}${PKGIDENT}.policy
@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}${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"
@ -147,7 +138,6 @@ clean:
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
else \
sed -r "s/^(string version_application).*/\1;/" -i ${FILE_VER}; \
echo "Clean: OK"; \
fi
@ -157,7 +147,7 @@ help:
echo "... init"; \
echo "... debug"; \
echo "... prepare"; \
echo "... build"; \
echo "... compile"; \
echo "... install"; \
echo "... uninstall"; \
echo "... clean"

@ -2,6 +2,9 @@
<gresources>
<gresource prefix="/com/ublinux/ui">
<file>ubl-settings-bootloader.glade</file>
<file>ubl-settings-bootloader-password.glade</file>
<file>ubl-settings-bootloader-user.glade</file>
<file>ubl-settings-bootloader-ringtone.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-bootloader.css</file>
@ -9,4 +12,9 @@
<gresource prefix="/com/ublinux/images">
<file>ubl-settings-bootloader-banner.png</file>
</gresource>
<gresource prefix="/com/ublinux/csv">
<file>grub-parameters.csv</file>
<file>grub-terminal-input.csv</file>
<file>grub-terminal-output.csv</file>
</gresource>
</gresources>

@ -1,2 +0,0 @@
Option|Tone code
ubbeep|480 900 2 1000 2 800 2 400 2 600 3
1 Option Tone code
2 ubbeep 480 900 2 1000 2 800 2 400 2 600 3

@ -3,4 +3,4 @@ console|PC BIOS & EFI console
serial|Serial terminal
ofconsole|Open Firmware Console
at_keyboard|PC AT Keyboard (Coreboot)
usb_keyboard|USB Keyboard (HID Boot protocol)
usb_keyboard|USB Keyboard (HID Boot protocol)
1 Option Description
3 serial Serial terminal
4 ofconsole Open Firmware Console
5 at_keyboard PC AT Keyboard (Coreboot)
6 usb_keyboard USB Keyboard (HID Boot protocol)

@ -3,4 +3,4 @@ console|PC BIOS & EFI console
serial|Serial terminal
ofconsole|Open Firmware Console
gfxterm|Output in graphical mode
vga_text|VGA text output (Coreboot)
vga_text|VGA text output (Coreboot)
1 Option Description
3 serial Serial terminal
4 ofconsole Open Firmware Console
5 gfxterm Output in graphical mode
6 vga_text VGA text output (Coreboot)

@ -32,6 +32,12 @@ add_custom_target(GLADE ubl-settings-bootloader.glade)
set(DEPENDFILES
../ubl-settings-bootloader.glade
../ubl-settings-bootloader-password.glade
../ubl-settings-bootloader-user.glade
../ubl-settings-bootloader-ringtone.glade
../grub-parameters.csv
../grub-terminal-input.csv
../grub-terminal-output.csv
../gresource.xml
../ubl-settings-bootloader-banner.png
../ubl-settings-bootloader.css
@ -72,6 +78,9 @@ endif()
set(SOURCE_FILES
ubl-settings-bootloader.c
ubl-settings-bootloader-user.c
ubl-settings-bootloader-password.c
ubl-settings-bootloader-melody.c
ubl-settings-bootloader.h
ubl-strings.h
)

@ -0,0 +1,115 @@
#include "ubl-settings-bootloader.h"
void on_ringtone_accept(GtkWidget *,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
yon_ringtone_window *window = yon_dictionary_get_data(dict->first->next,yon_ringtone_window*);
const char *username = gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
const char *password = gtk_entry_get_text(GTK_ENTRY(window->CodeEntry));
// if (yon_char_is_empty(username)){
// yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
// yon_ubl_status_highlight_incorrect(window->NameEntry);
// return;
// }
if (yon_char_is_empty(password)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->CodeEntry);
return;
}
if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
yon_window_config_erase_instant_parameter(window->prev_name,"melodies");
char *config_melody = config(GRUB_PLAY_parameter);
if (!yon_char_is_empty(config_melody)&&!strcmp(config_melody,password)){
yon_config_remove_by_key(GRUB_PLAY_parameter);
}
}
yon_window_config_add_instant_parameter((char*)username,"melodies",(char*)password,YON_TYPE_STRING);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ChooseCheck))){
yon_config_register(GRUB_PLAY_parameter,GRUB_PLAY_command,(char*)password);
} else {
char *config_melody = config(GRUB_PLAY_parameter);
if (!yon_char_is_empty(config_melody)&&!strcmp(config_melody,password)){
yon_config_remove_by_key(GRUB_PLAY_parameter);
}
}
gtk_widget_destroy(window->Window);
yon_interface_update(widgets);
}
void on_ringtone_add_clicked(GtkWidget *,main_window *widgets){
yon_ringtone_window *window = yon_ringtone_window_new();
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_ringtone_accept),dict);
gtk_widget_show(window->Window);
}
void on_ringtone_edit_clicked(GtkWidget *,main_window *widgets){
yon_ringtone_window *window = yon_ringtone_window_new();
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootRingtoneList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootRingtoneTree)),&model,&iter)){
int is_chosen;
char *name, *code;
gtk_tree_model_get(model,&iter,0,&is_chosen,1,&name,2,&code,-1);
window->prev_name = yon_char_new(name);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ChooseCheck),is_chosen);
gtk_entry_set_text(GTK_ENTRY(window->NameEntry),name);
gtk_entry_set_text(GTK_ENTRY(window->CodeEntry),code);
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_ringtone_accept),dict);
gtk_widget_show(window->Window);
}
void on_ringtone_remove_clicked(GtkWidget *,main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootRingtoneTree)),&model,&iter)){
char *name, *code;
gtk_tree_model_get(model,&iter,1,&name,2,&code,-1);
dialog_confirmation_data *data = new(dialog_confirmation_data);
data->data=NULL;
data->function=NULL;
data->action_text = RINGTONE_REMOVE_CONFIRM_LABEL(name);
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
char *config_code = config(GRUB_PLAY_parameter);
yon_window_config_erase_instant_parameter(name,"melodies");
if (!yon_char_is_empty(config_code)&&strcmp(code,config_code)){
yon_config_remove_by_key(GRUB_PLAY_parameter);
}
yon_interface_update(widgets);
}
}
}
yon_ringtone_window *yon_ringtone_window_new(){
yon_ringtone_window *window = new(yon_ringtone_window);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ringtone);
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel");
window->ChooseCheck = yon_gtk_builder_get_widget(builder,"ChooseCheck");
window->NameEntry = yon_gtk_builder_get_widget(builder,"NameEntry");
window->CodeEntry = yon_gtk_builder_get_widget(builder,"CodeEntry");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
window->prev_name = NULL;
yon_on_entry_set_allowed_symbols(GTK_ENTRY(window->CodeEntry),"01234567890 ");
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->NameEntry));
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
return window;
}

@ -0,0 +1,123 @@
#include "ubl-settings-bootloader.h"
void yon_password_change(GtkWidget *, GtkEntry *entry){
GtkEntry *output_target = entry;
yon_password_window *window = yon_ubl_settings_usergroups_password_new();
dictionary *dict = NULL;
char *password = (char*)gtk_entry_get_text(output_target);
if (!yon_char_is_empty(password)){
if (main_config.load_mode==0){
password = yon_char_new(password);
if (!check_is_password_hash(password)){
gtk_entry_set_text(GTK_ENTRY(window->PasswordHashEntry),password);
} else {
if (password[0]=='%'&&password[1]=='%'){
free(yon_char_divide(password,1));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck),1);
}
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
}
}
}
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
yon_dictionary_add_or_create_if_exists_with_data(dict,"target",output_target);
g_signal_connect(G_OBJECT(window->UserOkButton),"clicked",G_CALLBACK(on_password_accept),dict);
g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(output_target))));
gtk_widget_show(window->Window);
}
void on_password_accept(GtkWidget *self, dictionary *dict){
yon_password_window *window = yon_dictionary_get_data(dict->first,yon_password_window*);
GtkEntry *entry = yon_dictionary_get_data(dict->first->next,GtkEntry*);
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
char *password_check = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry));
if (yon_char_is_empty(password)){
char *pasted_hash = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry));
if (!yon_char_is_empty(pasted_hash)){
gtk_entry_set_text(entry,pasted_hash);
} else {
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_SHORT_LABEL(yon_char_from_int(main_config.password_min_length)),5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
} else {
for (size_t i=0;i<strlen(password);i++){
if (password[i]=='!'||password[i]=='@'||password[i]=='#'||password[i]=='%'||password[i]=='^'||password[i]=='&'||password[i]=='*'||password[i]=='\"'||password[i]=='\''){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),RESTRICTED_SYMBOLS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
}
if (yon_char_is_empty(password)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
} else if (password[0]=='%'&&password[1]=='%'){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
if ((glong)strlen(password)<main_config.password_min_length){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_SHORT_LABEL(yon_char_from_int(main_config.password_min_length)),5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
if (!strcmp(password,password_check)){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck))){
char *pasw=yon_char_append("%%",password);
password=pasw;
}
gtk_entry_set_text(GTK_ENTRY(entry),password);
} else {
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PASSWORD_MISMATCH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return;
}
}
on_subwindow_close(self);
}
yon_password_window *yon_ubl_settings_usergroups_password_new(){
yon_password_window *window = malloc(sizeof(yon_password_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_password);
window->Window=yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
window->TitleLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel");
window->PasswordEntry=yon_gtk_builder_get_widget(builder,"PasswordEntry");
window->RepeatPasswordEntry=yon_gtk_builder_get_widget(builder,"RepeatPasswordEntry");
window->PasswordHashEntry=yon_gtk_builder_get_widget(builder,"PasswordHashEntry");
window->HashBox=yon_gtk_builder_get_widget(builder,"HashBox");
window->PasswordBox=yon_gtk_builder_get_widget(builder,"PasswordBox");
window->NoEncriptionCheck=yon_gtk_builder_get_widget(builder,"NoEncriptionCheck");
window->UserCancelButton=yon_gtk_builder_get_widget(builder,"UserCancelButton");
window->UserOkButton=yon_gtk_builder_get_widget(builder,"UserOkButton");
yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"PasswordWindow");
g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->RepeatPasswordEntry));
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordHashEntry));
gtk_window_set_title(GTK_WINDOW(window->Window),PASSWORD_TITLE_LABEL);
return window;
}
int yon_check_password_blocked(char *password){
if (!yon_char_is_empty(password)){
if (!strcmp(password,"!*")){
memset(password,0,strlen(password));
return 1;
} else if (password[0]=='!'&&password[1]=='*'){
char *copy = yon_char_new(password);
memcpy(copy,password+2,strlen(password+2));
memset(password,0,strlen(password));
memcpy(password,copy,strlen(copy));
free(copy);
return 1;
} else if (password[0]=='!'||password[0]=='*'){
free(yon_char_divide(password,0));
return 1;
}
}
return 0;
}

@ -0,0 +1,126 @@
#include "ubl-settings-bootloader.h"
void on_user_accept(GtkWidget *,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
yon_user_window *window = yon_dictionary_get_data(dict->first->next,yon_user_window*);
const char *username = gtk_entry_get_text(GTK_ENTRY(window->UsernameEntry));
const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
if (yon_char_is_empty(username)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->UsernameEntry);
return;
}
if (yon_char_is_empty(password)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
return;
}
if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
yon_config_remove_by_key(GRUB_PASSWORD(window->prev_name));
int size;
char *superusers = config(GRUB_SUPERUSERS_parameter);
config_str parsed = yon_char_parse(superusers,&size,",");
int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
if (pos>-1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
char *superusers = yon_char_parsed_to_string(parsed,size,",");
if (!yon_char_is_empty(superusers)){
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_command,superusers);
} else {
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
}
}
}
yon_config_register(GRUB_PASSWORD(username),GRUB_PASSWORD_command,(char*)password);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck))){
int size;
char *superusers = config(GRUB_SUPERUSERS_parameter);
config_str parsed = yon_char_parse(superusers,&size,",");
if (yon_char_parsed_check_exist(parsed,size,(char*)username)==-1){
yon_char_parsed_add_or_create_if_exists(parsed,&size,(char*)username);
char *superusers = yon_char_parsed_to_string(parsed,size,",");
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_command,superusers);
}
}
gtk_widget_destroy(window->Window);
yon_interface_update(widgets);
}
void on_user_add_clicked(GtkWidget *,main_window *widgets){
yon_user_window *window = yon_user_window_new();
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_user_accept),dict);
gtk_widget_show(window->Window);
}
void on_user_edit_clicked(GtkWidget *,main_window *widgets){
yon_user_window *window = yon_user_window_new();
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootUsersList);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootUsersTree)),&model,&iter)){
int is_admin;
char *name;
gtk_tree_model_get(model,&iter,0,&is_admin,1,&name,-1);
window->prev_name = yon_char_new(name);
char *password = config(GRUB_PASSWORD(name));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->AdminCheck),is_admin);
gtk_entry_set_text(GTK_ENTRY(window->UsernameEntry),name);
if (password){
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
}
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_user_accept),dict);
gtk_widget_show(window->Window);
}
void on_user_remove_clicked(GtkWidget *,main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootUsersTree)),&model,&iter)){
char *name;
gtk_tree_model_get(model,&iter,1,&name,-1);
dialog_confirmation_data *data = new(dialog_confirmation_data);
data->data=NULL;
data->function=NULL;
data->action_text = USER_REMOVE_CONFIRM_LABEL(name);
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
yon_config_remove_by_key(GRUB_PASSWORD(name));
yon_interface_update(widgets);
}
}
}
yon_user_window *yon_user_window_new(){
yon_user_window *window = new(yon_user_window);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_user);
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel");
window->AdminCheck = yon_gtk_builder_get_widget(builder,"AdminCheck");
window->UsernameEntry = yon_gtk_builder_get_widget(builder,"UsernameEntry");
window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
window->PasswordButton = yon_gtk_builder_get_widget(builder,"PasswordButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
window->prev_name = NULL;
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->PasswordButton),"clicked",G_CALLBACK(yon_password_change),window->PasswordEntry);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->UsernameEntry));
return window;
}

@ -27,6 +27,51 @@ void on_save_done(main_window *, config_str output, int size){
}
void on_config_global_local_save(GtkWidget *, main_window *){
main_config.save_config=3;
yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL);
}
void on_config_local_save(GtkWidget *, main_window *){
main_config.save_config=1;
yon_save_proceed("system",YON_CONFIG_LOCAL,config_get_local_command,NULL);
}
void on_config_global_save(GtkWidget *, main_window *){
main_config.save_config=0;
yon_save_proceed("global",YON_CONFIG_GLOBAL,config_get_global_command,NULL);
}
void on_config_custom_save(GtkWidget *, main_window *){
main_config.save_config=1;
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,yon_config_get_custom_command("system"),NULL);
if (window){};
}
void on_config_local_load(GtkWidget *,main_window *widgets){
yon_load_proceed(YON_CONFIG_LOCAL);
yon_interface_update(widgets);
main_config.load_mode=1;
}
void on_config_global_load(GtkWidget *,main_window *widgets){
yon_load_proceed(YON_CONFIG_GLOBAL);
yon_interface_update(widgets);
main_config.load_mode=0;
}
void on_config_custom_load(GtkWidget *,main_window *widgets){
yon_load_proceed(YON_CONFIG_CUSTOM);
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
main_config.load_mode=3;
yon_interface_update(widgets);
}
void yon_load_proceed(YON_CONFIG_TYPE type){
yon_config_clean();
if (!yon_char_is_empty(config_get_default_command))
@ -62,7 +107,262 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
}
}
void yon_interface_update(main_window *){
void yon_interface_update(main_window *widgets){
gtk_list_store_clear(widgets->BootUsersList);
gtk_list_store_clear(widgets->BootRingtoneList);
gtk_list_store_clear(widgets->KernelParametersList);
gtk_list_store_clear(widgets->InputTerminalList);
gtk_list_store_clear(widgets->OutputTerminalList);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->BootUsersTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->BootRingtoneTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->KernelParametersTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->InputTerminalTree),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->OutputTerminalTree),NULL);
char *timeout = config(GRUB_TIMEOUT_parameter);
if (!yon_char_is_empty(timeout)){
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->BootSelectionTimerSpin),atof(timeout));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->BootSelectionTimerCheck),1);
} else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->BootSelectionTimerSpin),0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->BootSelectionTimerCheck),0);
}
{
GtkTreeIter iter;
int users_size;
int admins_size;
char *admins = config(GRUB_SUPERUSERS_parameter);
config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_search,&users_size);
config_str admins_parsed = yon_char_parse(admins,&admins_size,",");
for (int i=0;i<users_size;i++){
yon_char_remove_last_symbol(users[i],'\n');
char *password = yon_char_new(users[i]);
char *username = yon_char_divide_search(password,"=",-1);
free(yon_char_divide_search(username,"[",-1));
yon_char_remove_last_symbol(username,']');
gtk_list_store_append(widgets->BootUsersList,&iter);
gtk_list_store_set(widgets->BootUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,username),1,username,2,"******",-1);
}
}
{
char *ringtone = config(GRUB_PLAY_parameter);
gsize size;
config_str codes = yon_window_config_get_section("melodies",&size);
GtkTreeIter iter;
for (gsize i=0;i<size;i++){
char *cur_code = NULL;
char *name = yon_char_new(codes[(int)i]);
yon_window_config_get_parameter("melodies",name,&cur_code,YON_TYPE_STRING);
gtk_list_store_append(widgets->BootRingtoneList,&iter);
gtk_list_store_set(widgets->BootRingtoneList,&iter,0,!yon_char_is_empty(ringtone)&&!strcmp(ringtone,cur_code),1,name,2,cur_code,-1);
free(cur_code);
free(name);
}
if (size) yon_char_parsed_free(codes,size);
}
{
int size;
GtkTreeIter iter;
char *parameter = config(GRUB_CMDLINE_LINUX_parameter);
config_str parameters = yon_char_parse(parameter,&size," ");
for (int i=1;i<main_config.kernel_size;i++){
char *description = yon_char_new(main_config.kernel_parameters[i]);
char *cur_parameter = yon_char_divide_search(description,"|",-1);
gtk_list_store_append(widgets->KernelParametersList,&iter);
gtk_list_store_set(widgets->KernelParametersList,&iter,0,yon_char_parsed_check_exist(parameters,size,cur_parameter)>-1,1,cur_parameter,2,_(description),-1);
}
if (yon_char_is_empty(parameter)) parameter="";
gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),parameter);
}
{
int size;
GtkTreeIter iter;
char *parameter = config(GRUB_TERMINAL_INPUT_parameter);
config_str parameters = yon_char_parse(parameter,&size," ");
for (int i=1;i<main_config.input_size;i++){
char *description = yon_char_new(main_config.input_parameters[i]);
char *cur_parameter = yon_char_divide_search(description,"|",-1);
gtk_list_store_append(widgets->InputTerminalList,&iter);
gtk_list_store_set(widgets->InputTerminalList,&iter,0,yon_char_parsed_check_exist(parameters,size,cur_parameter)>-1,1,cur_parameter,2,_(description),-1);
}
if (yon_char_is_empty(parameter)) parameter="";
gtk_entry_set_text(GTK_ENTRY(widgets->InputTerminalEntry),parameter);
}
{
int size;
GtkTreeIter iter;
char *parameter = config(GRUB_TERMINAL_OUTPUT_parameter);
config_str parameters = yon_char_parse(parameter,&size," ");
for (int i=1;i<main_config.output_size;i++){
char *description = yon_char_new(main_config.output_parameters[i]);
char *cur_parameter = yon_char_divide_search(description,"|",-1);
gtk_list_store_append(widgets->OutputTerminalList,&iter);
gtk_list_store_set(widgets->OutputTerminalList,&iter,0,yon_char_parsed_check_exist(parameters,size,cur_parameter)>-1,1,cur_parameter,2,_(description),-1);
}
if (yon_char_is_empty(parameter)) parameter="";
gtk_entry_set_text(GTK_ENTRY(widgets->OutputTerminalEntry),parameter);
}
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->BootUsersTree),GTK_TREE_MODEL(widgets->BootUsersList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->BootRingtoneTree),GTK_TREE_MODEL(widgets->BootRingtoneList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->KernelParametersTree),GTK_TREE_MODEL(widgets->KernelParametersList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->InputTerminalTree),GTK_TREE_MODEL(widgets->InputTerminalList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->OutputTerminalTree),GTK_TREE_MODEL(widgets->OutputTerminalList));
}
void on_kernel_parameter_switch(GtkCellRenderer *, char *path, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->KernelParametersList);
if (gtk_tree_model_get_iter_from_string(model,&iter,path)){
int status;
char *parameter;
gtk_tree_model_get(model,&iter,0,&status,1,&parameter,-1);
gtk_list_store_set(widgets->KernelParametersList,&iter,0,!status,-1);
char *config_param = config(GRUB_CMDLINE_LINUX_parameter);
if (!yon_char_is_empty(config_param)){
int size;
config_str parsed = yon_char_parse(config_param,&size," ");
switch (status){
case 0:{
int pos = yon_char_parsed_check_exist(parsed,size,parameter);
if (pos == -1){
yon_char_parsed_add_or_create_if_exists(parsed,&size,parameter);
char *final = yon_char_parsed_to_string(parsed,size," ");
yon_config_register(GRUB_CMDLINE_LINUX_parameter,GRUB_CMDLINE_LINUX_command,final);
gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),final);
free(final);
}
}break;
case 1:{
int pos = yon_char_parsed_check_exist(parsed,size,parameter);
if (pos>-1){
if (size>1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
char *final = yon_char_parsed_to_string(parsed,size," ");
yon_config_register(GRUB_CMDLINE_LINUX_parameter,GRUB_CMDLINE_LINUX_command,final);
gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),final);
free(final);
} else {
gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),"");
yon_config_remove_by_key(GRUB_CMDLINE_LINUX_parameter);
}
}
} break;
}
} else if (status==0) {
yon_config_register(GRUB_CMDLINE_LINUX_parameter,GRUB_CMDLINE_LINUX_command,parameter);
gtk_entry_set_text(GTK_ENTRY(widgets->CommandLineParametersEntry),parameter);
}
}
}
void on_input_option_switch(GtkCellRenderer *,char *path, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->InputTerminalList);
if (gtk_tree_model_get_iter_from_string(model,&iter,path)){
int status;
char *parameter;
gtk_tree_model_get(model,&iter,0,&status,1,&parameter,-1);
gtk_list_store_set(widgets->InputTerminalList,&iter,0,!status,-1);
char *config_param = config(GRUB_TERMINAL_INPUT_parameter);
if (!yon_char_is_empty(config_param)){
int size;
config_str parsed = yon_char_parse(config_param,&size," ");
switch (status){
case 0:{
int pos = yon_char_parsed_check_exist(parsed,size,parameter);
if (pos == -1){
yon_char_parsed_add_or_create_if_exists(parsed,&size,parameter);
char *final = yon_char_parsed_to_string(parsed,size," ");
yon_config_register(GRUB_TERMINAL_INPUT_parameter,GRUB_TERMINAL_INPUT_command,final);
gtk_entry_set_text(GTK_ENTRY(widgets->InputTerminalEntry),final);
free(final);
}
}break;
case 1:{
int pos = yon_char_parsed_check_exist(parsed,size,parameter);
if (pos>-1){
if (size>1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
char *final = yon_char_parsed_to_string(parsed,size," ");
yon_config_register(GRUB_TERMINAL_INPUT_parameter,GRUB_TERMINAL_INPUT_command,final);
gtk_entry_set_text(GTK_ENTRY(widgets->InputTerminalEntry),final);
free(final);
} else {
gtk_entry_set_text(GTK_ENTRY(widgets->InputTerminalEntry),"");
yon_config_remove_by_key(GRUB_TERMINAL_INPUT_parameter);
}
}
} break;
}
} else if (status==0) {
yon_config_register(GRUB_TERMINAL_INPUT_parameter,GRUB_TERMINAL_INPUT_command,parameter);
gtk_entry_set_text(GTK_ENTRY(widgets->InputTerminalEntry),parameter);
}
}
}
void on_output_option_switch(GtkCellRenderer *,char *path, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->OutputTerminalList);
if (gtk_tree_model_get_iter_from_string(model,&iter,path)){
int status;
char *parameter;
gtk_tree_model_get(model,&iter,0,&status,1,&parameter,-1);
gtk_list_store_set(widgets->OutputTerminalList,&iter,0,!status,-1);
char *config_param = config(GRUB_TERMINAL_OUTPUT_parameter);
if (!yon_char_is_empty(config_param)){
int size;
config_str parsed = yon_char_parse(config_param,&size," ");
switch (status){
case 0:{
int pos = yon_char_parsed_check_exist(parsed,size,parameter);
if (pos == -1){
yon_char_parsed_add_or_create_if_exists(parsed,&size,parameter);
char *final = yon_char_parsed_to_string(parsed,size," ");
yon_config_register(GRUB_TERMINAL_OUTPUT_parameter,GRUB_TERMINAL_OUTPUT_command,final);
gtk_entry_set_text(GTK_ENTRY(widgets->OutputTerminalEntry),final);
free(final);
}
}break;
case 1:{
int pos = yon_char_parsed_check_exist(parsed,size,parameter);
if (pos>-1){
if (size>1){
parsed = yon_char_parsed_rip(parsed,&size,pos);
char *final = yon_char_parsed_to_string(parsed,size," ");
yon_config_register(GRUB_TERMINAL_OUTPUT_parameter,GRUB_TERMINAL_OUTPUT_command,final);
gtk_entry_set_text(GTK_ENTRY(widgets->OutputTerminalEntry),final);
free(final);
} else {
gtk_entry_set_text(GTK_ENTRY(widgets->OutputTerminalEntry),"");
yon_config_remove_by_key(GRUB_TERMINAL_OUTPUT_parameter);
}
}
} break;
}
} else if (status==0) {
yon_config_register(GRUB_TERMINAL_OUTPUT_parameter,GRUB_TERMINAL_OUTPUT_command,parameter);
gtk_entry_set_text(GTK_ENTRY(widgets->OutputTerminalEntry),parameter);
}
}
}
// standard functions
@ -84,6 +384,23 @@ void config_init(){
main_config.lock_save_global=0;
main_config.lock_save_local=0;
main_config.load_mode=1;
main_config.password_min_length=yon_password_get_min_len();
main_config.kernel_parameters = yon_resource_open_file(kernel_options_path,&main_config.kernel_size);
main_config.input_parameters = yon_resource_open_file(terminal_input_path,&main_config.input_size);
main_config.output_parameters = yon_resource_open_file(terminal_output_path,&main_config.output_size);
}
void on_parameter_changed(GtkWidget *self,main_window *widgets){
if (self == widgets->BootSelectionTimerSpin){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->BootSelectionTimerCheck))){
glong val = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->BootSelectionTimerSpin));
if (val){
yon_config_register(GRUB_TIMEOUT_parameter,GRUB_TIMEOUT_command,yon_char_from_long(val));
return;
}
}
yon_config_remove_by_key(GRUB_TIMEOUT_parameter);
} //else
}
/**yon_main_window_complete(main_window *widgets)
@ -98,49 +415,72 @@ void yon_main_window_complete(main_window *widgets){
gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0);
// Custom widgets configuration
{
widgets->BootDisplayMode = yon_gtk_builder_get_widget(builder,"BootDisplayMode");
widgets->BootRingtoneAddButton = yon_gtk_builder_get_widget(builder,"BootRingtoneAddButton");
widgets->BootRingtoneEditButton = yon_gtk_builder_get_widget(builder,"BootRingtoneEditButton");
widgets->BootRingtoneRemoveButton = yon_gtk_builder_get_widget(builder,"BootRingtoneRemoveButton");
widgets->BootRingtoneTree = yon_gtk_builder_get_widget(builder,"BootRingtoneTree");
widgets->BootSelectionTimerCheck = yon_gtk_builder_get_widget(builder,"BootSelectionTimerCheck");
widgets->BootSelectionTimerSpin = yon_gtk_builder_get_widget(builder,"BootSelectionTimerSpin");
widgets->BootUsersAddButton = yon_gtk_builder_get_widget(builder,"BootUsersAddButton");
widgets->BootUsersEditButton = yon_gtk_builder_get_widget(builder,"BootUsersEditButton");
widgets->BootUsersRemoveButton = yon_gtk_builder_get_widget(builder,"BootUsersRemoveButton");
widgets->BootUsersTree = yon_gtk_builder_get_widget(builder,"BootUsersTree");
widgets->BoxMain = yon_gtk_builder_get_widget(builder,"BoxMain");
widgets->boxWidgetAll = yon_gtk_builder_get_widget(builder,"boxWidgetAll");
widgets->btnAbout = yon_gtk_builder_get_widget(builder,"btnAbout");
widgets->btnHelp = yon_gtk_builder_get_widget(builder,"btnHelp");
widgets->btnLoadGlob = yon_gtk_builder_get_widget(builder,"btnLoadGlob");
widgets->btnLoadLocal = yon_gtk_builder_get_widget(builder,"btnLoadLocal");
widgets->btnOpenMenuOS1 = yon_gtk_builder_get_widget(builder,"btnOpenMenuOS1");
widgets->btnSaveGlob = yon_gtk_builder_get_widget(builder,"btnSaveGlob");
widgets->btnSaveLocal = yon_gtk_builder_get_widget(builder,"btnSaveLocal");
widgets->btnSaveLocalGlob = yon_gtk_builder_get_widget(builder,"btnSaveLocalGlob");
widgets->chbLoadVariantSelectionTimer = yon_gtk_builder_get_widget(builder,"chbLoadVariantSelectionTimer");
widgets->cmbDownloadMode = yon_gtk_builder_get_widget(builder,"cmbDownloadMode");
widgets->CommandLineParametersEntry = yon_gtk_builder_get_widget(builder,"CommandLineParametersEntry");
widgets->entrListOS = yon_gtk_builder_get_widget(builder,"entrListOS");
widgets->InputTerminalEntry = yon_gtk_builder_get_widget(builder,"InputTerminalEntry");
widgets->InputTerminalTree = yon_gtk_builder_get_widget(builder,"InputTerminalTree");
widgets->KernelParametersTree = yon_gtk_builder_get_widget(builder,"KernelParametersTree");
widgets->lblInfoDefaultDonw = yon_gtk_builder_get_widget(builder,"lblInfoDefaultDonw");
widgets->lblInfoSeconds = yon_gtk_builder_get_widget(builder,"lblInfoSeconds");
widgets->list_os = yon_gtk_builder_get_widget(builder,"list_os");
widgets->menu = yon_gtk_builder_get_widget(builder,"menu");
widgets->menu1 = yon_gtk_builder_get_widget(builder,"menu1");
widgets->menu2 = yon_gtk_builder_get_widget(builder,"menu2");
widgets->MenuButton = yon_gtk_builder_get_widget(builder,"MenuButton");
widgets->MenuOverlay = yon_gtk_builder_get_widget(builder,"MenuOverlay");
widgets->OSDefaultEntry = yon_gtk_builder_get_widget(builder,"OSDefaultEntry");
widgets->OutputTerminalEntry = yon_gtk_builder_get_widget(builder,"OutputTerminalEntry");
widgets->OutputTerminalTree = yon_gtk_builder_get_widget(builder,"OutputTerminalTree");
widgets->overMenuOS = yon_gtk_builder_get_widget(builder,"overMenuOS");
widgets->spbSecond = yon_gtk_builder_get_widget(builder,"spbSecond");
widgets->KernelChooseCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"KernelChooseCell"));
widgets->InputChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"InputChosenCell"));
widgets->OutputChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"OutputChosenCell"));
widgets->BootUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootUsersList"));
widgets->BootRingtoneList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootRingtoneList"));
widgets->KernelParametersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelParametersList"));
widgets->InputTerminalList = GTK_LIST_STORE(gtk_builder_get_object(builder,"InputTerminalList"));
widgets->OutputTerminalList = GTK_LIST_STORE(gtk_builder_get_object(builder,"OutputTerminalList"));
}
g_signal_connect(G_OBJECT(widgets->BootUsersAddButton),"clicked",G_CALLBACK(on_user_add_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BootUsersEditButton),"clicked",G_CALLBACK(on_user_edit_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BootUsersRemoveButton),"clicked",G_CALLBACK(on_user_remove_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BootRingtoneAddButton),"clicked",G_CALLBACK(on_ringtone_add_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BootRingtoneEditButton),"clicked",G_CALLBACK(on_ringtone_edit_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BootRingtoneRemoveButton),"clicked",G_CALLBACK(on_ringtone_remove_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->KernelChooseCell),"toggled",G_CALLBACK(on_kernel_parameter_switch),widgets);
g_signal_connect(G_OBJECT(widgets->InputChosenCell),"toggled",G_CALLBACK(on_input_option_switch),widgets);
g_signal_connect(G_OBJECT(widgets->OutputChosenCell),"toggled",G_CALLBACK(on_output_option_switch),widgets);
g_signal_connect(G_OBJECT(widgets->BootSelectionTimerCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->BootSelectionTimerSpin);
g_signal_connect(G_OBJECT(widgets->BootSelectionTimerSpin),"changed",G_CALLBACK(on_parameter_changed),widgets);
g_signal_connect(G_OBJECT(widgets->BootDisplayMode),"changed",G_CALLBACK(on_parameter_changed),widgets);
g_signal_connect(G_OBJECT(widgets->CommandLineParametersEntry),"changed",G_CALLBACK(on_parameter_changed),widgets);
g_signal_connect(G_OBJECT(widgets->InputTerminalEntry),"changed",G_CALLBACK(on_parameter_changed),widgets);
g_signal_connect(G_OBJECT(widgets->OutputTerminalEntry),"changed",G_CALLBACK(on_parameter_changed),widgets);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_global_local_save),NULL);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),NULL);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),NULL);
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),NULL);
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
yon_save_window_set_postsave_function(on_save_done,widgets);
yon_load_proceed(YON_CONFIG_LOCAL);
yon_interface_update(widgets);
}
int main(int argc, char *argv[]){
local=setlocale(LC_ALL, "");
setlocale(LC_ALL, "");
textdomain (LocaleName);
config_init();

@ -20,85 +20,176 @@
#define _(String) gettext(String)
#define glade_path "/com/ublinux/ui/ubl-settings-bootloader.glade"
#define glade_path_password "/com/ublinux/ui/ubl-settings-bootloader-password.glade"
#define glade_path_user "/com/ublinux/ui/ubl-settings-bootloader-user.glade"
#define glade_path_ringtone "/com/ublinux/ui/ubl-settings-bootloader-ringtone.glade"
#define banner_path "/com/ublinux/images/ubl-settings-bootloader-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-bootloader.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-bootloader"
#define kernel_options_path "resource:///com/ublinux/csv/grub-parameters.csv"
#define terminal_input_path "resource:///com/ublinux/csv/grub-terminal-input.csv"
#define terminal_output_path "resource:///com/ublinux/csv/grub-terminal-output.csv"
#define LocaleName "ubl-settings-bootloader"
#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 check_is_password_hash(password) system(yon_char_unite("/lib/ublinux/functions is_hash_password '", password,"'",NULL))
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get boot GRUB_SUPERUSERS GRUB_TIMEOUT GRUB_DEFAULT GRUB_BOOT_SILENT GRUB_PASSWORD[*] GRUB_CMDLINE_LINUX GRUB_TERMINAL_INPUT GRUB_TERMINAL_OUTPUT GRUB_PLAY",NULL)
#define config_get_local_command "ubconfig --source system get boot GRUB_SUPERUSERS GRUB_TIMEOUT GRUB_DEFAULT GRUB_BOOT_SILENT GRUB_PASSWORD[*] GRUB_CMDLINE_LINUX GRUB_TERMINAL_INPUT GRUB_TERMINAL_OUTPUT GRUB_PLAY"
#define config_get_global_command "ubconfig --source global get boot GRUB_SUPERUSERS GRUB_TIMEOUT GRUB_DEFAULT GRUB_BOOT_SILENT GRUB_PASSWORD[*] GRUB_CMDLINE_LINUX GRUB_TERMINAL_INPUT GRUB_TERMINAL_OUTPUT GRUB_PLAY"
#define config_get_default_command ""
#define config_get_global_only_parameters ""
#define config_get_global_only_parameters "ubconfig --source global get boot GRUB_USER"
#define config_get_local_only_parameters ""
#define GRUB_TIMEOUT_parameter "GRUB_TIMEOUT"
#define GRUB_TIMEOUT_command "ubconfig --source system get boot GRUB_TIMEOUT"
#define GRUB_DEFAULT_parameter "GRUB_DEFAULT"
#define GRUB_DEFAULT_command "ubconfig --source system get boot GRUB_DEFAULT"
#define GRUB_BOOT_SILENT_parameter "GRUB_BOOT_SILENT"
#define GRUB_BOOT_SILENT_command "ubconfig --source system get boot GRUB_BOOT_SILENT"
#define GRUB_PASSWORD_parameter "GRUB_PASSWORD"
#define GRUB_PASSWORD_search "GRUB_PASSWORD["
#define GRUB_PASSWORD(target) yon_char_unite("GRUB_PASSWORD[",target,"]",NULL)
#define GRUB_PASSWORD_command "ubconfig --source system get boot GRUB_PASSWORD[*]"
#define GRUB_CMDLINE_LINUX_parameter "GRUB_CMDLINE_LINUX"
#define GRUB_CMDLINE_LINUX_command "ubconfig --source system get boot GRUB_CMDLINE_LINUX"
#define GRUB_TERMINAL_INPUT_parameter "GRUB_TERMINAL_INPUT"
#define GRUB_TERMINAL_INPUT_command "ubconfig --source system get boot GRUB_TERMINAL_INPUT"
#define GRUB_TERMINAL_OUTPUT_parameter "GRUB_TERMINAL_OUTPUT"
#define GRUB_TERMINAL_OUTPUT_command "ubconfig --source system get boot GRUB_TERMINAL_OUTPUT"
#define GRUB_USER_parameter "GRUB_USER"
#define GRUB_USER_command "ubconfig --source system get boot GRUB_USER"
#define GRUB_SUPERUSERS_parameter "GRUB_SUPERUSERS"
#define GRUB_SUPERUSERS_command "ubconfig --source system get boot GRUB_SUPERUSERS"
#define GRUB_PLAY_parameter "GRUB_PLAY"
#define GRUB_PLAY_command "ubconfig --source system get boot GRUB_PLAY"
typedef char* string;
string version_application;
char *local;
__attribute__((unused)) static \
string version_application;
typedef struct {
template_config_fields
int save_config;
config_str launch_arguments;
int launch_size;
int password_min_length;
int kernel_size;
config_str kernel_parameters;
int input_size;
config_str input_parameters;
int output_size;
config_str output_parameters;
} config;
extern config main_config;
typedef struct {
template_window_fields
GtkWidget *BootDisplayMode;
GtkWidget *BootRingtoneAddButton;
GtkWidget *BootRingtoneEditButton;
GtkWidget *BootRingtoneRemoveButton;
GtkWidget *BootRingtoneTree;
GtkWidget *BootSelectionTimerCheck;
GtkWidget *BootSelectionTimerSpin;
GtkWidget *BootUsersAddButton;
GtkWidget *BootUsersEditButton;
GtkWidget *BootUsersRemoveButton;
GtkWidget *BootUsersTree;
GtkWidget *BoxMain;
GtkWidget *boxWidgetAll;
GtkWidget *btnAbout;
GtkWidget *btnHelp;
GtkWidget *btnLoadGlob;
GtkWidget *btnLoadLocal;
GtkWidget *btnOpenMenuOS1;
GtkWidget *btnSaveGlob;
GtkWidget *btnSaveLocal;
GtkWidget *btnSaveLocalGlob;
GtkWidget *chbLoadVariantSelectionTimer;
GtkWidget *cmbDownloadMode;
GtkWidget *CommandLineParametersEntry;
GtkWidget *entrListOS;
GtkWidget *InputTerminalEntry;
GtkWidget *InputTerminalTree;
GtkWidget *KernelParametersTree;
GtkWidget *lblInfoDefaultDonw;
GtkWidget *lblInfoSeconds;
GtkWidget *list_os;
GtkWidget *menu;
GtkWidget *menu1;
GtkWidget *menu2;
GtkWidget *MenuButton;
GtkWidget *MenuOverlay;
GtkWidget *OSDefaultEntry;
GtkWidget *OutputTerminalEntry;
GtkWidget *OutputTerminalTree;
GtkWidget *overMenuOS;
GtkWidget *spbSecond;
GtkCellRenderer *KernelChooseCell;
GtkCellRenderer *OutputChosenCell;
GtkCellRenderer *InputChosenCell;
GtkListStore *BootUsersList;
GtkListStore *BootRingtoneList;
GtkListStore *KernelParametersList;
GtkListStore *InputTerminalList;
GtkListStore *OutputTerminalList;
} main_window;
typedef struct {
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *TitleLabel;
GtkWidget *UserCancelButton;
GtkWidget *UserOkButton;
GtkWidget *PasswordEntry;
GtkWidget *RepeatPasswordEntry;
GtkWidget *PasswordHashEntry;
GtkWidget *HashBox;
GtkWidget *PasswordBox;
GtkWidget *NoEncriptionCheck;
} yon_password_window;
typedef struct {
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *TitleLabel;
GtkWidget *AdminCheck;
GtkWidget *UsernameEntry;
GtkWidget *PasswordEntry;
GtkWidget *PasswordButton;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
char *prev_name;
} yon_user_window;
typedef struct {
GtkWidget *Window;
GtkWidget *HeaderLabel;
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *TitleLabel;
GtkWidget *AlwaysOpenCheck;
GtkWidget *ChooseCheck;
GtkWidget *NameEntry;
GtkWidget *CodeEntry;
GtkWidget *CloseButton;
GtkWidget *AcceptButton;
} documentation_confirmation_window;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
char *prev_name;
} yon_ringtone_window;
//main
void on_save_done(main_window *, config_str output, int size);
void on_config_global_local_save(GtkWidget *, main_window *);
void on_config_local_save(GtkWidget *, main_window *);
void on_config_global_save(GtkWidget *, main_window *);
void on_config_custom_save(GtkWidget *, main_window *);
void on_config_local_load(GtkWidget *,main_window *);
void on_config_global_load(GtkWidget *,main_window *);
void on_config_custom_load(GtkWidget *,main_window *);
void yon_load_proceed(YON_CONFIG_TYPE type);
@ -106,6 +197,32 @@ void yon_interface_update(main_window *);
void on_save_done(main_window *widgets, config_str output, int size);
void on_kernel_parameter_switch(GtkCellRenderer *, char *path, main_window *widgets);
void on_input_option_switch(GtkCellRenderer *,char *path, main_window *widgets);
void on_output_option_switch(GtkCellRenderer *,char *path, main_window *widgets);
void config_init();
void yon_main_window_complete(main_window *widgets);
void on_parameter_changed(GtkWidget *self,main_window *widgets);
void yon_main_window_complete(main_window *widgets);
//password
void yon_password_change(GtkWidget *, GtkEntry *entry);
void on_password_accept(GtkWidget *self, dictionary *dict);
yon_password_window *yon_ubl_settings_usergroups_password_new();
int yon_check_password_blocked(char *password);
//user
void on_user_accept(GtkWidget *,dictionary *dict);
void on_user_add_clicked(GtkWidget *,main_window *widgets);
void on_user_edit_clicked(GtkWidget *,main_window *widgets);
void on_user_remove_clicked(GtkWidget *,main_window *widgets);
yon_user_window *yon_user_window_new();
//ringtone
void on_ringtone_accept(GtkWidget *,dictionary *dict);
void on_ringtone_add_clicked(GtkWidget *,main_window *widgets);
void on_ringtone_edit_clicked(GtkWidget *,main_window *widgets);
void on_ringtone_remove_clicked(GtkWidget *,main_window *widgets);
yon_ringtone_window *yon_ringtone_window_new();

@ -1,3 +1,57 @@
#define TITLE_LABEL _("ubl-settings-bootloader")
#define TITLE_INFO_LABEL _("TEMPLATE configuration")
#define TITLE_LABEL _("System boot")
#define TITLE_INFO_LABEL _("Configuring system boot parameters")
#define BOOT_MENU_LABEL _("Boot menu")
#define BOOT_SELECTION_LABEL _("Boot selection menu timer:")
#define SECONDS_LABEL _("seconds")
#define DEFAULT_OS_LABEL _("Default OS:")
#define LOAD_DISPLAY_MODE_LABEL _("Load screen display mode:")
#define BOOT_USERS_LABEL _("Boot Menu Users")
#define STARTUP_RINGTONE_LABEL _("Startup ringtone")
#define KERNEL_PARAMETERS_LABEL _("Parameters passed to the kernel")
#define CMD_PARAMETERS_LABEL _("Command line parameters:")
#define INPUT_TERMINAL_LABEL _("Input terminal")
#define OUTPUT_TERMINAL_LABEL _("Output terminal")
#define ADMINISTRRATOR_LABEL _("Administrator")
#define NAME_LABEL _("Name")
#define USER_LABEL _("User")
#define PASSWORD_LABEL _("Password")
#define MELODY_CODE_LABEL _("Melody code")
#define OPTION_LABEL _("Option")
#define DESCRIPTION_LABEL _("Description")
#define ADD_LABEL _("Add")
#define EDIT_LABEL _("Edit")
#define REMOVE_LABEL _("Remove")
#define ACCEPT_LABEL _("Accept")
#define CANCE_LABEL _("Cancel")
#define PASSWORD_TITLE_LABEL _("Password input")
#define PASSWORD_REPEAT_LABEL _("Repeat password:")
#define PASSWORD_HASH_LABEL _("Password hash:")
#define PASSWORD_NO_ENCRYPT_LABEL _("Do not encrypt password")
#define RESTRICTED_SYMBOLS_LABEL _("Password contain special symbols")
#define EMPTY_IMPORTANT_LABEL _("Empty important field")
#define PASSWORD_MISMATCH_LABEL _("Password mismatch")
#define PASSWORD_TEXT_LABEL _("Password:")
#define PASSWORD_REPEAT_LABEL _("Repeat password:")
#define PASSWORD_DO_NOT_ENCRYPT_LABEL _("Do not encrypt password")
#define PASSWORD_HASH_LABEL _("Password hash:")
#define PASSWORD_SHORT_LABEL(min_size_char) yon_char_unite(_("Password must be at least")," ", min_size_char," ",_("characters"))
#define USER_ADD_TITLE_LABEL _("Add user")
#define USER_EDIT_TITLE_LABEL(target) yon_char_unite(_("Edit user")," - ", target,NULL)
#define ADMINISTRATOR_LABEL _("Administrator")
#define USER_NAME_LABEL _("User name:")
#define USER_PASSWORD_LABEL _("User password:")
#define USER_REMOVE_CONFIRM_LABEL(target) yon_char_unite(_("Are you sure you want to remove user")," ",target," ",_("from boot menu users"),"?",NULL)
#define RINGTONE_ADD_TITLE_LABEL _("Add ringtone")
#define RINGTONE_EDIT_TITLE_LABEL(target) yon_char_unite(_("Edit ringtone")," - ", target,NULL)
#define CHOSEN_LABEL _("Chosen")
#define NAME_TEXT_LABEL _("Name:")
#define MELODY_CODE_TEXT_LABEL _("Melody code:")
#define RINGTONE_REMOVE_CONFIRM_LABEL(target) yon_char_unite(_("Are you sure you want to remove ringtone")," ",target,"?",NULL)

@ -0,0 +1,290 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object>
<object class="GtkWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">250</property>
<property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="default-width">450</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="PasswordBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Password:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="PasswordEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
<property name="truncate-multiline">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
<property name="placeholder-text" translatable="yes">********</property>
<property name="input-purpose">password</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">True</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="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Repeat password:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="RepeatPasswordEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
<property name="truncate-multiline">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
<property name="placeholder-text" translatable="yes">********</property>
<property name="input-purpose">password</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">True</property>
<property name="fill">True</property>
<property name="position">2</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" id="HashBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="NoEncriptionCheck">
<property name="label" translatable="yes">Do not encrypt password</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</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="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Password hash:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="PasswordHashEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</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">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="userTitleNameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Password input</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkButton" id="UserCancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
<style>
<class name="button"/>
<class name="marginright"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="UserOkButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image5</property>
<style>
<class name="button"/>
<class name="marginright"/>
</style>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label3"/>
<widget name="label2"/>
</widgets>
</object>
</interface>

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
<object class="GtkWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">250</property>
<property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="default-width">450</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="ChooseCheck">
<property name="label" translatable="yes">Chosen</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="NameEntry">
<property name="visible">True</property>
<property name="can-focus">True</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">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Melody code:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="CodeEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="invisible-char">*</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">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</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>
<child type="title">
<object class="GtkLabel" id="TitleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Add ringtone</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
<style>
<class name="button"/>
<class name="marginright"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image5</property>
<style>
<class name="button"/>
<class name="marginright"/>
</style>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
</widgets>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object>
</interface>

@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">document-edit-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object>
<object class="GtkWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">250</property>
<property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="default-width">450</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="AdminCheck">
<property name="label" translatable="yes">Administrator</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">User name:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="UsernameEntry">
<property name="visible">True</property>
<property name="can-focus">True</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">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">User password:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="PasswordEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="PasswordButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</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">False</property>
<property name="fill">True</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>
<child type="title">
<object class="GtkLabel" id="TitleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Add user</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
<style>
<class name="button"/>
<class name="marginright"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image5</property>
<style>
<class name="button"/>
<class name="marginright"/>
</style>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
</widgets>
</object>
</interface>

@ -1,8 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-bootloader">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-bootloader.css -->
<object class="GtkListStore" id="BootRingtoneList">
<columns>
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name Name -->
<column type="gchararray"/>
<!-- column-name Code -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="BootUsersList">
<columns>
<!-- column-name IsAdmin -->
<column type="gboolean"/>
<!-- column-name Username -->
<column type="gchararray"/>
<!-- column-name PasswordRender -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="InputTerminalList">
<columns>
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name Option -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="KernelParametersList">
<columns>
<!-- column-name Active -->
<column type="gboolean"/>
<!-- column-name Parameter -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="OutputTerminalList">
<columns>
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name Option -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">60</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object>
<object class="GtkBox" id="BoxMain">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -25,7 +85,7 @@
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="boxWidgetAll">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
@ -44,7 +104,7 @@
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkOverlay" id="overMenuOS">
<object class="GtkOverlay" id="MenuOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
@ -60,7 +120,7 @@
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="chbLoadVariantSelectionTimer">
<object class="GtkCheckButton" id="BootSelectionTimerCheck">
<property name="label" translatable="yes">Boot selection menu timer:</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
@ -77,9 +137,11 @@
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spbSecond">
<object class="GtkSpinButton" id="BootSelectionTimerSpin">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="adjustment">adjustment1</property>
</object>
<packing>
<property name="expand">False</property>
@ -88,10 +150,10 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="lblInfoSeconds">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Seconds</property>
<property name="label" translatable="yes">seconds</property>
</object>
<packing>
<property name="expand">False</property>
@ -112,7 +174,7 @@
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="lblInfoDefaultDonw">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">start</property>
@ -127,7 +189,7 @@
</packing>
</child>
<child>
<object class="GtkEntry" id="entrListOS">
<object class="GtkEntry" id="OSDefaultEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
@ -138,7 +200,7 @@
</packing>
</child>
<child>
<object class="GtkButton" id="btnOpenMenuOS1">
<object class="GtkButton" id="MenuButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
@ -146,7 +208,7 @@
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">image-loading-symbolic</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.settings-symbolic</property>
</object>
</child>
</object>
@ -184,7 +246,7 @@
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="cmbDownloadMode">
<object class="GtkComboBoxText" id="BootDisplayMode">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
@ -234,6 +296,43 @@
<object class="GtkTreeView" id="BootUsersTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">BootUsersList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Administrator</property>
<child>
<object class="GtkCellRendererToggle"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">User</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
@ -264,16 +363,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">value-increase-symbolic</property>
<style>
<class name="thin"/>
</style>
</object>
</child>
<property name="tooltip-text" translatable="yes">Add</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
@ -289,6 +380,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Edit</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@ -314,6 +406,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Remove</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@ -389,6 +482,45 @@
<object class="GtkTreeView" id="BootRingtoneTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">BootRingtoneList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Chosen</property>
<child>
<object class="GtkCellRendererToggle">
<property name="radio">True</property>
</object>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Name</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Melody code</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
@ -412,13 +544,8 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">value-increase-symbolic</property>
</object>
</child>
<property name="tooltip-text" translatable="yes">Add</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
@ -434,6 +561,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Edit</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@ -456,6 +584,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Remove</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@ -544,7 +673,7 @@
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="height-request">141</property>
<property name="height-request">145</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
@ -552,6 +681,42 @@
<object class="GtkTreeView" id="KernelParametersTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">KernelParametersList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle" id="KernelChooseCell"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Option</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
@ -644,8 +809,45 @@
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="InputTerminalTree">
<property name="height-request">145</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">InputTerminalList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle" id="InputChosenCell"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Option</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
@ -742,8 +944,45 @@
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="OutputTerminalTree">
<property name="height-request">145</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">OutputTerminalList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle" id="OutputChosenCell"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Option</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
@ -832,99 +1071,9 @@
</packing>
</child>
</object>
<object class="GtkMenu" id="list_os">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<object class="GtkMenu" id="menu">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="take-focus">False</property>
<property name="reserve-toggle-size">False</property>
<property name="rect-anchor-dy">4</property>
<child>
<object class="GtkMenuItem" id="btnLoadGlob">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Load global configuration</property>
<style>
<class name="menuitemtop"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnLoadLocal">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Load local configuration</property>
<style>
<class name="menuitembottom"/>
</style>
</object>
</child>
</object>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="take-focus">False</property>
<property name="reserve-toggle-size">False</property>
<property name="rect-anchor-dy">4</property>
<child>
<object class="GtkMenuItem" id="btnHelp">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Help</property>
<style>
<class name="menuitemtop"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnAbout">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">About</property>
<style>
<class name="menuitembottom"/>
</style>
</object>
</child>
</object>
<object class="GtkMenu" id="menu2">
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="take-focus">False</property>
<property name="reserve-toggle-size">False</property>
<property name="rect-anchor-dy">4</property>
<child>
<object class="GtkMenuItem" id="btnSaveLocalGlob">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Save to global and local configuration</property>
<style>
<class name="menuitemtop"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnSaveGlob">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Save global configuration</property>
<style>
<class name="menuitemmiddle"/>
</style>
</object>
</child>
<child>
<object class="GtkMenuItem" id="btnSaveLocal">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Save local configuration</property>
<style>
<class name="menuitembottom"/>
</style>
</object>
</child>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object>
</interface>

@ -17,695 +17,190 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Edit"
msgstr ""
msgid "Adding"
msgstr ""
msgid "Selecting the loading mode option"
msgstr ""
msgid "Add user"
msgstr ""
msgid "Delete user"
msgstr ""
msgid "Add melody"
msgstr ""
msgid "No loading animation, full log"
msgstr ""
msgid "Lack of loading animation with the output of the abbreviated log"
#: source/ubl-strings.h:2
msgid "System boot"
msgstr ""
msgid "Delete melody"
msgstr "Удалить мелодию"
msgid "Melody added"
#: source/ubl-strings.h:3
msgid "Configuring system boot parameters"
msgstr ""
msgid "User added"
#: source/ubl-strings.h:5
msgid "Boot menu"
msgstr ""
msgid "Melody deleted"
#: source/ubl-strings.h:6
msgid "Boot selection menu timer:"
msgstr ""
msgid "User deleted"
#: source/ubl-strings.h:7
msgid "seconds"
msgstr ""
msgid "Enter the name and code of the tune in the \"Ringtone at startup\" field"
#: source/ubl-strings.h:8
msgid "Default OS:"
msgstr ""
msgid "Enter name and password in the \"Boot Menu Users\" field"
#: source/ubl-strings.h:9
msgid "Load screen display mode:"
msgstr ""
#: source/ubl-strings.h:10
msgid "Boot Menu Users"
msgstr ""
msgid "Title"
msgstr ""
msgid ""
msgstr ""
msgid "Password"
msgstr ""
msgid "Administrator"
msgstr ""
msgid "Select"
msgstr ""
msgid "Melody code"
#: source/ubl-strings.h:11
msgid "Startup ringtone"
msgstr ""
msgid "Ringtone at startup"
msgstr ""
#: source/ubl-settings-bootloader.h:53 source/ubl-settings-bootloader.h:52
#: source/ubl-settings-bootloader.cc:431 source/ubl-settings-bootloader.cc:301
msgid "About"
msgstr ""
#: source/ubl-settings-bootloader.h:44 source/ubl-settings-bootloader.h:43
msgid "About System boot"
msgstr ""
#: source/ubl-settings-bootloader.h:92 source/ubl-settings-bootloader.h:91
#: source/ubl-settings-bootloader.cc:337 source/ubl-settings-bootloader.cc:199
msgid "Active"
msgstr ""
#: source/ubl-settings-bootloader.h:63 source/ubl-settings-bootloader.h:62
msgid "Always redirect"
msgstr ""
#: source/ubl-settings-bootloader.h:96 source/ubl-settings-bootloader.h:95
msgid "Argument not recognized\n"
msgstr ""
#: source/ubl-settings-bootloader.h:66 source/ubl-settings-bootloader.h:65
msgid "Boot menu user name:"
msgstr ""
#: source/ubl-settings-bootloader.h:67 source/ubl-settings-bootloader.h:66
msgid "Boot menu user password:"
msgstr ""
#: source/ubl-settings-bootloader.h:64 source/ubl-settings-bootloader.h:63
msgid "Boot screen display mode:"
msgstr ""
#: source/ubl-settings-bootloader.h:51 source/ubl-settings-bootloader.h:50
msgid "Boot selection menu timer:"
msgstr ""
#: source/ubl-settings-bootloader.h:62 source/ubl-settings-bootloader.h:61
msgid "Cancel"
#: source/ubl-strings.h:12
msgid "Parameters passed to the kernel"
msgstr ""
#: source/ubl-settings-bootloader.h:45 source/ubl-settings-bootloader.h:44
#: source/ubl-settings-bootloader.cc:421 source/ubl-settings-bootloader.cc:422
#: source/ubl-settings-bootloader.cc:423 source/ubl-settings-bootloader.cc:289
#: source/ubl-settings-bootloader.cc:290 source/ubl-settings-bootloader.cc:291
#: source/ubl-strings.h:13
msgid "Command line parameters:"
msgstr ""
#: source/ubl-settings-bootloader.h:42 source/ubl-settings-bootloader.h:41
#: source/ubl-settings-bootloader.cc:417 source/ubl-settings-bootloader.cc:285
msgid "Configuring system boot parameters"
msgstr ""
msgid "Configuring the boot loader settings"
msgstr ""
#: source/ubl-settings-bootloader.h:38 source/ubl-settings-bootloader.h:37
#: source/ubl-settings-bootloader.cc:411 source/ubl-settings-bootloader.cc:279
msgid "Copyright © UBSoft LLC, 2022 - "
msgstr ""
#: source/ubl-settings-bootloader.cc:292
msgid "Default download"
msgstr ""
#: source/ubl-settings-bootloader.h:94 source/ubl-settings-bootloader.h:93
#: source/ubl-settings-bootloader.cc:339 source/ubl-settings-bootloader.cc:201
msgid "Description"
msgstr ""
msgid "Disable ACPI"
msgstr ""
msgid "Disable APIC"
msgstr ""
msgid "Disable GPU power management"
msgstr ""
msgid "Disable Plymouth"
msgstr ""
msgid "Disable kernel selection and loading of video drivers"
msgstr ""
msgid "Disable local APIC"
msgstr ""
#: source/ubl-settings-bootloader.h:48 source/ubl-settings-bootloader.h:47
#: source/ubl-settings-bootloader.cc:426 source/ubl-settings-bootloader.cc:294
msgid "Download menu"
msgstr ""
msgid "Downloading without text messages"
msgstr ""
msgid "Eliminates flickering laptop display on Ultra Voltage processors"
msgstr ""
#: source/ubl-settings-bootloader.h:78 source/ubl-settings-bootloader.h:77
#: source/ubl-settings-bootloader.cc:496
msgid "Enter login"
msgstr ""
#: source/ubl-settings-bootloader.h:77 source/ubl-settings-bootloader.h:76
#: source/ubl-settings-bootloader.cc:476
msgid "Enter your password"
msgstr ""
#: source/ubl-settings-bootloader.h:84 source/ubl-settings-bootloader.h:83
#: source/ubl-settings-bootloader.cc:897 source/ubl-settings-bootloader.cc:443
msgid "Error saved local and global configuration"
msgstr ""
msgid "Forced selection of an Intel sound device driver"
msgstr ""
msgid ""
"GTK settings bootloader for UBLinux\n"
"\n"
"Usage: ubl-settings-bootloader [OPTIONS...]\n"
"Options:\n"
" -h, --help\t Show this help\n"
" -V, --version\t Show package version\n"
msgstr ""
#: source/ubl-settings-bootloader.h:95 source/ubl-settings-bootloader.h:94
msgid ""
"GTK settings bootloader for UBLinux\n"
"\n"
"Usage: ubl-settings-bootloader [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 ""
#: source/ubl-settings-bootloader.h:86 source/ubl-settings-bootloader.h:85
#: source/ubl-settings-bootloader.cc:911 source/ubl-settings-bootloader.cc:455
msgid "Global configuration downloaded successfully"
msgstr ""
#: source/ubl-settings-bootloader.h:81 source/ubl-settings-bootloader.h:80
#: source/ubl-settings-bootloader.cc:885 source/ubl-settings-bootloader.cc:431
msgid "Global configuration read error"
msgstr ""
#: source/ubl-settings-bootloader.h:88 source/ubl-settings-bootloader.h:87
#: source/ubl-settings-bootloader.cc:917 source/ubl-settings-bootloader.cc:461
msgid "Global configuration successfully written"
msgstr ""
#: source/ubl-settings-bootloader.h:83 source/ubl-settings-bootloader.h:82
#: source/ubl-settings-bootloader.cc:893 source/ubl-settings-bootloader.cc:439
msgid "Global configuration write error"
msgstr ""
#: source/ubl-settings-bootloader.h:52 source/ubl-settings-bootloader.h:51
#: source/ubl-settings-bootloader.cc:430 source/ubl-settings-bootloader.cc:300
msgid "Help"
msgstr ""
#: source/ubl-settings-bootloader.cc:295
#: source/ubl-strings.h:14
msgid "Input terminal"
msgstr ""
#: source/ubl-settings-bootloader.h:75 source/ubl-settings-bootloader.h:74
#: source/ubl-settings-bootloader.cc:451
msgid "Lack of loading animation with the output of the abbreviated log"
msgstr ""
msgid "Last Successful Download"
msgstr ""
#: source/ubl-settings-bootloader.h:68 source/ubl-settings-bootloader.h:67
#: source/ubl-settings-bootloader.cc:452
msgid "Last successful upload"
msgstr ""
#: source/ubl-settings-bootloader.h:55 source/ubl-settings-bootloader.h:54
#: source/ubl-settings-bootloader.cc:438 source/ubl-settings-bootloader.cc:308
msgid "Load"
msgstr ""
#: source/ubl-settings-bootloader.h:46 source/ubl-settings-bootloader.h:45
#: source/ubl-settings-bootloader.cc:424
msgid "Load default:"
msgstr ""
#: source/ubl-settings-bootloader.h:59 source/ubl-settings-bootloader.h:58
#: source/ubl-settings-bootloader.cc:435 source/ubl-settings-bootloader.cc:305
msgid "Load global configuration"
msgstr ""
#: source/ubl-settings-bootloader.h:60 source/ubl-settings-bootloader.h:59
#: source/ubl-settings-bootloader.cc:436 source/ubl-settings-bootloader.cc:306
msgid "Load local configuration"
msgstr ""
#: source/ubl-settings-bootloader.cc:442
msgid "Load menu user name:"
msgstr ""
#: source/ubl-settings-bootloader.cc:443
msgid "Load menu user password:"
msgstr ""
#: source/ubl-settings-bootloader.cc:429 source/ubl-settings-bootloader.cc:298
msgid "Load option timer"
msgstr ""
#: source/ubl-settings-bootloader.cc:441
msgid "Load screen display mode:"
msgstr ""
#: source/ubl-settings-bootloader.h:73 source/ubl-settings-bootloader.h:72
#: source/ubl-settings-bootloader.cc:448
msgid "Loading animation with log"
msgstr ""
#: source/ubl-settings-bootloader.h:74 source/ubl-settings-bootloader.h:73
#: source/ubl-settings-bootloader.cc:449
msgid "Loading animation without log"
msgstr ""
#: source/ubl-settings-bootloader.h:85 source/ubl-settings-bootloader.h:84
#: source/ubl-settings-bootloader.cc:908 source/ubl-settings-bootloader.cc:452
msgid "Local configuration downloaded successfully"
msgstr ""
#: source/ubl-settings-bootloader.h:80 source/ubl-settings-bootloader.h:79
#: source/ubl-settings-bootloader.cc:881 source/ubl-settings-bootloader.cc:427
msgid "Local configuration reading error"
msgstr ""
#: source/ubl-settings-bootloader.h:87 source/ubl-settings-bootloader.h:86
#: source/ubl-settings-bootloader.cc:914 source/ubl-settings-bootloader.cc:458
msgid "Local configuration successfully written"
msgstr ""
#: source/ubl-settings-bootloader.h:82 source/ubl-settings-bootloader.h:81
#: source/ubl-settings-bootloader.cc:889 source/ubl-settings-bootloader.cc:435
msgid "Local configuration write error"
msgstr ""
#: source/ubl-settings-bootloader.cc:445 source/ubl-settings-bootloader.cc:447
msgid "Manually"
msgstr ""
msgid "Maximum performance, power management"
msgstr ""
#: source/ubl-settings-bootloader.h:65 source/ubl-settings-bootloader.h:64
msgid "No loading animation, full log"
msgstr ""
#: source/ubl-settings-bootloader.cc:444 source/ubl-settings-bootloader.cc:446
msgid "Not available"
msgstr ""
#: source/ubl-settings-bootloader.h:90 source/ubl-settings-bootloader.h:89
#: source/ubl-settings-bootloader.cc:923 source/ubl-settings-bootloader.cc:341
#: source/ubl-settings-bootloader.cc:354 source/ubl-settings-bootloader.cc:367
msgid "Nothing to save!"
msgstr ""
msgid "Open Firmware Console"
msgstr ""
#: source/ubl-settings-bootloader.h:93 source/ubl-settings-bootloader.h:92
#: source/ubl-settings-bootloader.cc:338 source/ubl-settings-bootloader.cc:200
msgid "Option"
msgstr ""
msgid "Output in graphical mode"
msgstr ""
#: source/ubl-settings-bootloader.cc:296
#: source/ubl-strings.h:15
msgid "Output terminal"
msgstr ""
msgid "PC AT Keyboard (Coreboot)"
msgstr ""
msgid "PC BIOS & EFI console"
msgstr ""
msgid "Parameters passed to the kernel"
msgstr ""
msgid "Prevents the processor from going into a deep sleep state"
msgstr ""
#: source/ubl-settings-bootloader.h:41 source/ubl-settings-bootloader.h:40
#: source/ubl-settings-bootloader.cc:416 source/ubl-settings-bootloader.cc:420
#: source/ubl-settings-bootloader.cc:284 source/ubl-settings-bootloader.cc:288
msgid "Project homepage"
msgstr ""
#: source/ubl-settings-bootloader.h:61 source/ubl-settings-bootloader.h:60
msgid "Read online"
msgstr ""
#: source/ubl-settings-bootloader.h:54 source/ubl-settings-bootloader.h:53
#: source/ubl-settings-bootloader.cc:437 source/ubl-settings-bootloader.cc:307
msgid "Save"
msgstr ""
#: source/ubl-settings-bootloader.h:58 source/ubl-settings-bootloader.h:57
#: source/ubl-settings-bootloader.cc:434 source/ubl-settings-bootloader.cc:304
msgid "Save in global configuration"
msgstr ""
#: source/ubl-settings-bootloader.h:57 source/ubl-settings-bootloader.h:56
#: source/ubl-settings-bootloader.cc:433 source/ubl-settings-bootloader.cc:303
msgid "Save in local configuration"
msgstr ""
#: source/ubl-settings-bootloader.h:56 source/ubl-settings-bootloader.h:55
#: source/ubl-settings-bootloader.cc:432 source/ubl-settings-bootloader.cc:302
msgid "Save configuration"
msgstr ""
#: source/ubl-settings-bootloader.cc:293
msgid "Seconds"
msgstr ""
msgid "Serial terminal"
msgstr ""
#: source/ubl-settings-bootloader.cc:287
msgid "Setting bootloader"
msgstr ""
msgid "Show welcome window"
msgstr ""
msgid "Single User Mode"
msgstr ""
#: source/ubl-settings-bootloader.h:89 source/ubl-settings-bootloader.h:88
#: source/ubl-settings-bootloader.cc:920 source/ubl-settings-bootloader.cc:464
msgid "Successfully saved local and global configuration"
msgstr ""
#: source/ubl-settings-bootloader.h:43 source/ubl-settings-bootloader.h:42
#: source/ubl-settings-bootloader.cc:419
msgid "System boot setup"
msgstr ""
#: source/ubl-settings-bootloader.h:49 source/ubl-settings-bootloader.h:48
#: source/ubl-settings-bootloader.cc:427
msgid "Terminal for input"
msgstr ""
#: source/ubl-settings-bootloader.h:50 source/ubl-settings-bootloader.h:49
#: source/ubl-settings-bootloader.cc:428
msgid "Terminal for output"
msgstr ""
#: source/ubl-settings-bootloader.cc:299
msgid "The last selection will become the default boot choice"
msgstr ""
#: source/ubl-settings-bootloader.h:91 source/ubl-settings-bootloader.h:90
#: source/ubl-settings-bootloader.cc:107 source/ubl-settings-bootloader.cc:94
msgid "The program must be run as root"
msgstr ""
msgid "UBConfig - Loading"
msgstr ""
msgid "USB Keyboard (HID Boot protocol)"
msgstr ""
#: source/ubl-settings-bootloader.h:71 source/ubl-settings-bootloader.h:70
#: source/ubl-settings-bootloader.cc:440
msgid "User name to enter boot configuration editing mode"
msgstr ""
#: source/ubl-settings-bootloader.h:72 source/ubl-settings-bootloader.h:71
msgid "User password to enter boot configuration edit mode"
msgstr ""
msgid "VGA text output (Coreboot)"
msgstr ""
#: source/ubl-settings-bootloader.h:69 source/ubl-settings-bootloader.h:68
msgid "Would you like to read documentation in the Web?"
msgstr ""
#: source/ubl-settings-bootloader.h:70 source/ubl-settings-bootloader.h:69
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
msgid "acpi=off (Disable ACPI)"
msgstr ""
msgid "ahci.mobile_jpm_policy=1 (Maximum performance, power management)"
msgstr ""
msgid "apic (Disable APIC)"
msgstr ""
msgid "at_keyboard (Keyboard PC AT (Coreboot))"
msgstr ""
msgid "console (PC BIOS & console EFI)"
msgstr ""
msgid "gfxterm (Output in graphical mode)"
msgstr ""
#: source/ubl-settings-bootloader.h:40 source/ubl-settings-bootloader.h:76
#: source/ubl-settings-bootloader.h:39 source/ubl-settings-bootloader.h:75
#: source/ubl-settings-bootloader.cc:414 source/ubl-settings-bootloader.cc:282
msgid "https://wiki.ublinux.com"
msgstr ""
#: source/ubl-settings-bootloader.cc:860 source/ubl-settings-bootloader.cc:400
msgid ""
"https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
msgstr ""
msgid "i915.enable_dc=0 (Disable GPU power management)"
msgstr ""
msgid ""
"intel_idle max_cstate=1 (Prevents the processor from going into a deep sleep "
"state)"
msgstr ""
msgid ""
"intel_idle.max_cstate=4 (Eliminates flickering laptop display on processors "
"Ultra Voltage)"
msgstr ""
msgid "no plymouth (Disable Plymouth)"
msgstr ""
msgid "nolapic (Disable local APIC)"
msgstr ""
msgid "nomodeset (Disable kernel selection and loading of video drivers)"
msgstr ""
msgid "ofconsole (Console Open Firmware)"
msgstr ""
msgid "quiet (Downloading without text messages)"
msgstr ""
#: source/ubl-settings-bootloader.h:47 source/ubl-settings-bootloader.h:46
#: source/ubl-settings-bootloader.cc:425
msgid "seconds"
msgstr ""
msgid "serial (Serial terminal)"
msgstr ""
msgid "single (Single User Mode)"
msgstr ""
msgid ""
"snd-intel-dspcfg.dsp_driver=1 (Forced selection of a sound device driver "
"from Intel)"
msgstr ""
msgid "splash (Show welcome window)"
msgstr ""
#: source/ubl-settings-bootloader.h:39 source/ubl-settings-bootloader.h:38
#: source/ubl-settings-bootloader.cc:413 source/ubl-settings-bootloader.cc:418
#: source/ubl-settings-bootloader.cc:439 source/ubl-settings-bootloader.cc:281
#: source/ubl-settings-bootloader.cc:286 source/ubl-settings-bootloader.cc:309
msgid "System boot"
msgstr ""
#: source/ubl-settings-bootloader.h:79 source/ubl-settings-bootloader.h:78
#: source/ubl-settings-bootloader.cc:947 source/ubl-settings-bootloader.cc:547
msgid "ubl-settings-bootloader version: "
#: source/ubl-strings.h:17 source/ubl-strings.h:47
msgid "Administrator"
msgstr ""
msgid "usb_keyboard (Keyboard USB Keyboard (protocol HID Boot))"
#: source/ubl-strings.h:18
msgid "Name"
msgstr ""
msgid "vga_text (Text output VGA (Coreboot))"
#: source/ubl-strings.h:19
msgid "User"
msgstr ""
#: source/ubl-settings-bootloader.cc:450
msgid "Нет анимации загрузки, полный журнал"
#: source/ubl-strings.h:20
msgid "Password"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Last succeeded load mode"
#: source/ubl-strings.h:21
msgid "Melody code"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable Plymouth"
#: source/ubl-strings.h:22
msgid "Option"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Write debug output into /var/log/plymouth-debug.log"
#: source/ubl-strings.h:23
msgid "Description"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable ACPI"
#: source/ubl-strings.h:25
msgid "Add"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable APIC"
#: source/ubl-strings.h:26
msgid "Edit"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable local APIC"
#: source/ubl-strings.h:27
msgid "Remove"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Single User Mode"
#: source/ubl-strings.h:29
msgid "Accept"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable kernel selection and loading of video drivers"
#: source/ubl-strings.h:30
msgid "Cancel"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "enable driver (default: auto, 0 = disabled, 1 = enabled, 2 = headless) (int)"
#: source/ubl-strings.h:32
msgid "Password input"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "disable kernel/abi16 acceleration (int)"
#: source/ubl-strings.h:33 source/ubl-strings.h:40
msgid "Repeat password:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console preference [default]) (int)"
#: source/ubl-strings.h:34 source/ubl-strings.h:42
msgid "Password hash:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)"
#: source/ubl-strings.h:35 source/ubl-strings.h:41
msgid "Do not encrypt password"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6; 3=up to DC5 with DC3CO; 4=up to DC6 with DC3CO) (int)"
#: source/ubl-strings.h:36
msgid "Password contain special symbols"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable PSR (0=disabled, 1=enabled) (int)"
#: source/ubl-strings.h:37
msgid "Empty important field"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable display power wells when possible (-1=auto [default], 0=power wells always on, 1=power wells disabled when possible) (int)"
#: source/ubl-strings.h:38
msgid "Password mismatch"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable IPS (default: true) (int)"
#: source/ubl-strings.h:39
msgid "Password:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Try to skip unnecessary mode sets at boot time (0=disabled, 1=enabled) Default: -1 (use per-chip default) (int)"
#: source/ubl-strings.h:43
msgid "Password must be at least"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Disable display (default: false) (bool)"
#: source/ubl-strings.h:43
msgid "characters"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load) (int)"
#: source/ubl-strings.h:45
msgid "Add user"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true) (bool)"
#: source/ubl-strings.h:46
msgid "Edit user"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Enable support for Intel GVT-g graphics virtualization host support (default:false) (bool)"
#: source/ubl-strings.h:48
msgid "User name:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Marvell SATA via AHCI (1 = enabled) (int)"
#: source/ubl-strings.h:49
msgid "User password:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Default LPM policy for mobile chipsets (default:-1) (int)"
#: source/ubl-strings.h:50
msgid "Are you sure you want to remove user"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF) (int)"
#: source/ubl-strings.h:50
msgid "from boot menu users"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Do not use ACPI _CST for building the idle states list (default:N) (bool)"
#: source/ubl-strings.h:52
msgid "Add ringtone"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Use ACPI _CST for building the idle states list (default:N) (bool)"
#: source/ubl-strings.h:53
msgid "Edit ringtone"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Prevents the processor from going into a deep sleep state (default:9) (int)"
#: source/ubl-strings.h:54
msgid "Chosen"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Eliminates flickering laptop display on Ultra Voltage processors (int)"
#: source/ubl-strings.h:55
msgid "Name:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Mask of disabled idle states (0=disabled, 1=enabled) Default: 0 (uint)"
#: source/ubl-strings.h:56
msgid "Melody code:"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "default autosuspend delay (-1=disabled) (int)"
#: source/ubl-strings.h:57
msgid "Are you sure you want to remove ringtone"
msgstr ""
#: source/ubl-settings-bootloader.h:162
msgid "Force dont`t load nouveau driver video for Nvidia"
msgstr ""

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ubl-settings-bootloader 1.0\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-04-25 15:27+0600\n"
"PO-Revision-Date: 2020-02-22 23:28+0600\n"
"POT-Creation-Date: 2023-01-01 00:00+0600\n"
"PO-Revision-Date: 2025-04-17 23:28+0600\n"
"Last-Translator: ublinux <info@ublinux.ru>\n"
"Language-Team: Russian - UBLinux Team <info@ublinux.ru>\n"
"Language: Russian\n"
@ -17,463 +17,201 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Edit"
msgstr "Редактирование"
msgid "Adding"
msgstr "Добавление"
msgid "Selecting the loading mode option"
msgstr "Выбор варианта режима загрузки"
msgid "Add user"
msgstr "Добавить пользователя"
msgid "Delete user"
msgstr "Удалить пользователя"
msgid "Add melody"
msgstr "Добавить мелодию"
msgid "Delete melody"
msgstr "Удалить мелодию"
#: source/ubl-settings-bootloader.h:53 source/ubl-settings-bootloader.h:52
#: source/ubl-settings-bootloader.cc:431 source/ubl-settings-bootloader.cc:301
msgid "About"
msgstr "О программе"
#: source/ubl-settings-bootloader.h:44 source/ubl-settings-bootloader.h:43
msgid "About System boot"
msgstr "О программе Загрузка системы"
#: source/ubl-settings-bootloader.h:92 source/ubl-settings-bootloader.h:91
#: source/ubl-settings-bootloader.cc:337 source/ubl-settings-bootloader.cc:199
msgid "Active"
msgstr "Активно"
#: source/ubl-settings-bootloader.h:63 source/ubl-settings-bootloader.h:62
msgid "Always redirect"
msgstr "Всегда перенаправлять"
#: source/ubl-settings-bootloader.h:96 source/ubl-settings-bootloader.h:95
msgid "Argument not recognized\n"
msgstr "Аргумент не распознан\n"
#: source/ubl-settings-bootloader.h:66 source/ubl-settings-bootloader.h:65
msgid "Boot menu user name:"
msgstr "Имя пользователя меню загрузки:"
#: source/ubl-settings-bootloader.h:67 source/ubl-settings-bootloader.h:66
msgid "Boot menu user password:"
msgstr "Пароль пользователя меню загрузки:"
#: source/ubl-settings-bootloader.h:64 source/ubl-settings-bootloader.h:63
msgid "Boot screen display mode:"
msgstr "Режим отображения экрана загрузки:"
#: source/ubl-settings-bootloader.h:51 source/ubl-settings-bootloader.h:50
msgid "Boot selection menu timer:"
msgstr "Таймер меню выбора варианта загрузки:"
#: source/ubl-settings-bootloader.h:62 source/ubl-settings-bootloader.h:61
msgid "Cancel"
msgstr "Отменить"
#: source/ubl-settings-bootloader.h:45 source/ubl-settings-bootloader.h:44
#: source/ubl-settings-bootloader.cc:421 source/ubl-settings-bootloader.cc:422
#: source/ubl-settings-bootloader.cc:423 source/ubl-settings-bootloader.cc:289
#: source/ubl-settings-bootloader.cc:290 source/ubl-settings-bootloader.cc:291
msgid "Command line parameters:"
msgstr "Параметры командной строки:"
#: source/ubl-strings.h:2
msgid "System boot"
msgstr "Загрузка системы"
#: source/ubl-settings-bootloader.h:42 source/ubl-settings-bootloader.h:41
#: source/ubl-settings-bootloader.cc:417 source/ubl-settings-bootloader.cc:285
#: source/ubl-strings.h:3
msgid "Configuring system boot parameters"
msgstr "Настройка параметров загрузки системы"
msgid "Configuring the boot loader settings"
msgstr "Настройка параметров загрузчика системы"
#: source/ubl-settings-bootloader.h:38 source/ubl-settings-bootloader.h:37
#: source/ubl-settings-bootloader.cc:411 source/ubl-settings-bootloader.cc:279
msgid "Copyright © UBSoft LLC, 2022 - "
msgstr ""
#: source/ubl-settings-bootloader.cc:292
#, fuzzy
msgid "Default download"
msgstr "По умолчанию"
#: source/ubl-settings-bootloader.h:94 source/ubl-settings-bootloader.h:93
#: source/ubl-settings-bootloader.cc:339 source/ubl-settings-bootloader.cc:201
msgid "Description"
msgstr "Описание"
#: source/ubl-strings.h:5
msgid "Boot menu"
msgstr "Менб загрузки"
#: source/ubl-settings-bootloader.h:48 source/ubl-settings-bootloader.h:47
#: source/ubl-settings-bootloader.cc:426 source/ubl-settings-bootloader.cc:294
msgid "Download menu"
msgstr "Меню загрузки"
#: source/ubl-strings.h:6
msgid "Boot selection menu timer:"
msgstr "Таймер меню выбора варианта загрузки:"
msgid "Downloading without text messages"
msgstr "Загрузка без текстовых сообщений"
#: source/ubl-strings.h:7
msgid "seconds"
msgstr "секунд"
msgid "Eliminates flickering laptop display on Ultra Voltage processors"
msgstr "Устраняет мерцание дисплея ноутбука на процессорах Ultra Voltage"
#: source/ubl-strings.h:8
msgid "Default OS:"
msgstr "Загрузка по умлочанию:"
#: source/ubl-settings-bootloader.h:78 source/ubl-settings-bootloader.h:77
#: source/ubl-settings-bootloader.cc:496
msgid "Enter login"
msgstr "Введите логин"
#: source/ubl-strings.h:9
msgid "Load screen display mode:"
msgstr "Режим отображения экрана загрузки:"
#: source/ubl-settings-bootloader.h:77 source/ubl-settings-bootloader.h:76
#: source/ubl-settings-bootloader.cc:476
msgid "Enter your password"
msgstr "Введите пароль"
#: source/ubl-strings.h:10
msgid "Boot Menu Users"
msgstr "Пользователи меню загрузчика"
#: source/ubl-settings-bootloader.h:84 source/ubl-settings-bootloader.h:83
#: source/ubl-settings-bootloader.cc:897 source/ubl-settings-bootloader.cc:443
#, fuzzy
msgid "Error saved local and global configuration"
msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-strings.h:11
msgid "Startup ringtone"
msgstr "Мелодия при запуске"
msgid "Forced selection of an Intel sound device driver"
msgstr "Принудительный выбор драйвера звукового устройства от Intel"
#: source/ubl-strings.h:12
msgid "Parameters passed to the kernel"
msgstr "Параметры, передаваемые ядру"
msgid ""
"GTK settings bootloader for UBLinux\n"
"\n"
"Usage: ubl-settings-bootloader [OPTIONS...]\n"
"Options:\n"
" -h, --help\t Show this help\n"
" -V, --version\t Show package version\n"
msgstr ""
#: source/ubl-strings.h:13
msgid "Command line parameters:"
msgstr "Параметры командной строки:"
#: source/ubl-settings-bootloader.h:95 source/ubl-settings-bootloader.h:94
msgid ""
"GTK settings bootloader for UBLinux\n"
"\n"
"Usage: ubl-settings-bootloader [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-bootloader [Параметры приложения...]\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"
#: source/ubl-settings-bootloader.h:86 source/ubl-settings-bootloader.h:85
#: source/ubl-settings-bootloader.cc:911 source/ubl-settings-bootloader.cc:455
msgid "Global configuration downloaded successfully"
msgstr "Успешно загружена глобальная конфигурация"
#: source/ubl-settings-bootloader.h:81 source/ubl-settings-bootloader.h:80
#: source/ubl-settings-bootloader.cc:885 source/ubl-settings-bootloader.cc:431
msgid "Global configuration read error"
msgstr "Ошибка чтения глобальной конфигурации"
#: source/ubl-settings-bootloader.h:88 source/ubl-settings-bootloader.h:87
#: source/ubl-settings-bootloader.cc:917 source/ubl-settings-bootloader.cc:461
msgid "Global configuration successfully written"
msgstr "Успешно записана глобальная конфигурация"
#: source/ubl-settings-bootloader.h:83 source/ubl-settings-bootloader.h:82
#: source/ubl-settings-bootloader.cc:893 source/ubl-settings-bootloader.cc:439
msgid "Global configuration write error"
msgstr "Ошибка записи глобальной конфигурации"
#: source/ubl-settings-bootloader.h:52 source/ubl-settings-bootloader.h:51
#: source/ubl-settings-bootloader.cc:430 source/ubl-settings-bootloader.cc:300
msgid "Help"
msgstr "Справка"
#: source/ubl-settings-bootloader.cc:295
#, fuzzy
#: source/ubl-strings.h:14
msgid "Input terminal"
msgstr "Терминал для вывода"
#: source/ubl-settings-bootloader.h:75 source/ubl-settings-bootloader.h:74
#: source/ubl-settings-bootloader.cc:451
msgid "Lack of loading animation with the\noutput of the abbreviated log"
msgstr "Отсутствие анимации загрузки с\nвыводом сокращенного журнала"
msgid "Lack of loading animation with the output of the abbreviated log"
msgstr "Отсутствие анимации загрузки с выводом сокращенного журнала"
#, fuzzy
msgid "Last Successful Download"
msgstr "Последняя удачная загрузка"
#: source/ubl-settings-bootloader.h:68 source/ubl-settings-bootloader.h:67
#: source/ubl-settings-bootloader.cc:452
msgid "Last successful upload"
msgstr "Последняя удачная загрузка"
#: source/ubl-settings-bootloader.h:55 source/ubl-settings-bootloader.h:54
#: source/ubl-settings-bootloader.cc:438 source/ubl-settings-bootloader.cc:308
msgid "Load"
msgstr "Загрузить"
#: source/ubl-settings-bootloader.h:46 source/ubl-settings-bootloader.h:45
#: source/ubl-settings-bootloader.cc:424
msgid "Load default:"
msgstr "Загрузка по умолчанию:"
#: source/ubl-settings-bootloader.h:59 source/ubl-settings-bootloader.h:58
#: source/ubl-settings-bootloader.cc:435 source/ubl-settings-bootloader.cc:305
msgid "Load global configuration"
msgstr "Загрузить глобальную конфигурацию"
#: source/ubl-settings-bootloader.h:60 source/ubl-settings-bootloader.h:59
#: source/ubl-settings-bootloader.cc:436 source/ubl-settings-bootloader.cc:306
msgid "Load local configuration"
msgstr "Загрузить локальную конфигурацию"
#: source/ubl-settings-bootloader.cc:442
#, fuzzy
msgid "Load menu user name:"
msgstr "Имя пользователя меню загрузки:"
#: source/ubl-settings-bootloader.cc:443
#, fuzzy
msgid "Load menu user password:"
msgstr "Пароль пользователя меню загрузки:"
#: source/ubl-settings-bootloader.cc:429 source/ubl-settings-bootloader.cc:298
msgid "Load option timer"
msgstr ""
#: source/ubl-settings-bootloader.cc:441
#, fuzzy
msgid "Load screen display mode:"
msgstr "Режим отображения экрана загрузки:"
#: source/ubl-settings-bootloader.h:73 source/ubl-settings-bootloader.h:72
#: source/ubl-settings-bootloader.cc:448
msgid "Loading animation with log"
msgstr "Анимация загрузки с журналом"
#: source/ubl-settings-bootloader.h:74 source/ubl-settings-bootloader.h:73
#: source/ubl-settings-bootloader.cc:449
msgid "Loading animation without log"
msgstr "Анимация загрузки без журнала"
#: source/ubl-settings-bootloader.h:85 source/ubl-settings-bootloader.h:84
#: source/ubl-settings-bootloader.cc:908 source/ubl-settings-bootloader.cc:452
msgid "Local configuration downloaded successfully"
msgstr "Успешно загружена локальная конфигурация"
#: source/ubl-settings-bootloader.h:80 source/ubl-settings-bootloader.h:79
#: source/ubl-settings-bootloader.cc:881 source/ubl-settings-bootloader.cc:427
msgid "Local configuration reading error"
msgstr "Ошибка чтения локальной конфигурации"
#: source/ubl-settings-bootloader.h:87 source/ubl-settings-bootloader.h:86
#: source/ubl-settings-bootloader.cc:914 source/ubl-settings-bootloader.cc:458
msgid "Local configuration successfully written"
msgstr "Успешно записана локальная конфигурация"
#: source/ubl-settings-bootloader.h:82 source/ubl-settings-bootloader.h:81
#: source/ubl-settings-bootloader.cc:889 source/ubl-settings-bootloader.cc:435
msgid "Local configuration write error"
msgstr "Ошибка записи локальной конфигурации"
#: source/ubl-settings-bootloader.cc:445 source/ubl-settings-bootloader.cc:447
msgid "Manually"
msgstr "Вручную"
msgid "Maximum performance, power management"
msgstr "Максимальная производительность, управление питанием"
#: source/ubl-settings-bootloader.h:65 source/ubl-settings-bootloader.h:64
msgid "No loading animation,\nfull log"
msgstr "Отсутствие анимации загрузки\nс выводом журнала"
msgid "No loading animation, full log"
msgstr "Отсутствие анимации загрузки с выводом журнала"
#: source/ubl-settings-bootloader.cc:444 source/ubl-settings-bootloader.cc:446
msgid "Not available"
msgstr "Отсутствует"
#: source/ubl-settings-bootloader.h:90 source/ubl-settings-bootloader.h:89
#: source/ubl-settings-bootloader.cc:923 source/ubl-settings-bootloader.cc:341
#: source/ubl-settings-bootloader.cc:354 source/ubl-settings-bootloader.cc:367
msgid "Nothing to save!"
msgstr "Нечего сохранять!"
msgid "Open Firmware Console"
msgstr "Консоль Open Firmware"
#: source/ubl-settings-bootloader.h:93 source/ubl-settings-bootloader.h:92
#: source/ubl-settings-bootloader.cc:338 source/ubl-settings-bootloader.cc:200
msgid "Option"
msgstr "Опция"
msgid "Output in graphical mode"
msgstr "Вывод в графическом режиме"
msgstr "Терминал для ввода"
#: source/ubl-settings-bootloader.cc:296
#: source/ubl-strings.h:15
msgid "Output terminal"
msgstr "Терминал для вывода"
msgid "PC AT Keyboard (Coreboot)"
msgstr "Клавиатура PC AT (Coreboot)"
msgid "PC BIOS & EFI console"
msgstr "PC BIOS & консоль EFI"
#: source/ubl-strings.h:17 source/ubl-strings.h:47
msgid "Administrator"
msgstr "Администратор"
msgid "Parameters passed to the kernel"
msgstr "Параметры, передаваемые ядру"
#: source/ubl-strings.h:18
msgid "Name"
msgstr "Название"
msgid "Prevents the processor from going into a deep sleep state"
msgstr "Предотвращает переход процессора в состояние глубокого сна"
#: source/ubl-strings.h:19
msgid "User"
msgstr "Пользователь"
#: source/ubl-settings-bootloader.h:41 source/ubl-settings-bootloader.h:40
#: source/ubl-settings-bootloader.cc:416 source/ubl-settings-bootloader.cc:420
#: source/ubl-settings-bootloader.cc:284 source/ubl-settings-bootloader.cc:288
msgid "Project homepage"
msgstr "Домашняя страница проекта"
#: source/ubl-strings.h:20
msgid "Password"
msgstr "Пароль"
#: source/ubl-settings-bootloader.h:61 source/ubl-settings-bootloader.h:60
msgid "Read online"
msgstr "Прочитать онлайн"
#: source/ubl-strings.h:21
msgid "Melody code"
msgstr "Код мелодии"
#: source/ubl-settings-bootloader.h:54 source/ubl-settings-bootloader.h:53
#: source/ubl-settings-bootloader.cc:437 source/ubl-settings-bootloader.cc:307
msgid "Save"
msgstr "Сохранить"
#: source/ubl-strings.h:22
msgid "Option"
msgstr "Опция"
msgid "Boot Menu Users"
msgstr "Пользователи меню загрузчика"
#: source/ubl-strings.h:23
msgid "Description"
msgstr "Описание"
msgid "Title"
msgstr "Название"
#: source/ubl-strings.h:25
msgid "Add"
msgstr "Добавить"
msgid "User"
msgstr "Пользователь"
#: source/ubl-strings.h:26
msgid "Edit"
msgstr "Редактировать"
msgid "Enter the name and code of the tune in the \"Ringtone at startup\" field"
msgstr "Введите название и код мелодии в поле \"Мелодия при загрузке\""
#: source/ubl-strings.h:27
msgid "Remove"
msgstr "Удалить"
msgid "Enter name and password in the \"Boot Menu Users\" field"
msgstr "Введите имя и пароль в поле \"Пользователи меню загрузчика\""
#: source/ubl-strings.h:29
msgid "Accept"
msgstr "Принять"
msgid "Password"
msgstr "Пароль"
#: source/ubl-strings.h:30
msgid "Cancel"
msgstr "Отменить"
msgid "Melody added"
msgstr "Мелодия добавлена"
#: source/ubl-strings.h:32
msgid "Password input"
msgstr "Ввод пароля"
msgid "User added"
msgstr "Пользователь добавлен"
#: source/ubl-strings.h:33 source/ubl-strings.h:40
msgid "Repeat password:"
msgstr "Подтвердите ввод пароля:"
msgid "Melody deleted"
msgstr "Мелодия удалена"
#: source/ubl-strings.h:34 source/ubl-strings.h:42
msgid "Password hash:"
msgstr "Хэш пароля"
msgid "User deleted"
msgstr "Пользователь удалён"
#: source/ubl-strings.h:35 source/ubl-strings.h:41
msgid "Do not encrypt password"
msgstr "Не шифровать пароль"
msgid "Administrator"
msgstr "Администратор"
#: source/ubl-strings.h:36
msgid "Password contain special symbols"
msgstr "Пароль содержит специальные символы"
msgid "Select"
msgstr "Выбор"
#: source/ubl-strings.h:37
msgid "Empty important field"
msgstr "Пустое важное поле"
msgid "Melody code"
msgstr "Код мелодии"
#: source/ubl-strings.h:38
msgid "Password mismatch"
msgstr "Пароли не совпадают"
msgid "Ringtone at startup"
msgstr "Мелодия при загрузке"
#: source/ubl-strings.h:39
msgid "Password:"
msgstr "Пароль:"
#: source/ubl-settings-bootloader.h:58 source/ubl-settings-bootloader.h:57
#: source/ubl-settings-bootloader.cc:434 source/ubl-settings-bootloader.cc:304
msgid "Save in global configuration"
msgstr "Сохранить в глобальную конфигурацию"
#: source/ubl-strings.h:43
msgid "Password must be at least"
msgstr "Пароль состоять из по крайней мере"
#: source/ubl-settings-bootloader.h:57 source/ubl-settings-bootloader.h:56
#: source/ubl-settings-bootloader.cc:433 source/ubl-settings-bootloader.cc:303
msgid "Save in local configuration"
msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-strings.h:43
msgid "characters"
msgstr "символов"
#: source/ubl-settings-bootloader.h:56 source/ubl-settings-bootloader.h:55
#: source/ubl-settings-bootloader.cc:432 source/ubl-settings-bootloader.cc:302
msgid "Save configuration"
msgstr "Сохранить конфигурацию"
#: source/ubl-strings.h:45
msgid "Add user"
msgstr "Добавить пользователя"
#: source/ubl-settings-bootloader.cc:293
#, fuzzy
msgid "Seconds"
msgstr "секунд"
#: source/ubl-strings.h:46
msgid "Edit user"
msgstr "Редактировать пользователя"
msgid "Serial terminal"
msgstr "Последовательный терминал"
#: source/ubl-strings.h:48
msgid "User name:"
msgstr "Имя пользователя:"
#: source/ubl-settings-bootloader.cc:287
msgid "Setting bootloader"
msgstr "Настройка загрузчика"
#: source/ubl-strings.h:49
msgid "User password:"
msgstr "Пароль пользователя:"
msgid "Show welcome window"
msgstr "Показывать окно приветствия"
#: source/ubl-strings.h:50
msgid "Are you sure you want to remove user"
msgstr "Вы уверены что хотите удалить пользователя"
#: source/ubl-settings-bootloader.h:89 source/ubl-settings-bootloader.h:88
#: source/ubl-settings-bootloader.cc:920 source/ubl-settings-bootloader.cc:464
msgid "Successfully saved local and global configuration"
msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-strings.h:50
msgid "from boot menu users"
msgstr "из пользователей меню загрузчика"
#: source/ubl-settings-bootloader.h:43 source/ubl-settings-bootloader.h:42
#: source/ubl-settings-bootloader.cc:419
msgid "System boot setup"
msgstr "Настройка загрузки системы"
#: source/ubl-strings.h:52
msgid "Add ringtone"
msgstr "Добавить мелодию"
#: source/ubl-settings-bootloader.h:49 source/ubl-settings-bootloader.h:48
#: source/ubl-settings-bootloader.cc:427
#, fuzzy
msgid "Terminal for input"
msgstr "Терминал для ввода"
#: source/ubl-strings.h:53
msgid "Edit ringtone"
msgstr "Изменение мелодии"
#: source/ubl-settings-bootloader.h:50 source/ubl-settings-bootloader.h:49
#: source/ubl-settings-bootloader.cc:428
#, fuzzy
msgid "Terminal for output"
msgstr "Терминал для вывода"
#: source/ubl-strings.h:54
msgid "Chosen"
msgstr "Выбран"
#: source/ubl-settings-bootloader.cc:299
msgid "The last selection will become the default boot choice"
msgstr "Последний выбор станет выбором загрузки по умолчанию"
#: source/ubl-strings.h:55
msgid "Name:"
msgstr "Название:"
#: source/ubl-settings-bootloader.h:91 source/ubl-settings-bootloader.h:90
#: source/ubl-settings-bootloader.cc:107 source/ubl-settings-bootloader.cc:94
msgid "The program must be run as root"
msgstr "Программа должна быть запущена с правами суперпользователя!"
#: source/ubl-strings.h:56
msgid "Melody code:"
msgstr "Код мелодии:"
msgid "UBConfig - Loading"
msgstr "UBConfig - Загрузка"
#: source/ubl-strings.h:57
msgid "Are you sure you want to remove ringtone"
msgstr "Вы уверены что хотите удалить мелодию"
msgid "USB Keyboard (HID Boot protocol)"
msgstr "Клавиатура USB Keyboard (протокол HID Boot)"
#: source/ubl-settings-bootloader.h:71 source/ubl-settings-bootloader.h:70
#: source/ubl-settings-bootloader.cc:440
msgid "User name to enter boot configuration editing mode"
msgstr ""
"Имя пользователя для входа в режим редактирования конфигурации загрузки"
#: source/ubl-settings-bootloader.h:72 source/ubl-settings-bootloader.h:71
msgid "User password to enter boot configuration edit mode"
msgstr ""
"Пароль пользователя для входа в режим редактирования конфигурации загрузки"
@ -481,11 +219,9 @@ msgstr ""
msgid "VGA text output (Coreboot)"
msgstr "Текстовый вывод VGA (Coreboot)"
#: source/ubl-settings-bootloader.h:69 source/ubl-settings-bootloader.h:68
msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-settings-bootloader.h:70 source/ubl-settings-bootloader.h:69
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
@ -513,36 +249,22 @@ msgstr "Консоль (PC BIOS & console EFI)"
msgid "gfxterm (Output in graphical mode)"
msgstr "gfxterm (Вывод в графическом режиме)"
#: source/ubl-settings-bootloader.h:40 source/ubl-settings-bootloader.h:76
#: source/ubl-settings-bootloader.h:39 source/ubl-settings-bootloader.h:75
#: source/ubl-settings-bootloader.cc:414 source/ubl-settings-bootloader.cc:282
msgid "https://wiki.ublinux.com"
msgstr ""
#: source/ubl-settings-bootloader.cc:860 source/ubl-settings-bootloader.cc:400
#, fuzzy
msgid ""
"https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
msgstr ""
"https://wiki.ublinux.ru/ru/Программное_обеспечениерограммы_и_утилиты/Все/"
"ubl-settings-bootloader"
msgid "i915.enable_dc=0 (Disable GPU power management)"
msgstr "i915.enable_dc=0 (Отключите управление питанием GPU)"
msgid ""
"intel_idle max_cstate=1 (Prevents the processor from going into a deep sleep "
"state)"
"intel_idle max_cstate=1 (Prevents the processor from going into a deep "
"sleep state)"
msgstr ""
"intel_idle max_cstate=1 (Предотвращает переход процессора в состояние "
"глубокого сна)"
msgid ""
"intel_idle.max_cstate=4 (Eliminates flickering laptop display on processors "
"Ultra Voltage)"
"intel_idle.max_cstate=4 (Eliminates flickering laptop display on "
"processors Ultra Voltage)"
msgstr ""
"intel_idle.max_cstate=4 (Устраняет мерцание дисплея ноутбука на процессорах "
"Ultra Voltage)"
"intel_idle.max_cstate=4 (Устраняет мерцание дисплея ноутбука на "
"процессорах Ultra Voltage)"
msgid "no plymouth (Disable Plymouth)"
msgstr "no plymouth (Отключить Plymouth"
@ -559,11 +281,6 @@ msgstr "ofconsole (Консоль Open Firmware)"
msgid "quiet (Downloading without text messages)"
msgstr "quiet (Загрузка без текстовых сообщений)"
#: source/ubl-settings-bootloader.h:47 source/ubl-settings-bootloader.h:46
#: source/ubl-settings-bootloader.cc:425
msgid "seconds"
msgstr "секунд"
msgid "serial (Serial terminal)"
msgstr "serial (Последовательный терминал)"
@ -580,15 +297,6 @@ msgstr ""
msgid "splash (Show welcome window)"
msgstr "splash (Показать окно приветствия)"
#: source/ubl-settings-bootloader.h:39 source/ubl-settings-bootloader.h:38
#: source/ubl-settings-bootloader.cc:413 source/ubl-settings-bootloader.cc:418
#: source/ubl-settings-bootloader.cc:439 source/ubl-settings-bootloader.cc:281
#: source/ubl-settings-bootloader.cc:286 source/ubl-settings-bootloader.cc:309
msgid "System boot"
msgstr "Загрузка системы"
#: source/ubl-settings-bootloader.h:79 source/ubl-settings-bootloader.h:78
#: source/ubl-settings-bootloader.cc:947 source/ubl-settings-bootloader.cc:547
msgid "ubl-settings-bootloader version: "
msgstr "ubl-settings-bootloader версия: "
@ -598,137 +306,165 @@ msgstr "usb_keyboard (Клавиатура USB Keyboard (protocol HID Boot))"
msgid "vga_text (Text output VGA (Coreboot))"
msgstr "vga_text (Текстовый вывод VGA (Coreboot))"
#: source/ubl-settings-bootloader.cc:450
msgid "Нет анимации загрузки, полный журнал"
msgstr ""
#~ msgid "Mine"
#~ msgstr "Свой"
#~ msgid "Disabled"
#~ msgstr "Отключён"
#: source/ubl-settings-bootloader.h:162
msgid "Last succeeded load mode"
msgstr "Последний удачный вариант загрузки"
#: source/ubl-settings-bootloader.h:162
msgid "Disable Plymouth"
msgstr "Отключить Плимут"
#: source/ubl-settings-bootloader.h:162
msgid "Write debug output into /var/log/plymouth-debug.log"
msgstr "Записать выходные данные отладки в /var/log/plymouth-debug.log"
#: source/ubl-settings-bootloader.h:162
msgid "Disable ACPI"
msgstr "Отключить ACPI"
#: source/ubl-settings-bootloader.h:162
msgid "Disable APIC"
msgstr "Отключить APIC"
#: source/ubl-settings-bootloader.h:162
msgid "Disable local APIC"
msgstr "Отключить локальный APIC"
#: source/ubl-settings-bootloader.h:162
msgid "Single User Mode"
msgstr "Однопользовательский режим"
#: source/ubl-settings-bootloader.h:162
msgid "Disable kernel selection and loading of video drivers"
msgstr "Отключить выбор ядра и загрузку видеодрайверов"
#: source/ubl-settings-bootloader.h:162
msgid "Enable driver (default: auto, 0 = disabled, 1 = enabled, 2 = headless) (целочисленное)"
msgstr "Включить драйвер (по умолчанию: авто, 0 = отключено, 1 = включено, 2 = без головы) (целочисленное)"
msgid ""
"Enable driver (default: auto, 0 = disabled, 1 = enabled, 2 = headless) "
"(целочисленное)"
msgstr ""
"Включить драйвер (по умолчанию: авто, 0 = отключено, 1 = включено, 2 = "
"без головы) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Disable kernel/abi16 acceleration (целочисленное)"
msgstr "Отключить ускорение ядра/abi16 (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console preference [default]) (целочисленное)"
msgstr "Использовать настройку режима ядра [KMS] (0=отключить, 1=включить, -1=принудительно настроить консоль vga [по умолчанию]) (целочисленное)"
msgid ""
"Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console "
"preference [default]) (целочисленное)"
msgstr ""
"Использовать настройку режима ядра [KMS] (0=отключить, 1=включить, "
"-1=принудительно настроить консоль vga [по умолчанию]) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (целочисленное)"
msgstr "Включить сжатие кадрового буфера для экономии энергии (по умолчанию: -1 (используйте значение по умолчанию для каждого чипа)) (целочисленное)"
msgid ""
"Enable frame buffer compression for power savings (default: -1 (use per-"
"chip default)) (целочисленное)"
msgstr ""
"Включить сжатие кадрового буфера для экономии энергии (по умолчанию: -1 "
"(используйте значение по умолчанию для каждого чипа)) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6; 3=up to DC5 with DC3CO; 4=up to DC6 with DC3CO) (целочисленное)"
msgstr "Включить энергосберегающее отображение C-состояний. (-1=авто [по умолчанию]; 0=отключить; 1=до DC5; 2=до DC6; 3=до DC5 с DC3CO; 4=до DC6 с DC3CO) (целочисленное)"
msgid ""
"Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up "
"to DC5; 2=up to DC6; 3=up to DC5 with DC3CO; 4=up to DC6 with DC3CO) "
"(целочисленное)"
msgstr ""
"Включить энергосберегающее отображение C-состояний. (-1=авто [по "
"умолчанию]; 0=отключить; 1=до DC5; 2=до DC6; 3=до DC5 с DC3CO; 4=до DC6 с "
"DC3CO) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable PSR (0=disabled, 1=enabled) (целочисленное)"
msgstr "Включить PSR (0=выключено, 1=включено) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Disable display power wells when possible (-1=auto [default], 0=power wells always on, 1=power wells disabled when possible) (целочисленное)"
msgstr "Отключить отображение энергетических колодцев, когда это возможно (-1=авто [по умолчанию], 0=энергетические колодцы всегда включены, 1=энергетические колодцы отключены, когда это возможно) (целочисленное)"
msgid ""
"Disable display power wells when possible (-1=auto [default], 0=power "
"wells always on, 1=power wells disabled when possible) (целочисленное)"
msgstr ""
"Отключить отображение энергетических колодцев, когда это возможно "
"(-1=авто [по умолчанию], 0=энергетические колодцы всегда включены, "
"1=энергетические колодцы отключены, когда это возможно) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable IPS (default: true) (целочисленное)"
msgstr "Включить IPS (по умолчанию: true) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Try to skip unnecessary mode sets at boot time (0=disabled, 1=enabled) Default: -1 (use per-chip default) (целочисленное)"
msgstr "Попробовать пропустить ненужные наборы режимов во время загрузки (0=отключено, 1=включено). По умолчанию: -1 (используйте настройки по умолчанию для каждого чипа) (целочисленное)"
msgid ""
"Try to skip unnecessary mode sets at boot time (0=disabled, 1=enabled) "
"Default: -1 (use per-chip default) (целочисленное)"
msgstr ""
"Попробовать пропустить ненужные наборы режимов во время загрузки "
"(0=отключено, 1=включено). По умолчанию: -1 (используйте настройки по "
"умолчанию для каждого чипа) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Disable display (default: false) (логическое значение)"
msgstr "Отключить отображение (по умолчанию: false) (логическое значение)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load) (целочисленное)"
msgstr "Включить загрузку GuC для отправки GuC и/или загрузки HuC. Требуемую функциональность можно выбрать с помощью значений битовой маски. (-1=авто [по умолчанию], 0=отключить, 1=отправка GuC, 2=загрузка HuC) (целочисленное)"
msgid ""
"Enable GuC load for GuC submission and/or HuC load. Required "
"functionality can be selected using bitmask values. (-1=auto [default], "
"0=disable, 1=GuC submission, 2=HuC load) (целочисленное)"
msgstr ""
"Включить загрузку GuC для отправки GuC и/или загрузки HuC. Требуемую "
"функциональность можно выбрать с помощью значений битовой маски. (-1=авто "
"[по умолчанию], 0=отключить, 1=отправка GuC, 2=загрузка HuC) "
"(целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true) (логическое значение)"
msgstr "Включить многопотоковую передачу (MST) для новых приемников DisplayPort. (по умолчанию: true) (логическое значение)"
msgid ""
"Enable multi-stream transport (MST) for new DisplayPort sinks. (default: "
"true) (логическое значение)"
msgstr ""
"Включить многопотоковую передачу (MST) для новых приемников DisplayPort. "
"(по умолчанию: true) (логическое значение)"
#: source/ubl-settings-bootloader.h:162
msgid "Enable support for Intel GVT-g graphics virtualization host support (default:false) (логическое значение)"
msgstr "Включить поддержку хоста виртуализации графики Intel GVT-g (по умолчанию: false) (логическое значение)"
msgid ""
"Enable support for Intel GVT-g graphics virtualization host support "
"(default:false) (логическое значение)"
msgstr ""
"Включить поддержку хоста виртуализации графики Intel GVT-g (по умолчанию: "
"false) (логическое значение)"
#: source/ubl-settings-bootloader.h:162
msgid "Marvell SATA via AHCI (1 = enabled) (целочисленное)"
msgstr "Marvell SATA через AHCI (1 = включено) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Default LPM policy for mobile chipsets (default:-1) (целочисленное)"
msgstr "Политика LPM по умолчанию для мобильных чипсетов (по умолчанию:-1) (целочисленное)"
msgstr ""
"Политика LPM по умолчанию для мобильных чипсетов (по умолчанию:-1) "
"(целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF) (целочисленное)"
msgstr "Принудительно установить драйвер DSP для Intel DSP (0=авто, 1=устаревший, 2=SST, 3=SOF) (целочисленное)"
msgid ""
"Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF) "
"(целочисленное)"
msgstr ""
"Принудительно установить драйвер DSP для Intel DSP (0=авто, 1=устаревший, "
"2=SST, 3=SOF) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Do not use ACPI _CST for building the idle states list (default:N) (логическое значение)"
msgstr "Не использовать ACPI _CST для создания списка состояний простоя (по умолчанию: N) (логическое значение)"
msgid ""
"Do not use ACPI _CST for building the idle states list (default:N) "
"(логическое значение)"
msgstr ""
"Не использовать ACPI _CST для создания списка состояний простоя (по "
"умолчанию: N) (логическое значение)"
#: source/ubl-settings-bootloader.h:162
msgid "Use ACPI _CST for building the idle states list (default:N) (логическое значение)"
msgstr "Используйте ACPI _CST для создания списка состояний простоя (по умолчанию: N) (логическое значение)"
msgid ""
"Use ACPI _CST for building the idle states list (default:N) (логическое "
"значение)"
msgstr ""
"Используйте ACPI _CST для создания списка состояний простоя (по "
"умолчанию: N) (логическое значение)"
#: source/ubl-settings-bootloader.h:162
msgid "Prevents the processor from going into a deep sleep state (default:9) (целочисленное)"
msgstr "Предотвращает переход процессора в состояние глубокого сна (по умолчанию: 9) (целочисленное)"
msgid ""
"Prevents the processor from going into a deep sleep state (default:9) "
"(целочисленное)"
msgstr ""
"Предотвращает переход процессора в состояние глубокого сна (по умолчанию: "
"9) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Eliminates flickering laptop display on Ultra Voltage processors (целочисленное)"
msgstr "Устраняет мерцание дисплея ноутбука на процессорах сверхнапряжения (целочисленное)"
msgid ""
"Eliminates flickering laptop display on Ultra Voltage processors "
"(целочисленное)"
msgstr ""
"Устраняет мерцание дисплея ноутбука на процессорах сверхнапряжения "
"(целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Mask of disabled idle states (0=disabled, 1=enabled) Default: 0 (целочисленное)"
msgstr "Маска отключенных состояний простоя (0=отключено, 1=включено) По умолчанию: 0 (целочисленное)"
msgid ""
"Mask of disabled idle states (0=disabled, 1=enabled) Default: 0 "
"(целочисленное)"
msgstr ""
"Маска отключенных состояний простоя (0=отключено, 1=включено) По "
"умолчанию: 0 (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Default autosuspend delay (-1=disabled) (целочисленное)"
msgstr "Задержка автоприостановки по умолчанию (-1=отключено) (целочисленное)"
msgstr ""
"Задержка автоприостановки по умолчанию (-1=отключено) (целочисленное)"
#: source/ubl-settings-bootloader.h:162
msgid "Force dont`t load nouveau driver video for Nvidia"
msgstr "Принудительно не загружать видео драйвера nouveau для Nvidia"
msgstr "Принудительно не загружать видео драйвера nouveau для Nvidia"

Loading…
Cancel
Save