From 8f1bf7139ad5ae6f9c553029f4c37df82290096d Mon Sep 17 00:00:00 2001 From: David Date: Thu, 29 May 2014 15:39:37 +1200 Subject: User can now specify theme dir --- Makefile | 25 +++++++++++++++++-------- bat_tray.c | 15 +++++++++------ data/cpufreq-0.png | Bin 939 -> 0 bytes data/cpufreq-100.png | Bin 1057 -> 0 bytes data/cpufreq-25.png | Bin 942 -> 0 bytes data/cpufreq-50.png | Bin 988 -> 0 bytes data/cpufreq-75.png | Bin 1014 -> 0 bytes data/traybat-0-charging.png | Bin 1270 -> 0 bytes data/traybat-0.png | Bin 922 -> 0 bytes data/traybat-100-charging.png | Bin 1261 -> 0 bytes data/traybat-100.png | Bin 839 -> 0 bytes data/traybat-20-charging.png | Bin 1297 -> 0 bytes data/traybat-20.png | Bin 923 -> 0 bytes data/traybat-40-charging.png | Bin 1288 -> 0 bytes data/traybat-40.png | Bin 925 -> 0 bytes data/traybat-60-charging.png | Bin 1305 -> 0 bytes data/traybat-60.png | Bin 912 -> 0 bytes data/traybat-80-charging.png | Bin 1280 -> 0 bytes data/traybat-80.png | Bin 872 -> 0 bytes data/traybat-charged.png | Bin 1913 -> 0 bytes data/trayfreq.conf | 41 ----------------------------------------- data/trayfreq.desktop | 7 ------- defaults.c | 6 +++++- defaults.h | 1 + tray.c | 5 ++--- trayfreq.c | 13 ++++++++++--- trayfreq_set.c | 2 +- 27 files changed, 45 insertions(+), 70 deletions(-) delete mode 100644 data/cpufreq-0.png delete mode 100644 data/cpufreq-100.png delete mode 100644 data/cpufreq-25.png delete mode 100644 data/cpufreq-50.png delete mode 100644 data/cpufreq-75.png delete mode 100644 data/traybat-0-charging.png delete mode 100644 data/traybat-0.png delete mode 100644 data/traybat-100-charging.png delete mode 100644 data/traybat-100.png delete mode 100644 data/traybat-20-charging.png delete mode 100644 data/traybat-20.png delete mode 100644 data/traybat-40-charging.png delete mode 100644 data/traybat-40.png delete mode 100644 data/traybat-60-charging.png delete mode 100644 data/traybat-60.png delete mode 100644 data/traybat-80-charging.png delete mode 100644 data/traybat-80.png delete mode 100644 data/traybat-charged.png delete mode 100644 data/trayfreq.conf delete mode 100644 data/trayfreq.desktop diff --git a/Makefile b/Makefile index f718739..379b9a5 100644 --- a/Makefile +++ b/Makefile @@ -4,9 +4,12 @@ MAKE = make CC = gcc PREFIX=/usr BINDIR=$(PREFIX)/bin +SHAREDIR=$(PREFIX)/share +LOCALEDIR=$(SHAREDIR)/locale/ + SUDO=/usr/bin/sudo TRAYFREQ_SET=$(BINDIR)/trayfreq-set -LOCALE_DIR=$(PREFIX)/share/locale/ +TRAYFREQ_CONF=/etc/trayfreq.conf ifdef DEBUG EXTRA_CFLAGS+=-DDEBUG @@ -16,7 +19,8 @@ EXTRA_CFLAGS+= -DPREFIX=\"$(PREFIX)\" \ -DBINDIR=\"$(BINDIR)\" \ -DSUDO=\"$(SUDO)\" \ -DTRAYFREQ_SET=\"$(TRAYFREQ_SET)\" \ - -DLOCALE_DIR=\"$(LOCALE_DIR)\" + -DLOCALEDIR=\"$(LOCALEDIR)\" \ + -DSHAREDIR=\"$(SHAREDIR)\" DEPS = bat_tray.h \ @@ -111,7 +115,6 @@ trayfreq-set: \ ######################################################################## - ######################################################################## # Make language file(s) lang: @@ -120,20 +123,26 @@ lang: ######################################################################## +# Prepare template config file +config: + sed -e 's:SHAREDIR:$(SHAREDIR):g' \ + -e 's:TRAYFREQ_CONF:$(TRAYFREQ_CONF):g' \ + trayfreq.conf.src > trayfreq.conf +######################################################################## + + +######################################################################## # Remove generated files clean: - rm -f trayfreq trayfreq-set *.o lang/*.mo + rm -f trayfreq trayfreq-set *.o lc/*.mo trayfreq.conf ######################################################################## ######################################################################## # Install entire suite install: - mkdir -p $(DESTDIR)/usr/share/trayfreq/ - #mkdir -p $(DESTDIR)/$(LOCALE_DIR)/fr/LC_MESSAGES/ - #mkdir -p $(DESTDIR)/etc/xdg/autostart/ + install -Dm 755 data/themes $(DESTDIR)/usr/share/trayfreq/ - cp data/*.png $(DESTDIR)/usr/share/trayfreq/ install -Dm 644 lc/fr.mo $(DESTDIR)$(LOCALE_DIR)/fr/LC_MESSAGES/trayfreq.mo install -Dm 644 data/trayfreq.conf $(DESTDIR)/etc/trayfreq.conf diff --git a/bat_tray.c b/bat_tray.c index 8d0109d..1aad51a 100644 --- a/bat_tray.c +++ b/bat_tray.c @@ -23,6 +23,7 @@ #include #include "debug.h" #include "common.h" +#include "defaults.h" static GtkStatusIcon* tray; @@ -34,8 +35,10 @@ char CHARGE_STATE_PATH[512]; /*********************************************************************** * Return the battery level percentage **********************************************************************/ -//#define get_bat_percent() get_int_value_from_file(CHARGE_VALUE_PATH); -int get_bat_percent(){return get_int_value_from_file(CHARGE_VALUE_PATH); } +int get_bat_percent() +{ + return get_int_value_from_file(CHARGE_VALUE_PATH); +} #define TOOLTIP_TEXT_SIZE 128 @@ -110,14 +113,14 @@ static gboolean update_icon(gpointer user_data) switch ( get_battery_state() ) { case STATE_DISCHARGING: - icon_file = g_strconcat("/usr/share/trayfreq/traybat-", adjusted_percent_string, ".png", NULL); + icon_file = g_strconcat(_DEFAULT_THEME, "/traybat-", adjusted_percent_string, ".png", NULL); break; case STATE_CHARGING: - icon_file = g_strconcat("/usr/share/trayfreq/traybat-", adjusted_percent_string, "-charging.png", NULL); + icon_file = g_strconcat(_DEFAULT_THEME, "/traybat-", adjusted_percent_string, "-charging.png", NULL); break; default: - icon_file = g_strconcat("/usr/share/trayfreq/traybat-charged.png", NULL); + icon_file = g_strconcat(_DEFAULT_THEME, "/traybat-charged.png", NULL); break; } @@ -140,7 +143,7 @@ void bat_tray_init() debug("Spawning new status icon\n"); tray = gtk_status_icon_new(); - gchar* icon_file = g_strconcat("/usr/share/trayfreq/traybat-charged.png", NULL); + gchar* icon_file = g_strconcat(_DEFAULT_THEME, "/traybat-charged.png", NULL); gtk_status_icon_set_from_file(tray, icon_file); gtk_status_icon_set_has_tooltip (tray, TRUE); g_signal_connect(G_OBJECT(tray), "query-tooltip", GTK_SIGNAL_FUNC(update_tooltip), NULL); diff --git a/data/cpufreq-0.png b/data/cpufreq-0.png deleted file mode 100644 index 9a1b3b4..0000000 Binary files a/data/cpufreq-0.png and /dev/null differ diff --git a/data/cpufreq-100.png b/data/cpufreq-100.png deleted file mode 100644 index 6b63453..0000000 Binary files a/data/cpufreq-100.png and /dev/null differ diff --git a/data/cpufreq-25.png b/data/cpufreq-25.png deleted file mode 100644 index ae2acf6..0000000 Binary files a/data/cpufreq-25.png and /dev/null differ diff --git a/data/cpufreq-50.png b/data/cpufreq-50.png deleted file mode 100644 index 03ab5e3..0000000 Binary files a/data/cpufreq-50.png and /dev/null differ diff --git a/data/cpufreq-75.png b/data/cpufreq-75.png deleted file mode 100644 index 49e9342..0000000 Binary files a/data/cpufreq-75.png and /dev/null differ diff --git a/data/traybat-0-charging.png b/data/traybat-0-charging.png deleted file mode 100644 index 9255e66..0000000 Binary files a/data/traybat-0-charging.png and /dev/null differ diff --git a/data/traybat-0.png b/data/traybat-0.png deleted file mode 100644 index 2554a6a..0000000 Binary files a/data/traybat-0.png and /dev/null differ diff --git a/data/traybat-100-charging.png b/data/traybat-100-charging.png deleted file mode 100644 index bae3a43..0000000 Binary files a/data/traybat-100-charging.png and /dev/null differ diff --git a/data/traybat-100.png b/data/traybat-100.png deleted file mode 100644 index fe4ba7f..0000000 Binary files a/data/traybat-100.png and /dev/null differ diff --git a/data/traybat-20-charging.png b/data/traybat-20-charging.png deleted file mode 100644 index aabd778..0000000 Binary files a/data/traybat-20-charging.png and /dev/null differ diff --git a/data/traybat-20.png b/data/traybat-20.png deleted file mode 100644 index 83e7065..0000000 Binary files a/data/traybat-20.png and /dev/null differ diff --git a/data/traybat-40-charging.png b/data/traybat-40-charging.png deleted file mode 100644 index c016a28..0000000 Binary files a/data/traybat-40-charging.png and /dev/null differ diff --git a/data/traybat-40.png b/data/traybat-40.png deleted file mode 100644 index 3245106..0000000 Binary files a/data/traybat-40.png and /dev/null differ diff --git a/data/traybat-60-charging.png b/data/traybat-60-charging.png deleted file mode 100644 index 1667458..0000000 Binary files a/data/traybat-60-charging.png and /dev/null differ diff --git a/data/traybat-60.png b/data/traybat-60.png deleted file mode 100644 index aa25803..0000000 Binary files a/data/traybat-60.png and /dev/null differ diff --git a/data/traybat-80-charging.png b/data/traybat-80-charging.png deleted file mode 100644 index b9c6991..0000000 Binary files a/data/traybat-80-charging.png and /dev/null differ diff --git a/data/traybat-80.png b/data/traybat-80.png deleted file mode 100644 index e649be0..0000000 Binary files a/data/traybat-80.png and /dev/null differ diff --git a/data/traybat-charged.png b/data/traybat-charged.png deleted file mode 100644 index 1e61940..0000000 Binary files a/data/traybat-charged.png and /dev/null differ diff --git a/data/trayfreq.conf b/data/trayfreq.conf deleted file mode 100644 index ad6abcf..0000000 --- a/data/trayfreq.conf +++ /dev/null @@ -1,41 +0,0 @@ -# Begin /usr/share/trayfreq/trayfreq.conf -# -# Sample config file for trayfreq-archlinux -# - -[battery] -## Uncomment to hide battery icon -- useful for desktop PCs -## Set to anything (or leave unset/commented out) to show battery icon -# show=0 - -## Name of the governor to use for all cores when on battery power -## Get a space-separated list of available governors from -## /sys/devices/system/cpu/cpu{{CORE_NUMBER}}/cpufreq/scaling_available_governors -# governor=powersave - -[ac] -## Governor to use for all core while on AC power -## Often set to a performance or non-power-saving governor -# governor=ondemand - -[governor] -## Governor to set all cores to when trayfreq starts -# default=ondemand - - -[frequency] -## The frequency to set the CPU to when trayfreq starts -## Get a space-separated list of available frequencies from -## /sys/devices/system/cpu/cpu{{CORE_NUMBER}}/cpufreq/scaling_available_frequencies -# default=800000 - - -[extra] -## Uncomment to make trayfreq run trayfreq-set through sudo. -## Useful if your WM doesn't run trayfreq as root, but you'll have to give the user -## trayfreq is run as passwordless sudo access to `trayfreq-set` -# sudo=1 - - -# -# End /usr/share/trayfreq/trayfreq.conf diff --git a/data/trayfreq.desktop b/data/trayfreq.desktop deleted file mode 100644 index 0905549..0000000 --- a/data/trayfreq.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Version=1.0 -Encoding=UTF-8 -Name=trayfreq -GenericName=trayfreq -Exec=/usr/bin/trayfreq -Type=Application diff --git a/defaults.c b/defaults.c index 926e1fd..79a9566 100644 --- a/defaults.c +++ b/defaults.c @@ -18,6 +18,8 @@ #include "defaults.h" +#include + char* _DEFAULT_GOV; char* _DEFAULT_FREQ; char* _DEFAULT_PROG; @@ -25,6 +27,7 @@ char* _DEFAULT_BAT_GOV; char* _DEFAULT_AC_GOV; bool _DEFAULT_SHOW_BATTERY = TRUE; bool _DEFAULT_USE_SUDO = FALSE; +char _DEFAULT_THEME[2048]; // to do : make dynamic with malloc void defaults_init() { @@ -34,5 +37,6 @@ void defaults_init() _DEFAULT_BAT_GOV = NULL; _DEFAULT_AC_GOV = NULL; _DEFAULT_SHOW_BATTERY = TRUE; - _DEFAULT_USE_SUDO = FALSE; + _DEFAULT_USE_SUDO = FALSE; + sprintf (_DEFAULT_THEME, SHAREDIR"/trayfreq/themes/default"); } diff --git a/defaults.h b/defaults.h index ed6fabd..dbd8822 100644 --- a/defaults.h +++ b/defaults.h @@ -29,6 +29,7 @@ char* _DEFAULT_BAT_GOV; char* _DEFAULT_AC_GOV; bool _DEFAULT_SHOW_BATTERY; bool _DEFAULT_USE_SUDO; +char _DEFAULT_THEME[2048]; void defaults_init(); diff --git a/tray.c b/tray.c index aa96fda..3143464 100644 --- a/tray.c +++ b/tray.c @@ -18,7 +18,6 @@ #include "tray.h" -//#include "widget_manager.h" #include "getfreq.h" #include "getcore.h" #include "getgov.h" @@ -262,7 +261,7 @@ void tray_init() { tray_set_defaults(); tray = gtk_status_icon_new(); - char* icon_file = g_strconcat("/usr/share/trayfreq/cpufreq-0.png", NULL); + char* icon_file = g_strconcat(_DEFAULT_THEME, "/cpufreq-0.png", NULL); debug("Setting icon to '%s'\n",icon_file); gtk_status_icon_set_from_file(tray, icon_file); @@ -313,7 +312,7 @@ void tray_update_icon_percent() char adjusted_percent_string[] = {'\0', '\0', '\0', '\0'}; sprintf(adjusted_percent_string, "%i", adjusted_percent); - char* file = g_strconcat("/usr/share/trayfreq/cpufreq-", adjusted_percent_string, ".png", NULL); + char* file = g_strconcat(_DEFAULT_THEME, "/cpufreq-", adjusted_percent_string, ".png", NULL); debug("Setting tray icon to '%s'\n",file); gtk_status_icon_set_from_file(tray, file); diff --git a/trayfreq.c b/trayfreq.c index 282ccd5..3e63cd5 100644 --- a/trayfreq.c +++ b/trayfreq.c @@ -33,11 +33,12 @@ #include #include #include +#include int main(int argc, char** argv) { setlocale(LC_ALL, ""); - bindtextdomain("trayfreq",LOCALE_DIR); + bindtextdomain("trayfreq",LOCALEDIR); textdomain("trayfreq"); debug("Set gettext up\n"); @@ -130,9 +131,15 @@ void config_init() if (temp) { _DEFAULT_USE_SUDO = ( temp[0] == '1' ); - debug("woo\n"); } - + + temp = config_get_key(&config, "extra", "theme"); + if (temp && strlen(temp) < sizeof(_DEFAULT_THEME) ) + { + sprintf(_DEFAULT_THEME, "%s", temp); + } + + debug("Using theme %s\n",_DEFAULT_THEME); debug("%s sudo\n",_DEFAULT_USE_SUDO? "Using" : "Not using"); diff --git a/trayfreq_set.c b/trayfreq_set.c index 2b8f1d2..7a48af5 100644 --- a/trayfreq_set.c +++ b/trayfreq_set.c @@ -111,7 +111,7 @@ void get_argument_summary(int argc, char **argv, argument_summary *argsum) int main(int argc, char *argv[]) { setlocale(LC_ALL,""); - bindtextdomain("trayfreq",LOCALE_DIR); + bindtextdomain("trayfreq",LOCALEDIR); textdomain("trayfreq"); debug("Set gettext up\n"); -- cgit v1.1