master #28

Merged
asmeron merged 58 commits from YanTheKaller/ubl-settings-video:master into develop 3 years ago

2
.gitignore vendored

@ -6,3 +6,5 @@ compile/
ubl-settings-video_ru.po~ ubl-settings-video_ru.po~
ubl-settings-video-n.pot ubl-settings-video-n.pot
vgcore.* vgcore.*
build/
source/ubl-settings-video-cm.h

@ -21,7 +21,7 @@ all: init build
init: init:
@echo "Initialize ..."; \ @echo "Initialize ..."; \
sed -r "s/(version_application = ).*/\1\"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-video.h; \ sed -r "s/(version_application).*/\1 = \"$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2)\";/" -i source/ubl-settings-video.h; \
echo "-- Build path: ${CMAKE_BUILD_DIR}" echo "-- Build path: ${CMAKE_BUILD_DIR}"
depend: depend:
@ -88,6 +88,7 @@ uninstall:
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.nvidia-logo.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.nvidia-logo.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.intel-logo.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.intel-logo.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.amd-logo.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.amd-logo.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/com.ublinux.${PKGNAME}.vmware-logo.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/com.ublinux.${PKGNAME}.checked.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/com.ublinux.${PKGNAME}.checked.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/com.ublinux.${PKGNAME}.warning.svg" @$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/com.ublinux.${PKGNAME}.warning.svg"
@$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy" @$(RM) "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}.policy"
@ -120,6 +121,7 @@ install: check uninstall
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.nvidia-logo.svg" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.nvidia-logo.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.intel-logo.svg" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.intel-logo.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.amd-logo.svg" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.amd-logo.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/emblems/" "com.ublinux.${PKGNAME}.vmware-logo.svg"
@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}.checked.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning.svg"
@install -dm755 "${DESTDIR}${PREFIX}/share/polkit-1/actions" @install -dm755 "${DESTDIR}${PREFIX}/share/polkit-1/actions"

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg
aria-label="Intel"
role="img"
viewBox="0 0 64 64"
version="1.1"
id="svg6"
sodipodi:docname="vmware-logo.svg"
width="64"
height="64"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10">
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter3075"
x="-0.086766915"
y="-0.1312858"
width="1.1735338"
height="1.2625716">
<feFlood
flood-opacity="0.901961"
flood-color="rgb(255,255,255)"
result="flood"
id="feFlood3065" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite3067" />
<feGaussianBlur
in="composite1"
stdDeviation="2.3"
result="blur"
id="feGaussianBlur3069" />
<feOffset
dx="-1.94289e-16"
dy="3.05311e-16"
result="offset"
id="feOffset3071" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite3073" />
</filter>
<filter
style="color-interpolation-filters:sRGB;"
inkscape:label="Drop Shadow"
id="filter2062"
x="-0.12851938"
y="-0.12881936"
width="1.2570388"
height="1.2576387">
<feFlood
flood-opacity="0.901961"
flood-color="rgb(255,255,255)"
result="flood"
id="feFlood2052" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite2054" />
<feGaussianBlur
in="composite1"
stdDeviation="32"
result="blur"
id="feGaussianBlur2056" />
<feOffset
dx="-1.94289e-16"
dy="3.05311e-16"
result="offset"
id="feOffset2058" />
<feComposite
in="SourceGraphic"
in2="offset"
operator="over"
result="composite2"
id="feComposite2060" />
</filter>
</defs>
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#999999"
borderopacity="1"
inkscape:pageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="7.8555144"
inkscape:cx="37.362289"
inkscape:cy="27.051061"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<g
id="_____1"
transform="matrix(0.07828447,0,0,0.07828447,8.3156223,8.3580563)"
style="filter:url(#filter2062)">
<g
id="______________"
transform="matrix(2.0140076,0,0,2.0140076,-5.5,0)">
<g
id="g1030">
<g
id="g1024">
<g
id="g1022">
<path
fill="#f38b00"
stroke="none"
d="m 168.45,116.9 q 12.95,3.95 16.95,16.95 v 48.45 h 38.35 v -0.05 h 5.9 v -0.1 h 0.55 v -82.2 q -6.6,-21.45 -27.95,-28 H 30.6 q -21.3544922,6.525 -27.95,28 v 172.8 q 6.6,21.45 28.55,27.15 h 170.45 q 21.95,-5.7 28.55,-27.15 V 227.7 h -44.8 v 10.85 q -4,13 -17.3,16.45 h 1.15 -1.15 -103.3 -1.2 1.2 Q 51.5,251.55 47.5,238.55 v -104.7 q 4,-13 16.95,-16.95 z"
id="path1020" />
</g>
</g>
<g
id="g1028">
<path
stroke="#f28c00"
stroke-width="1"
stroke-linejoin="round"
stroke-linecap="round"
fill="none"
d="M 64.8,255 Q 51.5,251.55 47.5,238.55 v -104.7 q 4,-13 16.95,-16.95 h 104 q 12.95,3.95 16.95,16.95 v 48.45 m 44.8,-0.15 v -82.2 q -6.6,-21.45 -27.95,-28 H 30.6 q -21.3544922,6.525 -27.95,28 v 172.8 q 6.6,21.45 28.55,27.15 h 170.45 q 21.95,-5.7 28.55,-27.15 V 227.7 m -44.8,0 v 10.85 q -4,13 -17.3,16.45 h 1.15 M 63.6,255 h 1.2 103.3 M 29.25,299.9 h 1.95 m 170.45,0 h 1.95"
id="path1026" />
</g>
</g>
</g>
<g
id="g1045"
transform="matrix(2.0140076,0,0,2.0140076,-5.5,0)">
<g
id="g1043">
<g
id="g1037">
<g
id="g1035">
<path
fill="#0097d3"
stroke="none"
d="M 303.25,28 Q 296.65,6.55 275.3,0 H 103.65 Q 82.3,6.55 75.7,28 v 43.95 h 44.8 V 61.9 q 4,-13 16.95,-16.95 h 104 Q 254.4,48.9 258.4,61.9 v 104.7 q -4,13 -17.3,16.45 h 1.2 -1.2 -103.3 -1.15 1.15 Q 124.5,179.6 120.5,166.6 V 116.9 H 75.7 v 83.9 q 6.6,21.45 28.55,27.15 H 274.7 q 21.95,-5.7 28.55,-27.15 z"
id="path1033" />
</g>
</g>
<g
id="g1041">
<path
stroke="#0097d3"
stroke-width="1"
stroke-linejoin="round"
stroke-linecap="round"
fill="none"
d="m 75.7,116.9 v 83.9 q 6.6,21.45 28.55,27.15 H 274.7 q 21.95,-5.7 28.55,-27.15 V 28 Q 296.65,6.55 275.3,0 H 103.65 Q 82.3,6.55 75.7,28 v 43.95 m 44.8,0 V 61.9 q 4,-13 16.95,-16.95 h 104 Q 254.4,48.9 258.4,61.9 v 104.7 q -4,13 -17.3,16.45 h 1.2 m -104.5,0 h -1.15 M 120.5,116.9 v 49.7 q 4,13 17.3,16.45 h 103.3 m -136.85,44.9 h -1.95 m 174.35,0 h -1.95"
id="path1039" />
</g>
</g>
</g>
<g
id="____"
transform="matrix(2.0140076,0,0,2.0140076,-5.5,0)">
<g
id="g1063">
<g
id="g1053">
<g
id="g1051">
<path
fill="#c96d00"
stroke="none"
d="m 230.2,246.9 v -19.2 l -42.25,0.25 z"
id="path1047" />
<path
fill="#0077a9"
stroke="none"
d="m 75.7,118.15 v 18 l 42.75,-18.2 z"
id="path1049" />
</g>
</g>
<g
id="g1057">
<path
stroke="#0077a9"
stroke-width="1"
stroke-linejoin="round"
stroke-linecap="round"
fill="none"
d="m 118.45,117.95 -42.75,18.2 v -18 z"
id="path1055" />
</g>
<g
id="g1061">
<path
stroke="#c96d00"
stroke-width="1"
stroke-linejoin="round"
stroke-linecap="round"
fill="none"
d="M 187.95,227.95 230.2,246.9 V 227.7 Z"
id="path1059" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

@ -42,6 +42,7 @@
#define SAVE_LABEL _("Save") #define SAVE_LABEL _("Save")
#define ON_LABEL _("On") #define ON_LABEL _("On")
#define OFF_LABEL _("Off") #define OFF_LABEL _("Off")
#define SWITCHED_OFF_LABEL _("Switched off")
#define FBDEV_LABEL _("fbdev") #define FBDEV_LABEL _("fbdev")
#define AUTO_CHOOSE_DRIVERS_LABEL _("Automatically choose and use driver") #define AUTO_CHOOSE_DRIVERS_LABEL _("Automatically choose and use driver")
#define LAUNCH_OPTIRUN_LABEL _("Launch programms through optirun (nVidia): ") #define LAUNCH_OPTIRUN_LABEL _("Launch programms through optirun (nVidia): ")
@ -55,6 +56,7 @@
#define DOCUMENTATION_LABEL _("Documentation") #define DOCUMENTATION_LABEL _("Documentation")
#define ABOUT_LABEL _("About") #define ABOUT_LABEL _("About")
#define INSTALLED_LABEL _("Installed") #define INSTALLED_LABEL _("Installed")
#define INSTALLED_LOW_LABEL _("installed")
#define PACKAGE_LABEL _("Package") #define PACKAGE_LABEL _("Package")
#define SUPPORTED_LABEL _("Supported Devices") #define SUPPORTED_LABEL _("Supported Devices")
#define CANCEL_LABEL _("Cancel") #define CANCEL_LABEL _("Cancel")
@ -67,9 +69,14 @@
#define PROPRIETARY_OPETAION_DONE_LABEL _("Driver operation is done.") #define PROPRIETARY_OPETAION_DONE_LABEL _("Driver operation is done.")
#define PROPRIETARY_NOTHING_SELECTED_LABEL _("Nothing was selected.") #define PROPRIETARY_NOTHING_SELECTED_LABEL _("Nothing was selected.")
#define PROPRIETARY_USE_LOCAL_LABEL _("Failed to load available drivers for your system... Installed driver list is shown.") #define PROPRIETARY_USE_LOCAL_LABEL _("Failed to load available drivers for your system... Installed driver list is shown.")
#define CONFIGURE_LABEL _("Configure monitor")
#define DELETE_LABEL _("Delete monitor configuration")
#define ADD_LABEL _("Add monitor configuration")
#define SWITCH_LABEL _("Switch monitor")
#define MORE_LABEL _("More")
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?") #define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is translated and supported by community.") #define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
#define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation") #define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation")
#define INFORMATION_LABEL _("Information") #define INFORMATION_LABEL _("Information")
#define DRIVERS_LABEL _("Drivers") #define DRIVERS_LABEL _("Drivers")

@ -2,19 +2,31 @@
config videoconfig; config videoconfig;
void yon_on_plug_added(GtkSocket *self, gpointer user_data) // void on_apps_chooser_open(GtkWidget *self){
{ // int size=0;
} // config_str categories=yon_char_parsed_new(NULL,&size,"GTK",NULL);
// config_str names=yon_char_parsed_new(NULL,&size,"XFCE",NULL);
// config_str icons=yon_char_parsed_new(NULL,&size,"org.xfce.panel.Launcher",NULL);
// yon_app_chooser_show(categories,names,icons,size);
// }
void yon_on_plug_removed(GtkSocket *self, gpointer user_data)
{
}
void on_subwindow_close(GtkWidget *self) void on_subwindow_close(GtkWidget *self)
{ {
gtk_widget_destroy(gtk_widget_get_toplevel(self)); gtk_widget_destroy(gtk_widget_get_toplevel(self));
} }
void on_resized(GtkWidget *window, GdkEventConfigure *event){
float time_passed = (float)clock()/(float)CLOCKS_PER_SEC;
if (time_passed>2){
int width = gdk_window_get_width(gtk_widget_get_window(videoconfig.pack_box));
int children_width = 138*g_list_length(gtk_container_get_children(GTK_CONTAINER((GtkWidget*)videoconfig.monitor_output_layers->first->data)));
if (width<children_width||width>children_width+150)
yon_monitor_view_draw_all();
}
}
void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){ void on_monitor_config_save(GtkWidget *self, monitor_edit_window *window){
monitorconfig *config = yon_dictionary_get_data(window->config,monitorconfig*); monitorconfig *config = yon_dictionary_get_data(window->config,monitorconfig*);
if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo))==0){ if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo))==0){
@ -118,6 +130,7 @@ void yon_terminal_start(widgets_dict *widgets, char *usr_command){
widgets->TerminalInfoLabel = yon_gtk_builder_get_widget(builder, "TerminalInfoLabel"); widgets->TerminalInfoLabel = yon_gtk_builder_get_widget(builder, "TerminalInfoLabel");
GtkWidget *terminal = yon_gtk_builder_get_widget(builder, "TerminalTerminal"); GtkWidget *terminal = yon_gtk_builder_get_widget(builder, "TerminalTerminal");
gtk_button_set_label(GTK_BUTTON(widgets->TerminalMoreButton),MORE_LABEL);
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15); vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
gtk_widget_set_app_paintable(terminal,1); gtk_widget_set_app_paintable(terminal,1);
gtk_style_context_add_class(gtk_widget_get_style_context(terminal),"opacited"); gtk_style_context_add_class(gtk_widget_get_style_context(terminal),"opacited");
@ -202,6 +215,43 @@ void on_driver_pack_delete(GtkWidget *self,widgets_dict *widgets){
} }
} }
void on_driver_pack_selection_change(GtkWidget *self, widgets_dict *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
int installed=0;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->proprietaryTreeView)),&iter,0,&installed,-1);
if (installed==1){
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,1);
} else {
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,1);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
}
}
}
void on_driver_selection_change(GtkWidget *self, widgets_dict *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(videoconfig.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
int installed=0;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->driversTreeView)),&iter,0,&installed,-1);
if (installed==1){
gtk_widget_set_sensitive(widgets->driversInstallButton,0);
gtk_widget_set_sensitive(widgets->driversDeleteButton,1);
} else {
gtk_widget_set_sensitive(widgets->driversInstallButton,1);
gtk_widget_set_sensitive(widgets->driversDeleteButton,0);
}
}
}
void on_driver_delete(GtkWidget *self,widgets_dict *widgets){ void on_driver_delete(GtkWidget *self,widgets_dict *widgets){
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_DELETING_IN_PROGRESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_DELETING_IN_PROGRESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
GtkTreeIter iter; GtkTreeIter iter;
@ -251,16 +301,24 @@ void on_driver_info(GtkWidget *self,widgets_dict *widgets){
} }
void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){ void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){
if (yon_dictionary_get_data(window->config,monitorconfig*)->show_usupported==0){
monitorconfig* config = yon_dictionary_get_data(window->config,monitorconfig*); monitorconfig* config = yon_dictionary_get_data(window->config,monitorconfig*);
dictionary *dict=NULL; dictionary *dict=NULL;
for (int i=0;i<window->resolutionssize;i++){
free(window->resolutions);
}
window->resolutions=NULL;
window->resolutionssize=0;
int portid=gtk_combo_box_get_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo));
if (portid!=0)
window->curport=videoconfig.ports[portid-1];
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo)); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo),PARAMETER_DEFAULT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationResolutionCombo),PARAMETER_DEFAULT_LABEL);
gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo),0);
char *combo_text=yon_char_new((char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationPortCombo)));
char *resolution = yon_char_divide_search(combo_text," ",-1); if (window->curport){
if (combo_text) gtk_window_set_title(GTK_WINDOW(gtk_widget_get_toplevel(window->mainMonitorConfigurationBox)),window->curport);
if (strcmp(combo_text,MONITOR_CHOOSE_PORT_LABEL)!=0){ dict=yon_dictionary_find(&videoconfig.supported_resolutions,window->curport);
dict=yon_dictionary_find(&videoconfig.supported_resolutions,resolution);
if (dict){ if (dict){
resolution_supported *res = yon_dictionary_get_data(dict,resolution_supported*); resolution_supported *res = yon_dictionary_get_data(dict,resolution_supported*);
int found_size=0; int found_size=0;
@ -282,6 +340,7 @@ void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){
} }
} }
} }
}
void on_sensitive_change(GtkWidget *self, GtkWidget *toggle) void on_sensitive_change(GtkWidget *self, GtkWidget *toggle)
{ {
@ -387,10 +446,6 @@ void on_configuration_save_local(GtkWidget *self, widgets_dict *widgets)
char *str=NULL; char *str=NULL;
char *delstr=NULL; char *delstr=NULL;
str=yon_configuration_get_save_command(save_drivers_local_command); str=yon_configuration_get_save_command(save_drivers_local_command);
// delstr=yon_configuration_get_remove_command(remove_drivers_local_command);
// if (delstr){
// yon_config_save(delstr);
// }
if (str){ if (str){
yon_config_save(str); yon_config_save(str);
yon_ubl_status_box_render(videoconfig.status_render,LOCAL_SAVE_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,LOCAL_SAVE_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE);
@ -421,10 +476,6 @@ void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets)
char *str=NULL; char *str=NULL;
char *delstr=NULL; char *delstr=NULL;
str=yon_configuration_get_save_command(save_drivers_global_command); str=yon_configuration_get_save_command(save_drivers_global_command);
// delstr=yon_configuration_get_remove_command(remove_drivers_global_command);
// if (delstr){
// yon_config_save(delstr);
// }
if (str){ if (str){
yon_config_save(str); yon_config_save(str);
yon_ubl_status_box_render(videoconfig.status_render,LOCAL_SAVE_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,LOCAL_SAVE_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE);
@ -436,6 +487,7 @@ void yon_update_config(widgets_dict *widgets)
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->mainExtraLaunchOptirunCheck))==1) if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->mainExtraLaunchOptirunCheck))==1)
videoconfig.optirun = yon_char_new( (char *)gtk_entry_get_text(GTK_ENTRY(widgets->mainExtraLaunchOptirunEntry))); videoconfig.optirun = yon_char_new( (char *)gtk_entry_get_text(GTK_ENTRY(widgets->mainExtraLaunchOptirunEntry)));
else videoconfig.optirun = NULL; else videoconfig.optirun = NULL;
videoconfig.descreteOnly=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->mainHybridGraphicsDiscreteCheck));
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->mainExtraLaunchPrismusunCheck))==1) if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->mainExtraLaunchPrismusunCheck))==1)
videoconfig.primusrun = yon_char_new( (char *)gtk_entry_get_text(GTK_ENTRY(widgets->mainExtraLaunchPrismusunEntry))); videoconfig.primusrun = yon_char_new( (char *)gtk_entry_get_text(GTK_ENTRY(widgets->mainExtraLaunchPrismusunEntry)));
else videoconfig.primusrun = NULL; else videoconfig.primusrun = NULL;
@ -448,6 +500,7 @@ void on_configuration_load_local(GtkWidget *self, widgets_dict *widgets)
yon_setup_config(load_drivers_local_command); yon_setup_config(load_drivers_local_command);
on_config_fill_interface(widgets); on_config_fill_interface(widgets);
yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox); yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox);
yon_ubl_status_box_render(videoconfig.status_render,LOCAL_LOAD_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
void on_configuration_load_global(GtkWidget *self, widgets_dict *widgets) void on_configuration_load_global(GtkWidget *self, widgets_dict *widgets)
@ -456,6 +509,7 @@ void on_configuration_load_global(GtkWidget *self, widgets_dict *widgets)
yon_setup_config(load_drivers_global_command); yon_setup_config(load_drivers_global_command);
on_config_fill_interface(widgets); on_config_fill_interface(widgets);
yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox); yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox);
yon_ubl_status_box_render(videoconfig.status_render,GLOBAL_LOAD_SUCCESS,BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
/**void on_monitor_delete(GtkWidget *self,monitor_view windowd) /**void on_monitor_delete(GtkWidget *self,monitor_view windowd)
@ -495,7 +549,7 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){
} }
void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){ void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){
if (pagen==1){ if (pagen==1&&videoconfig.dblock==0){
GtkTreeIter iter; GtkTreeIter iter;
if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){ if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){
pthread_t tid; pthread_t tid;
@ -566,6 +620,7 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){
gtk_button_set_label(GTK_BUTTON(monitors->templateMonitorConfigurationSaveButton),MONITOR_SAVE_LABEL); gtk_button_set_label(GTK_BUTTON(monitors->templateMonitorConfigurationSaveButton),MONITOR_SAVE_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPortCombo),MONITOR_CHOOSE_PORT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPortCombo),MONITOR_CHOOSE_PORT_LABEL);
monitors->curport=NULL;
dictionary *dict=NULL; dictionary *dict=NULL;
for (int i=0;i<videoconfig.portssize;i++){ for (int i=0;i<videoconfig.portssize;i++){
dictionary *check_if_exists = yon_dictionary_find(&videoconfig.monitors,videoconfig.ports[i]); dictionary *check_if_exists = yon_dictionary_find(&videoconfig.monitors,videoconfig.ports[i]);
@ -591,6 +646,7 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){
gtk_combo_box_set_active(GTK_COMBO_BOX(monitors->templateMonitorConfigurationPositionPosCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(monitors->templateMonitorConfigurationPositionPosCombo),0);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPositionPortCombo),PARAMETER_DEFAULT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPositionPortCombo),PARAMETER_DEFAULT_LABEL);
for (int i=0;i<videoconfig.portssize;i++){ for (int i=0;i<videoconfig.portssize;i++){
if (videoconfig.ports[i]!=monitors->config->key)
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPositionPortCombo),videoconfig.ports[i]); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(monitors->templateMonitorConfigurationPositionPortCombo),videoconfig.ports[i]);
} }
gtk_combo_box_set_active(GTK_COMBO_BOX(monitors->templateMonitorConfigurationPositionPortCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(monitors->templateMonitorConfigurationPositionPortCombo),0);
@ -602,7 +658,7 @@ void on_monitor_configure(GtkWidget *self,monitor_window *window){
} }
void on_read_documentation(GtkWidget *self,gpointer user_data){ void on_read_documentation(GtkWidget *self,gpointer user_data){
yon_ubl_browser_window_open(UBLINUX_WIKI_LINK,WEB_VIEW_TITLE_LABEL); yon_ubl_browser_window_open(user_data,WEB_VIEW_TITLE_LABEL);
} }
@ -614,6 +670,8 @@ void on_link(GtkWidget *self, char* link, gpointer user_data){
if (GTK_IS_ABOUT_DIALOG(self)){ if (GTK_IS_ABOUT_DIALOG(self)){
gtk_widget_destroy(self); gtk_widget_destroy(self);
} }
if (!link)
link=UBLINUX_WIKI_LINK;
if (videoconfig.alwaysredirect==0){ if (videoconfig.alwaysredirect==0){
GtkBuilder *builder=gtk_builder_new_from_file(glade_path); GtkBuilder *builder=gtk_builder_new_from_file(glade_path);
GtkWidget *sureWindow=yon_gtk_builder_get_widget(builder,"HelpSureWindow"); GtkWidget *sureWindow=yon_gtk_builder_get_widget(builder,"HelpSureWindow");
@ -624,7 +682,7 @@ void on_link(GtkWidget *self, char* link, gpointer user_data){
GtkWidget *textLabel=yon_gtk_builder_get_widget(builder,"helpText"); GtkWidget *textLabel=yon_gtk_builder_get_widget(builder,"helpText");
GtkWidget *alwaysOpenCheck=yon_gtk_builder_get_widget(builder,"AlwaysOpenHelpCheckbox"); GtkWidget *alwaysOpenCheck=yon_gtk_builder_get_widget(builder,"AlwaysOpenHelpCheckbox");
g_signal_connect(G_OBJECT(readButton),"clicked",G_CALLBACK(on_read_documentation),NULL); g_signal_connect(G_OBJECT(readButton),"clicked",G_CALLBACK(on_read_documentation),yon_char_new(link));
g_signal_connect(G_OBJECT(readButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(readButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(cancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(cancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(alwaysOpenCheck),"toggled",G_CALLBACK(on_toggle),&videoconfig.alwaysredirect); g_signal_connect(G_OBJECT(alwaysOpenCheck),"toggled",G_CALLBACK(on_toggle),&videoconfig.alwaysredirect);
@ -638,7 +696,7 @@ void on_link(GtkWidget *self, char* link, gpointer user_data){
gtk_widget_show(sureWindow); gtk_widget_show(sureWindow);
}else { }else {
on_read_documentation(NULL,NULL); on_read_documentation(NULL,link);
} }
} }
@ -661,10 +719,22 @@ void on_about()
void yon_monitor_window_update(monitor_edit_window *window){ void yon_monitor_window_update(monitor_edit_window *window){
if (window){ if (window){
int found = yon_gtk_combo_box_text_find(window->templateMonitorConfigurationPortCombo, window->config->key); int found = yon_char_parsed_check_exist(videoconfig.ports,videoconfig.portssize, window->config->key);
if (found==-1) if (found==-1)
found=0; found=0;
else
found++;
gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo),found); gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationPortCombo),found);
on_resolutions_unsupported_show(window->templateMonitorConfigurationShowUnsupportedCheck,window);
if (((monitorconfig*)window->config->data)->resolutionCapabilities){
// printf("%s\n",((monitorconfig*)window->config->data)->resolution);
found = yon_gtk_combo_box_text_find(window->templateMonitorConfigurationResolutionCombo, ((monitorconfig*)window->config->data)->resolution);
}else{
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->templateMonitorConfigurationShowUnsupportedCheck),1);
found = yon_gtk_combo_box_text_find(window->templateMonitorConfigurationResolutionCombo, ((monitorconfig*)window->config->data)->resolution);
}
if (found==-1)
found=0;
gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo),found); gtk_combo_box_set_active(GTK_COMBO_BOX(window->templateMonitorConfigurationResolutionCombo),found);
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo)); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo),PARAMETER_DEFAULT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(window->templateMonitorConfigurationFrequencyCombo),PARAMETER_DEFAULT_LABEL);
@ -689,33 +759,62 @@ void yon_monitor_window_update(monitor_edit_window *window){
} }
/**void yon_monitor_view_draw_all(GtkWidget *cnt) /**void yon_monitor_view_draw_all(GtkWidget *cnt)
* [EN] * [EN]
*/ */
void yon_monitor_view_draw_all(GtkWidget *cnt){ void yon_monitor_view_draw_all(){
monitor_view dict=NULL; monitor_view dict=NULL;
GtkWidget *container=NULL; GtkWidget *container=NULL;
if(!container&&cnt) container=cnt;
if(videoconfig.monitor_visuals){ if(videoconfig.monitor_visuals){
for_dictionaries(dict,videoconfig.monitor_visuals){ for_dictionaries(dict,videoconfig.monitor_visuals){
monitor_window *window = yon_dictionary_get_data(dict,monitor_window*); monitor_window *window = yon_dictionary_get_data(dict,monitor_window*);
if (!container) container = gtk_widget_get_parent(window->templateMonitorscreenOverlay); container = gtk_widget_get_parent(window->templateMonitorscreenOverlay);
if(container){ if(container){
g_object_ref(G_OBJECT(window->templateMonitorscreenOverlay)); g_object_ref(G_OBJECT(window->templateMonitorscreenOverlay));
gtk_container_remove(GTK_CONTAINER(container),window->templateMonitorscreenOverlay); gtk_container_remove(GTK_CONTAINER(container),window->templateMonitorscreenOverlay);
} }
} }
if (container) dictionary *boxes=NULL;
if (videoconfig.monitor_output_layers)
for_dictionaries(boxes,videoconfig.monitor_output_layers){
gtk_widget_destroy((GtkWidget*)boxes->data);
if (boxes->prev)
free(boxes->prev);
boxes->prev=NULL;
}
free(boxes);
videoconfig.monitor_output_layers=NULL;
int overall_width=0;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.monitor_output_layers,"Box",gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0));
gtk_box_pack_start(GTK_BOX(videoconfig.pack_box),&*(GtkWidget*)videoconfig.monitor_output_layers->data,0,0,0);
gtk_widget_show((GtkWidget*)videoconfig.monitor_output_layers->data);
for_dictionaries(dict,videoconfig.monitor_visuals){ for_dictionaries(dict,videoconfig.monitor_visuals){
monitor_window *window = yon_dictionary_get_data(dict,monitor_window*); monitor_window *window = yon_dictionary_get_data(dict,monitor_window*);
if(dict->first==dict) {} if(dict->first==dict) {}
else { else {
gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0); overall_width+=138;
GtkWidget *boxpack=(GtkWidget*)videoconfig.monitor_output_layers->data;
gtk_box_pack_start(GTK_BOX(boxpack),window->templateMonitorscreenOverlay,0,0,0);
}
int width=0;
GdkWindow *cur_window = gtk_widget_get_window(videoconfig.pack_box);
if(cur_window)
width = gdk_window_get_width(cur_window);
if (overall_width+138>width){
overall_width=0;
GtkWidget *boxpack=NULL;
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.monitor_output_layers,"Box",(boxpack=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0)));
gtk_widget_show((GtkWidget*)videoconfig.monitor_output_layers->data);
gtk_box_pack_start(GTK_BOX(videoconfig.pack_box),boxpack,0,0,0);
} }
} }
gtk_widget_show((GtkWidget*)videoconfig.monitor_output_layers->data);
monitor_window *window = yon_dictionary_get_data(videoconfig.monitor_visuals->first,monitor_window*); monitor_window *window = yon_dictionary_get_data(videoconfig.monitor_visuals->first,monitor_window*);
gtk_box_pack_start(GTK_BOX(container),window->templateMonitorscreenOverlay,0,0,0); gtk_box_pack_start(GTK_BOX(((GtkWidget*)videoconfig.monitor_output_layers->data)),window->templateMonitorscreenOverlay,0,0,0);
} }
yon_monitor_view_update(); yon_monitor_view_update();
} }
@ -983,27 +1082,50 @@ void on_config_fill_interface(widgets_dict *widgets)
*/ */
dictionary *yon_proprieary_get(){ dictionary *yon_proprieary_get(){
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
videoconfig.dblock=1;
videoconfig.proprietary=NULL; videoconfig.proprietary=NULL;
int drivers_size=0; int drivers_size=0;
config_str drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size);
int size=0; int size=0;
char **rtn = yon_config_load(get_proprietary_drivers_info_command,&size); config_str drivers=NULL;
for (int drivers_found=0;drivers_found<drivers_size;drivers_found++){ config_str rtn=NULL;
drivers[drivers_found]=yon_char_divide_search(drivers[drivers_found],"\n",-1); rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
for (int i=0;i<size;i++){ // drivers=yon_config_load(get_proprietary_installed_command,&drivers_size);
rtn[i] = yon_char_divide_search(rtn[i],"\n",-1); // for (int dr_desc=0;dr_desc<drivers_size;dr_desc++){
char *keyp=yon_char_new(rtn[i]); // for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
if (keyp[0]==';') // drivers[dr_foun]=yon_char_divide_search(drivers[dr_foun],"\n",-1);
yon_char_divide_search(keyp,";",-1); // char *pack=yon_char_new(rtn[dr_desc]);
char *key = yon_char_divide_search(keyp,";",-1); // char *ubm=yon_char_divide_search(pack,";",-1);
keyp = yon_char_divide_search(keyp,";",-1); // pack=yon_char_divide_search(pack,";",-1);
char *driver_name=yon_char_divide_search(yon_char_new(drivers[drivers_found])," ",-1); // if (strcmp(drivers[dr_foun],ubm)==0){
if (strcmp(key,driver_name)==0||keyp) // yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
if (i==0) videoconfig.proprietary=yon_dictionary_create_with_data(drivers[drivers_found],rtn[i]); // }
else videoconfig.proprietary=yon_dictionary_create_with_data_connected(videoconfig.proprietary,drivers[drivers_found],rtn[i]); // // else if (strcmp(pack,"")!=0&&!(yon_dictionary_find(!videoconfig.proprietary||&videoconfig.proprietary,pack))){
// // yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
// // }
// }
// }
if (videoconfig.proprietary){
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
videoconfig.proprietary=NULL;
}
drivers=yon_config_load(get_proprietary_drivers_command,&drivers_size);
printf("begin loading information\n");
for (int dr_desc=0;dr_desc<size;dr_desc++){
for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
drivers[dr_foun]=yon_char_divide_search(drivers[dr_foun],"\n",-1);
char *pack=yon_char_new(rtn[dr_desc]);
char *ubm=yon_char_divide_search(pack,";",-1);
pack=yon_char_divide_search(pack,";",-1);
if (strcmp(drivers[dr_foun],ubm)==0){
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
}
else if (strcmp(pack,"")!=0&&!yon_dictionary_find(&videoconfig.proprietary,pack)){
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
}
} }
} }
if (videoconfig.proprietary){ if (videoconfig.proprietary){
printf("printing information\n");
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_OPETAION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_OPETAION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else { } else {
@ -1027,8 +1149,8 @@ dictionary *yon_proprieary_get(){
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else } else {
{ videoconfig.dblock=0;
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
} }
@ -1043,21 +1165,28 @@ void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list){
dictionary *dict=NULL; dictionary *dict=NULL;
gtk_list_store_clear(videoconfig.list); gtk_list_store_clear(videoconfig.list);
gtk_list_store_clear(videoconfig.list2); gtk_list_store_clear(videoconfig.list2);
int inssize=0;
config_str installed=yon_config_load(get_proprietary_installed_command,&inssize);
for (int i=0;i<inssize;i++)
installed[i]=yon_char_divide_search(installed[i],"\n",-1);
for_dictionaries(dict,videoconfig.proprietary){ for_dictionaries(dict,videoconfig.proprietary){
GtkTreeIter iter; GtkTreeIter iter;
int size=0; int size=0;
config_str str = yon_char_parse((char*)dict->data,&size,";"); config_str str = yon_char_parse((char*)dict->data,&size,";");
printf("%s\n",str[0]);
if (strcmp(str[0],"")!=0&&str[0]){ if (strcmp(str[0],"")!=0&&str[0]){
gtk_list_store_append(videoconfig.list,&iter); gtk_list_store_append(videoconfig.list,&iter);
gtk_list_store_set(videoconfig.list,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1); gtk_list_store_set(videoconfig.list,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1);
if (yon_char_parsed_check_exist(installed,inssize,str[0])!=-1)
gtk_list_store_set(videoconfig.list,&iter,0,1,-1);
} }
else{ else{
gtk_list_store_append(videoconfig.list2,&iter); gtk_list_store_append(videoconfig.list2,&iter);
gtk_list_store_set(videoconfig.list2,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1); gtk_list_store_set(videoconfig.list2,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1);
if (yon_char_parsed_check_exist(installed,inssize,str[1])!=-1){
gtk_list_store_set(videoconfig.list2,&iter,0,1,-1);
}
} }
if (strstr(dict->key," installed"))
gtk_list_store_set(videoconfig.list,&iter,0,1,-1);
} }
} }
} }
@ -1093,6 +1222,7 @@ void yon_setup_config(char *configcommand)
videoconfig.failsafenVidia=NULL; videoconfig.failsafenVidia=NULL;
videoconfig.gapfix=0; videoconfig.gapfix=0;
videoconfig.loaded_config=NULL; videoconfig.loaded_config=NULL;
videoconfig.dblock=0;
if(videoconfig.optirun) if(videoconfig.optirun)
free(videoconfig.optirun); free(videoconfig.optirun);
videoconfig.optirun=NULL; videoconfig.optirun=NULL;
@ -1283,6 +1413,10 @@ void yon_monitor_view_new(monitor_config monitor){
window->templateMonitorInfoAddButton=yon_gtk_builder_get_widget(builder,"templateMonitorInfoAddButton"); window->templateMonitorInfoAddButton=yon_gtk_builder_get_widget(builder,"templateMonitorInfoAddButton");
window->config=NULL; window->config=NULL;
gtk_overlay_add_overlay(GTK_OVERLAY(window->templateMonitorscreenOverlay),window->templateMonitorInfoBox); gtk_overlay_add_overlay(GTK_OVERLAY(window->templateMonitorscreenOverlay),window->templateMonitorInfoBox);
gtk_widget_set_tooltip_text(window->templateMonitorDeleteButton,DELETE_LABEL);
gtk_widget_set_tooltip_text(window->templateMonitorInfoConfigureButton,CONFIGURE_LABEL);
gtk_widget_set_tooltip_text(window->templateMonitorSwitchButton,SWITCH_LABEL);
gtk_widget_set_tooltip_text(window->templateMonitorInfoAddButton,ADD_LABEL);
if (monitor){ if (monitor){
window->config=monitor; window->config=monitor;
gtk_widget_hide(window->templateMonitorInfoAddButton); gtk_widget_hide(window->templateMonitorInfoAddButton);
@ -1357,9 +1491,10 @@ void yon_adapter_window_setup(widgets_dict *widgets){
yon_char_divide_search(product,"=",-1); yon_char_divide_search(product,"=",-1);
char *vendor = yon_config_get_parameter(rtn,size,"vendor"); char *vendor = yon_config_get_parameter(rtn,size,"vendor");
yon_char_divide_search(vendor,"=",-1); yon_char_divide_search(vendor,"=",-1);
char *driver_use = yon_config_get_parameter(rtn,size,"Kernel_driver_in_use"); char *driver_use = yon_config_get_parameter(rtn,size,"Kernel-driver-in-use");
yon_char_divide_search(driver_use,"=",-1); yon_char_divide_search(driver_use,"=",-1);
char *driver_all = yon_config_get_parameter(rtn,size,"Kernel_modules"); char *driver_all = yon_config_get_parameter(rtn,size,"Kernel-modules");
driver_all = yon_char_replace(driver_all,"-"," ");
yon_char_divide_search(driver_all,"=",-1); yon_char_divide_search(driver_all,"=",-1);
char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc), char *final_text = yon_char_unite("<span size=\"12pt\"><span weight='bold' color='#1a5fb4'>",DESCRIPTION_LABEL,":</span> ",_(desc),
"\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor, "\n<span weight='bold' color='#1a5fb4'>",VENDOR_LABEL,":</span> ",vendor,
@ -1371,7 +1506,7 @@ void yon_adapter_window_setup(widgets_dict *widgets){
GtkIconTheme *icthm=gtk_icon_theme_get_default(); GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
} }
else if (strstr(vendor,"NVidia")){ else if (strstr(vendor,"NVIDIA")){
GtkIconTheme *icthm=gtk_icon_theme_get_default(); GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
} }
@ -1379,6 +1514,10 @@ void yon_adapter_window_setup(widgets_dict *widgets){
GtkIconTheme *icthm=gtk_icon_theme_get_default(); GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
} }
else if (strstr(vendor,"VMware")){
GtkIconTheme *icthm=gtk_icon_theme_get_default();
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.vmware-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL));
}
else { else {
gtk_widget_destroy(widgets->InformationCompanyLogoImage); gtk_widget_destroy(widgets->InformationCompanyLogoImage);
} }
@ -1494,8 +1633,9 @@ void yon_setup_widgets(widgets_dict *widgets)
widgets->driverDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDriverColumn")); widgets->driverDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDriverColumn"));
widgets->driverDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDescriptionColumn")); widgets->driverDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverDescriptionColumn"));
widgets->driverSupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverSupportedColumn")); widgets->driverSupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverSupportedColumn"));
videoconfig.pack_box=widgets->mainMonitorVisualConfigurationBox;
gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL); // g_signal_connect(G_OBJECT(widgets->MainWindow), "check-resize", G_CALLBACK(on_resized), NULL);
gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),SETTINGS_VIDEO_TITLE_LABEL);
videoconfig.list = GTK_LIST_STORE(gtk_builder_get_object(widgets-> builder, "liststore6")); videoconfig.list = GTK_LIST_STORE(gtk_builder_get_object(widgets-> builder, "liststore6"));
videoconfig.list2 = GTK_LIST_STORE(gtk_builder_get_object(widgets-> builder, "liststore1")); videoconfig.list2 = GTK_LIST_STORE(gtk_builder_get_object(widgets-> builder, "liststore1"));
@ -1507,6 +1647,8 @@ void yon_setup_widgets(widgets_dict *widgets)
g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryTreeView), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), widgets);
g_signal_connect(G_OBJECT(widgets->driversTreeView), "cursor-changed", G_CALLBACK(on_driver_selection_change), widgets);
g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets); g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets);
g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets); g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets);
@ -1521,7 +1663,7 @@ void yon_setup_widgets(widgets_dict *widgets)
g_signal_connect(G_OBJECT(widgets->MainWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(widgets->MainWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
// g_signal_connect(G_OBJECT(widgets->extraOptirunChooseAppsButton), "clicked", G_CALLBACK(on_apps_chooser_open), widgets); // g_signal_connect(G_OBJECT(widgets->extraOptirunChooseAppsButton), "clicked", G_CALLBACK(on_apps_chooser_open), NULL);
// g_signal_connect(G_OBJECT(widgets->extraPrimusunChooseAppsButton), "clicked", G_CALLBACK(on_apps_chooser_open), widgets); // g_signal_connect(G_OBJECT(widgets->extraPrimusunChooseAppsButton), "clicked", G_CALLBACK(on_apps_chooser_open), widgets);
g_signal_connect(G_OBJECT(widgets->mainHeaderSettingsAboutMenuItem), "activate", G_CALLBACK(on_about), NULL); g_signal_connect(G_OBJECT(widgets->mainHeaderSettingsAboutMenuItem), "activate", G_CALLBACK(on_about), NULL);
@ -1539,9 +1681,11 @@ void yon_setup_widgets(widgets_dict *widgets)
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), OFF_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), OFF_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), FBDEV_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainDriverFailsafeAMDCombo), FBDEV_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), SWITCHED_OFF_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), GAP_FIX_1_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), GAP_FIX_1_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), GAP_FIX_2_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->mainExtraFixGapCombo), GAP_FIX_2_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->headInfoLabel), HEADER_LABEL); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->mainExtraFixGapCombo),0);
gtk_label_set_text(GTK_LABEL(widgets->headInfoLabel), SETTINGS_VIDEO_TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeNvidiaLabel), FAILSAFE_NVIDIA_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeNvidiaLabel), FAILSAFE_NVIDIA_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeAMDLabel), FAILSAFE_ATI_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainDriverFailsafeAMDLabel), FAILSAFE_ATI_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainDriverFrameLabel), DRIVER_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainDriverFrameLabel), DRIVER_LABEL);
@ -1549,7 +1693,7 @@ void yon_setup_widgets(widgets_dict *widgets)
gtk_label_set_text(GTK_LABEL(widgets->mainHybridGraphicsFrameLabel), HYBRID_GRAPHICS_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainHybridGraphicsFrameLabel), HYBRID_GRAPHICS_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainExtraFixGapLabel), FIX_GAP_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainExtraFixGapLabel), FIX_GAP_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainExtraFrameLabel), EXTRA_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainExtraFrameLabel), EXTRA_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainHeaderTitleLabel), TITLE_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainHeaderTitleLabel), SETTINGS_VIDEO_TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainHeaderConfigLoadLabel), LOAD_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainHeaderConfigLoadLabel), LOAD_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->mainHeaderSaveConfigurationLabel), SAVE_LABEL); gtk_label_set_text(GTK_LABEL(widgets->mainHeaderSaveConfigurationLabel), SAVE_LABEL);
@ -1675,9 +1819,14 @@ int main(int argc, char *argv[])
} }
if (getuid()!=0){ if (getuid()!=0){
system("/usr/bin/pkexec ubl-settings-video"); char *args="";
for (int i=0;i<argc;i++)
args=yon_char_unite(args," ",argv[i],NULL);
if (system(yon_char_get_augumented("/usr/bin/pkexec ubl-settings-video ",args)));
return 0; return 0;
} else { } else {
int ssize=0;
yon_launch_app("pacman -Sy >/dev/null");
gtk_init(&argc, &argv); gtk_init(&argc, &argv);
GError error; GError error;
yon_setup_config(load_drivers_local_command); yon_setup_config(load_drivers_local_command);
@ -1697,6 +1846,7 @@ int main(int argc, char *argv[])
-1); -1);
yon_monitor_view_update(); yon_monitor_view_update();
yon_ubl_setup_sockets(widgets.PlugBox,widgets.PlugLoadBox,widgets.PlugSaveBox,videoconfig.socket_id,videoconfig.load_socket_id,videoconfig.save_socket_id); yon_ubl_setup_sockets(widgets.PlugBox,widgets.PlugLoadBox,widgets.PlugSaveBox,videoconfig.socket_id,videoconfig.load_socket_id,videoconfig.save_socket_id);
g_signal_connect(G_OBJECT(gtk_widget_get_parent(widgets.mainPlugBox)), "check-resize", G_CALLBACK(on_resized), NULL);
gtk_main(); gtk_main();
return 0; return 0;
} }

@ -15,7 +15,9 @@
#include <fcntl.h> #include <fcntl.h>
#include <getopt.h> #include <getopt.h>
#include <libintl.h> #include <libintl.h>
#include <time.h>
#include "ubl-utils.h" #include "ubl-utils.h"
// #include "ubl-settings-app-chooser.h"
#include "ubl-settings-video-strings.h" #include "ubl-settings-video-strings.h"
#ifndef UBL_SETINGS_VIDEO_H #ifndef UBL_SETINGS_VIDEO_H
#define UBL_SETINGS_VIDEO_H #define UBL_SETINGS_VIDEO_H
@ -39,7 +41,7 @@
#define get_ports_command "xrandr |grep -E \"*connected\" |cut -d' ' -f1" #define get_ports_command "xrandr |grep -E \"*connected\" |cut -d' ' -f1"
#define get_resolutions_command "xrandr |grep -noP \"\\d+x+\\d+\"" #define get_resolutions_command "xrandr |grep -noP \"\\d+x+\\d+\""
#define get_resolution_ports_command "xrandr |grep -nwP \"connected\" |grep -oE \"[0-9a-zA-Z:]{1,10} connected\" |grep -oE \"[0-9a-zA-Z:]{1,10} \"" #define get_resolution_ports_command "xrandr |grep -nwP \"connected\" |grep -oE \"[-0-9a-zA-Z:]{1,} connected\" |grep -oE \"[-0-9a-zA-Z:]{1,} \""
#define get_proprietary_drivers_info_command "cut -d';' -f2- /usr/share/ubl-settings-video/csv/video-drivers.csv | grep -E \"-\"" #define get_proprietary_drivers_info_command "cut -d';' -f2- /usr/share/ubl-settings-video/csv/video-drivers.csv | grep -E \"-\""
@ -51,32 +53,32 @@
#define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN VGADRV_AUTO " #define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN VGADRV_AUTO "
#define save_drivers_global_command "pkexec /usr/bin/ubconfig --target global --noexecute set video " #define save_drivers_global_command "/usr/bin/ubconfig --target global --noexecute set video "
#define save_drivers_global_local_command "pkexec /usr/bin/ubconfig set video " #define save_drivers_global_local_command "/usr/bin/ubconfig set video "
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN VGADRV_AUTO " #define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN VGADRV_AUTO "
#define save_drivers_local_command "pkexec /usr/bin/ubconfig --target system set video " #define save_drivers_local_command "/usr/bin/ubconfig --target system set video "
#define remove_drivers_global_command "/usr/bin/ubconfig --target system remove video " #define remove_drivers_global_command "/usr/bin/ubconfig --target system remove video "
#define remove_drivers_local_command "/usr/bin/ubconfig --target system remove video " #define remove_drivers_local_command "/usr/bin/ubconfig --target system remove video "
#define install_proprietary_command "pkexec pacman --quiet --needed --noconfirm -Sy " #define install_proprietary_command "pacman --quiet --needed --noconfirm -Sy "
#define delete_proprietary_command "pkexec pacman -R --noconfirm " #define delete_proprietary_command "pacman -R --noconfirm "
#define get_info_proprietary_command "pamac-manager --details=" #define get_info_proprietary_command "pamac-manager --details="
#define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2" #define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2"
#define get_proprietary_drivers_command "LC_ALL=C pacman -Ssy ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}-nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'" #define get_proprietary_drivers_command " pacman -Ssy ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}-nvidia-[a-zA-Z0-9-]{1,}\""
#define get_proprietary_drivers_local_command "LC_ALL=C pacman -Qq |grep -E \"ubm-nvidia-\"" #define get_proprietary_drivers_local_command " pacman -Qq |grep -E \"ubm-nvidia-\""
#define get_proprietary_installed_command yon_char_unite(" pacman -Ss nvidia-.* |grep -E ",INSTALLED_LOW_LABEL," |grep -oE \"ubm-nvidia-[0-9a-zA-Z]{1,}|nvidia-[0-9]{1,4}xx-dkms\"",NULL)
// #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'" // #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'"
#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ]{1,}\"|sed 's/: /=/g'|sed 's/ /_/g'" #define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'"
#define XORG_MONITOR(port) yon_char_get_augumented(" XORG_MONITOR[",yon_char_get_augumented(port,"] ")) #define XORG_MONITOR(port) yon_char_get_augumented(" XORG_MONITOR[",yon_char_get_augumented(port,"] "))
@ -90,7 +92,7 @@ char *local;
typedef char *string; typedef char *string;
string version_application = "1.8"; string version_application = "2.1";
#define _(String) gettext(String) #define _(String) gettext(String)
@ -137,6 +139,9 @@ typedef struct
int lock_save_global; int lock_save_global;
int lock_load_global; int lock_load_global;
int lock_help; int lock_help;
dictionary *monitor_output_layers;
GtkWidget *pack_box;
int dblock;
} config; } config;
typedef struct typedef struct
@ -287,6 +292,10 @@ typedef struct
typedef struct typedef struct
{ {
char *curport;
config_str resolutions;
int resolutionssize;
GtkWidget *templateMonitorConfigurationWindow; GtkWidget *templateMonitorConfigurationWindow;
GtkWidget *mainMonitorConfigurationBox; GtkWidget *mainMonitorConfigurationBox;
GtkWidget *templateMonitorConfigurationBox; GtkWidget *templateMonitorConfigurationBox;
@ -359,7 +368,7 @@ void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_
void yon_monitor_view_new(monitor_config monitor); void yon_monitor_view_new(monitor_config monitor);
void on_configuration_save_global_local(GtkWidget *self, widgets_dict *widgets); void on_configuration_save_global_local(GtkWidget *self, widgets_dict *widgets);
// void on_confugure_monitor_settings(GtkWidget *self, MonitorSettings *settings); // void on_confugure_monitor_settings(GtkWidget *self, MonitorSettings *settings);
void yon_monitor_view_draw_all(GtkWidget *cnt); void yon_monitor_view_draw_all();
void on_monitor_configure(GtkWidget *self,monitor_window *window); void on_monitor_configure(GtkWidget *self,monitor_window *window);
void on_monitor_add(GtkWidget *self,monitor_window *window); void on_monitor_add(GtkWidget *self,monitor_window *window);
void on_monitor_switch(GtkWidget *self,monitor_window *window); void on_monitor_switch(GtkWidget *self,monitor_window *window);

@ -465,6 +465,7 @@ char *yon_char_divide_search(char *source, char *dividepos, int delete_divider)
return source; return source;
} }
} }
/**[EN] /**[EN]
* char *yon_char_from_int(int int_to_convert) * char *yon_char_from_int(int int_to_convert)
* converts int to char*. * converts int to char*.
@ -486,6 +487,21 @@ char *yon_char_from_int(int int_to_convert)
return ch; return ch;
} }
char *yon_char_replace(char *source, char *find, char*replace){
char *final=NULL;
char *temp=NULL;
if(!strstr(replace,find)){
while ((final=strstr(source,find))){
temp=malloc(strlen(source)-strlen(final));
memset(temp,0,strlen(source)-strlen(final)+strlen(replace));
memcpy(temp,source,strlen(source)-strlen(final));
temp=yon_char_get_augumented(temp,replace);
source=yon_char_get_augumented(temp,final+1);
}
return source;
}
}
/**[EN] /**[EN]
* char **yon_char_parse(char *parameters, int *size, char *divider) * char **yon_char_parse(char *parameters, int *size, char *divider)
* Parses string [parameters], divided by [divider], * Parses string [parameters], divided by [divider],
@ -544,6 +560,42 @@ int yon_char_parsed_check_exist(char **parameters, int size, char *param){
return -1; return -1;
} }
int yon_char_parsed_includes_char_parsed (config_str source, config_str to_check, int source_size, int check_size){
int overall_found=0;
for (int i=0;i<source_size;i++){
int found=0;
for (int j=0;j<check_size;j++){
if (strcmp(source[i],to_check[j])==0&&found==0) { found=1; overall_found++; }
}
}
if (overall_found==check_size)
return 1;
else return 0;
}
config_str yon_char_parsed_new (config_str old, int *old_size, ...){
va_list arglist;
int new_size=0;
config_str new_parsed=NULL;
if (old){
new_size=*old_size;
new_parsed=old;
}else {
new_parsed=new(char*);
}
va_start(arglist,old_size);
char *newparse = va_arg(arglist,char*);
while (newparse){
new_size++;
new_parsed=realloc(new_parsed,new_size*sizeof(char*));
new_parsed[new_size-1]=yon_char_new(newparse);
newparse=va_arg(arglist,char*);
}
va_end(arglist);
*old_size=new_size;
return new_parsed;
}
// parsing functions // parsing functions
@ -692,7 +744,6 @@ config_str yon_config_load(char *command, int *str_len)
} }
} }
/**[EN] /**[EN]
* int yon_config_save(char *command) * int yon_config_save(char *command)
* Saves config with [command] * Saves config with [command]
@ -871,7 +922,7 @@ int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find){
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),i); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),i);
str=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box)); str=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box));
if (!str) return -1; if (!str) return -1;
if (strcmp(text_to_find,str)==0) return i; if (strstr(str,text_to_find)) return i;
} }
} return -1; } return -1;
} }
@ -955,6 +1006,7 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
GtkWidget *plug_main=gtk_plug_new(socket_main_id); GtkWidget *plug_main=gtk_plug_new(socket_main_id);
GtkWidget *plug_left=NULL; GtkWidget *plug_left=NULL;
GtkWidget *plug_right=NULL; GtkWidget *plug_right=NULL;
GtkWidget *box=NULL;
g_signal_connect(G_OBJECT(plug_main), "destroy", G_CALLBACK(gtk_main_quit),NULL); g_signal_connect(G_OBJECT(plug_main), "destroy", G_CALLBACK(gtk_main_quit),NULL);
if (socket_left_id>-1&&left_window){ if (socket_left_id>-1&&left_window){
plug_left=gtk_plug_new(socket_left_id); plug_left=gtk_plug_new(socket_left_id);
@ -968,6 +1020,17 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
gtk_style_context_add_class(gtk_widget_get_style_context(plug_left),"noborder"); gtk_style_context_add_class(gtk_widget_get_style_context(plug_left),"noborder");
gtk_widget_show(plug_left); gtk_widget_show(plug_left);
} }
else if (left_window){
if (box==NULL){
box=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
gtk_box_pack_start(GTK_BOX(main_window),box,0,0,5);
gtk_box_reorder_child(GTK_BOX(main_window),box,0);
gtk_widget_show(box);
}
gtk_style_context_add_class(gtk_widget_get_style_context(left_window),"inherited");
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(left_window)),left_window);
gtk_box_pack_end(GTK_BOX(box),left_window,0,0,5);
}
if (socket_right_id>-1&&right_window){ if (socket_right_id>-1&&right_window){
plug_right=gtk_plug_new(socket_right_id); plug_right=gtk_plug_new(socket_right_id);
g_object_ref(right_window); g_object_ref(right_window);
@ -980,6 +1043,17 @@ void yon_ubl_setup_sockets(GtkWidget *main_window, GtkWidget *left_window, GtkWi
gtk_style_context_add_class(gtk_widget_get_style_context(plug_right),"noborder"); gtk_style_context_add_class(gtk_widget_get_style_context(plug_right),"noborder");
gtk_widget_show(plug_right); gtk_widget_show(plug_right);
} }
else if (right_window){
if (box==NULL){
box=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
gtk_box_pack_start(GTK_BOX(main_window),box,0,0,5);
gtk_box_reorder_child(GTK_BOX(main_window),box,0);
gtk_widget_show(box);
}
gtk_style_context_add_class(gtk_widget_get_style_context(right_window),"inherited");
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(right_window)),right_window);
gtk_box_pack_start(GTK_BOX(box),right_window,0,0,5);
}
g_object_ref(main_window); g_object_ref(main_window);
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(main_window)),main_window); gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(main_window)),main_window);
gtk_container_add(GTK_CONTAINER(plug_main),main_window); gtk_container_add(GTK_CONTAINER(plug_main),main_window);

@ -80,8 +80,8 @@ typedef char** config_str;
* [type] - тип данных, хранящихся в словаре [dictionary]. * [type] - тип данных, хранящихся в словаре [dictionary].
*/ */
#define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data) #define yon_dictionary_get_data(dictionary, type) ((type)dictionary->data)
#define yon_dictionary_add_or_create_if_exists_with_data(dict,key,data) if (!dict) dict=yon_dictionary_create_with_data(key,data); \ #define yon_dictionary_add_or_create_if_exists_with_data(dict,key,data) {if (!dict) dict=yon_dictionary_create_with_data(key,data); \
else dict=yon_dictionary_create_with_data_connected(dict,key,data); else dict=yon_dictionary_create_with_data_connected(dict,key,data);}
dictionary *yon_dictionary_create_empty(); dictionary *yon_dictionary_create_empty();
@ -125,6 +125,8 @@ char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert); char *yon_char_from_int(int int_to_convert);
char *yon_char_replace(char *source, char *find, char*replace);
char **yon_char_parse(char *parameters, int *size, char *divider); char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete); char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete);
@ -133,7 +135,9 @@ int yon_char_parsed_check_exist(char **parameters, int size, char *param);
int yon_char_find_count(char *source, char *find); int yon_char_find_count(char *source, char *find);
int yon_char_parsed_includes_char_parsed (config_str source, config_str to_check, int source_size, int check_size);
config_str yon_char_parsed_new (config_str old, int *old_size, ...);
// parsing functions // parsing functions

@ -9,6 +9,10 @@
margin:0px; margin:0px;
padding:0px; padding:0px;
} }
.inherited>* {
border:none;
background:inherit;
}
.opacited { .opacited {
opacity:0.98; opacity:0.98;
} }

@ -11,7 +11,6 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property> <property name="resizable">False</property>
<property name="default-width">450</property> <property name="default-width">450</property>
<property name="default-height">250</property>
<property name="icon-name">dialog-question-symbolic</property> <property name="icon-name">dialog-question-symbolic</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -74,7 +73,8 @@
<property name="valign">start</property> <property name="valign">start</property>
<property name="margin-right">10</property> <property name="margin-right">10</property>
<property name="margin-end">10</property> <property name="margin-end">10</property>
<property name="label" context="You will be redirected to documentation web site, where documentation are translated and supported by community." comments="You will be redirected to documentation web site, where documentation are translated and supported by community.">You will be redirected to documentation website where documentation is translated and supported by community.</property> <property name="label" context="You will be redirected to documentation web site, where documentation are translated and supported by community." comments="You will be redirected to documentation web site, where documentation are translated and supported by community.">You will be redirected to documentation website where documentation is
translated and supported by community.</property>
<property name="wrap">True</property> <property name="wrap">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<style> <style>
@ -82,7 +82,7 @@
</style> </style>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
@ -103,6 +103,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
@ -183,6 +184,7 @@
<object class="GtkHeaderBar" id="SettingsBar"> <object class="GtkHeaderBar" id="SettingsBar">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title"> <child type="title">
<object class="GtkLabel" id="webHeaderNameLabel"> <object class="GtkLabel" id="webHeaderNameLabel">
<property name="visible">True</property> <property name="visible">True</property>
@ -195,7 +197,6 @@
</child> </child>
<child> <child>
<object class="GtkImage"> <object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">dialog-question-symbolic</property> <property name="icon-name">dialog-question-symbolic</property>
@ -693,15 +694,20 @@
<object class="GtkImage" id="image13"> <object class="GtkImage" id="image13">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="no-show-all">True</property>
<property name="tooltip-text" translatable="yes">Switch</property>
<property name="icon-name">system-shutdown-symbolic</property> <property name="icon-name">system-shutdown-symbolic</property>
</object> </object>
<object class="GtkImage" id="image14"> <object class="GtkImage" id="image14">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="no-show-all">True</property>
<property name="tooltip-text" translatable="yes">Delete</property>
<property name="icon-name">user-trash-symbolic</property> <property name="icon-name">user-trash-symbolic</property>
</object> </object>
<object class="GtkImage" id="image15"> <object class="GtkImage" id="image15">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="no-show-all">True</property>
<property name="icon-name">value-increase-symbolic</property> <property name="icon-name">value-increase-symbolic</property>
</object> </object>
<object class="GtkImage" id="image2"> <object class="GtkImage" id="image2">
@ -712,6 +718,7 @@
<object class="GtkImage" id="image3"> <object class="GtkImage" id="image3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="tooltip-text" translatable="yes">Configure</property>
<property name="icon-name">open-menu-symbolic</property> <property name="icon-name">open-menu-symbolic</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -812,6 +819,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="no-show-all">True</property>
<property name="halign">end</property> <property name="halign">end</property>
<property name="image">image3</property> <property name="image">image3</property>
<style> <style>
@ -832,6 +840,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Add</property>
<property name="image">image15</property> <property name="image">image15</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -1446,7 +1455,7 @@
<property name="margin-bottom">6</property> <property name="margin-bottom">6</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
<attribute name="foreground" value="#000000000000"/> <attribute name="foreground" value="#4d4d4d4d4d4d"/>
</attributes> </attributes>
</object> </object>
<packing> <packing>
@ -1537,7 +1546,7 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="top-padding">5</property> <property name="top-padding">5</property>
<property name="bottom-padding">5</property> <property name="bottom-padding">5</property>
<property name="left-padding">12</property> <property name="left-padding">5</property>
<property name="right-padding">5</property> <property name="right-padding">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -1575,6 +1584,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="margin-start">4</property>
<property name="label" translatable="yes">Failsafe driver nVidia:</property> <property name="label" translatable="yes">Failsafe driver nVidia:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -1589,6 +1599,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property> <property name="halign">start</property>
<property name="margin-start">4</property>
<property name="label" translatable="yes">Failsafe driver AMD/ATI:</property> <property name="label" translatable="yes">Failsafe driver AMD/ATI:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -1691,7 +1702,7 @@
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="spacing">10</property> <property name="orientation">vertical</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
@ -1737,7 +1748,6 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="top-padding">5</property> <property name="top-padding">5</property>
<property name="bottom-padding">5</property> <property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property> <property name="right-padding">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -1884,12 +1894,12 @@
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkButton" id="extraOptirunChooseAppsButton"> <object class="GtkButton" id="extraOptirunChooseAppsButton">
<property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -1903,6 +1913,7 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="extraPrimusunChooseAppsButton"> <object class="GtkButton" id="extraPrimusunChooseAppsButton">
<property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -1938,6 +1949,7 @@
<object class="GtkLabel" id="mainExtraFixGapLabel"> <object class="GtkLabel" id="mainExtraFixGapLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">4</property>
<property name="label" translatable="yes">Fix frame gap (nVidia):</property> <property name="label" translatable="yes">Fix frame gap (nVidia):</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -1951,6 +1963,8 @@
<object class="GtkComboBoxText" id="mainExtraFixGapCombo"> <object class="GtkComboBoxText" id="mainExtraFixGapCombo">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property>
<property name="popup-fixed-width">False</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -2045,6 +2059,8 @@
<child> <child>
<object class="GtkTreeViewColumn" id="proprietartInstalledColumn"> <object class="GtkTreeViewColumn" id="proprietartInstalledColumn">
<property name="title" translatable="yes">Installed</property> <property name="title" translatable="yes">Installed</property>
<property name="sort-order">descending</property>
<property name="sort-column-id">0</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
<attributes> <attributes>
@ -2399,8 +2415,8 @@
<property name="margin-end">5</property> <property name="margin-end">5</property>
<property name="margin-top">5</property> <property name="margin-top">5</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="label-xalign">0</property> <property name="label-xalign">0.009999999776482582</property>
<property name="shadow-type">none</property> <property name="shadow-type">in</property>
<child> <child>
<object class="GtkAlignment"> <object class="GtkAlignment">
<property name="visible">True</property> <property name="visible">True</property>
@ -2446,6 +2462,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">start</property> <property name="valign">start</property>
<property name="margin-top">30</property>
<property name="label" translatable="yes">&lt;span size='15pt'&gt;&lt;span color='#1a5fb4'&gt;sdrtjhsrtjh:&lt;/span&gt; dfuykdftytdykkdfty&lt;/span&gt;</property> <property name="label" translatable="yes">&lt;span size='15pt'&gt;&lt;span color='#1a5fb4'&gt;sdrtjhsrtjh:&lt;/span&gt; dfuykdftytdykkdfty&lt;/span&gt;</property>
<property name="use-markup">True</property> <property name="use-markup">True</property>
<property name="xalign">0</property> <property name="xalign">0</property>

@ -1,4 +1,4 @@
# Language translations for ubl-settings-manager package. # Language translations for ubl-settings-video package.
# Copyright (C) 2022, UBTech LLC # Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-manager package. # This file is distributed under the same license as the ubl-settings-manager package.
# UBLinux Team <info@ublinux.com>, 2022 # UBLinux Team <info@ublinux.com>, 2022
@ -264,6 +264,10 @@ msgstr ""
msgid "Off" msgid "Off"
msgstr "" msgstr ""
#: source/ubl-settings-video-strings.h:44
msgid "Switched off"
msgstr ""
#: source/ubl-settings-video-strings.h:45 #: source/ubl-settings-video-strings.h:45
msgid "fbdev" msgid "fbdev"
msgstr "" msgstr ""
@ -316,6 +320,10 @@ msgstr ""
msgid "Installed" msgid "Installed"
msgstr "" msgstr ""
#: source/ubl-settings-video-strings.h:58
msgid "installed"
msgstr "установлено"
#: source/ubl-settings-video-strings.h:58 #: source/ubl-settings-video-strings.h:58
msgid "Package" msgid "Package"
msgstr "" msgstr ""
@ -324,6 +332,10 @@ msgstr ""
msgid "Supported Devices" msgid "Supported Devices"
msgstr "" msgstr ""
#: source/ubl-settings-video-strings.h:58
msgid "More"
msgstr ""
#: source/ubl-settings-video-strings.h:61 #: source/ubl-settings-video-strings.h:61
msgid "Accept" msgid "Accept"
msgstr "" msgstr ""
@ -364,7 +376,7 @@ msgstr ""
#: source/ubl-settings-video-strings.h:72 #: source/ubl-settings-video-strings.h:72
msgid "" msgid ""
"You will be redirected to documentation website where documentation is " "You will be redirected to documentation website where documentation is\n"
"translated and supported by community." "translated and supported by community."
msgstr "" msgstr ""
@ -475,3 +487,23 @@ msgstr ""
#: source/ubl-settings-video-strings.h:112 #: source/ubl-settings-video-strings.h:112
msgid "UBLinux module includes NVIDIA 510xx driver and utilities" msgid "UBLinux module includes NVIDIA 510xx driver and utilities"
msgstr "" msgstr ""
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 340xx driver and utilities"
msgstr ""
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux module includes NVIDIA 390xx driver and utilities"
msgstr ""
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 470xx driver and utilities"
msgstr ""
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux module includes NVIDIA 510xx driver and utilities"
msgstr ""
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 510xx driver and utilities"
msgstr ""

@ -49,7 +49,11 @@ msgstr "Успешное сохранение глобальной конфиг
#: source/ubl-settings-video.h:37 #: source/ubl-settings-video.h:37
msgid "Saving to local configuration Succeeded" msgid "Saving to local configuration Succeeded"
msgstr "Успешное сохранение локальной конфигурации" msgstr "Успешно записана локальная конфигурация"
#: source/ubl-settings-video.h:37
msgid "Saving to local and global configuration Succeeded"
msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-settings-video-strings.h:1 #: source/ubl-settings-video-strings.h:1
msgid "Version:" msgid "Version:"
@ -61,7 +65,7 @@ msgstr "Версия менеджера настроек вывода изобр
#: source/ubl-settings-video-strings.h:2 source/ubl-settings-video-strings.h:5 #: source/ubl-settings-video-strings.h:2 source/ubl-settings-video-strings.h:5
msgid "Video adapter and display settings" msgid "Video adapter and display settings"
msgstr "Настройка вывода изображения и установка драйвера видеокарты" msgstr "Настройка видеоадаптера и дисплея"
#: source/ubl-settings-video-strings.h:2 #: source/ubl-settings-video-strings.h:2
msgid "Usage:" msgid "Usage:"
@ -271,6 +275,10 @@ msgstr "Включить"
msgid "Off" msgid "Off"
msgstr "Выключить" msgstr "Выключить"
#: source/ubl-settings-video-strings.h:44
msgid "Switched off"
msgstr "Отключено"
#: source/ubl-settings-video-strings.h:45 #: source/ubl-settings-video-strings.h:45
msgid "fbdev" msgid "fbdev"
msgstr "fbdev" msgstr "fbdev"
@ -309,7 +317,7 @@ msgstr "Сохранить в глобальную конфигурацию"
#: source/ubl-settings-video-strings.h:54 #: source/ubl-settings-video-strings.h:54
msgid "Save to local configuration" msgid "Save to local configuration"
msgstr "Схоранить в локальную конфигурацию" msgstr "Сохранить в локальную конфигурацию"
#: source/ubl-settings-video-strings.h:55 #: source/ubl-settings-video-strings.h:55
msgid "Documentation" msgid "Documentation"
@ -327,6 +335,14 @@ msgstr "Установлено"
msgid "Package" msgid "Package"
msgstr "Пакет" msgstr "Пакет"
#: source/ubl-settings-video-strings.h:58
msgid "More"
msgstr "Подробнее"
#: source/ubl-settings-video-strings.h:58
msgid "installed"
msgstr "установлен"
#: source/ubl-settings-video-strings.h:59 #: source/ubl-settings-video-strings.h:59
msgid "Supported Devices" msgid "Supported Devices"
msgstr "Устройства" msgstr "Устройства"
@ -373,10 +389,10 @@ msgstr "Вы хотите прочитать справку в Сети?"
#: source/ubl-settings-video-strings.h:72 #: source/ubl-settings-video-strings.h:72
msgid "" msgid ""
"You will be redirected to documentation website where documentation is " "You will be redirected to documentation website where documentation is\n"
"translated and supported by community." "translated and supported by community."
msgstr "" msgstr ""
"Вы будете перенаправлены на сайт с документацией где страницы помощи " "Вы будете перенаправлены на сайт с документацией где страницы помощи\n"
"переводятся и поддерживаются сообществом." "переводятся и поддерживаются сообществом."
#: source/ubl-settings-video-strings.h:73 #: source/ubl-settings-video-strings.h:73
@ -389,7 +405,7 @@ msgstr "Информация"
#: source/ubl-settings-video-strings.h:75 #: source/ubl-settings-video-strings.h:75
msgid "Drivers" msgid "Drivers"
msgstr "Драйвера" msgstr "Драйвер"
#: source/ubl-settings-video-strings.h:76 #: source/ubl-settings-video-strings.h:76
msgid "Main settings" msgid "Main settings"
@ -410,7 +426,7 @@ msgstr "Справка"
#: source/ubl-settings-video-strings.h:81 #: source/ubl-settings-video-strings.h:81
msgid "UBLinux Settings Web View" msgid "UBLinux Settings Web View"
msgstr "" msgstr "Встроенный браузер UBLinux"
#: source/ubl-settings-video-strings.h:95 #: source/ubl-settings-video-strings.h:95
msgid "Error: Port must be chosen to save" msgid "Error: Port must be chosen to save"
@ -422,23 +438,23 @@ msgstr "Настройки экрана сохранены"
#: source/ubl-settings-video-strings.h:98 #: source/ubl-settings-video-strings.h:98
msgid "Global configuration loading succseeded." msgid "Global configuration loading succseeded."
msgstr "Успешная загрузка глобальной конфигурации" msgstr "Успешно загружена глобальная конфигураци"
#: source/ubl-settings-video-strings.h:99 #: source/ubl-settings-video-strings.h:99
msgid "Local configuration loading succseeded." msgid "Local configuration loading succseeded."
msgstr "Успешная загрузка локальной конфигурации" msgstr "Успешно загружена локальная конфигураци"
#: source/ubl-settings-video-strings.h:101 #: source/ubl-settings-video-strings.h:101
msgid "Local and global configuration saving succseeded." msgid "Local and global configuration saving succseeded."
msgstr "Успешное сохранение глобальной и локальной конфигурации" msgstr "Успешно записаны локальная и глобальная конфигурация"
#: source/ubl-settings-video-strings.h:102 #: source/ubl-settings-video-strings.h:102
msgid "Global configuration saving succseeded." msgid "Global configuration saving succseeded."
msgstr "Успешное сохранение глобальной конфигурации" msgstr "Успешно записана глобальная конфигурация"
#: source/ubl-settings-video-strings.h:103 #: source/ubl-settings-video-strings.h:103
msgid "Local configuration saving succseeded." msgid "Local configuration saving succseeded."
msgstr "Успешная загрузка локальной конфигурации" msgstr "Успешно записана локальная конфигурация"
#: source/ubl-settings-video-strings.h:105 #: source/ubl-settings-video-strings.h:105
msgid "Yes" msgid "Yes"
@ -486,14 +502,29 @@ msgstr "Модули ядра"
#~ msgstr "DMPS выключен" #~ msgstr "DMPS выключен"
msgid "UBLinux module includes NVIDIA 340xx driver and utilities" msgid "UBLinux module includes NVIDIA 340xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 340xx" msgstr "UBLinux пакет с модулем драйвера и утилиты NVIDIA 340xx"
msgid "UBLinux module includes NVIDIA 390xx driver and utilities" msgid "UBLinux module includes NVIDIA 390xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 390xx" msgstr "UBLinux пакет с модулем драйвера и утилиты NVIDIA 390xx"
msgid "UBLinux module includes NVIDIA 470xx driver and utilities" msgid "UBLinux module includes NVIDIA 470xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 470xx" msgstr "UBLinux пакет с модулем драйвера и утилиты NVIDIA 470xx"
msgid "UBLinux module includes NVIDIA 510xx driver and utilities" msgid "UBLinux module includes NVIDIA 510xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 510xx" msgstr "UBLinux пакет с модулем драйвера и утилиты NVIDIA 510xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 340xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 340xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 390xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 390xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 470xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 470xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 510xx driver and utilities"
msgstr "UBLinux пакет драйвера и утилиты NVIDIA 510xx"

@ -1,9 +1,9 @@
OS_VERSION_ID;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT OS_VERSION_ID;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT
2204;ubm-nvidia-340;;nvidia-340;UBLinux module includes NVIDIA 340xx driver and utilities;Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX 2204;ubm-nvidia-340;;nvidia-340;UBLinux module includes NVIDIA 340xx driver and utilities;Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
2204;;nvidia-340xx-dkms;nvidia-340;UBLinux module includes NVIDIA 340xx driver and utilities;Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX 2204;;nvidia-340xx-dkms;nvidia-340;UBLinux package includes NVIDIA 340xx driver and utilities;Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
2204;ubm-nvidia-390;;nvidia-390;UBLinux module includes NVIDIA 390xx driver and utilities;Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX 2204;ubm-nvidia-390;;nvidia-390;UBLinux module includes NVIDIA 390xx driver and utilities;Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
2204;;nvidia-390xx-dkms;nvidia-390;UBLinux module includes NVIDIA 390xx driver and utilities;Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX 2204;;nvidia-390xx-dkms;nvidia-390;UBLinux package includes NVIDIA 390xx driver and utilities;Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
2204;ubm-nvidia-470;;nvidia-470;UBLinux module includes NVIDIA 470xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX 2204;ubm-nvidia-470;;nvidia-470;UBLinux module includes NVIDIA 470xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
2204;;nvidia-470xx-dkms;nvidia-470;UBLinux module includes NVIDIA 470xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX 2204;;nvidia-470xx-dkms;nvidia-470;UBLinux package includes NVIDIA 470xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
2204;ubm-nvidia-510;;nvidia-510;UBLinux module includes NVIDIA 510xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX 2204;ubm-nvidia-510;;nvidia-510;UBLinux module includes NVIDIA 510xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
2204;;nvidia-510xx-dkms;nvidia-510;UBLinux module includes NVIDIA 510xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX 2204;;nvidia-510xx-dkms;nvidia-510;UBLinux package includes NVIDIA 510xx driver and utilities;Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
1 OS_VERSION_ID DRV_PAСKAGE_UBM DRV_PAСKAGE DRV_NAME DRV_DESCRIPTION DRV_SUPPORT
2 2204 ubm-nvidia-340 nvidia-340 UBLinux module includes NVIDIA 340xx driver and utilities Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
3 2204 nvidia-340xx-dkms nvidia-340 UBLinux module includes NVIDIA 340xx driver and utilities UBLinux package includes NVIDIA 340xx driver and utilities Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
4 2204 ubm-nvidia-390 nvidia-390 UBLinux module includes NVIDIA 390xx driver and utilities Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
5 2204 nvidia-390xx-dkms nvidia-390 UBLinux module includes NVIDIA 390xx driver and utilities UBLinux package includes NVIDIA 390xx driver and utilities Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
6 2204 ubm-nvidia-470 nvidia-470 UBLinux module includes NVIDIA 470xx driver and utilities Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
7 2204 nvidia-470xx-dkms nvidia-470 UBLinux module includes NVIDIA 470xx driver and utilities UBLinux package includes NVIDIA 470xx driver and utilities Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
8 2204 ubm-nvidia-510 nvidia-510 UBLinux module includes NVIDIA 510xx driver and utilities Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
9 2204 nvidia-510xx-dkms nvidia-510 UBLinux module includes NVIDIA 510xx driver and utilities UBLinux package includes NVIDIA 510xx driver and utilities Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
Loading…
Cancel
Save