You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
244 lines
9.1 KiB
244 lines
9.1 KiB
#include <gtk/gtk.h>
|
|
#include <gtk/gtkx.h>
|
|
#include <locale.h>
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <libintl.h>
|
|
#include <sys/types.h>
|
|
#include <fcntl.h>
|
|
#include "ubl-utils.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 glade_path "/usr/share/ubl-settings-video/ui/ubl-settings-video.glade"
|
|
#define LocalePath "/usr/share/locale"
|
|
#define LocaleName "ubl-settings-video"
|
|
#define CssPath "/usr/share/ubl-settings-video/css/ubl-settings-video.css"
|
|
#define StatusLoadGlobalFailed _("Failed to load global configuration")
|
|
#define StatusLoadLocalFailed _("Failed to load local configuration")
|
|
|
|
#define StatusSaveGlobalFailed _("Saving to global configuration Succeeded")
|
|
#define StatusSaveLocalFailed _("Saving to local configuration Succeeded")
|
|
|
|
#define get_ports_command "xrandr |grep -E \"*connected\" |cut -d' ' -f1"
|
|
|
|
#define get_resolutions_command "xrandr |grep -noP \"\\d+x+\\d+\""
|
|
|
|
#define get_proprietary_drivers_command "cut -d, -f1- video-drivers.csv | grep -E \"-\""
|
|
|
|
#define get_resolutions_supportable_command "cut -d, -f1- Resolutions.csv |sed 's/,/\t/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 "
|
|
|
|
#define load_drivers_local_command "/usr/bin/ubconfig --default --source system get video FAILSAFENVIDIA FAILSAFEATI OPTIRUN PRIMUSRUN "
|
|
|
|
#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 "
|
|
|
|
|
|
char *local;
|
|
|
|
typedef char *string;
|
|
|
|
string version_application = "1.0";
|
|
|
|
#define _(String) gettext(String)
|
|
|
|
typedef struct
|
|
{
|
|
int autoChooseDrivers;
|
|
dictionary *videoconfig;
|
|
dictionary *monitors;
|
|
dictionary *proprietary;
|
|
GtkListStore *list;
|
|
char *failsafenVidia;
|
|
char *failsafeATI;
|
|
int descreteOnly;
|
|
char *optirun;
|
|
char *primusrun;
|
|
int gapfix;
|
|
int optiorprimus;
|
|
char **ports;
|
|
int portssize;
|
|
char **resolutions;
|
|
int resolutionssize;
|
|
} config;
|
|
|
|
typedef struct
|
|
{
|
|
int main;
|
|
int enable;
|
|
char *position;
|
|
char *port;
|
|
char *resolution;
|
|
char **resolutionCapabilities;
|
|
char *frequency;
|
|
char *rotation;
|
|
char *stringparameters;
|
|
int resolution_size;
|
|
} monitorconfig;
|
|
|
|
typedef struct {
|
|
GtkWidget *combo;
|
|
GtkWidget *tree;
|
|
} combo_tree;
|
|
|
|
typedef struct
|
|
{
|
|
dictionary *monitors;
|
|
dictionary *overlays;
|
|
GtkBuilder *builder;
|
|
GtkWidget *appsPackBox;
|
|
GtkWidget *appsPackWindow;
|
|
GtkWidget *extraOptirunChooseAppsButton;
|
|
GtkWidget *extraPrimusunChooseAppsButton;
|
|
GtkWidget *MainWindow;
|
|
GtkWidget *headBox;
|
|
GtkWidget *headInfoLabel;
|
|
GtkWidget *mainPlugBox;
|
|
GtkWidget *mainErrorBox;
|
|
GtkWidget *mainHeadOverlay;
|
|
GtkWidget *mainHeadBackgroundImage;
|
|
GtkWidget *mainDriverAutomaticallyChooseCheck;
|
|
GtkWidget *mainDriverProprietaryDriverLabel;
|
|
GtkWidget *mainDriverFailsafeNvidiaLabel;
|
|
GtkWidget *mainDriverFailsafeAMDLabel;
|
|
GtkWidget *mainDriverProprietaryDriverCombo;
|
|
GtkWidget *mainDriverProprietaryDriverButton;
|
|
GtkWidget *mainExtraFixGapCombo;
|
|
GtkWidget *mainDriverFailsafeNvidiaCombo;
|
|
GtkWidget *mainDriverFailsafeAMDCombo;
|
|
GtkWidget *mainDriverFrameLabel;
|
|
GtkWidget *monitorConfigurationMethodLabel;
|
|
GtkWidget *monitorConfigurationMethodCombo;
|
|
GtkWidget *mainMonitorVisualConfigurationBox;
|
|
GtkWidget *mainMonitorConfigurationBox;
|
|
GtkWidget *mainMonitorConfigurationFrameLabel;
|
|
GtkWidget *mainHybridGraphicsDiscreteLabel;
|
|
GtkWidget *mainHybridGraphicsDiscreteCheck;
|
|
GtkWidget *mainHybridGraphicsFrameLabel;
|
|
GtkWidget *mainExtraLaunchOptirunCheck;
|
|
GtkWidget *mainExtraLaunchPrismusunCheck;
|
|
GtkWidget *mainExtraFixGapLabel;
|
|
GtkWidget *mainExtraLaunchOptirunEntry;
|
|
GtkWidget *mainExtraLaunchPrismusunEntry;
|
|
GtkWidget *mainExtraLaunchThroughEntry;
|
|
GtkWidget *mainExtraFixGapLabelCombo;
|
|
GtkWidget *mainExtraLaunchThroughButton;
|
|
GtkWidget *mainExtraFrameLabel;
|
|
GtkWidget *mainHeaderTitleLabel;
|
|
GtkWidget *mainHeaderLoadButton;
|
|
GtkWidget *mainHeaderConfigLoadLabel;
|
|
GtkWidget *mainHeaderSaveConfigurationLabel;
|
|
GtkWidget *mainHeaderSaveButton;
|
|
GtkWidget *mainHeaderSettingsButton;
|
|
GtkWidget *mainHeaderLoadGlobalMenuItem;
|
|
GtkWidget *mainHeaderLoadLocalMenuItem;
|
|
GtkWidget *mainHeaderSaveGlobalLocalMenuItem;
|
|
GtkWidget *mainHeaderSaveGlobalMenuItem;
|
|
GtkWidget *mainHeaderSaveLocalMenuItem;
|
|
GtkWidget *mainHeaderSettingsDocumentationMenuItem;
|
|
GtkWidget *mainHeaderSettingsAboutMenuItem;
|
|
GtkWidget *mainStatusBox;
|
|
GtkWidget *mainStatusIcon;
|
|
GtkWidget *mainStatusLabel;
|
|
GtkWidget *templateMonitorConfigurationBox;
|
|
GtkWidget *templateMonitorConfigurationMonitorLabel;
|
|
GtkWidget *templateMonitorConfigurationResolutionLabel;
|
|
GtkWidget *templateMonitorConfigurationResolutionCombo;
|
|
GtkWidget *templateMonitorConfigurationFrequencyLabel;
|
|
GtkWidget *templateMonitorConfigurationFrequencyCombo;
|
|
GtkWidget *templateMonitorConfigurationRotationLabel;
|
|
GtkWidget *templateMonitorConfigurationRotationCombo;
|
|
GtkWidget *templateMonitorConfigurationMainRadio;
|
|
GtkWidget *templateMonitorConfigurationParameterLineCheck;
|
|
GtkWidget *templateMonitorConfigurationParameterLineEntry;
|
|
GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel;
|
|
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
|
|
} widgets_dict;
|
|
|
|
typedef struct
|
|
{
|
|
GtkWidget *templateMonitorConfigurationWindow;
|
|
GtkWidget *templateMonitorConfigurationBox;
|
|
GtkWidget *templateMonitorConfigurationMonitorLabel;
|
|
GtkWidget *templateMonitorConfigurationResolutionLabel;
|
|
GtkWidget *templateMonitorConfigurationResolutionCombo;
|
|
GtkWidget *templateMonitorConfigurationFrequencyLabel;
|
|
GtkWidget *templateMonitorConfigurationFrequencyCombo;
|
|
GtkWidget *templateMonitorConfigurationRotationCombo;
|
|
GtkWidget *templateMonitorConfigurationRotationLabel;
|
|
GtkWidget *templateMonitorConfigurationMainRadio;
|
|
GtkWidget *templateMonitorConfigurationParameterLineCheck;
|
|
GtkWidget *templateMonitorConfigurationParameterLineEntry;
|
|
GtkWidget *templateMonitorConfigurationDoNotSwitchOffLabel;
|
|
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
|
|
GtkWidget *templateMonitorConfigurationCancelButton;
|
|
GtkWidget *templateMonitorConfigurationSaveButton;
|
|
|
|
GtkWidget *templateMonitorConfigurationEnableCheck;
|
|
GtkWidget *templateMonitorConfigurationPortLabel;
|
|
GtkWidget *templateMonitorConfigurationPortCombo;
|
|
GtkWidget *templateMonitorConfigurationShowUnsupportedCheck;
|
|
GtkWidget *templateMonitorConfigurationPositionLabel;
|
|
GtkWidget *templateMonitorConfigurationPositionPosCombo;
|
|
GtkWidget *templateMonitorConfigurationPositionPortCombo;
|
|
GtkWidget *templateMonitorConfigurationModelineCVTCheck;
|
|
GtkWidget *templateMonitorConfigurationUseCVTReducedCheck;
|
|
GtkWidget *templateMonitorConfigurationModelineGTFCheck;
|
|
|
|
GtkWidget *templateMonitorscreenOverlay;
|
|
GtkWidget *templateMonitorImage;
|
|
GtkWidget *templateMonitorInfoBox;
|
|
GtkWidget *templateMonitorInfoNameLabel;
|
|
GtkWidget *templateMonitorInfoResolutionLabel;
|
|
GtkWidget *templateMonitorInfoConfigureButton;
|
|
GtkWidget *templateMonitorDeleteButton;
|
|
GtkWidget *templateMonitorSwitchButton;
|
|
dictionary *curconfig;
|
|
} MonitorSettings;
|
|
|
|
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);
|
|
int yon_config_init(char **parameters, int size);
|
|
void yon_parse_monitor(dictionary *monitor, char *string_of_settings);
|
|
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(dictionary *dict);
|
|
#endif |