commit
5954a57b0a
@ -0,0 +1,8 @@
|
||||
.vscode/
|
||||
ubl-settings-video
|
||||
ubl-settings-video.glade~
|
||||
*ubl-settings-video.glade#
|
||||
compile/
|
||||
ubl-settings-video_ru.po~
|
||||
ubl-settings-video-n.pot
|
||||
vgcore.*
|
||||
@ -0,0 +1,162 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
#SHELL := /bin/bash
|
||||
MAKEFILE_FILEPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
MAKEFILE_DIR := $(notdir $(patsubst %/,%,$(dir $(MAKEFILE_FILEPATH))))
|
||||
MAKEFILE_PATH := $(dir $(MAKEFILE_FILEPATH))
|
||||
|
||||
CMAKE_COMMAND = cmake
|
||||
CMAKE_SOURCE_DIR = $(MAKEFILE_PATH)source
|
||||
CMAKE_BUILD_DIR = $(MAKEFILE_PATH)compile
|
||||
#CMAKE_SOURCE_DIR = ./source
|
||||
#CMAKE_BUILD_DIR = ./compile
|
||||
FILE_VERSION = VERSION.md
|
||||
DEPENDS = /bin/cmake
|
||||
PREFIX ?= /usr
|
||||
PKGNAME = $(MAKEFILE_DIR)
|
||||
#PKGNAME = ubl-settings-manager
|
||||
|
||||
default_target: all
|
||||
|
||||
.PHONY: all init depend debug prepare check build uninstall install clean up_ver help
|
||||
|
||||
all: init build
|
||||
|
||||
init:
|
||||
@echo "Initialize ..."; \
|
||||
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}"
|
||||
|
||||
depend:
|
||||
@echo "Check depends ..."
|
||||
@for FILE_DEPEND in $(DEPENDS); do \
|
||||
if [ ! -f $${FILE_DEPEND} ]; then \
|
||||
echo "ERROR: Depend '$${FILE_DEPEND}' not found !"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
done; \
|
||||
echo "Check depends: OK"
|
||||
# $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
||||
|
||||
debug:
|
||||
@echo "Debug ..."
|
||||
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
||||
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
|
||||
fi; \
|
||||
echo "Debug: OK"
|
||||
|
||||
prepare:
|
||||
@echo "Prepare ..."; \
|
||||
if [ ! -d ${CMAKE_BUILD_DIR} ]; then \
|
||||
$(CMAKE_COMMAND) -S${CMAKE_SOURCE_DIR} -B${CMAKE_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${PREFIX}"; \
|
||||
fi; \
|
||||
echo "Prepare: OK"
|
||||
|
||||
check:
|
||||
@echo "Check ..."; \
|
||||
if [ -f ${CMAKE_BUILD_DIR}/${PKGNAME} ]; then \
|
||||
echo "Check: OK"; \
|
||||
else \
|
||||
echo "Check: ${CMAKE_BUILD_DIR}/${PKGNAME} not found !"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
build: depend prepare
|
||||
@echo "Build ..."; \
|
||||
make --directory=${CMAKE_BUILD_DIR}; \
|
||||
echo "Build: OK"
|
||||
|
||||
uninstall:
|
||||
@echo "Uninstall ..."
|
||||
@for FILE_PO in $(wildcard *.po); do \
|
||||
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
||||
FILE_MO=$${FILE_PO##*/}; FILE_MO="$${FILE_MO%_*.po}.mo"; \
|
||||
PATH_FILE_MO="${DESTDIR}${PREFIX}/share/locale/$${LANG}/LC_MESSAGES/$${FILE_MO}"; \
|
||||
$(RM) "$${PATH_FILE_MO}"; \
|
||||
done
|
||||
@for SIZE in 16x16 32x32 48x48 scalable; do \
|
||||
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.svg"; \
|
||||
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/apps/com.ublinux.${PKGNAME}.png"; \
|
||||
done
|
||||
@for FILE_SVG in $(wildcard *.svg); do \
|
||||
for SIZE in 16x16 32x32 48x48 scalable; do \
|
||||
$(RM) "${DESTDIR}${PREFIX}/share/icons/hicolor/$${SIZE}/status/$${FILE_SVG%.*}".{svg,png,jpg}; \
|
||||
done; \
|
||||
done
|
||||
@$(RM) "${DESTDIR}${PREFIX}/bin/${PKGNAME}"
|
||||
@$(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; \
|
||||
update-desktop-database --quiet &>/dev/null || true; \
|
||||
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
|
||||
fi
|
||||
@echo "Uninstall: OK"
|
||||
|
||||
install: check uninstall
|
||||
@echo "Install ..."
|
||||
@for FILE_PO in $(wildcard *.po); do \
|
||||
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \
|
||||
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 -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 -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 -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 -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 -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; \
|
||||
[ -d "${DESTDIR}${PREFIX}/share/applications" ] && touch "${DESTDIR}${PREFIX}/share/applications" &>/dev/null || true; \
|
||||
fi
|
||||
@echo "Install: OK"
|
||||
|
||||
clean:
|
||||
@echo "Clean ..."
|
||||
@$(RM) -rd ${CMAKE_BUILD_DIR}
|
||||
@if [ -d ${CMAKE_BUILD_DIR} ]; then \
|
||||
echo "Clean: error, compile directory exist ${CMAKE_BUILD_DIR}"; \
|
||||
else \
|
||||
echo "Clean: OK"; \
|
||||
fi
|
||||
|
||||
up_ver:
|
||||
@CURRENT=$$(grep 'VERSION' ${FILE_VERSION} | cut -d" " -f2); \
|
||||
MAJOR=$$(cut -d. -f1 <<< $${CURRENT}); \
|
||||
MINOR=$$(cut -d. -f2 <<< $${CURRENT}); \
|
||||
VER="$${MAJOR}.$$(($${MINOR}+1))"; \
|
||||
sed "s/VERSION *[[:digit:]]*.*/VERSION $${VER}/" -i ${FILE_VERSION}; \
|
||||
echo "Updated version to VERSION.md: $${CURRENT} to $${VER}"
|
||||
|
||||
help:
|
||||
@echo "The following are some of the valid targets for this Makefile:"; \
|
||||
echo "... all (the default if no target is provided)"; \
|
||||
echo "... init"; \
|
||||
echo "... debug"; \
|
||||
echo "... prepare"; \
|
||||
echo "... compile"; \
|
||||
echo "... install"; \
|
||||
echo "... uninstall"; \
|
||||
echo "... clean"; \
|
||||
echo "... up_ver"
|
||||
@ -1,2 +1,28 @@
|
||||
# ubl-settings-video
|
||||
# Настройки видеоадаптера и дисплея
|
||||
# Build
|
||||
In order to build ubl-settings-video you will need:
|
||||
|
||||
- CMake
|
||||
- C compiler
|
||||
- GTK+ 3 & dependencies
|
||||
|
||||
Once you have all the necessary dependencies, you can use:
|
||||
```sh
|
||||
$ make
|
||||
```
|
||||
|
||||
# Installation
|
||||
After a successful build, just use:
|
||||
```sh
|
||||
$ sudo make install clean
|
||||
```
|
||||
|
||||
# Uninstallation
|
||||
After a successful build, just use:
|
||||
```sh
|
||||
$ sudo make uninstall
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
@ -0,0 +1 @@
|
||||
VERSION 1.0
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 263 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,30 @@
|
||||
cmake_minimum_required(VERSION 3.7)
|
||||
project(ubl-settings-video)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
pkg_check_modules(GTK REQUIRED gtk+-3.0)
|
||||
include_directories(${GTK_INCLUDE_DIRS})
|
||||
link_directories(${GTK_LIBRARY_DIRS})
|
||||
add_definitions(${GTK_CFLAGS_OTHER})
|
||||
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a")
|
||||
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \
|
||||
-O2 -pipe -fno-plt -fexceptions \
|
||||
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
|
||||
-fstack-clash-protection -fcf-protection")
|
||||
|
||||
set(SOURCE_FILES
|
||||
ubl-settings-video.c
|
||||
ubl-utils.c
|
||||
)
|
||||
|
||||
set(LIBRARIES
|
||||
${GTK_LIBRARIES}
|
||||
pthread)
|
||||
|
||||
|
||||
add_executable(ubl-settings-video ${SOURCE_FILES})
|
||||
target_link_libraries(ubl-settings-video ${LIBRARIES})
|
||||
install(TARGETS ubl-settings-video DESTINATION bin)
|
||||
@ -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
@ -0,0 +1,311 @@
|
||||
#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"
|
||||
#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/images/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_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 "
|
||||
|
||||
#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 "
|
||||
|
||||
#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;
|
||||
|
||||
string version_application = "1.0";
|
||||
|
||||
#define _(String) gettext(String)
|
||||
|
||||
typedef dictionary* monitor_config;
|
||||
typedef dictionary* proprietary_config;
|
||||
typedef dictionary* monitor_view;
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
config_str line;
|
||||
int size;
|
||||
} resolution_supported;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
config_str loaded_config;
|
||||
int configsize;
|
||||
int autoChooseDrivers;
|
||||
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;
|
||||
config_str ports;
|
||||
int portssize;
|
||||
config_str resolutions;
|
||||
int resolutionssize;
|
||||
render_data status_render;
|
||||
} config;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int main;
|
||||
int enable;
|
||||
int position;
|
||||
char *position_port;
|
||||
char *port;
|
||||
char *resolution;
|
||||
config_str resolutionCapabilities;
|
||||
char *frequency;
|
||||
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;
|
||||
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;
|
||||
|
||||
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
|
||||
{
|
||||
GtkWidget *templateMonitorConfigurationWindow;
|
||||
GtkWidget *mainMonitorConfigurationBox;
|
||||
GtkWidget *templateMonitorConfigurationBox;
|
||||
GtkWidget *templateMonitorConfigurationEnableCheck;
|
||||
GtkWidget *templateMonitorConfigurationPortLabel;
|
||||
GtkWidget *templateMonitorConfigurationPortCombo;
|
||||
GtkWidget *templateMonitorConfigurationMainCheck;
|
||||
GtkWidget *templateMonitorConfigurationResolutionLabel;
|
||||
GtkWidget *templateMonitorConfigurationResolutionCombo;
|
||||
GtkWidget *templateMonitorConfigurationShowUnsupportedCheck;
|
||||
GtkWidget *templateMonitorConfigurationFrequencyLabel;
|
||||
GtkWidget *templateMonitorConfigurationFrequencyCombo;
|
||||
GtkWidget *templateMonitorConfigurationRotationLabel;
|
||||
GtkWidget *templateMonitorConfigurationRotationCombo;
|
||||
GtkWidget *templateMonitorConfigurationPositionLabel;
|
||||
GtkWidget *templateMonitorConfigurationPositionPosCombo;
|
||||
GtkWidget *templateMonitorConfigurationPositionPortCombo;
|
||||
GtkWidget *templateMonitorConfigurationDoNotSwitchOffCheck;
|
||||
GtkWidget *templateMonitorConfigurationModelineCVTCheck;
|
||||
GtkWidget *templateMonitorConfigurationUseCVTReducedCheck;
|
||||
GtkWidget *templateMonitorConfigurationModelineGTFCheck;
|
||||
GtkWidget *templateMonitorConfigurationParameterLineCheck;
|
||||
GtkWidget *templateMonitorConfigurationParameterLineEntry;
|
||||
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;
|
||||
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;
|
||||
|
||||
|
||||
// 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
|
||||
@ -0,0 +1,197 @@
|
||||
#ifndef UBL_UTILS
|
||||
#define UBL_UTILS
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <pthread.h>
|
||||
#include <string.h>
|
||||
#include <dirent.h>
|
||||
#include <locale.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gtk/gtkx.h>
|
||||
|
||||
#define DesktopPath "/usr/share/applications/"
|
||||
|
||||
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
|
||||
|
||||
#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_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)
|
||||
|
||||
typedef enum
|
||||
{
|
||||
#ifdef __GTK_H__
|
||||
DICTIONARY_GTK_WIDGETS_TYPE,
|
||||
#endif
|
||||
DICTIONARY_OTHER_TYPE
|
||||
|
||||
} DICT_TYPE;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *command;
|
||||
int *exitcode;
|
||||
} thread_output;
|
||||
|
||||
typedef struct dictionary
|
||||
{
|
||||
char *key;
|
||||
void *data;
|
||||
struct dictionary *next;
|
||||
struct dictionary *prev;
|
||||
struct dictionary *first;
|
||||
DICT_TYPE data_type;
|
||||
} dictionary;
|
||||
|
||||
typedef struct apps
|
||||
{
|
||||
char *Name;
|
||||
int Type;
|
||||
char *Categories;
|
||||
char *Exec;
|
||||
char *Icon;
|
||||
int Pluggable;
|
||||
int DualPluggable;
|
||||
} apps;
|
||||
|
||||
typedef char** config_str;
|
||||
// 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_get_last(dictionary *dict);
|
||||
|
||||
dictionary *yon_dictionary_switch_places(dictionary *dict, int aim);
|
||||
|
||||
void yon_dictionary_make_first(dictionary *dict);
|
||||
|
||||
void yon_dictionary_make_nth(dictionary *dict, int nth);
|
||||
|
||||
dictionary *yon_dictionary_create_with_data(char *key, void *data);
|
||||
|
||||
dictionary *yon_dictionary_create_with_data_connected(dictionary *dict, char *key, void *data);
|
||||
|
||||
dictionary *yon_dictionary_connect(dictionary *old, dictionary *toconnect);
|
||||
|
||||
dictionary *yon_dictionary_find(dictionary **dict, char *key);
|
||||
|
||||
dictionary *yon_dictionary_rip(dictionary *dict);
|
||||
|
||||
dictionary *yon_dictionary_get_nth(dictionary *dict, int place);
|
||||
|
||||
// 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_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);
|
||||
|
||||
int yon_char_parsed_check_exist(char **parameters, int size, char *param);
|
||||
|
||||
|
||||
|
||||
// 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);
|
||||
|
||||
config_str yon_config_load(char *command, int *str_len);
|
||||
|
||||
int yon_config_save(char *command);
|
||||
|
||||
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
|
||||
|
||||
#ifdef __GTK_H__
|
||||
|
||||
#define yon_gtk_builder_get_widget(obj, obj2) GTK_WIDGET(gtk_builder_get_object(obj, obj2))
|
||||
|
||||
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);
|
||||
|
||||
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
|
||||
|
||||
void yon_on_plug_added(GtkSocket *self, gpointer user_data);
|
||||
void yon_on_plug_removed(GtkSocket *self, gpointer user_data);
|
||||
|
||||
|
||||
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)
|
||||
#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, 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 *StatusText, BACKGROUND_IMAGE_TYPE BackgroundClass);
|
||||
#endif
|
||||
#endif
|
||||
|
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,103 @@
|
||||
.noborder {
|
||||
border:none;
|
||||
}
|
||||
.thin {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
.workingbg {
|
||||
background:@theme_base_color;
|
||||
}
|
||||
.textoutline {
|
||||
text-shadow: 0.5px 0 0.5px @theme_bg_color,
|
||||
0 0.5px 0.5px @theme_bg_color,
|
||||
-0.5px 0 0.5px @theme_bg_color,
|
||||
0 -0.5px 0.5px @theme_bg_color;
|
||||
}
|
||||
.nobackground {
|
||||
background: none;
|
||||
}
|
||||
.menuitembottom{
|
||||
margin-top:0px;
|
||||
margin-bottom:3px;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle{
|
||||
margin-top:0px;
|
||||
margin-bottom:0px;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
|
||||
.menuitemtop{
|
||||
margin-bottom:0px;
|
||||
border-color:inherit;
|
||||
border-top-width:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemtop *{
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
border:transparent;
|
||||
}
|
||||
.menuitemmiddle *{
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
border:transparent;
|
||||
}
|
||||
.menuitembottom *{
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
}
|
||||
.menuitemtop:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-top-width:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitembottom:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-bottom-width:0px;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
|
||||
}
|
||||
.menuitemtop:hover* {
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitemmiddle:hover* {
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitembottom:hover* {
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
|
||||
.boxInfoMessError{
|
||||
background-color: #ea9999;
|
||||
}
|
||||
|
||||
.boxInfoMessOK{
|
||||
background-color: #f3f0ac;
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=ubl-settings-video
|
||||
Name[ru]=Настройки видеоадаптера и дисплея
|
||||
GenericName=ubl-settings-video
|
||||
GenericName[ru]=Настройки Видеоадаптера и дисплея
|
||||
Comment=Application for managing video adapter and display settings
|
||||
Comment[ru]=Приложение для управления настройками видеоадаптера и дисплея
|
||||
Type=Application
|
||||
Exec=ubl-settings-video
|
||||
Icon=com.ublinux.ubl-settings-video
|
||||
Terminal=false
|
||||
X-XfcePluggable=true
|
||||
X-UBLPluggable=true
|
||||
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,204 @@
|
||||
# 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: 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=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: source/ubl-settings-video.c:26 source/ubl-settings-video.c:223
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:27
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:28 source/ubl-settings-video.c:386
|
||||
msgid "Driver"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:29
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:87 source/ubl-settings-video.c:392
|
||||
msgid "UBlinux Video Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:89
|
||||
msgid "Progect Home Page"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:90
|
||||
msgid "Videocard and monitor configuration manager"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:215
|
||||
msgid "Monitor: "
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:216
|
||||
msgid "Resolution (px): "
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:217
|
||||
msgid "Frequency (Hz): "
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:218
|
||||
msgid "Rotation: "
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:220
|
||||
msgid "Main monitor"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:221
|
||||
msgid "through parameter line:"
|
||||
msgstr ""
|
||||
|
||||
#: 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:374
|
||||
msgid "Don't use"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:375 source/ubl-settings-video.c:377
|
||||
msgid "Off"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:376 source/ubl-settings-video.c:378
|
||||
msgid "fbdev"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:380
|
||||
msgid "1st variant. May cause perfomance drops in video games"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:381
|
||||
msgid "2nd variant. May not work on specific video cards"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:382
|
||||
msgid "Video output configuration"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:383
|
||||
msgid "Proprietary driver: "
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:384
|
||||
msgid "Failsafe driver nVidia: "
|
||||
msgstr ""
|
||||
|
||||
#: 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:389
|
||||
msgid "Hybrid graphics"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:390
|
||||
msgid "Fix frame gap (nVidia)"
|
||||
msgstr ""
|
||||
|
||||
#: 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:397
|
||||
msgid "Automatically choose and use driver"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:398
|
||||
msgid "Launch programms through optirun (nVidia): "
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:399
|
||||
msgid "Launch programs through primusun (nVidia): "
|
||||
msgstr ""
|
||||
|
||||
#: 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: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:405
|
||||
msgid "Save to global configuration"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:406
|
||||
msgid "Save to local configuration"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:407
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:408
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.c:438
|
||||
msgid "Configuration has been loaded"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.h:22
|
||||
msgid "Failed to load global configuration"
|
||||
msgstr ""
|
||||
|
||||
#: source/ubl-settings-video.h:23
|
||||
msgid "Failed to load local configuration"
|
||||
msgstr ""
|
||||
|
||||
#: 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 ""
|
||||
|
Loading…
Reference in new issue