Merge pull request 'develop' (#3) from develop into master

Reviewed-on: YanTheKaller/ubl-settings-video#3
pull/6/head
commit 792fc019f0

1
.gitignore vendored

@ -5,3 +5,4 @@ ubl-settings-video.glade~
compile/
ubl-settings-video_ru.po~
ubl-settings-video-n.pot
vgcore.*

@ -87,6 +87,7 @@ uninstall:
@$(RM) "${DESTDIR}/etc/xdg/${PKGNAME}/${PKGNAME}.conf"
@$(RM) "${DESTDIR}${PREFIX}/share/applications/${PKGNAME}.desktop"
@$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/com.ublinux.${PKGNAME}.svg"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}/images"
@$(RM) -rd "${DESTDIR}${PREFIX}/share/${PKGNAME}"
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
@ -99,29 +100,31 @@ install: check uninstall
@echo "Install ..."
@for FILE_PO in $(wildcard *.po); do \
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
install -dm755 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
install -dm655 "${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES"; \
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
echo "$${FILE_PO}"; \
msgfmt "$${FILE_PO}" -v -f -o "$${PATH_FILE_MO}"; \
done
@for SIZE in 16 32 48; do \
install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
install -dm655 "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps"; \
rsvg-convert -w $${SIZE} -h $${SIZE} -f svg --keep-image-data "com.ublinux.${PKGNAME}.svg" -o "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}x$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
done
@install -dm755 "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps"
@install -dm655 "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/apps/" "com.ublinux.${PKGNAME}.svg"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/icons/hicolor/scalable/devices/" "com.ublinux.${PKGNAME}.display.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 -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -dm755 "${DESTDIR}${PREFIX}/share/applications"
@install -Dm655 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}"
@install -dm655 "${DESTDIR}${PREFIX}/share/applications"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop"
@install -dm755 "${DESTDIR}${PREFIX}/share/${PKGNAME}"/{ui,css,images}
@install -dm655 "${DESTDIR}${PREFIX}/share/${PKGNAME}"/{ui,css,images}
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}.glade"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/css/" "${PKGNAME}.css"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}-banner.png"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}-banner.png"
@install -dm655 "${DESTDIR}${PREFIX}/share/${PKGNAME}/images"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/images/" "${PKGNAME}-banner.png"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/csv/" "resolutions.csv"
@install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/csv/" "video-drivers.csv"
@if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \
update-desktop-database --quiet &>/dev/null || true; \

@ -1,5 +1,5 @@
# ubl-settings-video
# Видеокарта/Экран
# Настройки видеоадаптера и дисплея
# Build
In order to build ubl-settings-video you will need:

@ -0,0 +1,27 @@
640x480 ,4:3,VGA
800x480 ,5:3,WVGA
800x600 ,4:3,SVGA
854x480 ,16:9,FWVGA
960x540 ,19:9,qHD
1024x600,128:75,WSVGA
1024x768,4:3,XGA
1152x864,4:3,XGA+
1200x600,2:1,WXVGA
1280x720,16:9,HD
1280x768,5:3,WSGA
1280x1024,5:4,SXGA
1440x900,16:10,WXGA+
1400x1050,4:3,SXGA+
1440x1080,4:3,HDV 1080
1536x960,16:10,XJXGA
1536x1024,3:2,WSXGA
1600x900,16:9,HD+
1600x1024,25:16,WSXGA
1600x1200,4:3,UXGA
1680x1050,16:10,WSXGA+
1920x1080,16:9,FHD
1920x1200,16:10,WUXGA
2048x1080,19:10,2K DCI
2048x1152,16:9,QWXGA
2560x1080,21:9,UWHD
2560x1440,16:9,QHD
1 640x480 4:3 VGA
2 800x480 5:3 WVGA
3 800x600 4:3 SVGA
4 854x480 16:9 FWVGA
5 960x540 19:9 qHD
6 1024x600 128:75 WSVGA
7 1024x768 4:3 XGA
8 1152x864 4:3 XGA+
9 1200x600 2:1 WXVGA
10 1280x720 16:9 HD
11 1280x768 5:3 WSGA
12 1280x1024 5:4 SXGA
13 1440x900 16:10 WXGA+
14 1400x1050 4:3 SXGA+
15 1440x1080 4:3 HDV 1080
16 1536x960 16:10 XJXGA
17 1536x1024 3:2 WSXGA
18 1600x900 16:9 HD+
19 1600x1024 25:16 WSXGA
20 1600x1200 4:3 UXGA
21 1680x1050 16:10 WSXGA+
22 1920x1080 16:9 FHD
23 1920x1200 16:10 WUXGA
24 2048x1080 19:10 2K DCI
25 2048x1152 16:9 QWXGA
26 2560x1080 21:9 UWHD
27 2560x1440 16:9 QHD

@ -17,9 +17,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
set(SOURCE_FILES
ubl-settings-video.c
ubl-settings-video.h
ubl-utils.c
ubl-utils.h)
)
set(LIBRARIES
${GTK_LIBRARIES}

@ -0,0 +1,43 @@
#define PARAMETER_DEFAULT_LABEL _("Default settings")
#define MONITOR_LABEL _("Monitor ")
#define SETTINGS_VIDEO_TITLE_LABEL _("Video adapter and display settings")
#define MONITOR_PORT_LABEL _("Port: ")
#define MONITOR_RESOLUTION_LABEL _("Resolution (px): ")
#define MONITOR_FREQUENCY_LABEL _("Frequency (Hz): ")
#define MONITOR_ROTATION_LABEL _("Rotation: ")
#define MONITOR_POSITION_LABEL _("Position: ")
#define MONITOR_SWITCH_OFF_LABEL _("Do not switch off display")
#define MONITOR_CVT_LABEL _("Create modeline for current resolution with CVT")
#define MONITOR_REDUCED_LABEL _("Use \"CVT Reduced Blanking\"")
#define MONITOR_GTF_LABEL _("Create modeline for current resolution with GTF")
#define MONITOR_MANUALLY_LABEL _("Configure manually through parameter line: ")
#define MONITOR_MAIN_DISPLAY_LABEL _("Main display")
#define MONITOR_UNSUPPORTED_LABEL _("Show unsupported")
#define MONITOR_ENABLED_LABEL _("Enabled")
#define MONITOR_LEFT_LABEL _("Left")
#define MONITOR_RIGHT_LABEL _("Right")
#define MONITOR_INVERTED_LABEL _("Inverted")
#define MONITOR_LEFT_POS_LABEL _("Left of")
#define MONITOR_RIGHT_POS_LABEL _("Right of")
#define MONITOR_ABOVE_POS_LABEL _("Above")
#define MONITOR_BELOW_POS_LABEL _("Below ")
#define MONITOR_NO_ROTATION_LABEL _("No rotation")
#define MONITOR_SAVE_LABEL _("Save")
#define MONITOR_CANCEL_LABEL _("Cancel")
#define MONITOR_CHOOSE_PORT_LABEL _("Choose port to configure")
#define MONITOR_POSITION_LEFT_PARAMETER _("lo:")
#define MONITOR_POSITION_RIGHT_PARAMETER _("ro:")
#define MONITOR_POSITION_ABOVE_PARAMETER _("ab:")
#define MONITOR_POSITION_BELOW_PARAMETER _("be:")
#define MONITOR_ROTATE_PARAMETER _("rotate:")
#define MONITOR_ROTATE_NORMAL_PARAMETER _("normal")
#define MONITOR_ROTATE_LEFT_PARAMETER _("left")
#define MONITOR_ROTATE_RIGHT_PARAMETER _("right")
#define MONITOR_ROTATE_INVERTED_PARAMETER _("invert")
#define MONITOR_PORT_ERROR_LABEL _("Error: Port must be chosen to save")
#define MONITOR_PORT_SUCCESS_LABEL _("Monitor configuration succeedeed")

File diff suppressed because it is too large Load Diff

@ -8,12 +8,13 @@
#include <sys/types.h>
#include <fcntl.h>
#include "ubl-utils.h"
#include "ubl-settings-video-strings.h"
#ifndef UBL_SETINGS_VIDEO_H
#define UBL_SETINGS_VIDEO_H
#define icon_name "com.ublinux.ubl-settings-video"
#define banner_path "/usr/share/ubl-settings-video/ui/ubl-settings-video-banner.png"
#define banner_path "/usr/share/ubl-settings-video/images/ubl-settings-video-banner.png"
#define glade_path "/usr/share/ubl-settings-video/ui/ubl-settings-video.glade"
#define LocalePath "/usr/share/locale"
@ -25,54 +26,112 @@
#define StatusSaveGlobalFailed _("Saving to global configuration Succeeded")
#define StatusSaveLocalFailed _("Saving to local configuration Succeeded")
#define get_ports_command "xrandr |grep -E \"^[A-Z0-9]* 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_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_proprietary_drivers_command "cut -d, -f1- /usr/share/ubl-settings-video/csv/video-drivers.csv | grep -E \"-\""
#define get_resolutions_supportable_command "cut -d, -f1- /usr/share/ubl-settings-video/csv/resolutions.csv |sed 's/,/ /g'"
#define get_frequences_command "xrandr |grep -v -n \"[a-z][a-z]\" |sed 's/ * / /g' |cut -d' ' -f1,3-"
#define load_drivers_command "/usr/bin/ubconfig --default --source "
#define load_drivers_global_command "/usr/bin/ubconfig --default --source global get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define save_drivers_global_command "/usr/bin/ubconfig --target global set video FAILSAFENVIDIA=%s FAILSAFEATI=%s OPTIRUN=%s PRIMUSRUN=%s "
#define save_drivers_global_command "/usr/bin/ubconfig --target global set video "
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
#define save_drivers_local_command "/usr/bin/ubconfig --target system set video FAILSAFENVIDIA=%s FAILSAFEATI=%s OPTIRUN=%s PRIMUSRUN=%s "
#define save_drivers_local_command "pkexec /usr/bin/ubconfig --target system set video "
#define remove_drivers_global_command "/usr/bin/ubconfig --target system remove video "
#define remove_drivers_local_command "/usr/bin/ubconfig --target global remove video "
#define install_proprietary_command "pkexec pacman -Sy --noconfirm "
#define delete_proprietary_command "pkexec pacman -R --noconfirm "
#define get_info_proprietary_command "pamac-manager --details="
#define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2"
#define XORG_MONITOR(port) yon_char_get_augumented(" XORG_MONITOR[",yon_char_get_augumented(port,"] "))
char *local;
typedef char* string;
typedef char *string;
string version_application = "1.0";
#define _(String) gettext(String)
typedef dictionary* monitor_config;
typedef dictionary* proprietary_config;
typedef dictionary* monitor_view;
#define _(String) gettext(String)
typedef struct {
config_str line;
int size;
} resolution_supported;
typedef struct
{
config_str loaded_config;
int configsize;
int autoChooseDrivers;
dictionary *videoconfig;
dictionary *monitors;
char *proprietary;
monitor_view monitor_visuals;
monitor_config monitors;
proprietary_config proprietary;
dictionary *supported_resolutions;
GtkListStore *list;
char *failsafenVidia;
char *failsafeATI;
int descreteOnly;
char *optirun;
char *primusrun;
int gapfix;
int optiorprimus;
apps *applist;
int appsize;
config_str ports;
int portssize;
config_str resolutions;
int resolutionssize;
render_data status_render;
} config;
typedef struct {
typedef struct
{
int main;
int enable;
int position;
char *position_port;
char *port;
char *resolution;
char *resolutionCapabilities;
config_str resolutionCapabilities;
char *frequency;
char *rotation;
int rotation;
char *stringparameters;
int dpms;
int resolution_size;
int cvt;
int reduced;
int gtf;
int show_usupported;
} monitorconfig;
typedef struct {
GtkWidget *combo;
GtkWidget *tree;
} combo_tree;
typedef struct
{
dictionary *monitors;
dictionary *overlays;
GtkBuilder *builder;
@ -143,42 +202,110 @@ typedef struct {
GtkWidget *templateMonitorConfigurationParameterLineEntry;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
GtkWidget *proprietaryTreeView;
GtkWidget *proprietaryInfoButton;
GtkWidget *proprietaryDeleteButton;
GtkWidget *proprietaryInstallButton;
GtkTreeSelection *proprietaryTreeSelection;
GtkWidget *driversTreeView;
GtkWidget *driversInfoButton;
GtkWidget *driversDeleteButton;
GtkWidget *driversInstallButton;
GtkTreeSelection *driversTreeSelection;
GtkTreeViewColumn *proprietartInstalledColumn;
GtkTreeViewColumn *ProprietaryPackageColumn;
GtkTreeViewColumn *ProprietaryDriverColumn;
GtkTreeViewColumn *ProprietaryDescriptionColumn;
GtkTreeViewColumn *ProprietarySupportedColumn;
GtkTreeViewColumn *driverInstalledColumn;
GtkTreeViewColumn *driverPackageColumn;
GtkTreeViewColumn *driverDriverColumn;
GtkTreeViewColumn *driverDescriptionColumn;
GtkTreeViewColumn *driverSupportedColumn;
} widgets_dict;
typedef struct {
typedef struct
{
GtkWidget *templateMonitorConfigurationWindow;
GtkWidget *mainMonitorConfigurationBox;
GtkWidget *templateMonitorConfigurationBox;
GtkWidget *templateMonitorConfigurationMonitorLabel;
GtkWidget *templateMonitorConfigurationEnableCheck;
GtkWidget *templateMonitorConfigurationPortLabel;
GtkWidget *templateMonitorConfigurationPortCombo;
GtkWidget *templateMonitorConfigurationMainCheck;
GtkWidget *templateMonitorConfigurationResolutionLabel;
GtkWidget *templateMonitorConfigurationResolutionCombo;
GtkWidget *templateMonitorConfigurationShowUnsupportedCheck;
GtkWidget *templateMonitorConfigurationFrequencyLabel;
GtkWidget *templateMonitorConfigurationFrequencyCombo;
GtkWidget *templateMonitorConfigurationRotationCombo;
GtkWidget *templateMonitorConfigurationRotationLabel;
GtkWidget *templateMonitorConfigurationMainRadio;
GtkWidget *templateMonitorConfigurationRotationCombo;
GtkWidget *templateMonitorConfigurationPositionLabel;
GtkWidget *templateMonitorConfigurationPositionPosCombo;
GtkWidget *templateMonitorConfigurationPositionPortCombo;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
GtkWidget *templateMonitorConfigurationModelineCVTCheck;
GtkWidget *templateMonitorConfigurationUseCVTReducedCheck;
GtkWidget *templateMonitorConfigurationModelineGTFCheck;
GtkWidget *templateMonitorConfigurationParameterLineCheck;
GtkWidget *templateMonitorConfigurationParameterLineEntry;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel;
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
GtkWidget *templateMonitorConfigurationCancelButton;
GtkWidget *templateMonitorConfigurationSaveButton;
dictionary *config;
} monitor_edit_window;
typedef struct {
GtkWidget *templateMonitorscreenOverlay;
GtkWidget *templateMonitorImage;
GtkWidget *templateMonitorInfoBox;
GtkWidget *templateMonitorInfoNameLabel;
GtkWidget *templateMonitorInfoResolutionLabel;
GtkWidget *templateMonitorDeleteButton;
GtkWidget *templateMonitorSwitchButton;
GtkWidget *templateMonitorInfoConfigureButton;
dictionary *curconfig;
} MonitorSettings;
GtkWidget *templateMonitorInfoAddButton;
monitor_config config;
} monitor_window;
typedef struct
{
GtkWidget *window;
GtkWidget *propriearyTreeView;
GtkTreeViewColumn *ProprietaryDriverColumn;
GtkTreeViewColumn *ProprietaryDescriptionColumn;
GtkListStore *list;
GtkWidget *ProprietaryCloseButton;
GtkWidget *ProprietaryAcceptButton;
} driver_window;
int yon_check_for_monitors();
MonitorSettings *yon_setup_monitor_settings();
dictionary *yon_dictionary_pack_monitors(MonitorSettings *monitors, int size);
dictionary *yon_dictionary_pack_overlays(MonitorSettings *monitors, int size);
void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors);
void on_save_configuration(GtkWidget self, MonitorSettings *monitors);
// void on_closed_configuration(GtkWidget *self, MonitorSettings *monitors);
// void on_save_configuration(GtkWidget self, MonitorSettings *monitors);
void yon_parse_monitor();
void on_config_fill_interface(widgets_dict *widgets);
void yon_update_config(widgets_dict *widgets);
void on_configuration_save_global(GtkWidget *self, widgets_dict *widgets);
void on_configuration_save__local_global(GtkWidget *self, widgets_dict *widgets);
void on_configuration_save__local(GtkWidget *self, widgets_dict *widgets);
void yon_config_monitor_string_parse(char *parameters, int *size);
int yon_char_get_if_resolution(char *parsed_string);
void yon_monitor_set_resolutions();
monitor_config yon_monitor_config_new(char *port);
void yon_monitor_config_update(monitorconfig* monitor, char *port, char *config_string);
void yon_monitor_view_new(monitor_config monitor);
// void on_confugure_monitor_settings(GtkWidget *self, MonitorSettings *settings);
void yon_monitor_view_draw_all(GtkWidget *cnt);
void on_monitor_configure(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_delete(GtkWidget *self,monitor_view windowd);
void yon_monitor_view_update();
void yon_monitor_window_update(monitor_edit_window *window);
char *yon_monitor_make_string(monitorconfig* config);
#endif

File diff suppressed because it is too large Load Diff

@ -3,6 +3,7 @@
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <pthread.h>
#include <string.h>
#include <dirent.h>
@ -12,43 +13,35 @@
#define DesktopPath "/usr/share/applications/"
#define for_dictionaries(obj,obj1) for(obj=obj1->first;obj!=NULL;obj=obj->next)
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
#define yon_ubl_set_global_config_load_command(command) config_commands.global_config_load_command=command
#define yon_ubl_set_global_config_save_command(command) config_commands.global_config_save_command=command
#define yon_ubl_set_local_config_load_command(command) config_commands.local_config_load_command=command
#define yon_ubl_set_local_config_save_command(command) config_commands.local_config_save_command=command
#define new(type) malloc(sizeof(type))
#define new_arr(type,size) malloc(sizeof(type)*size)
#define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data=command
#define yon_ubl_set_config_save_data_pointer(command) config_commands.config_save_data = command
#define yon_ubl_load_global_config() yon_config_load(config_commands.global_config_load_command)
#define yon_ubl_load_local_config() yon_config_load(config_commands.local_config_load_command)
#define yon_ubl_save_global_config() yon_config_save(config_commands.global_config_save_command)
#define yon_ubl_save_local_config() yon_config_save(config_commands.local_config_save_command)
#define yon_ubl_load_global_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_load_local_config(command, size_pointer) yon_config_load(command, size_pointer)
#define yon_ubl_save_global_config(command) yon_config_save(command)
#define yon_ubl_save_local_config(command) yon_config_save(command)
struct config_commands{
char *global_config_load_command;
char *global_config_save_command;
char *local_config_load_command;
char *local_config_save_command;
char **config_save_data;
};
typedef enum {
DICTIONARY_ACTION_WIDGETS_TYPE,
DICTIONARY_IVGRAPHICALS_TYPE,
typedef enum
{
#ifdef __GTK_H__
DICTIONARY_GTK_WIDGETS_TYPE,
#endif
DICTIONARY_OTHER_TYPE
} DICT_TYPE;
typedef struct {
typedef struct
{
char *command;
int *exitcode;
} thread_output;
typedef struct dictionary {
typedef struct dictionary
{
char *key;
void *data;
struct dictionary *next;
@ -57,26 +50,32 @@ typedef struct dictionary {
DICT_TYPE data_type;
} dictionary;
typedef struct apps{
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
} apps;
typedef struct apps
{
char *Name;
int Type;
char *Categories;
char *Exec;
char *Icon;
int Pluggable;
int DualPluggable;
} apps;
typedef char** config_str;
// dictionary functions
//dictionary functions
#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); \
else dict=yon_dictionary_create_with_data_connected(dict,key,data);
dictionary *yon_dictionary_create_empty();
dictionary * yon_dictionary_create_conneced(dictionary *targetdict);
dictionary *yon_dictionary_create_conneced(dictionary *targetdict);
dictionary *yon_dictionary_get_last(dictionary *dict);
dictionary *yon_dictionary_switch_places(dictionary *dict,int aim);
dictionary *yon_dictionary_switch_places(dictionary *dict, int aim);
void yon_dictionary_make_first(dictionary *dict);
@ -94,69 +93,78 @@ dictionary *yon_dictionary_rip(dictionary *dict);
dictionary *yon_dictionary_get_nth(dictionary *dict, int place);
//char functions
// char functions
char *yon_char_get_augumented(char *source, char *append);
char *yon_char_new(char *chr);
char *yon_char_unite(char *source, ...);
char *yon_cut(char *source, int size, int startpos);
char *yon_char_divide(char *source, int dividepos);
char *yon_char_divide_search(char *source, char* dividepos, int delete_divider);
char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert);
char **yon_char_parse(char *parameters, int *size, char *divider);
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete);
//parsing functions
int yon_char_parsed_check_exist(char **parameters, int size, char *param);
apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist,int size);
// parsing functions
apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist, int size);
apps *yon_apps_get_by_name(apps *applist,char *name, int size);
apps *yon_apps_get_by_name(apps *applist, char *name, int size);
char *yon_config_load(char *command);
config_str yon_config_load(char *command, int *str_len);
int yon_config_save(char *command);
//terminal-using functions
char *yon_config_get_parameter(config_str parameters, int size, char *param);
char *yon_config_make_save_parameter_with_multiple_arguments(char *parameter_string, char *config_parameter, char *divider);
// terminal-using functions
int yon_launch_app(char *name);
int yon_launch_app_with_arguments(char *name, char *args);
int yon_launch(thread_output *thread);
//Gtk functions
// Gtk functions
#ifdef __GTK_H__
#define yon_gtk_builder_get_widget(obj,obj2) GTK_WIDGET(gtk_builder_get_object(obj,obj2))
#define yon_gtk_builder_get_widget(obj, obj2) GTK_WIDGET(gtk_builder_get_object(obj, obj2))
typedef struct {
typedef struct
{
GtkWidget *Icon;
GtkWidget *Label;
GtkWidget *IconView;
GtkListStore *List;
} expander_icon_view;
// GtkWidget *yon_gtk_app_chooser_apps_create();
// dictionary *yon_gtk_app_chooser_create();
// expander_icon_view yon_gtk_icon_view_expander_create(GtkWidget *pack, ...);
int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size);
int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find);
GtkWidget *yon_gtk_socket_create_new_with_connect(GtkWidget *container, gpointer data);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
@ -164,25 +172,26 @@ int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
int yon_dictionary_gtk_pack_start_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
int yon_dictionary_gtk_pack_end_multiple_widgets(dictionary *dict, GtkWidget *destination, gboolean expand, gboolean fill, int padding);
//uninitialised
// uninitialised
void yon_on_plug_added(GtkSocket* self, gpointer user_data);
void yon_on_plug_removed(GtkSocket* self, gpointer user_data);
void yon_on_plug_added(GtkSocket *self, gpointer user_data);
void yon_on_plug_removed(GtkSocket *self, gpointer user_data);
#endif
typedef enum {
typedef enum
{
BACKGROUND_IMAGE_SUCCESS_TYPE,
BACKGROUND_IMAGE_FAIL_TYPE
} BACKGROUND_IMAGE_TYPE;
#ifdef __cplusplus
#define yon_ubl_header_setup(overlay,head,image,imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()),GTK_WIDGET(head.gobj()),GTK_WIDGET(image.gobj()),(char*)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(GTK_WIDGET(statusbox.gobj()), GTK_WIDGET(statusicon.gobj()), GTK_WIDGET(statuslabel.gobj()), (char*)iconname, (char*)statustext, backgroundclass)
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay.gobj()), GTK_WIDGET(head.gobj()), GTK_WIDGET(image.gobj()), (char *)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(GTK_WIDGET(statusbox.gobj()), GTK_WIDGET(statusicon.gobj()), GTK_WIDGET(statuslabel.gobj()), (char *)iconname, (char *)statustext, backgroundclass)
#else
#define yon_ubl_header_setup(overlay,head,image,imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay),GTK_WIDGET(head),GTK_WIDGET(image), (char*)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass) _yon_ubl_status_box_render(statusbox, statusicon, statuslabel, iconname, statustext, backgroundclass)
#define yon_ubl_header_setup(overlay, head, image, imag_path) _yon_ubl_header_setup(GTK_WIDGET(overlay), GTK_WIDGET(head), GTK_WIDGET(image), (char *)imag_path)
#define yon_ubl_status_box_render(statusbox, statusicon, statuslabel, statustext, backgroundclass) _yon_ubl_status_box_render(statusbox, statusicon, statuslabel, statustext, backgroundclass)
#endif
void _yon_ubl_header_setup(GtkWidget *Overlay, GtkWidget *Head, GtkWidget *Image, char *image_path);
void _yon_ubl_status_box_render(GtkWidget *StatusBox, GtkWidget *StatusIcon, GtkWidget *StatusLabel, char *IconName, char* StatusText, BACKGROUND_IMAGE_TYPE BackgroundClass);
void _yon_ubl_status_box_render(GtkWidget *StatusBox, GtkWidget *StatusIcon, GtkWidget *StatusLabel, char *StatusText, BACKGROUND_IMAGE_TYPE BackgroundClass);
#endif
#endif

@ -1,7 +1,7 @@
[Desktop Entry]
Encoding=UTF-8
Name=ubl-settings-video
Name[ru]=Настройки Видеоадаптера и дисплея
Name[ru]=Настройки видеоадаптера и дисплея
GenericName=ubl-settings-video
GenericName[ru]=Настройки Видеоадаптера и дисплея
Comment=Application for managing video adapter and display settings

File diff suppressed because it is too large Load Diff

@ -1,170 +1,204 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# Language translations for ubl-settings-manager package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-manager package.
# UBLinux Team <info@ublinux.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-04 17:42+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"Project-Id-Version: ubl-settings-manager 1.0\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-04-21 12:33+0000\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
"Language: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-video.c:151
msgid "About"
#: source/ubl-settings-video.c:26 source/ubl-settings-video.c:223
msgid "Cancel"
msgstr ""
#: source/ubl-settings-video.c:143
msgid "Automatically choose and use driver"
#: source/ubl-settings-video.c:27
msgid "Accept"
msgstr ""
#: source/ubl-settings-video.c:153
msgid "Change"
#: source/ubl-settings-video.c:28 source/ubl-settings-video.c:386
msgid "Driver"
msgstr ""
#: source/ubl-settings-video.c:131
msgid "Configuration method"
#: source/ubl-settings-video.c:29
msgid "Description"
msgstr ""
#: source/ubl-settings-video.c:41
msgid "DPMS off"
#: source/ubl-settings-video.c:87 source/ubl-settings-video.c:392
msgid "UBlinux Video Configuration"
msgstr ""
#: source/ubl-settings-video.c:37
msgid "Do not switch display off"
#: source/ubl-settings-video.c:89
msgid "Progect Home Page"
msgstr ""
#: source/ubl-settings-video.c:150
msgid "Documentation"
#: source/ubl-settings-video.c:90
msgid "Videocard and monitor configuration manager"
msgstr ""
#: source/ubl-settings-video.c:130
msgid "Driver"
#: source/ubl-settings-video.c:215
msgid "Monitor: "
msgstr ""
#: source/ubl-settings-video.c:136
msgid "Extra"
#: source/ubl-settings-video.c:216
msgid "Resolution (px): "
msgstr ""
#: source/ubl-settings-video.h:16
msgid "Failed to load global configuration"
#: source/ubl-settings-video.c:217
msgid "Frequency (Hz): "
msgstr ""
#: source/ubl-settings-video.h:17
msgid "Failed to load local configuration"
#: source/ubl-settings-video.c:218
msgid "Rotation: "
msgstr ""
#: source/ubl-settings-video.c:129
msgid "Failsafe driver AMD/ATI: "
#: source/ubl-settings-video.c:220
msgid "Main monitor"
msgstr ""
#: source/ubl-settings-video.c:128
msgid "Failsafe driver nVidia: "
#: source/ubl-settings-video.c:221
msgid "through parameter line:"
msgstr ""
#: source/ubl-settings-video.c:135
msgid "Fix frame gap (nVidia)"
#: source/ubl-settings-video.c:226 source/ubl-settings-video.c:231
#: source/ubl-settings-video.c:233 source/ubl-settings-video.c:236
#: source/ubl-settings-video.c:238 source/ubl-settings-video.c:258
msgid "Default settings"
msgstr ""
#: source/ubl-settings-video.c:35
msgid "Frequency (Hz): "
#: source/ubl-settings-video.c:374
msgid "Don't use"
msgstr ""
#: source/ubl-settings-video.c:134
msgid "Hybrid graphics"
#: source/ubl-settings-video.c:375 source/ubl-settings-video.c:377
msgid "Off"
msgstr ""
#: source/ubl-settings-video.c:125
msgid "Launch programms through (nVidia)"
#: source/ubl-settings-video.c:376 source/ubl-settings-video.c:378
msgid "fbdev"
msgstr ""
#: source/ubl-settings-video.c:138
msgid "Load"
#: source/ubl-settings-video.c:380
msgid "1st variant. May cause perfomance drops in video games"
msgstr ""
#: source/ubl-settings-video.c:145
msgid "Load from global configuration"
#: source/ubl-settings-video.c:381
msgid "2nd variant. May not work on specific video cards"
msgstr ""
#: source/ubl-settings-video.c:146
msgid "Load from local configuration"
#: source/ubl-settings-video.c:382
msgid "Video output configuration"
msgstr ""
#: source/ubl-settings-video.c:39
msgid "Main monitor"
#: source/ubl-settings-video.c:383
msgid "Proprietary driver: "
msgstr ""
#: source/ubl-settings-video.c:141
msgid "Manual configuration"
#: source/ubl-settings-video.c:384
msgid "Failsafe driver nVidia: "
msgstr ""
#: source/ubl-settings-video.c:132
#: source/ubl-settings-video.c:385
msgid "Failsafe driver AMD/ATI: "
msgstr ""
#: source/ubl-settings-video.c:388
msgid "Monitor configuration"
msgstr ""
#: source/ubl-settings-video.c:33
msgid "Monitor: "
#: source/ubl-settings-video.c:389
msgid "Hybrid graphics"
msgstr ""
#: source/ubl-settings-video.c:390
msgid "Fix frame gap (nVidia)"
msgstr ""
#: source/ubl-settings-video.c:142
#: source/ubl-settings-video.c:391
msgid "Extra"
msgstr ""
#: source/ubl-settings-video.c:393
msgid "Load"
msgstr ""
#: source/ubl-settings-video.c:394
msgid "Save"
msgstr ""
#: source/ubl-settings-video.c:396
msgid "On"
msgstr ""
#: source/ubl-settings-video.c:127
msgid "Proprietary driver: "
#: source/ubl-settings-video.c:397
msgid "Automatically choose and use driver"
msgstr ""
#: source/ubl-settings-video.c:34
msgid "Resolution (px): "
#: source/ubl-settings-video.c:398
msgid "Launch programms through optirun (nVidia): "
msgstr ""
#: source/ubl-settings-video.c:36
msgid "Rotation: "
#: source/ubl-settings-video.c:399
msgid "Launch programs through primusun (nVidia): "
msgstr ""
#: source/ubl-settings-video.c:139
msgid "Save"
#: source/ubl-settings-video.c:400
msgid "discrete video only (AMD/ATI)"
msgstr ""
#: source/ubl-settings-video.c:402
msgid "Load from global configuration"
msgstr ""
#: source/ubl-settings-video.c:147
#: source/ubl-settings-video.c:403
msgid "Load from local configuration"
msgstr ""
#: source/ubl-settings-video.c:404
msgid "Save to global an local configuration"
msgstr ""
#: source/ubl-settings-video.c:148
#: source/ubl-settings-video.c:405
msgid "Save to global configuration"
msgstr ""
#: source/ubl-settings-video.c:149
#: source/ubl-settings-video.c:406
msgid "Save to local configuration"
msgstr ""
#: source/ubl-settings-video.h:19
msgid "Saving to global configuration Succeeded"
#: source/ubl-settings-video.c:407
msgid "Documentation"
msgstr ""
#: source/ubl-settings-video.h:20
msgid "Saving to local configuration Succeeded"
#: source/ubl-settings-video.c:408
msgid "About"
msgstr ""
#: source/ubl-settings-video.c:137
msgid "UBlinux Video Configuration"
#: source/ubl-settings-video.c:438
msgid "Configuration has been loaded"
msgstr ""
#: source/ubl-settings-video.c:126
msgid "Video output configuration"
#: source/ubl-settings-video.h:22
msgid "Failed to load global configuration"
msgstr ""
#: source/ubl-settings-video.c:133
msgid "discrete video only (AMD/ATI)"
#: source/ubl-settings-video.h:23
msgid "Failed to load local configuration"
msgstr ""
#: source/ubl-settings-video.c:40
msgid "through parameter line:"
#: source/ubl-settings-video.h:25
msgid "Saving to global configuration Succeeded"
msgstr ""
#: source/ubl-settings-video.h:26
msgid "Saving to local configuration Succeeded"
msgstr ""

@ -1,4 +1,4 @@
# Language translations for ubl-settings-manager package.
# Russian translations for ubl-settings-manager package.
# Copyright (C) 2022, UBTech LLC
# This file is distributed under the same license as the ubl-settings-manager package.
# UBLinux Team <info@ublinux.com>, 2022
@ -7,12 +7,12 @@
msgid ""
msgstr ""
"Project-Id-Version: ubl-settings-manager 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-05 10:05+0000\n"
"Report-Msgid-Bugs-To: info@ublinux.com\n"
"POT-Creation-Date: 2023-04-21 12:33+0000\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: UBLinux Team <info@ublinux.com>\n"
"Language: \n"
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
"Language: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

@ -0,0 +1,8 @@
VERSION_ID:DRV_PAСKAGE:DRV_NAME:DRV_DESCRIPTION:DRV_SUPPORT
:ubm-nvidia-340:nvidia-340:Пакет с модулем драйвера и утилиты NVIDIA 340xx:Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
:ubm-nvidia-390:nvidia-390:Пакет с модулем драйвера и утилиты NVIDIA 390xx:Драйвер видеокарт nVidia серий 4XX, 5XX, 6XX, 7XX, 9XX, 10XX
:ubm-nvidia-430:nvidia-430:Пакет с модулем включает в себя драйвер NVIDIA 430xx и утилиты:Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
:ubm-nvidia-470:nvidia-470:Пакет с модулем драйвера и утилиты NVIDIA 470xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
:ubm-nvidia-510:nvidia-510:Пакет с модулем драйвера и утилиты NVIDIA 510xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
:ubm-nvidia-515:nvidia-515:Пакет с модулем драйвера и утилиты NVIDIA 515xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
:ubm-nvidia-optimus:nvidia-optimus:Пакет с модулем включает в себя NVIDIA Optimus:
1 VERSION_ID:DRV_PAСKAGE:DRV_NAME:DRV_DESCRIPTION:DRV_SUPPORT
2 :ubm-nvidia-340:nvidia-340:Пакет с модулем драйвера и утилиты NVIDIA 340xx:Драйвер видеокарт nVidia серий 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX
3 :ubm-nvidia-390:nvidia-390:Пакет с модулем драйвера и утилиты NVIDIA 390xx:Драйвер видеокарт nVidia серий 4XX, 5XX, 6XX, 7XX, 9XX, 10XX
4 :ubm-nvidia-430:nvidia-430:Пакет с модулем включает в себя драйвер NVIDIA 430xx и утилиты:Драйвер видеокарт nVidia серий 6XX, 7XX, 9XX, 10XX, 16XX
5 :ubm-nvidia-470:nvidia-470:Пакет с модулем драйвера и утилиты NVIDIA 470xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
6 :ubm-nvidia-510:nvidia-510:Пакет с модулем драйвера и утилиты NVIDIA 510xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
7 :ubm-nvidia-515:nvidia-515:Пакет с модулем драйвера и утилиты NVIDIA 515xx:Драйвер видеокарт nVidia серий NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX
8 :ubm-nvidia-optimus:nvidia-optimus:Пакет с модулем включает в себя NVIDIA Optimus:
Loading…
Cancel
Save