├── .gitignore ├── AUTHORS ├── CONTRIBUTING.md ├── COPYING ├── Changelog.md ├── Makefile.am ├── README.md ├── autogen.sh ├── awn ├── Makefile.am ├── awn-applet-multiload-ng.schema-ini ├── configure.m4 ├── multiload-ng-awn.desktop.in.in └── plugin.c ├── common ├── Makefile.am ├── about-data.h ├── autoscaler.c ├── autoscaler.h ├── binary-data.h ├── colors-compat.c ├── colors.c ├── colors.h ├── filter.c ├── filter.h ├── graph-bat.c ├── graph-cpu.c ├── graph-data.h ├── graph-disk.c ├── graph-load.c ├── graph-mem.c ├── graph-net.c ├── graph-parm.c ├── graph-swap.c ├── graph-temp.c ├── gtk-compat.c ├── gtk-compat.h ├── info-file.c ├── info-file.h ├── load-graph.c ├── load-graph.h ├── multiload-config.c ├── multiload-config.h ├── multiload.c ├── multiload.h ├── preferences.c ├── preferences.h ├── ps-settings-impl-gkeyfile.inc ├── ps-settings-impl-gsettings.inc ├── ui.c ├── ui.h ├── util.c └── util.h ├── configure.ac ├── data ├── Makefile.am ├── color-scheme-arc.xpm ├── color-scheme-colored-glass.xpm ├── color-scheme-default.xpm ├── color-scheme-dragon-ball-z.xpm ├── color-scheme-earth.xpm ├── color-scheme-fruity.xpm ├── color-scheme-jupiter.xpm ├── color-scheme-linux-mint.xpm ├── color-scheme-mars.xpm ├── color-scheme-moon.xpm ├── color-scheme-neptune.xpm ├── color-scheme-numix-dark.xpm ├── color-scheme-numix-light.xpm ├── color-scheme-simpsons.xpm ├── color-scheme-solarized-dark.xpm ├── color-scheme-solarized-light.xpm ├── color-scheme-super-mario-bros.xpm ├── color-scheme-tango.xpm ├── color-scheme-ubuntu-ambiance.xpm ├── color-scheme-ubuntu-radiance.xpm ├── color-scheme-uranus.xpm ├── color-scheme-venus.xpm ├── color-scheme-windows-metro.xpm ├── configure.m4 ├── generate-about-data.sh.in ├── generate-binary-data.sh ├── generate-color-scheme-icons.sh ├── preferences_gtk2.ui └── preferences_gtk3.ui ├── extras ├── README.md ├── checkinstall │ └── makefile ├── pacman │ └── generate-pkgbuild-files.sh └── portage │ └── x11-plugins │ └── multiload-ng │ ├── metadata.xml │ ├── multiload-ng-1.3.0.ebuild │ ├── multiload-ng-1.3.1.ebuild │ ├── multiload-ng-1.4.0.ebuild │ ├── multiload-ng-1.4.1.ebuild │ ├── multiload-ng-1.4.2.ebuild │ ├── multiload-ng-1.5.0.ebuild │ ├── multiload-ng-1.5.1.ebuild │ ├── multiload-ng-1.5.2.ebuild │ └── multiload-ng-9999.ebuild ├── indicator ├── Makefile.am ├── configure.m4 ├── multiload-ng-indicator.desktop.in.in └── plugin.c ├── lxpanel ├── Makefile.am ├── configure.m4 ├── plugin-old.c └── plugin.c ├── mate ├── Makefile.am ├── configure.m4 ├── org.mate.multiload-ng.Applet.mate-panel-applet.in.in.in ├── org.mate.panel.applet.MultiloadNgFactory.service.in ├── org.mate.panel.applet.multiload-ng.gschema.xml.in.in └── plugin.c ├── po ├── Makefile.am ├── POTFILES.in ├── POTFILES.skip ├── de.po ├── es.po ├── fr.po ├── it.po ├── lt.po ├── ru.po └── zh_CN.po ├── standalone ├── Makefile.am ├── configure.m4 ├── multiload-ng-standalone.desktop.in.in └── plugin.c ├── systray ├── Makefile.am ├── configure.m4 ├── multiload-ng-systray.desktop.in.in └── plugin.c ├── version └── xfce4 ├── Makefile.am ├── configure.m4 ├── multiload-ng-xfce4.desktop.in.in └── plugin.c /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.gmo 3 | *.la 4 | *.lo 5 | *.o 6 | *.swp 7 | *.tar.* 8 | .deps 9 | .libs 10 | ChangeLog 11 | INSTALL 12 | Makefile 13 | Makefile.in 14 | Makefile.in.in 15 | aclocal.m4 16 | autom4te.cache 17 | configure 18 | config.* 19 | build-aux 20 | intltool* 21 | libtool 22 | gmon.out 23 | awn/*.desktop 24 | awn/*.desktop.in 25 | common/about-data.c 26 | common/binary-data.c 27 | common/color-scheme-icons.inc 28 | data/generate-about-data.sh 29 | extras/pacman/*.PKGBUILD 30 | indicator/multiload-ng-indicator 31 | indicator/*.desktop 32 | indicator/*.desktop.in 33 | mate/mate-multiload-ng-applet 34 | mate/org.mate.*.mate-panel-applet 35 | mate/org.mate.*.mate-panel-applet.in 36 | mate/org.mate.*.mate-panel-applet.in.in 37 | mate/org.mate.panel.applet.*.service 38 | mate/org.mate.panel.applet.*.gschema.valid 39 | mate/org.mate.panel.applet.*.gschema.xml 40 | mate/org.mate.panel.applet.*.gschema.xml.in 41 | standalone/multiload-ng 42 | standalone/*.desktop 43 | standalone/*.desktop.in 44 | systray/multiload-ng-systray 45 | systray/*.desktop 46 | systray/*.desktop.in 47 | xfce4/*.desktop 48 | xfce4/*.desktop.in 49 | po/.intltool-merge-cache 50 | po/POTFILES 51 | po/multiload-ng.pot 52 | po/LINGUAS 53 | po/template.po 54 | stamp-* 55 | *-stamp 56 | old 57 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Mario Cianciolo 2 | nandhp 3 | Martin Baulig 4 | Todd Kulesza 5 | Benoît Dejean 6 | Davyd Madeley 7 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | if HAVE_STANDALONE 2 | STANDALONE_DIRS = standalone 3 | endif 4 | if HAVE_AWN 5 | AWN_DIRS = awn 6 | endif 7 | if HAVE_APPINDICATOR 8 | APPINDICATOR_DIRS = indicator 9 | endif 10 | if HAVE_LXPANEL 11 | LXPANEL_DIRS = lxpanel 12 | endif 13 | if HAVE_SYSTRAY 14 | SYSTRAY_DIRS = systray 15 | endif 16 | if HAVE_MATE 17 | MATE_DIRS = mate 18 | endif 19 | if HAVE_XFCE4 20 | XFCE4_DIRS = xfce4 21 | endif 22 | 23 | 24 | SUBDIRS = \ 25 | common \ 26 | data \ 27 | $(STANDALONE_DIRS) \ 28 | $(AWN_DIRS) \ 29 | $(APPINDICATOR_DIRS) \ 30 | $(LXPANEL_DIRS) \ 31 | $(MATE_DIRS) \ 32 | $(SYSTRAY_DIRS) \ 33 | $(XFCE4_DIRS) \ 34 | po 35 | 36 | distclean-local: 37 | rm -rf *.cache *~ 38 | 39 | git-clean: 40 | git clean -f -X -d 41 | 42 | rpm: dist 43 | rpmbuild -ta $(PACKAGE)-$(VERSION).tar.gz 44 | @rm -f $(PACKAGE)-$(VERSION).tar.gz 45 | 46 | .PHONY: ChangeLog 47 | 48 | ChangeLog: Makefile 49 | (GIT_DIR=$(top_srcdir)/.git git log > .changelog.tmp \ 50 | && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) \ 51 | || (touch ChangeLog; echo 'Git directory not found: installing possibly empty changelog.' >&2) 52 | 53 | dist-hook: ChangeLog 54 | 55 | EXTRA_DIST = \ 56 | intltool-extract.in \ 57 | intltool-merge.in \ 58 | intltool-update.in \ 59 | AUTHORS COPYING ChangeLog README.md 60 | 61 | DISTCLEANFILES = \ 62 | intltool-extract \ 63 | intltool-merge \ 64 | intltool-update 65 | 66 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 67 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Doesn't work with intltoolize 4 | # autoreconf --force --install || exit 1 5 | 6 | set -x 7 | 8 | aclocal || exit 1 9 | autoheader --force || exit 1 10 | libtoolize --copy --automake --force || exit 1 11 | intltoolize --copy --automake --force || exit 1 12 | automake --add-missing --copy --include-deps || exit 1 13 | autoconf || exit 1 14 | autoheader || exit 1 15 | 16 | -------------------------------------------------------------------------------- /awn/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | plugin_LTLIBRARIES = \ 10 | multiload-ng.la 11 | 12 | plugindir = \ 13 | $(libdir)/awn/applets/multiload-ng 14 | 15 | multiload_ng_la_SOURCES = \ 16 | plugin.c 17 | 18 | multiload_ng_la_CFLAGS = \ 19 | $(GTK_CFLAGS) \ 20 | $(AWN_CFLAGS) \ 21 | -std=gnu90 22 | 23 | 24 | multiload_ng_la_LDFLAGS = \ 25 | -avoid-version \ 26 | -module \ 27 | -no-undefined \ 28 | $(PLATFORM_LDFLAGS) 29 | 30 | multiload_ng_la_LIBADD = \ 31 | ../common/multiload-ng-core.la \ 32 | $(GTK_LIBS) \ 33 | $(AWN_LIBS) 34 | 35 | 36 | 37 | # Schema 38 | schemadir = $(datadir)/avant-window-navigator/schemas 39 | schema_DATA = awn-applet-multiload-ng.schema-ini 40 | 41 | # Desktop file 42 | desktopdir = $(datadir)/avant-window-navigator/applets 43 | desktop_DATA = multiload-ng-awn.desktop 44 | 45 | @INTLTOOL_DESKTOP_RULE@ 46 | 47 | EXTRA_DIST = $(desktop_DATA).in.in 48 | CLEANFILES = $(desktop_DATA) 49 | DISTCLEANFILES = $(desktop_DATA).in 50 | 51 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 52 | -------------------------------------------------------------------------------- /awn/configure.m4: -------------------------------------------------------------------------------- 1 | AS_IF([test "x$enable_experimental" = "xyes"], [ 2 | 3 | AS_IF([test "x$GTK_API" = "x2"], [ 4 | 5 | AC_ARG_WITH([awn], AS_HELP_STRING([--with-awn], [Build plugin for Avant Window Navigator]), [], [with_awn="check"]) 6 | AS_IF([test "x$with_awn" != "xno"], [ 7 | PKG_CHECK_MODULES(AWN, [awn >= 0.3.9 glibmm-2.4 >= 2.16.0 gtkmm-2.4], [ 8 | AC_DEFINE([HAVE_AWN], [1], [Support for Avant Window Navigator]) 9 | with_awn="yes" 10 | ],[ 11 | if test "x$with_awn" != xcheck; then 12 | AC_MSG_FAILURE([--with-awn was given, but test failed]) 13 | fi 14 | with_awn="no" 15 | ]) 16 | ]) 17 | 18 | AC_SUBST(AWN_CFLAGS) 19 | AC_SUBST(AWN_LIBS) 20 | 21 | AC_CONFIG_FILES([ 22 | awn/Makefile 23 | awn/multiload-ng-awn.desktop.in 24 | ]) 25 | 26 | ], [ 27 | with_awn="disabled (AWN does not support GTK+3 plugins)" 28 | ]) 29 | 30 | ], [ 31 | with_awn="disabled (experimental)" 32 | ]) 33 | 34 | AM_CONDITIONAL(HAVE_AWN, test "x$with_awn" = "xyes") 35 | -------------------------------------------------------------------------------- /awn/multiload-ng-awn.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | X-AWN-Type=Applet 4 | X-AWN-AppletType=C 5 | Encoding=UTF-8 6 | Name=Multiload-ng 7 | _Comment=Modern graphical system monitor 8 | Exec=awn-applet -p %k 9 | X-AWN-AppletExec=@LIBDIR@/awn/applets/multiload-ng/multiload-ng.so 10 | X-AWN-AppletCategory=Utility 11 | Icon=@APPICON@ 12 | -------------------------------------------------------------------------------- /common/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | noinst_LTLIBRARIES = \ 10 | multiload-ng-core.la 11 | 12 | multiload_ng_core_la_SOURCES = \ 13 | about-data.c about-data.h \ 14 | autoscaler.c autoscaler.h \ 15 | binary-data.c binary-data.h \ 16 | colors.c colors.h \ 17 | colors-compat.c \ 18 | color-scheme-icons.inc \ 19 | filter.c filter.h \ 20 | gtk-compat.c gtk-compat.h \ 21 | graph-bat.c graph-cpu.c graph-mem.c graph-net.c graph-swap.c \ 22 | graph-load.c graph-disk.c graph-temp.c graph-parm.c \ 23 | graph-data.h \ 24 | info-file.c info-file.h \ 25 | load-graph.c load-graph.h \ 26 | multiload.c multiload.h \ 27 | multiload-config.c multiload-config.h \ 28 | preferences.c preferences.h \ 29 | ps-settings-impl-gkeyfile.inc \ 30 | util.c util.h \ 31 | ui.c ui.h 32 | 33 | multiload_ng_core_la_CFLAGS = \ 34 | $(GTK_CFLAGS) \ 35 | $(CAIRO_CFLAGS) 36 | 37 | 38 | multiload_ng_core_la_LDFLAGS = \ 39 | -avoid-version \ 40 | -module \ 41 | -no-undefined \ 42 | -lm \ 43 | $(PLATFORM_LDFLAGS) 44 | 45 | multiload_ng_core_la_LIBADD = \ 46 | $(GTK_LIBS) \ 47 | $(CAIRO_LIBS) 48 | 49 | 50 | COLOR_SCHEME_ICONS = \ 51 | $(top_srcdir)/data/color-scheme-default.xpm \ 52 | $(top_srcdir)/data/color-scheme-tango.xpm \ 53 | $(top_srcdir)/data/color-scheme-solarized-dark.xpm \ 54 | $(top_srcdir)/data/color-scheme-solarized-light.xpm \ 55 | $(top_srcdir)/data/color-scheme-fruity.xpm \ 56 | $(top_srcdir)/data/color-scheme-colored-glass.xpm \ 57 | $(top_srcdir)/data/color-scheme-ubuntu-ambiance.xpm \ 58 | $(top_srcdir)/data/color-scheme-ubuntu-radiance.xpm \ 59 | $(top_srcdir)/data/color-scheme-linux-mint.xpm \ 60 | $(top_srcdir)/data/color-scheme-windows-metro.xpm \ 61 | $(top_srcdir)/data/color-scheme-arc.xpm \ 62 | $(top_srcdir)/data/color-scheme-numix-dark.xpm \ 63 | $(top_srcdir)/data/color-scheme-numix-light.xpm \ 64 | $(top_srcdir)/data/color-scheme-super-mario-bros.xpm \ 65 | $(top_srcdir)/data/color-scheme-simpsons.xpm \ 66 | $(top_srcdir)/data/color-scheme-dragon-ball-z.xpm \ 67 | $(top_srcdir)/data/color-scheme-moon.xpm \ 68 | $(top_srcdir)/data/color-scheme-venus.xpm \ 69 | $(top_srcdir)/data/color-scheme-earth.xpm \ 70 | $(top_srcdir)/data/color-scheme-mars.xpm \ 71 | $(top_srcdir)/data/color-scheme-jupiter.xpm \ 72 | $(top_srcdir)/data/color-scheme-uranus.xpm \ 73 | $(top_srcdir)/data/color-scheme-neptune.xpm 74 | 75 | BUILT_SOURCES = \ 76 | about-data.c \ 77 | binary-data.c \ 78 | color-scheme-icons.inc 79 | 80 | about-data.c: $(top_srcdir)/AUTHORS $(top_srcdir)/data/generate-about-data.sh 81 | @chmod +x $(top_srcdir)/data/generate-about-data.sh 82 | ( cd $(top_srcdir)/data; ./generate-about-data.sh $(top_srcdir)/AUTHORS ) > about-data.c 83 | 84 | binary-data.c: $(top_srcdir)/data/preferences_gtk2.ui $(top_srcdir)/data/preferences_gtk3.ui $(top_srcdir)/data/generate-binary-data.sh 85 | @chmod +x $(top_srcdir)/data/generate-binary-data.sh 86 | ( cd $(top_srcdir)/data; ./generate-binary-data.sh ) > binary-data.c 87 | 88 | color-scheme-icons.inc: $(COLOR_SCHEME_ICONS) $(top_srcdir)/data/generate-color-scheme-icons.sh 89 | @chmod +x $(top_srcdir)/data/generate-color-scheme-icons.sh 90 | $(top_srcdir)/data/generate-color-scheme-icons.sh > color-scheme-icons.inc 91 | 92 | CLEANFILES = \ 93 | about-data.c \ 94 | binary-data.c \ 95 | color-scheme-icons.inc 96 | 97 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 98 | -------------------------------------------------------------------------------- /common/about-data.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #ifndef __ABOUT_DATA_H__ 23 | #define __ABOUT_DATA_H__ 24 | 25 | 26 | #define about_data_progname "Multiload-ng" 27 | 28 | #define about_data_description _("Modern graphical system monitor") 29 | #define about_data_description_N N_("Modern graphical system monitor") 30 | 31 | #define about_data_website "https://udda.github.io/multiload-ng" 32 | 33 | #define about_data_copyright \ 34 | _("Copyright \xC2\xA9 2016 Mario Cianciolo, " \ 35 | "1999-2012 nandhp, FSF, and others") 36 | 37 | #define about_data_license \ 38 | "This program is free software; you can redistribute it and/or modify\n" \ 39 | "it under the terms of the GNU General Public License as published by\n" \ 40 | "the Free Software Foundation; either version 2 of the License, or\n" \ 41 | "(at your option) any later version.\n" \ 42 | "\n" \ 43 | "This program is distributed in the hope that it will be useful,\n" \ 44 | "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" \ 45 | "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" \ 46 | "GNU General Public License for more details.\n" \ 47 | "\n" \ 48 | "You should have received a copy of the GNU General Public License along\n" \ 49 | "with this program; if not, write to the Free Software Foundation, Inc.,\n" \ 50 | "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" 51 | 52 | extern const char * const about_data_authors[]; 53 | extern const char * about_data_icon; 54 | 55 | #endif /* __ABOUT_DATA_H__ */ 56 | -------------------------------------------------------------------------------- /common/autoscaler.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 2002 The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | #include "autoscaler.h" 28 | #include "graph-data.h" 29 | #include "multiload-config.h" 30 | 31 | 32 | int 33 | autoscaler_get_max(AutoScaler *s, LoadGraph *g, int current) 34 | { 35 | time_t now; 36 | if (current < 0) 37 | current = 0; 38 | 39 | if (s->min < 0) 40 | s->min = AUTOSCALER_MIN_DEFAULT; 41 | 42 | if (s->enable) { 43 | s->sum += current; 44 | s->count++; 45 | time(&now); 46 | if ((gdouble)difftime(now, s->last_update) > (g->draw_width * g->config->interval / 1000)) { 47 | gdouble new_average = s->sum / s->count; 48 | gdouble average; 49 | 50 | if (new_average < s->last_average) 51 | average = ((s->last_average * 0.5f) + new_average) / 1.5f; 52 | else 53 | average = new_average; 54 | 55 | s->max = average * 1.2f; 56 | 57 | s->sum = 0.0f; 58 | s->count = 0; 59 | s->last_update = now; 60 | s->last_average = average; 61 | g_debug("[autoscaler] Recalculated max for graph '%s': %d", graph_types[g->id].name, s->max); 62 | } 63 | 64 | s->max = MAX(s->max, current); 65 | s->max = MAX(s->max, s->min); 66 | } 67 | 68 | return s->max; 69 | } 70 | 71 | void 72 | autoscaler_set_max(AutoScaler *s, int max) 73 | { 74 | if (s->enable == FALSE) 75 | s->max = max; 76 | } 77 | 78 | void 79 | autoscaler_set_min(AutoScaler *s, int min) 80 | { 81 | s->min = min; 82 | } 83 | 84 | void 85 | autoscaler_set_enabled(AutoScaler *s, gboolean enable) 86 | { 87 | s->enable = enable; 88 | } 89 | 90 | gboolean 91 | autoscaler_get_enabled(AutoScaler *s) 92 | { 93 | return s->enable; 94 | } 95 | 96 | 97 | AutoScaler* 98 | multiload_get_scaler (MultiloadPlugin *ma, guint graph_id) 99 | { 100 | gpointer xd = ma->extra_data[graph_id]; 101 | 102 | switch(graph_id) { 103 | case GRAPH_CPULOAD: 104 | case GRAPH_MEMLOAD: 105 | case GRAPH_SWAPLOAD: 106 | case GRAPH_BATTERY: 107 | // no autoscaler 108 | return NULL; 109 | case GRAPH_NETLOAD: 110 | return &((NetData*)xd)->scaler; 111 | case GRAPH_LOADAVG: 112 | return &((LoadData*)xd)->scaler; 113 | case GRAPH_DISKLOAD: 114 | return &((DiskData*)xd)->scaler; 115 | case GRAPH_TEMPERATURE: 116 | return &((TemperatureData*)xd)->scaler; 117 | case GRAPH_PARAMETRIC: 118 | return &((ParametricData*)xd)->scaler; 119 | default: 120 | g_assert_not_reached(); 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /common/autoscaler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 2002 The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __AUTOSCALER_H__ 24 | #define __AUTOSCALER_H__ 25 | 26 | #include 27 | #include 28 | 29 | #include "multiload.h" 30 | 31 | G_BEGIN_DECLS 32 | 33 | #define AUTOSCALER_MIN_DEFAULT 20 34 | 35 | typedef struct { 36 | gboolean enable; 37 | int max; 38 | int min; 39 | guint count; 40 | time_t last_update; 41 | gdouble sum; 42 | gdouble last_average; 43 | } AutoScaler; 44 | 45 | 46 | G_GNUC_INTERNAL int 47 | autoscaler_get_max(AutoScaler *s, LoadGraph *g, int current); 48 | G_GNUC_INTERNAL void 49 | autoscaler_set_max(AutoScaler *s, int max); 50 | 51 | G_GNUC_INTERNAL void 52 | autoscaler_set_min(AutoScaler *s, int min); 53 | 54 | G_GNUC_INTERNAL void 55 | autoscaler_set_enabled(AutoScaler *s, gboolean enable); 56 | G_GNUC_INTERNAL gboolean 57 | autoscaler_get_enabled(AutoScaler *s); 58 | 59 | G_GNUC_INTERNAL AutoScaler* 60 | multiload_get_scaler (MultiloadPlugin *ma, guint graph_id); 61 | 62 | G_END_DECLS 63 | 64 | #endif /* __AUTOSCALER_H__ */ 65 | -------------------------------------------------------------------------------- /common/binary-data.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #ifndef __BINARY_DATA_H__ 23 | #define __BINARY_DATA_H__ 24 | 25 | extern const gchar * binary_data_preferences_ui; 26 | 27 | #endif /* __BINARY_DATA_H__ */ 28 | -------------------------------------------------------------------------------- /common/colors-compat.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 1997 The Free Software Foundation 4 | * (Authors: Tim P. Gerla, Martin Baulig, Todd Kulesza) 5 | * 6 | * This file is part of multiload-ng. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License along 19 | * with this program; if not, write to the Free Software Foundation, Inc., 20 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | */ 22 | 23 | 24 | #include "colors.h" 25 | 26 | typedef struct { // first revision 27 | char name[24]; 28 | GdkRGBA colors[7][7]; 29 | } s_v1; 30 | 31 | typedef struct { // added parm, 1 color 32 | char name[24]; 33 | GdkRGBA colors[8][7]; 34 | } s_v2; 35 | 36 | typedef struct { // parm 1 color -> 4 colors 37 | char name[24]; 38 | GdkRGBA colors[8][7]; 39 | } s_v3; 40 | 41 | typedef struct { // added xpm_data 42 | char name[24]; 43 | char **xpm_data; 44 | GdkRGBA colors[8][7]; 45 | } s_v4; 46 | 47 | typedef struct { // removed 'shared' from memory graph 48 | char name[24]; 49 | char **xpm_data; 50 | GdkRGBA colors[8][7]; 51 | } s_v5; 52 | 53 | typedef MultiloadColorScheme s_v6; //added battery, 2 colors 54 | 55 | 56 | MultiloadColorSchemeStatus 57 | multiload_color_scheme_parse (gpointer data, size_t length, guint32 version, MultiloadColorScheme *scheme) 58 | { 59 | // Remember to avoid constants in this function as they might have changed. Type numbers directly. 60 | 61 | if (version == MULTILOAD_COLOR_SCHEME_VERSION) { // last version 62 | if (length != sizeof(MultiloadColorScheme)) 63 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT; 64 | memcpy(scheme, data, length); 65 | } 66 | 67 | else if (version == 5) { 68 | if (length != sizeof(s_v5)) 69 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT; 70 | /* CONVERT V4 TO V5 71 | * Changes: added Battery graph 72 | */ 73 | 74 | // shift Parametric graph colors to the right 75 | guchar *buf = g_malloc(sizeof(s_v6)); 76 | memcpy(buf, data, sizeof(s_v5)); 77 | memmove(&((s_v5*)buf)->colors[8], &((s_v5*)buf)->colors[7], 7*sizeof(GdkRGBA)); 78 | 79 | MultiloadColorSchemeStatus ret = multiload_color_scheme_parse(buf, sizeof(s_v6), version+1, scheme); 80 | 81 | g_free(buf); 82 | return ret; 83 | } 84 | 85 | else if (version == 4) { 86 | if (length != sizeof(s_v4)) 87 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT; 88 | /* CONVERT V4 TO V5 89 | * Changes: removed Shared color from Memory graph 90 | */ 91 | 92 | GdkRGBA *mem_colors = ((s_v4*)data)->colors[1]; 93 | 94 | // shift Memory graph colors 1 position left, starting from the second 95 | memmove(&mem_colors[1], &mem_colors[2], 5*sizeof(GdkRGBA)); 96 | 97 | return multiload_color_scheme_parse(data, sizeof(s_v5), version+1, scheme); 98 | } 99 | 100 | else if (version == 3) { 101 | if (length != sizeof(s_v3)) 102 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT; 103 | /* CONVERT V3 TO V4 104 | * Changes: added field xpm_data 105 | */ 106 | 107 | s_v3 *old = (s_v3*)data; 108 | s_v4 *new = g_malloc0(sizeof(s_v4)); 109 | 110 | memcpy(new->name, old->name, 24); 111 | memcpy(new->colors, old->colors, sizeof(new->colors)); 112 | 113 | MultiloadColorSchemeStatus ret = multiload_color_scheme_parse(new, sizeof(s_v4), version+1, scheme); 114 | 115 | g_free(new); 116 | return ret; 117 | } 118 | 119 | else if (version == 2) { 120 | if (length != sizeof(s_v2)) 121 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT; 122 | /* CONVERT V2 TO V3 123 | * Changes: Parametric graph from 1 to 4 colors 124 | */ 125 | 126 | GdkRGBA *parm_colors = ((s_v2*)data)->colors[7]; 127 | 128 | // shift border and BG color 3 positions right 129 | memmove(&parm_colors[4], &parm_colors[1], 3*sizeof(GdkRGBA)); 130 | // zero-set new colors 131 | memset(&parm_colors[1], 0, 3*sizeof(GdkRGBA)); 132 | 133 | return multiload_color_scheme_parse(data, sizeof(s_v3), version+1, scheme); 134 | } 135 | 136 | else if (version == 1) { 137 | if (length != sizeof(s_v1)) 138 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT; 139 | /* CONVERT V1 TO V2 140 | * Changes: Added Parametric graph, only one color 141 | */ 142 | 143 | // no action required: new data is at the end of the buffer. Just return a new buffer of proper size 144 | guchar *buf = g_malloc(sizeof(s_v2)); 145 | memcpy(buf, data, sizeof(s_v2)); 146 | 147 | MultiloadColorSchemeStatus ret = multiload_color_scheme_parse(buf, sizeof(s_v2), version+1, scheme); 148 | 149 | g_free(buf); 150 | return ret; 151 | } 152 | 153 | else { 154 | return MULTILOAD_COLOR_SCHEME_STATUS_WRONG_VERSION; 155 | } 156 | 157 | return MULTILOAD_COLOR_SCHEME_STATUS_VALID; 158 | } 159 | -------------------------------------------------------------------------------- /common/colors.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __COLORS_H__ 24 | #define __COLORS_H__ 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "gtk-compat.h" 31 | #include "multiload.h" 32 | 33 | 34 | G_BEGIN_DECLS 35 | 36 | #define HEX_TO_RGBA(rgb, a) {(gdouble)((0x##rgb >> 16) & 0xFF)/255.0, (gdouble)((0x##rgb >> 8) & 0xFF)/255.0, (gdouble)(0x##rgb & 0xFF)/255.0, (gdouble)(0x##a)/255.0} 37 | #define HEX_TO_RGBA_SPLIT(r, g, b, a) {(gdouble)(0x##r)/255.0, (gdouble)(0x##g)/255.0, (gdouble)(0x##b)/255.0, (gdouble)(0x##a)/255.0} 38 | 39 | // Format version. Increment this every time color scheme format changes. 40 | #define MULTILOAD_COLOR_SCHEME_VERSION 6 41 | 42 | // Header of the color scheme file. This must never change. 43 | #define MULTILOAD_COLOR_SCHEME_HEADER_SIZE 12 44 | typedef struct { 45 | char magic[MULTILOAD_COLOR_SCHEME_HEADER_SIZE]; 46 | guint32 version; 47 | guint8 reserved[16]; 48 | } MultiloadColorSchemeFileHeader; 49 | 50 | // Color scheme contents 51 | typedef struct { 52 | char name[24]; 53 | char **xpm_data; 54 | GdkRGBA colors[GRAPH_MAX][MAX_COLORS]; 55 | } MultiloadColorScheme; 56 | 57 | typedef enum { 58 | MULTILOAD_COLOR_SCHEME_STATUS_VALID, 59 | MULTILOAD_COLOR_SCHEME_STATUS_WRONG_FORMAT, 60 | MULTILOAD_COLOR_SCHEME_STATUS_WRONG_VERSION 61 | } MultiloadColorSchemeStatus; 62 | 63 | extern const MultiloadColorScheme multiload_builtin_color_schemes[]; 64 | 65 | typedef enum { 66 | EXTRA_COLOR_BORDER = 0, 67 | EXTRA_COLOR_BACKGROUND_TOP, 68 | EXTRA_COLOR_BACKGROUND_BOTTOM, 69 | 70 | EXTRA_COLORS 71 | } MultiloadExtraColor; 72 | 73 | G_GNUC_INTERNAL guint 74 | multiload_colors_get_extra_index(guint i, MultiloadExtraColor col); 75 | 76 | 77 | G_GNUC_INTERNAL void 78 | multiload_color_scheme_fill (MultiloadColorScheme *scheme, MultiloadPlugin *ma); 79 | 80 | G_GNUC_INTERNAL void 81 | multiload_color_scheme_apply (const MultiloadColorScheme *scheme, MultiloadPlugin *ma); 82 | G_GNUC_INTERNAL void 83 | multiload_color_scheme_apply_single (const MultiloadColorScheme *scheme, MultiloadPlugin *ma, guint i); 84 | 85 | G_GNUC_INTERNAL gboolean 86 | multiload_color_scheme_to_file(const gchar *filename, MultiloadPlugin *ma); 87 | G_GNUC_INTERNAL MultiloadColorSchemeStatus 88 | multiload_color_scheme_from_file(const gchar *filename, MultiloadPlugin *ma); 89 | 90 | G_GNUC_INTERNAL MultiloadColorSchemeStatus 91 | multiload_color_scheme_parse (gpointer data, size_t length, guint32 version, MultiloadColorScheme *scheme); 92 | 93 | G_GNUC_INTERNAL const MultiloadColorScheme* 94 | multiload_color_scheme_find_by_name (const gchar *name); 95 | 96 | G_GNUC_INTERNAL gchar * 97 | multiload_colors_to_string(MultiloadPlugin *ma, guint graph_index); 98 | G_GNUC_INTERNAL gboolean 99 | multiload_colors_from_string(MultiloadPlugin *ma, guint graph_index, const char *list); 100 | 101 | G_GNUC_INTERNAL void 102 | multiload_colors_default(MultiloadPlugin *ma, guint graph_index); 103 | 104 | G_END_DECLS 105 | 106 | #endif /* __COLORS_H__ */ 107 | -------------------------------------------------------------------------------- /common/filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __MULTILOAD_FILTER_H__ 24 | #define __MULTILOAD_FILTER_H__ 25 | 26 | #include 27 | 28 | 29 | G_BEGIN_DECLS 30 | 31 | typedef enum { 32 | MULTILOAD_FILTER_STATE_UNSELECTED, 33 | MULTILOAD_FILTER_STATE_SELECTED, 34 | MULTILOAD_FILTER_STATE_ABSENT 35 | } MultiloadFilterElementState; 36 | 37 | typedef struct { 38 | char data[512]; 39 | char label[30]; 40 | MultiloadFilterElementState state; 41 | } MultiloadFilterElement; 42 | 43 | typedef struct { 44 | GArray *array; 45 | guint length; 46 | } MultiloadFilter; 47 | 48 | 49 | G_GNUC_INTERNAL MultiloadFilter* 50 | multiload_filter_new(); 51 | 52 | G_GNUC_INTERNAL MultiloadFilter* 53 | multiload_filter_new_from_existing(gchar *existing); 54 | 55 | G_GNUC_INTERNAL guint 56 | multiload_filter_get_length(MultiloadFilter *filter); 57 | 58 | G_GNUC_INTERNAL guint 59 | multiload_filter_append(MultiloadFilter *filter, char *data); 60 | 61 | G_GNUC_INTERNAL guint 62 | multiload_filter_append_with_label(MultiloadFilter *filter, char *data, char *label); 63 | 64 | G_GNUC_INTERNAL guint 65 | multiload_filter_append_with_state(MultiloadFilter *filter, char *data, MultiloadFilterElementState state); 66 | 67 | G_GNUC_INTERNAL void 68 | multiload_filter_import_existing(MultiloadFilter *filter, char *existing); 69 | 70 | void 71 | multiload_filter_export(MultiloadFilter *filter, char *buf, size_t len); 72 | 73 | G_GNUC_INTERNAL MultiloadFilterElement* 74 | multiload_filter_get_element(MultiloadFilter *filter, guint index); 75 | 76 | G_GNUC_INTERNAL gchar* 77 | multiload_filter_get_element_data(MultiloadFilter *filter, guint index); 78 | G_GNUC_INTERNAL gchar* 79 | multiload_filter_get_element_label(MultiloadFilter *filter, guint index); 80 | G_GNUC_INTERNAL gboolean 81 | multiload_filter_get_element_selected(MultiloadFilter *filter, guint index); 82 | G_GNUC_INTERNAL gboolean 83 | multiload_filter_get_element_absent(MultiloadFilter *filter, guint index); 84 | 85 | G_GNUC_INTERNAL void 86 | multiload_filter_free(MultiloadFilter* filter); 87 | 88 | G_END_DECLS 89 | 90 | #endif /* __MULTILOAD_FILTER_H__ */ 91 | -------------------------------------------------------------------------------- /common/graph-cpu.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #include 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #include "graph-data.h" 29 | #include "info-file.h" 30 | #include "preferences.h" 31 | #include "util.h" 32 | 33 | 34 | enum { 35 | CPU_USER = 0, 36 | CPU_NICE = 1, 37 | CPU_SYS = 2, 38 | CPU_IOWAIT = 3, 39 | CPU_IDLE = 4, 40 | 41 | CPU_MAX = 5 42 | }; 43 | 44 | #define PATH_CPUFREQ "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor" 45 | #define PATH_UPTIME "/proc/uptime" 46 | #define PATH_CPUINFO "/proc/cpuinfo" 47 | #define PATH_STAT "/proc/stat" 48 | 49 | 50 | static gboolean have_cpufreq; 51 | 52 | 53 | void 54 | multiload_graph_cpu_init (LoadGraph *g, CpuData *xd) 55 | { 56 | info_file_read_key_string_s (PATH_CPUINFO, "model name", xd->cpu0_name, sizeof(xd->cpu0_name), NULL); 57 | 58 | xd->num_cpu = info_file_count_key_values (PATH_CPUINFO, "processor"); 59 | 60 | have_cpufreq = info_file_exists(PATH_CPUFREQ); 61 | if (!have_cpufreq) { 62 | //xgettext: Not Available 63 | strcpy(xd->cpu0_governor, _("N/A")); 64 | g_debug("[graph-cpu] cpufreq scaling support not found"); 65 | } 66 | } 67 | 68 | void 69 | multiload_graph_cpu_get_data (int Maximum, int data [4], LoadGraph *g, CpuData *xd, gboolean first_call) 70 | { 71 | guint64 irq, softirq, total; 72 | guint i; 73 | 74 | guint64 time[CPU_MAX]; 75 | guint64 diff[CPU_MAX]; 76 | 77 | size_t n; 78 | 79 | info_file_read_key_double (PATH_CPUINFO, "cpu MHz", &xd->cpu0_mhz, 1); 80 | info_file_read_double (PATH_UPTIME, &xd->uptime, 1); 81 | 82 | if (have_cpufreq && !info_file_read_string_s (PATH_CPUFREQ, xd->cpu0_governor, sizeof(xd->cpu0_governor), NULL)) { 83 | g_warning("[graph-cpu] Could not retrieve CPU0 governor"); 84 | have_cpufreq = FALSE; 85 | } 86 | 87 | // CPU stats 88 | FILE *f = info_file_required_fopen(PATH_STAT, "r"); 89 | n = fscanf(f, "cpu %"G_GUINT64_FORMAT" %"G_GUINT64_FORMAT" %"G_GUINT64_FORMAT" %"G_GUINT64_FORMAT" %"G_GUINT64_FORMAT" %"G_GUINT64_FORMAT" %"G_GUINT64_FORMAT, 90 | time+CPU_USER, time+CPU_NICE, time+CPU_SYS, time+CPU_IDLE, time+CPU_IOWAIT, &irq, &softirq); 91 | fclose(f); 92 | g_assert_cmpuint(n, ==, 7); 93 | time[CPU_IOWAIT] += irq+softirq; 94 | 95 | if (G_LIKELY(!first_call)) { // cannot calculate diff on first call 96 | for (i=0, total=0; ilast[i]; 98 | total += diff[i]; 99 | } 100 | 101 | xd->user = 100.0 * (float)(diff[CPU_USER]) / total; 102 | xd->nice = 100.0 * (float)(diff[CPU_NICE]) / total; 103 | xd->system = 100.0 * (float)(diff[CPU_SYS]) / total; 104 | xd->iowait = 100.0 * (float)(diff[CPU_IOWAIT]) / total; 105 | xd->total_use = 100.0 * (float)(total-diff[CPU_IDLE]) / total; 106 | 107 | for (i=0; i<4; i++) 108 | data[i] = rint (Maximum * (float)diff[i] / total); 109 | } 110 | 111 | memcpy(xd->last, time, sizeof xd->last); 112 | } 113 | 114 | 115 | void 116 | multiload_graph_cpu_cmdline_output (LoadGraph *g, CpuData *xd) 117 | { 118 | g_snprintf(g->output_str[0], sizeof(g->output_str[0]), "%.03f", xd->user); 119 | g_snprintf(g->output_str[1], sizeof(g->output_str[1]), "%.03f", xd->nice); 120 | g_snprintf(g->output_str[2], sizeof(g->output_str[2]), "%.03f", xd->system); 121 | g_snprintf(g->output_str[3], sizeof(g->output_str[3]), "%.03f", xd->iowait); 122 | } 123 | 124 | 125 | void 126 | multiload_graph_cpu_tooltip_update (char *buf_title, size_t len_title, char *buf_text, size_t len_text, LoadGraph *g, CpuData *xd, gint style) 127 | { 128 | if (style == MULTILOAD_TOOLTIP_STYLE_DETAILED) { 129 | gchar *uptime = format_time_duration(xd->uptime); 130 | strncpy(buf_title, xd->cpu0_name, len_title); 131 | g_snprintf(buf_text, len_text, _( "%lu processors - %.2f GHz - Governor: %s\n" 132 | "%.1f%% in use by programs\n" 133 | "%.1f%% in use by low priority programs\n" 134 | "%.1f%% in use by the kernel\n" 135 | "%.1f%% in wait for I/O\n" 136 | "%.1f%% total CPU use\n" 137 | "\n" 138 | "Uptime: %s"), 139 | xd->num_cpu, xd->cpu0_mhz/1000.0, xd->cpu0_governor, 140 | xd->user, xd->nice, xd->system, xd->iowait, xd->total_use, 141 | uptime); 142 | g_free(uptime); 143 | } else { 144 | g_snprintf(buf_text, len_text, "%.1f%%", xd->total_use); 145 | } 146 | } 147 | -------------------------------------------------------------------------------- /common/graph-load.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #include 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | #include "graph-data.h" 30 | #include "info-file.h" 31 | #include "preferences.h" 32 | #include "util.h" 33 | 34 | enum { 35 | LOADAVG_1, 36 | LOADAVG_5, 37 | LOADAVG_15, 38 | LOADAVG_PROC 39 | }; 40 | 41 | #define PATH_LOADAVG "/proc/loadavg" 42 | 43 | 44 | void 45 | multiload_graph_load_init (LoadGraph *g, LoadData *xd) 46 | { 47 | struct utsname un; 48 | if (0 == uname(&un)) { 49 | g_snprintf(xd->uname, sizeof(xd->uname), "%s %s (%s)", un.sysname, un.release, un.machine); 50 | } else { 51 | g_warning("uname() failed: could not get kernel name and version."); 52 | } 53 | } 54 | 55 | void 56 | multiload_graph_load_get_data (int Maximum, int data [1], LoadGraph *g, LoadData *xd, gboolean first_call) 57 | { 58 | int n; 59 | 60 | // load average 61 | n = getloadavg(xd->loadavg, 3); 62 | g_assert_cmpint(n, >=, 0); 63 | 64 | // threads stats 65 | FILE *f = info_file_required_fopen(PATH_LOADAVG, "r"); 66 | n = fscanf(f, "%*s %*s %*s %u/%u", &xd->proc_active, &xd->proc_count); 67 | fclose(f); 68 | g_assert_cmpint(n, ==, 2); 69 | 70 | int max = autoscaler_get_max(&xd->scaler, g, rint(xd->loadavg[LOADAVG_1])); 71 | if (max == 0) { 72 | memset(data, 0, 4*sizeof(data[0])); 73 | } else { 74 | data [0] = rint ((float) Maximum * xd->loadavg[LOADAVG_1] / max); 75 | } 76 | } 77 | 78 | void 79 | multiload_graph_load_cmdline_output (LoadGraph *g, LoadData *xd) 80 | { 81 | g_snprintf(g->output_str[LOADAVG_1], sizeof(g->output_str[LOADAVG_1]), "%.02f", xd->loadavg[LOADAVG_1]); 82 | g_snprintf(g->output_str[LOADAVG_5], sizeof(g->output_str[LOADAVG_5]), "%.02f", xd->loadavg[LOADAVG_5]); 83 | g_snprintf(g->output_str[LOADAVG_15], sizeof(g->output_str[LOADAVG_15]), "%.02f", xd->loadavg[LOADAVG_15]); 84 | g_snprintf(g->output_str[LOADAVG_PROC], sizeof(g->output_str[LOADAVG_PROC]), "%u/%u", xd->proc_active, xd->proc_count); 85 | } 86 | 87 | void 88 | multiload_graph_load_tooltip_update (char *buf_title, size_t len_title, char *buf_text, size_t len_text, LoadGraph *g, LoadData *xd, gint style) 89 | { 90 | if (style == MULTILOAD_TOOLTIP_STYLE_DETAILED) { 91 | if (xd->uname[0] != 0) 92 | strncpy(buf_title, xd->uname, len_title); 93 | g_snprintf(buf_text, len_text, _( "Last minute: %0.02f\n" 94 | "Last 5 minutes: %0.02f\n" 95 | "Last 15 minutes: %0.02f\n" 96 | "Processes/threads: %u active out of %u."), 97 | xd->loadavg[LOADAVG_1], xd->loadavg[LOADAVG_5], xd->loadavg[LOADAVG_15], 98 | xd->proc_active, xd->proc_count); 99 | } else { 100 | g_snprintf(buf_text, len_text, "%0.02f", xd->loadavg[LOADAVG_1]); 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /common/graph-mem.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #include 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | #include "graph-data.h" 30 | #include "info-file.h" 31 | #include "preferences.h" 32 | #include "util.h" 33 | 34 | #define PATH_MEMINFO "/proc/meminfo" 35 | 36 | void 37 | multiload_graph_mem_get_data (int Maximum, int data [4], LoadGraph *g, MemoryData *xd, gboolean first_call) 38 | { 39 | // displayed keys 40 | static guint64 kb_main_total = 0; 41 | static guint64 kb_main_buffers = 0; 42 | static guint64 kb_main_cached = 0; 43 | static guint64 kb_main_used = 0; 44 | 45 | // auxiliary keys 46 | static guint64 kb_main_free = 0; 47 | static guint64 kb_page_cache = 0; 48 | static guint64 kb_slab = 0; 49 | 50 | static const InfoFileMappingEntry table[] = { 51 | { "MemTotal", 'u', &kb_main_total }, 52 | { "MemFree", 'u', &kb_main_free}, 53 | { "Buffers", 'u', &kb_main_buffers }, 54 | { "Cached", 'u', &kb_page_cache }, 55 | { "Slab", 'u', &kb_slab } 56 | }; 57 | 58 | gint r = info_file_read_keys (PATH_MEMINFO, table, 5); 59 | g_assert_cmpint(r, ==, 5); 60 | 61 | kb_main_cached = kb_page_cache; 62 | if (xd->procps_compliant) 63 | kb_main_cached += kb_slab; 64 | 65 | kb_main_used = kb_main_total - kb_main_free - kb_main_cached - kb_main_buffers; 66 | if (kb_main_used < 0) 67 | kb_main_used = kb_main_total - kb_main_free; 68 | 69 | xd->user = kb_main_used * 1024; 70 | xd->buffers = kb_main_buffers * 1024; 71 | xd->cache = kb_main_cached * 1024; 72 | xd->total = kb_main_total * 1024; 73 | 74 | data [0] = rint (Maximum * (float)kb_main_used / (float)kb_main_total); 75 | data [1] = rint (Maximum * (float)kb_main_buffers / (float)kb_main_total); 76 | data [2] = rint (Maximum * (float)kb_main_cached / (float)kb_main_total); 77 | } 78 | 79 | 80 | void 81 | multiload_graph_mem_cmdline_output (LoadGraph *g, MemoryData *xd) 82 | { 83 | g_snprintf(g->output_str[0], sizeof(g->output_str[0]), "%"G_GUINT64_FORMAT, xd->user); 84 | g_snprintf(g->output_str[1], sizeof(g->output_str[1]), "%"G_GUINT64_FORMAT, xd->buffers); 85 | g_snprintf(g->output_str[2], sizeof(g->output_str[2]), "%"G_GUINT64_FORMAT, xd->cache); 86 | } 87 | 88 | void 89 | multiload_graph_mem_tooltip_update (char *buf_title, size_t len_title, char *buf_text, size_t len_text, LoadGraph *g, MemoryData *xd, gint style) 90 | { 91 | if (style == MULTILOAD_TOOLTIP_STYLE_DETAILED) { 92 | gchar *total = format_size_for_display(xd->total, g->multiload->size_format_iec); 93 | 94 | gchar *user = format_size_for_display(xd->user, g->multiload->size_format_iec); 95 | gchar *user_percent = format_percent(xd->user, xd->total, 1); 96 | 97 | gchar *buffers = format_size_for_display(xd->buffers, g->multiload->size_format_iec); 98 | gchar *buffers_percent = format_percent(xd->buffers, xd->total, 1); 99 | 100 | gchar *cache = format_size_for_display(xd->cache, g->multiload->size_format_iec); 101 | gchar *cache_percent = format_percent(xd->cache, xd->total, 1); 102 | 103 | g_snprintf(buf_title, len_title, _("%s of RAM"), total); 104 | g_snprintf(buf_text, len_text, _( "%s (%s) used by programs\n" 105 | "%s (%s) used for buffers\n" 106 | "%s (%s) used as cache"), 107 | user_percent, user, 108 | buffers_percent, buffers, 109 | cache_percent, cache); 110 | g_free(total); 111 | g_free(user); 112 | g_free(user_percent); 113 | g_free(buffers); 114 | g_free(buffers_percent); 115 | g_free(cache); 116 | g_free(cache_percent); 117 | } else { 118 | gchar *use = format_percent(xd->user, xd->total, 0); 119 | g_snprintf(buf_text, len_text, "%s", use); 120 | g_free(use); 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /common/graph-parm.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #include 23 | 24 | #include 25 | #include 26 | 27 | #include "graph-data.h" 28 | #include "autoscaler.h" 29 | #include "preferences.h" 30 | #include "util.h" 31 | 32 | 33 | void 34 | multiload_graph_parm_get_data (int Maximum, int data[4], LoadGraph *g, ParametricData *xd, gboolean first_call) 35 | { 36 | int max; 37 | gboolean spawn_success; 38 | 39 | gchar *stdout = NULL; 40 | gchar *stderr = NULL; 41 | int exit_status; 42 | 43 | guint i; 44 | gdouble total = 0; 45 | 46 | if (xd->command[0] == '\0') { 47 | xd->error = TRUE; 48 | snprintf(xd->message, sizeof(xd->message), _("Command line is empty.")); 49 | } else if ((spawn_success= g_spawn_command_line_sync (xd->command, &stdout, &stderr, &exit_status, NULL)) == FALSE) { 50 | xd->error = TRUE; 51 | snprintf(xd->message, sizeof(xd->message), _("Unable to execute command.")); 52 | } else if (exit_status != 0) { 53 | xd->error = TRUE; 54 | snprintf(xd->message, sizeof(xd->message), _("Command has exited with status code %d."), exit_status); 55 | } else { 56 | /* child process: 57 | * - MUST 'exit 0' 58 | * - MUST print to stdout from 1 up to 4 POSITIVE doubles, separated by spaces or newline. 59 | * They can be prefix with 0 (octal) or 0x (hex). Negative numbers will be set to 0. 60 | * Any additional content after the numbers is ignored. Point/comma depends on locale settings. 61 | * - CAN print some text on stderr. Any additional content after the first line is ignored 62 | */ 63 | 64 | xd->nvalues = sscanf(stdout, "%lf %lf %lf %lf", xd->result+0, xd->result+1, xd->result+2, xd->result+3); 65 | if (xd->nvalues < 1) { 66 | xd->error = TRUE; 67 | snprintf(xd->message, sizeof(xd->message), _("Command did not return valid numbers.")); 68 | } else { 69 | xd->error = FALSE; 70 | //copy first line of stderr to xd->message 71 | if (stderr != NULL) { 72 | guint i; 73 | for (i=0; imessage)-1; i++) { 74 | if (stderr[i] == '\n' || stderr[i] == '\r') 75 | stderr[i] = '\0'; 76 | 77 | xd->message[i] = stderr[i]; 78 | 79 | if (stderr[i] == '\0') 80 | break; 81 | } 82 | xd->message[sizeof(xd->message)-1] = '\0'; 83 | } else 84 | xd->message[0] = '\0'; 85 | } 86 | 87 | } 88 | g_free (stdout); 89 | g_free (stderr); 90 | 91 | if (xd->error == TRUE) { 92 | memset(xd->result, 0, 4*sizeof(xd->result[0])); 93 | } else { 94 | for (i=0; i<4; i++) { 95 | if (xd->result[i] < 0) 96 | xd->result[i] = 0; 97 | else 98 | total += xd->result[i]; 99 | } 100 | } 101 | 102 | if (g == NULL || data == NULL || Maximum == 0) 103 | return; // allow this function to be used just to test command lines 104 | 105 | max = autoscaler_get_max(&xd->scaler, g, rint(total)); 106 | if (max == 0) { 107 | memset(data, 0, 4*sizeof(data[0])); 108 | } else { 109 | for (i=0; i<4; i++) 110 | data[i] = rint (Maximum * (float)xd->result[i] / max); 111 | } 112 | } 113 | 114 | 115 | void 116 | multiload_graph_parm_cmdline_output (LoadGraph *g, ParametricData *xd) 117 | { 118 | guint i; 119 | for (i=0; i<4; i++) 120 | g_snprintf(g->output_str[i], sizeof(g->output_str[i]), "%lf", xd->result[i]); 121 | } 122 | 123 | 124 | void 125 | multiload_graph_parm_tooltip_update (char *buf_title, size_t len_title, char *buf_text, size_t len_text, LoadGraph *g, ParametricData *xd, gint style) 126 | { 127 | if (style == MULTILOAD_TOOLTIP_STYLE_DETAILED) { 128 | if (xd->error) 129 | g_snprintf(buf_text, len_text, _( "Command: %s\n" 130 | "ERROR: %s"), 131 | xd->command, xd->message); 132 | else { 133 | if (xd->message[0] != '\0') 134 | strncpy(buf_title, xd->message, len_title); 135 | g_snprintf(buf_text, len_text, _( "Command: %s\n" 136 | "Results: (%.3lf, %.3lf, %.3lf, %.3lf)"), 137 | xd->command, xd->result[0], xd->result[1], 138 | xd->result[2], xd->result[3]); 139 | } 140 | } else { 141 | if (xd->error) 142 | g_snprintf(buf_text, len_text, _( "ERROR: %s"), xd->message); 143 | else if (xd->message[0] != '\0') 144 | strncpy(buf_text, xd->message, len_text); 145 | else 146 | g_snprintf(buf_text, len_text, "(%lf, %lf, %lf, %lf)", 147 | xd->result[0], xd->result[1], 148 | xd->result[2], xd->result[3]); 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /common/graph-swap.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #include 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | #include "graph-data.h" 30 | #include "info-file.h" 31 | #include "preferences.h" 32 | #include "util.h" 33 | 34 | #define PATH_MEMINFO "/proc/meminfo" 35 | 36 | void 37 | multiload_graph_swap_get_data (int Maximum, int data [1], LoadGraph *g, SwapData *xd, gboolean first_call) 38 | { 39 | // displayed keys 40 | static guint64 kb_swap_total = 0; 41 | static guint64 kb_swap_free = 0; 42 | 43 | static const InfoFileMappingEntry table[] = { 44 | { "SwapTotal", 'u', &kb_swap_total }, 45 | { "SwapFree", 'u', &kb_swap_free } 46 | }; 47 | 48 | gint r = info_file_read_keys (PATH_MEMINFO, table, 2); 49 | g_assert_cmpint(r, ==, 2); 50 | 51 | xd->used = (kb_swap_total - kb_swap_free) * 1024; 52 | xd->total = kb_swap_total * 1024; 53 | 54 | if (kb_swap_total == 0) 55 | data [0] = 0; 56 | else 57 | data [0] = rint (Maximum * (float)(kb_swap_total - kb_swap_free) / kb_swap_total); 58 | } 59 | 60 | 61 | void 62 | multiload_graph_swap_cmdline_output (LoadGraph *g, SwapData *xd) 63 | { 64 | g_snprintf(g->output_str[0], sizeof(g->output_str[0]), "%"G_GUINT64_FORMAT, xd->used); 65 | } 66 | 67 | 68 | void 69 | multiload_graph_swap_tooltip_update (char *buf_title, size_t len_title, char *buf_text, size_t len_text, LoadGraph *g, SwapData *xd, gint style) 70 | { 71 | if (xd->total == 0) { 72 | g_snprintf(buf_text, len_text, _("No swap")); 73 | } else { 74 | gchar *used = format_size_for_display(xd->used, g->multiload->size_format_iec); 75 | gchar *used_percent = format_percent(xd->used, xd->total, 0); 76 | 77 | gchar *total = format_size_for_display(xd->total, g->multiload->size_format_iec); 78 | 79 | if (style == MULTILOAD_TOOLTIP_STYLE_DETAILED) { 80 | g_snprintf(buf_title, len_title, _("%s of swap"), total); 81 | g_snprintf(buf_text, len_text, _("%s (%s) used"), used_percent, used); 82 | } else { 83 | g_snprintf(buf_text, len_text, "%s", used_percent); 84 | } 85 | 86 | g_free(used); 87 | g_free(used_percent); 88 | g_free(total); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /common/gtk-compat.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 2002 The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #include 24 | 25 | #include "gtk-compat.h" 26 | 27 | 28 | #if ! GTK_CHECK_VERSION(3,4,0) 29 | 30 | gboolean 31 | gdk_rgba_parse (GdkRGBA* color, const gchar* gspec) { 32 | GdkColor c; 33 | gboolean ret; 34 | ret = gdk_color_parse(gspec, &c); 35 | if (ret) 36 | gdk_color_to_rgba(&c, 0xffff, color); 37 | 38 | return ret; 39 | } 40 | 41 | void 42 | gtk_color_chooser_get_rgba (GtkColorButton *chooser, GdkRGBA *color) 43 | { 44 | GdkColor c; 45 | gtk_color_button_get_color(chooser, &c); 46 | gdk_color_to_rgba(&c, gtk_color_button_get_alpha(chooser), color); 47 | } 48 | 49 | void 50 | gtk_color_chooser_set_rgba (GtkColorButton *chooser, GdkRGBA *color) 51 | { 52 | GdkColor c; 53 | guint16 alpha; 54 | gdk_rgba_to_color(color, &c, &alpha); 55 | 56 | gtk_color_button_set_color(chooser, &c); 57 | gtk_color_button_set_alpha(chooser, alpha); 58 | } 59 | 60 | G_GNUC_INTERNAL void 61 | gtk_color_chooser_set_use_alpha (GtkColorButton *chooser, gboolean use_alpha) 62 | { 63 | gtk_color_button_set_use_alpha(chooser, use_alpha); 64 | } 65 | 66 | 67 | GtkWidget * 68 | gtk_color_button_new_with_rgba (const GdkRGBA *rgba) 69 | { 70 | GdkColor c; 71 | guint16 alpha; 72 | GtkWidget *ret; 73 | gdk_rgba_to_color(rgba, &c, &alpha); 74 | 75 | ret = gtk_color_button_new_with_color(&c); 76 | gtk_color_button_set_alpha (GTK_COLOR_BUTTON(ret), alpha); 77 | return ret; 78 | } 79 | 80 | #endif /* ! GTK_CHECK_VERSION(3,4,0) */ 81 | 82 | 83 | #if ! GTK_CHECK_VERSION(3,0,0) 84 | 85 | GtkWidget * 86 | gtk_box_new (GtkOrientation o, guint spacing) 87 | { 88 | if (o == GTK_ORIENTATION_HORIZONTAL) 89 | return gtk_hbox_new(FALSE, spacing); 90 | else // if (o == GTK_ORIENTATION_VERTICAL) 91 | return gtk_vbox_new(FALSE, spacing); 92 | } 93 | 94 | GtkWidget * 95 | gtk_separator_new (GtkOrientation o) 96 | { 97 | if (o == GTK_ORIENTATION_HORIZONTAL) 98 | return gtk_hseparator_new(); 99 | else // if (o == GTK_ORIENTATION_VERTICAL) 100 | return gtk_vseparator_new(); 101 | } 102 | 103 | #endif /* ! GTK_CHECK_VERSION(3,0,0) */ 104 | 105 | 106 | #if ! GTK_CHECK_VERSION(3,10,0) 107 | 108 | GtkWidget * 109 | gtk_button_new_from_icon_name (const gchar *icon_name, GtkIconSize size) 110 | { 111 | GtkWidget *ret = gtk_button_new(); 112 | GtkWidget *image = gtk_image_new_from_icon_name(icon_name, size); 113 | gtk_button_set_image(GTK_BUTTON(ret), image); 114 | return ret; 115 | } 116 | 117 | #endif /* ! GTK_CHECK_VERSION(3,10,0) */ 118 | 119 | 120 | #if ! GTK_CHECK_VERSION(3,16,0) 121 | 122 | G_GNUC_INTERNAL void 123 | gtk_label_set_xalign (GtkLabel *label, gfloat xalign) { 124 | gfloat yalign; 125 | gtk_misc_get_alignment (GTK_MISC(label), NULL, &yalign); 126 | gtk_misc_set_alignment (GTK_MISC(label), xalign, yalign); 127 | } 128 | 129 | G_GNUC_INTERNAL void 130 | gtk_label_set_yalign (GtkLabel *label, gfloat yalign) { 131 | gfloat xalign; 132 | gtk_misc_get_alignment (GTK_MISC(label), &xalign, NULL); 133 | gtk_misc_set_alignment (GTK_MISC(label), xalign, yalign); 134 | } 135 | 136 | #endif /* ! GTK_CHECK_VERSION(3,16,0) */ 137 | 138 | 139 | void 140 | gdk_color_to_rgba(const GdkColor *color, guint16 alpha, GdkRGBA *rgba) 141 | { 142 | rgba->red = color->red / 65535.0; 143 | rgba->green = color->green / 65535.0; 144 | rgba->blue = color->blue / 65535.0; 145 | rgba->alpha = alpha / 65535.0; 146 | } 147 | 148 | void 149 | gdk_rgba_to_color(const GdkRGBA *rgba, GdkColor *color, guint16 *alpha) 150 | { 151 | color->red = 65535 * rgba->red; 152 | color->green = 65535 * rgba->green; 153 | color->blue = 65535 * rgba->blue; 154 | if (alpha != NULL) 155 | *alpha = 65535 * rgba->alpha; 156 | } 157 | 158 | -------------------------------------------------------------------------------- /common/gtk-compat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __GTK_COMPAT_H__ 24 | #define __GTK_COMPAT_H__ 25 | 26 | #include 27 | 28 | G_BEGIN_DECLS 29 | 30 | 31 | #if ! GTK_CHECK_VERSION(3,0,0) 32 | 33 | typedef struct { 34 | gdouble red; 35 | gdouble green; 36 | gdouble blue; 37 | gdouble alpha; 38 | } GdkRGBA; 39 | #define GTK_COLOR_CHOOSER GTK_COLOR_BUTTON 40 | 41 | #endif /* ! GTK_CHECK_VERSION(3,0,0) */ 42 | 43 | 44 | #if ! GTK_CHECK_VERSION(3,4,0) 45 | 46 | G_GNUC_INTERNAL gboolean 47 | gdk_rgba_parse (GdkRGBA* color, const gchar* gspec); 48 | 49 | G_GNUC_INTERNAL void 50 | gtk_color_chooser_get_rgba (GtkColorButton *chooser, GdkRGBA *color); 51 | 52 | G_GNUC_INTERNAL void 53 | gtk_color_chooser_set_rgba (GtkColorButton *chooser, GdkRGBA *color); 54 | 55 | G_GNUC_INTERNAL void 56 | gtk_color_chooser_set_use_alpha (GtkColorButton *chooser, gboolean use_alpha); 57 | 58 | G_GNUC_INTERNAL GtkWidget * 59 | gtk_color_button_new_with_rgba (const GdkRGBA *rgba); 60 | 61 | #endif /* ! GTK_CHECK_VERSION(3,4,0) */ 62 | 63 | 64 | #if ! GTK_CHECK_VERSION(3,0,0) 65 | 66 | G_GNUC_INTERNAL GtkWidget * 67 | gtk_box_new (GtkOrientation o, guint spacing); 68 | 69 | G_GNUC_INTERNAL GtkWidget * 70 | gtk_separator_new (GtkOrientation o); 71 | 72 | #endif /* ! GTK_CHECK_VERSION(3,0,0) */ 73 | 74 | 75 | #if ! GTK_CHECK_VERSION(3,10,0) 76 | 77 | G_GNUC_INTERNAL GtkWidget * 78 | gtk_button_new_from_icon_name (const gchar *icon_name, GtkIconSize size); 79 | 80 | #endif /* ! GTK_CHECK_VERSION(3,10,0) */ 81 | 82 | 83 | #if ! GTK_CHECK_VERSION(3,16,0) 84 | 85 | G_GNUC_INTERNAL void 86 | gtk_label_set_xalign (GtkLabel *label, gfloat xalign); 87 | 88 | G_GNUC_INTERNAL void 89 | gtk_label_set_yalign (GtkLabel *label, gfloat yalign); 90 | 91 | #endif /* ! GTK_CHECK_VERSION(3,16,0) */ 92 | 93 | 94 | //gtk+>3.4 95 | #ifndef GDK_EVENT_PROPAGATE 96 | #define GDK_EVENT_PROPAGATE (FALSE) 97 | #endif 98 | 99 | #ifndef GDK_EVENT_STOP 100 | #define GDK_EVENT_STOP (TRUE) 101 | #endif 102 | 103 | 104 | void 105 | gdk_color_to_rgba(const GdkColor *color, guint16 alpha, GdkRGBA *rgba); 106 | 107 | void 108 | gdk_rgba_to_color(const GdkRGBA *rgba, GdkColor *color, guint16 *alpha); 109 | 110 | 111 | G_END_DECLS 112 | 113 | #endif /* __GTK_COMPAT_H__ */ 114 | -------------------------------------------------------------------------------- /common/info-file.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __MULTILOAD_INFO_FILE_H__ 24 | #define __MULTILOAD_INFO_FILE_H__ 25 | 26 | #include 27 | #include 28 | 29 | 30 | typedef struct { 31 | gchar *key; 32 | gchar type; // one of 's', 'i', 'u', 'x', 'd' 33 | gpointer address; 34 | } InfoFileMappingEntry; 35 | 36 | 37 | G_GNUC_INTERNAL 38 | FILE* 39 | info_file_required_fopen (const gchar *path, const gchar *mode); 40 | 41 | G_GNUC_INTERNAL 42 | gboolean 43 | info_file_exists (const gchar *path); 44 | 45 | G_GNUC_INTERNAL 46 | gboolean 47 | info_file_has_contents (const gchar *path, const gchar *contents, gboolean case_sensitive); 48 | 49 | G_GNUC_INTERNAL 50 | gboolean 51 | info_file_read_string_s (const gchar *path, gchar *buf, const size_t bufsize, size_t *length); 52 | 53 | G_GNUC_INTERNAL 54 | gboolean 55 | info_file_read_string (const gchar *path, gchar **out, size_t *length); 56 | 57 | G_GNUC_INTERNAL 58 | gboolean 59 | info_file_read_int64 (const gchar *path, gint64 *out); 60 | 61 | G_GNUC_INTERNAL 62 | gboolean 63 | info_file_read_uint64 (const gchar *path, guint64 *out); 64 | 65 | G_GNUC_INTERNAL 66 | gboolean 67 | info_file_read_hex64 (const gchar *path, guint64 *out); 68 | 69 | G_GNUC_INTERNAL 70 | gboolean 71 | info_file_read_double (const gchar *path, gdouble *out, gdouble scale); 72 | 73 | 74 | G_GNUC_INTERNAL 75 | gboolean 76 | info_file_read_key_string_s (const gchar *path, const gchar *key, gchar *buf, size_t bufsize, size_t *length); 77 | 78 | G_GNUC_INTERNAL 79 | gboolean 80 | info_file_read_key_int64 (const gchar *path, const gchar *key, gint64 *out); 81 | 82 | G_GNUC_INTERNAL 83 | gboolean 84 | info_file_read_key_uint64 (const gchar *path, const gchar *key, guint64 *out); 85 | 86 | G_GNUC_INTERNAL 87 | gboolean 88 | info_file_read_key_hex64 (const gchar *path, const gchar *key, guint64 *out); 89 | 90 | G_GNUC_INTERNAL 91 | gboolean 92 | info_file_read_key_double (const gchar *path, const gchar *key, gdouble *out, gdouble scale); 93 | 94 | 95 | G_GNUC_INTERNAL 96 | gint 97 | info_file_read_keys (const gchar *path, const InfoFileMappingEntry *entries, gint count); 98 | 99 | G_GNUC_INTERNAL 100 | guint 101 | info_file_count_key_values (const gchar *path, const gchar *key); 102 | 103 | #endif /* __MULTILOAD_INFO_FILE_H__ */ 104 | -------------------------------------------------------------------------------- /common/load-graph.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __LOAD_GRAPH_H__ 24 | #define __LOAD_GRAPH_H__ 25 | 26 | #include "multiload.h" 27 | 28 | 29 | G_BEGIN_DECLS 30 | 31 | G_GNUC_INTERNAL LoadGraph* 32 | load_graph_new (MultiloadPlugin *ma, guint id); 33 | G_GNUC_INTERNAL void 34 | load_graph_resize (LoadGraph *g); 35 | G_GNUC_INTERNAL void 36 | load_graph_start (LoadGraph *g); 37 | G_GNUC_INTERNAL void 38 | load_graph_stop (LoadGraph *g); 39 | G_GNUC_INTERNAL void 40 | load_graph_unalloc (LoadGraph *g); 41 | G_GNUC_INTERNAL void 42 | load_graph_cairo_set_gradient(cairo_t *cr, double width, double height, int direction, GdkRGBA *a, GdkRGBA *b); 43 | 44 | G_END_DECLS 45 | 46 | #endif /* __LOAD_GRAPH_H__ */ 47 | -------------------------------------------------------------------------------- /common/multiload-config.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #include 24 | 25 | #include "colors.h" 26 | #include "graph-data.h" 27 | #include "multiload-config.h" 28 | 29 | GraphType graph_types[GRAPH_MAX]; 30 | 31 | guint multiload_config_get_num_colors(guint id) 32 | { 33 | g_assert_cmpuint (graph_types[id].num_colors, <=, MAX_COLORS); 34 | return graph_types[id].num_colors; 35 | } 36 | 37 | guint multiload_config_get_num_data(guint id) 38 | { 39 | // Subtract colors that do not map 1:1 with graph data 40 | return multiload_config_get_num_colors(id) - EXTRA_COLORS; 41 | } 42 | 43 | void multiload_config_init() 44 | { 45 | GraphType temp[] = { 46 | { "cpu", _("Processor"), 7, -1, -1, "%", 47 | (GraphInitFunc) multiload_graph_cpu_init, 48 | (GraphGetDataFunc) multiload_graph_cpu_get_data, 49 | (GraphTooltipUpdateFunc) multiload_graph_cpu_tooltip_update, 50 | (GraphCmdlineOutputFunc) multiload_graph_cpu_cmdline_output, 51 | (GraphGetFilterFunc) NULL 52 | }, 53 | { "mem", _("Memory"), 6, -1, -1, "byte", 54 | (GraphInitFunc) NULL, 55 | (GraphGetDataFunc) multiload_graph_mem_get_data, 56 | (GraphTooltipUpdateFunc) multiload_graph_mem_tooltip_update, 57 | (GraphCmdlineOutputFunc) multiload_graph_mem_cmdline_output, 58 | (GraphGetFilterFunc) NULL 59 | }, 60 | { "net", _("Network"), 6, -1, 500, "Bps", 61 | (GraphInitFunc) multiload_graph_net_init, 62 | (GraphGetDataFunc) multiload_graph_net_get_data, 63 | (GraphTooltipUpdateFunc) multiload_graph_net_tooltip_update, 64 | (GraphCmdlineOutputFunc) multiload_graph_net_cmdline_output, 65 | (GraphGetFilterFunc) multiload_graph_net_get_filter 66 | }, 67 | { "swap", _("Swap"), 4, -1, -1, "byte", 68 | (GraphInitFunc) NULL, 69 | (GraphGetDataFunc) multiload_graph_swap_get_data, 70 | (GraphTooltipUpdateFunc) multiload_graph_swap_tooltip_update, 71 | (GraphCmdlineOutputFunc) multiload_graph_swap_cmdline_output, 72 | (GraphGetFilterFunc) NULL 73 | }, 74 | { "load", _("Load average"), 4, 8, 3, "", 75 | (GraphInitFunc) multiload_graph_load_init, 76 | (GraphGetDataFunc) multiload_graph_load_get_data, 77 | (GraphTooltipUpdateFunc) multiload_graph_load_tooltip_update, 78 | (GraphCmdlineOutputFunc) multiload_graph_load_cmdline_output, 79 | (GraphGetFilterFunc) NULL 80 | }, 81 | { "disk", _("Disk"), 5, -1, 500, "Bps", 82 | (GraphInitFunc) NULL, 83 | (GraphGetDataFunc) multiload_graph_disk_get_data, 84 | (GraphTooltipUpdateFunc) multiload_graph_disk_tooltip_update, 85 | (GraphCmdlineOutputFunc) multiload_graph_disk_cmdline_output, 86 | (GraphGetFilterFunc) multiload_graph_disk_get_filter 87 | }, 88 | { "temp", _("Temperature"), 5, 120, 60, "°C", 89 | (GraphInitFunc) multiload_graph_temp_init, 90 | (GraphGetDataFunc) multiload_graph_temp_get_data, 91 | (GraphTooltipUpdateFunc) multiload_graph_temp_tooltip_update, 92 | (GraphCmdlineOutputFunc) multiload_graph_temp_cmdline_output, 93 | (GraphGetFilterFunc) multiload_graph_temp_get_filter 94 | }, 95 | { "bat", _("Battery"), 6, -1, -1, "%", 96 | (GraphInitFunc) multiload_graph_bat_init, 97 | (GraphGetDataFunc) multiload_graph_bat_get_data, 98 | (GraphTooltipUpdateFunc) multiload_graph_bat_tooltip_update, 99 | (GraphCmdlineOutputFunc) multiload_graph_bat_cmdline_output, 100 | (GraphGetFilterFunc) NULL 101 | }, 102 | { "parm", _("Parametric"), 7, -1, -1, "", 103 | (GraphInitFunc) NULL, 104 | (GraphGetDataFunc) multiload_graph_parm_get_data, 105 | (GraphTooltipUpdateFunc) multiload_graph_parm_tooltip_update, 106 | (GraphCmdlineOutputFunc) multiload_graph_parm_cmdline_output, 107 | (GraphGetFilterFunc) NULL 108 | } 109 | }; 110 | 111 | memcpy(&graph_types, &temp, sizeof(graph_types)); 112 | } 113 | -------------------------------------------------------------------------------- /common/multiload-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * The Free Software Foundation 4 | * 5 | * This file is part of multiload-ng. 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License along 18 | * with this program; if not, write to the Free Software Foundation, Inc., 19 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | 23 | #ifndef __MULTILOAD_CONFIG_H__ 24 | #define __MULTILOAD_CONFIG_H__ 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "filter.h" 31 | #include "gtk-compat.h" 32 | #include "multiload.h" 33 | 34 | 35 | G_BEGIN_DECLS 36 | 37 | typedef void (*GraphInitFunc) (LoadGraph *g, gpointer xd); 38 | typedef void (*GraphGetDataFunc) (int Maximum, int data[], LoadGraph *g, gpointer xd, gboolean first_call); 39 | typedef void (*GraphTooltipUpdateFunc) (char *buf_title, size_t len_title, char *buf_text, size_t len_text, LoadGraph *g, gpointer xd, gint style); 40 | typedef void (*GraphCmdlineOutputFunc) (LoadGraph *g, gpointer xd); 41 | typedef MultiloadFilter* (*GraphGetFilterFunc) (LoadGraph *g, gpointer xd); 42 | 43 | typedef struct _GraphType { 44 | const char *name; 45 | const char *label; 46 | const guint num_colors; 47 | const gint scaler_max; // fixed max value, or -1 for autoscaler 48 | const gint scaler_max_floor; // fixed minimum value of scaler max, or -1 for default 49 | const gchar output_unit[10]; 50 | const GraphInitFunc init; 51 | const GraphGetDataFunc get_data; 52 | const GraphTooltipUpdateFunc tooltip_update; 53 | const GraphCmdlineOutputFunc cmdline_output; 54 | const GraphGetFilterFunc get_filter; 55 | } GraphType; 56 | 57 | 58 | // global variable 59 | extern GraphType graph_types[GRAPH_MAX]; 60 | 61 | 62 | G_GNUC_INTERNAL guint 63 | multiload_config_get_num_colors(guint id); 64 | G_GNUC_INTERNAL guint 65 | multiload_config_get_num_data(guint id); 66 | G_GNUC_INTERNAL void 67 | multiload_config_init(); 68 | 69 | G_END_DECLS 70 | 71 | 72 | #endif /* __MULTILOAD_CONFIG_H__ */ 73 | -------------------------------------------------------------------------------- /common/multiload.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 1997 The Free Software Foundation 4 | * (Authors: Tim P. Gerla, Martin Baulig, Todd Kulesza) 5 | * 6 | * This file is part of multiload-ng. 7 | * 8 | * This program is free software; you can redistribute it and/or modify 9 | * it under the terms of the GNU General Public License as published by 10 | * the Free Software Foundation; either version 2 of the License, or 11 | * (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | * GNU General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License along 19 | * with this program; if not, write to the Free Software Foundation, Inc., 20 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 | */ 22 | 23 | 24 | #ifndef __MULTILOAD_H__ 25 | #define __MULTILOAD_H__ 26 | 27 | #include 28 | #include 29 | #include 30 | 31 | #include "gtk-compat.h" 32 | 33 | 34 | #define MAX_COLORS 7 35 | 36 | enum GraphType { 37 | GRAPH_CPULOAD, 38 | GRAPH_MEMLOAD, 39 | GRAPH_NETLOAD, 40 | GRAPH_SWAPLOAD, 41 | GRAPH_LOADAVG, 42 | GRAPH_DISKLOAD, 43 | GRAPH_TEMPERATURE, 44 | GRAPH_BATTERY, 45 | GRAPH_PARAMETRIC, 46 | 47 | GRAPH_MAX 48 | }; 49 | 50 | 51 | typedef struct _LoadGraph LoadGraph; 52 | typedef void (*GraphUpdateFunc) (LoadGraph *g, gpointer user_data); 53 | 54 | typedef struct _GraphConfig { 55 | gboolean visible; 56 | gint border_width; 57 | GdkRGBA colors[MAX_COLORS]; 58 | gint bg_direction; 59 | 60 | gint interval; 61 | gint size; 62 | gint tooltip_style; 63 | gint dblclick_policy; 64 | gchar dblclick_cmdline[1024]; 65 | 66 | gchar filter[150]; 67 | gboolean filter_enable; 68 | } GraphConfig; 69 | 70 | typedef struct _MultiloadPlugin { 71 | gpointer panel_data; 72 | GtkWidget *pref_dialog; 73 | gboolean pref_dialog_maximized; 74 | gint pref_dialog_width; 75 | gint pref_dialog_height; 76 | 77 | GtkContainer *container; 78 | GtkWidget *box; 79 | GtkOrientation panel_orientation; 80 | 81 | LoadGraph *graphs[GRAPH_MAX]; 82 | GraphConfig graph_config[GRAPH_MAX]; 83 | gpointer extra_data[GRAPH_MAX]; // data depend on graph type 84 | 85 | gint padding; 86 | gint spacing; 87 | gint orientation_policy; 88 | gchar color_scheme[20]; 89 | gboolean size_format_iec; 90 | gint graph_order[GRAPH_MAX]; 91 | } MultiloadPlugin; 92 | 93 | 94 | struct _LoadGraph { 95 | MultiloadPlugin *multiload; 96 | 97 | guint id; 98 | guint draw_width, draw_height; 99 | 100 | gint **data; 101 | guint *pos; 102 | 103 | char output_str[4][20]; 104 | 105 | GtkWidget *main_widget; 106 | GtkWidget *box, *disp; 107 | cairo_surface_t *surface; 108 | int timer_index; 109 | 110 | gboolean allocated; 111 | gboolean tooltip_update; 112 | gboolean filter_changed; 113 | gboolean first_update; 114 | 115 | GraphUpdateFunc update_cb; 116 | gpointer update_cb_user_data; 117 | 118 | GraphConfig *config; 119 | }; 120 | 121 | typedef struct { 122 | gboolean show_about; 123 | gboolean show_preferences; 124 | gboolean reset_settings; 125 | } MultiloadOptions; 126 | 127 | typedef enum { 128 | MULTILOAD_GRADIENT_LINEAR_N_TO_S, 129 | MULTILOAD_GRADIENT_LINEAR_NE_TO_SW, 130 | MULTILOAD_GRADIENT_LINEAR_E_TO_W, 131 | MULTILOAD_GRADIENT_LINEAR_SE_TO_NW, 132 | MULTILOAD_GRADIENT_LINEAR_S_TO_N, 133 | MULTILOAD_GRADIENT_LINEAR_SW_TO_NE, 134 | MULTILOAD_GRADIENT_LINEAR_W_TO_E, 135 | MULTILOAD_GRADIENT_LINEAR_NW_TO_SE, 136 | MULTILOAD_GRADIENT_RADIAL, 137 | 138 | MULTILOAD_GRADIENT_MAX 139 | } MultiloadGradientDirection; 140 | 141 | 142 | G_BEGIN_DECLS 143 | 144 | G_GNUC_INTERNAL void 145 | multiload_start(MultiloadPlugin *ma); 146 | G_GNUC_INTERNAL GtkOrientation 147 | multiload_get_orientation(MultiloadPlugin *ma); 148 | G_GNUC_INTERNAL void 149 | multiload_tooltip_update(LoadGraph *g); 150 | G_GNUC_INTERNAL void 151 | multiload_set_spacing (MultiloadPlugin *ma, gint val); 152 | G_GNUC_INTERNAL void 153 | multiload_set_padding (MultiloadPlugin *ma, gint val); 154 | G_GNUC_INTERNAL void 155 | multiload_set_max_value (MultiloadPlugin *ma, guint graph_id, int val); 156 | G_GNUC_INTERNAL int 157 | multiload_get_max_value (MultiloadPlugin *ma, guint graph_id); 158 | G_GNUC_INTERNAL gint 159 | multiload_calculate_size_request (MultiloadPlugin *ma); 160 | G_GNUC_INTERNAL void 161 | multiload_refresh_orientation (MultiloadPlugin *ma); 162 | G_GNUC_INTERNAL void 163 | multiload_set_order (MultiloadPlugin *ma, gint new_order[GRAPH_MAX]); 164 | G_GNUC_INTERNAL void 165 | multiload_init(); 166 | G_GNUC_INTERNAL void 167 | multiload_sanitize(MultiloadPlugin *ma); 168 | G_GNUC_INTERNAL void 169 | multiload_set_update_cb (MultiloadPlugin *ma, guint graph_id, GraphUpdateFunc callback, gpointer user_data); 170 | G_GNUC_INTERNAL void 171 | multiload_defaults(MultiloadPlugin *ma); 172 | G_GNUC_INTERNAL MultiloadPlugin* 173 | multiload_new(); 174 | G_GNUC_INTERNAL void 175 | multiload_free(MultiloadPlugin *ma); 176 | G_GNUC_INTERNAL int 177 | multiload_find_graph_by_name(char *str, char **suffix); 178 | 179 | G_END_DECLS 180 | 181 | #endif /* __MULTILOAD_H__ */ 182 | -------------------------------------------------------------------------------- /common/preferences.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #ifndef __PROPERTIES_H__ 23 | #define __PROPERTIES_H__ 24 | 25 | #include 26 | 27 | #include "multiload.h" 28 | 29 | 30 | G_BEGIN_DECLS 31 | 32 | 33 | enum MultiloadOrientationPolicy { 34 | MULTILOAD_ORIENTATION_AUTO = 0, 35 | MULTILOAD_ORIENTATION_HORIZONTAL = 1, 36 | MULTILOAD_ORIENTATION_VERTICAL = 2, 37 | 38 | MULTILOAD_ORIENTATION_N_VALUES = 2 39 | }; 40 | 41 | enum MultiloadDblClickPolicy { 42 | DBLCLICK_POLICY_DONOTHING = 0, 43 | DBLCLICK_POLICY_TASKMANAGER = 1, 44 | DBLCLICK_POLICY_CMDLINE = 2, 45 | 46 | DBLCLICK_POLICY_N_VALUES = 2 47 | }; 48 | 49 | enum MultiloadTooltipStyle { 50 | MULTILOAD_TOOLTIP_STYLE_SIMPLE = 0, 51 | MULTILOAD_TOOLTIP_STYLE_DETAILED = 1, 52 | 53 | MULTILOAD_TOOLTIP_STYLE_N_VALUES = 1 54 | }; 55 | 56 | enum MultiloadLimits { 57 | MIN_SIZE = 10, 58 | MAX_SIZE = 400, 59 | 60 | MIN_INTERVAL = 50, 61 | MAX_INTERVAL = 20000, 62 | 63 | MIN_PADDING = 0, 64 | MAX_PADDING = 40, 65 | 66 | MIN_SPACING = 0, 67 | MAX_SPACING = 40, 68 | 69 | MIN_BORDER_WIDTH = 0, 70 | MAX_BORDER_WIDTH = 16 71 | }; 72 | 73 | enum MultiloadDefaults { 74 | DEFAULT_SIZE = 40, 75 | DEFAULT_INTERVAL = 1000, 76 | DEFAULT_PADDING = 2, 77 | DEFAULT_SPACING = 1, 78 | DEFAULT_BORDER_WIDTH = 1, 79 | DEFAULT_ORIENTATION = MULTILOAD_ORIENTATION_AUTO, 80 | DEFAULT_DBLCLICK_POLICY = DBLCLICK_POLICY_DONOTHING, 81 | DEFAULT_TOOLTIP_STYLE = MULTILOAD_TOOLTIP_STYLE_SIMPLE, 82 | DEFAULT_BACKGROUND_DIRECTION = MULTILOAD_GRADIENT_LINEAR_N_TO_S, 83 | DEFAULT_SIZE_FORMAT_IEC = TRUE 84 | }; 85 | 86 | enum MultiloadSettingsType { 87 | MULTILOAD_SETTINGS_SIZE = 1 << 0, 88 | MULTILOAD_SETTINGS_PADDING = 1 << 1, 89 | MULTILOAD_SETTINGS_SPACING = 1 << 2, 90 | MULTILOAD_SETTINGS_ORIENTATION = 1 << 3, 91 | MULTILOAD_SETTINGS_TOOLTIPS = 1 << 4, 92 | MULTILOAD_SETTINGS_ORIENT_WARNING = 1 << 5, 93 | MULTILOAD_SETTINGS_DBLCLICK_POLICY = 1 << 6, 94 | MULTILOAD_SETTINGS_REORDER = 1 << 7 95 | }; 96 | 97 | #define DEFAULT_COLOR_SCHEME "Multiload-ng" 98 | 99 | 100 | G_GNUC_INTERNAL void 101 | multiload_preferences_update_color_buttons(MultiloadPlugin *ma); 102 | 103 | G_GNUC_INTERNAL void 104 | multiload_preferences_fill_dialog(GtkWidget *dialog, MultiloadPlugin *ma); 105 | 106 | G_GNUC_INTERNAL void 107 | multiload_preferences_add_infobar (GtkMessageType message_type, const gchar *text); 108 | 109 | G_GNUC_INTERNAL void 110 | multiload_preferences_disable_settings(guint mask); 111 | 112 | G_END_DECLS 113 | 114 | #endif /* __PROPERTIES_H__ */ 115 | -------------------------------------------------------------------------------- /common/ps-settings-impl-gkeyfile.inc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | /* 23 | * Include this file in any plugin.c to make it use GKeyFile (standard INI-like files). 24 | * 25 | * PREREQUISITES 26 | * ------------- 27 | * Before including, #define MULTILOAD_CONFIG_BASENAME as the name (without path) of config file. 28 | */ 29 | 30 | #include 31 | 32 | #define G_KEY_GROUP_NAME "Multiload" 33 | 34 | #ifndef MULTILOAD_CONFIG_BASENAME 35 | #error "MULTILOAD_CONFIG_BASENAME must be defined before including this file" 36 | #endif 37 | 38 | 39 | static gchar* 40 | build_config_filename() { 41 | return g_build_filename(MULTILOAD_CONFIG_PATH, MULTILOAD_CONFIG_BASENAME, NULL); 42 | } 43 | 44 | 45 | gpointer 46 | multiload_ps_settings_open_for_read(MultiloadPlugin *ma) 47 | { 48 | GKeyFile *gkf; 49 | GError *err = NULL; 50 | gboolean res; 51 | gchar* fname = build_config_filename(); 52 | 53 | gkf = g_key_file_new(); 54 | if (g_file_test(fname, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) { 55 | res = g_key_file_load_from_file(gkf, fname, G_KEY_FILE_NONE, &err); 56 | if (!res) { 57 | g_warning("multiload_ps_settings_open_for_read: %s", err->message); 58 | g_key_file_free(gkf); 59 | gkf = NULL; 60 | } 61 | } 62 | 63 | g_free(fname); 64 | g_clear_error(&err); 65 | return gkf; 66 | } 67 | gpointer 68 | multiload_ps_settings_open_for_save(MultiloadPlugin *ma) 69 | { 70 | return g_key_file_new(); 71 | } 72 | 73 | gboolean 74 | multiload_ps_settings_save(gpointer settings) 75 | { 76 | GError *err = NULL; 77 | gboolean res; 78 | gchar* fname = build_config_filename(); 79 | 80 | // avoid to use g_key_file_save_to_file because it's available only for glib>=2.40 81 | gchar* settings_data = g_key_file_to_data ((GKeyFile*)settings, NULL, NULL); 82 | res = g_file_set_contents (fname, settings_data, -1, &err); 83 | 84 | if (!res) 85 | g_warning("multiload_ps_settings_save: %s", err->message); 86 | 87 | g_free(fname); 88 | g_free(settings_data); 89 | g_clear_error(&err); 90 | return res; 91 | } 92 | 93 | void 94 | multiload_ps_settings_close(gpointer settings) 95 | { 96 | g_key_file_free((GKeyFile*)settings); 97 | } 98 | 99 | gboolean 100 | multiload_ps_settings_get_int(gpointer settings, const gchar *key, int *destination) 101 | { 102 | GError *err = NULL; 103 | gboolean ret; 104 | int temp; 105 | 106 | temp = g_key_file_get_integer ((GKeyFile*)settings, G_KEY_GROUP_NAME, key, &err); 107 | if (G_LIKELY(err == NULL || err->code == 0)) { 108 | *destination = temp; 109 | ret = TRUE; 110 | } else { 111 | ret = FALSE; 112 | } 113 | 114 | g_clear_error(&err); 115 | return ret; 116 | } 117 | gboolean 118 | multiload_ps_settings_get_boolean(gpointer settings, const gchar *key, gboolean *destination) 119 | { 120 | GError *err = NULL; 121 | gboolean ret; 122 | gboolean temp; 123 | 124 | temp = g_key_file_get_boolean ((GKeyFile*)settings, G_KEY_GROUP_NAME, key, &err); 125 | if (G_LIKELY(err == NULL || err->code == 0)) { 126 | *destination = temp; 127 | ret = TRUE; 128 | } else { 129 | ret = FALSE; 130 | } 131 | 132 | g_clear_error(&err); 133 | return ret; 134 | } 135 | gboolean 136 | multiload_ps_settings_get_string(gpointer settings, const gchar *key, gchar *destination, size_t maxlen) 137 | { 138 | GError *err = NULL; 139 | gboolean ret; 140 | gchar *temp; 141 | 142 | temp = g_key_file_get_string ((GKeyFile*)settings, G_KEY_GROUP_NAME, key, &err); 143 | if (G_LIKELY((err == NULL || err->code == 0) && temp != NULL)) { 144 | strncpy(destination, temp, maxlen); 145 | ret = TRUE; 146 | } else { 147 | ret = FALSE; 148 | } 149 | 150 | g_clear_error(&err); 151 | g_free(temp); 152 | return ret; 153 | } 154 | 155 | void 156 | multiload_ps_settings_set_int(gpointer settings, const gchar *key, int value) 157 | { 158 | g_key_file_set_integer ((GKeyFile*)settings, G_KEY_GROUP_NAME, key, value); 159 | } 160 | void 161 | multiload_ps_settings_set_boolean(gpointer settings, const gchar *key, gboolean value) 162 | { 163 | g_key_file_set_boolean ((GKeyFile*)settings, G_KEY_GROUP_NAME, key, value); 164 | } 165 | void 166 | multiload_ps_settings_set_string(gpointer settings, const gchar *key, const gchar *value) 167 | { 168 | g_key_file_set_string ((GKeyFile*)settings, G_KEY_GROUP_NAME, key, value); 169 | } 170 | 171 | void 172 | multiload_ps_preferences_closed_cb(MultiloadPlugin *ma) 173 | { 174 | } 175 | -------------------------------------------------------------------------------- /common/ps-settings-impl-gsettings.inc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | /* 23 | * Include this file in any plugin.c to make it use GSettings (accessible by dconf). 24 | * 25 | * PREREQUISITES 26 | * ------------- 27 | * In main / plugin constructor / whatever runs before the plugin, a new GSettings must 28 | * be created and assigned to _settings, e.g: _settings = g_settings_new(...); 29 | */ 30 | 31 | #include 32 | 33 | static GSettings *_settings = NULL; 34 | 35 | gpointer 36 | multiload_ps_settings_open_for_read(MultiloadPlugin *ma) 37 | { 38 | if (_settings == NULL) 39 | g_error("_settings == NULL - did you remember to create new GSettings* and assign to _settings?"); 40 | return _settings; 41 | } 42 | gpointer 43 | multiload_ps_settings_open_for_save(MultiloadPlugin *ma) 44 | { 45 | if (_settings == NULL) 46 | g_error("_settings == NULL - did you remember to create new GSettings* and assign to _settings?"); 47 | return _settings; 48 | } 49 | 50 | gboolean 51 | multiload_ps_settings_save(gpointer settings) 52 | { 53 | g_settings_sync(); 54 | return TRUE; 55 | } 56 | 57 | void 58 | multiload_ps_settings_close(gpointer settings) 59 | { 60 | } 61 | 62 | gboolean 63 | multiload_ps_settings_get_int(gpointer settings, const gchar *key, int *destination) 64 | { 65 | *destination = g_settings_get_int((GSettings*)settings, key); 66 | return TRUE; 67 | } 68 | gboolean 69 | multiload_ps_settings_get_boolean(gpointer settings, const gchar *key, gboolean *destination) 70 | { 71 | *destination = g_settings_get_boolean((GSettings*)settings, key); 72 | return TRUE; 73 | } 74 | gboolean 75 | multiload_ps_settings_get_string(gpointer settings, const gchar *key, gchar *destination, size_t maxlen) 76 | { 77 | const gchar* temp = g_settings_get_string((GSettings*)settings, key); 78 | if (G_LIKELY(temp != NULL)) 79 | strncpy(destination, temp, maxlen); 80 | return TRUE; 81 | } 82 | 83 | void 84 | multiload_ps_settings_set_int(gpointer settings, const gchar *key, int value) 85 | { 86 | g_settings_set_int((GSettings*)settings, key, value); 87 | } 88 | void 89 | multiload_ps_settings_set_boolean(gpointer settings, const gchar *key, gboolean value) 90 | { 91 | g_settings_set_boolean((GSettings*)settings, key, value); 92 | } 93 | void 94 | multiload_ps_settings_set_string(gpointer settings, const gchar *key, const gchar *value) 95 | { 96 | g_settings_set_string((GSettings*)settings, key, value); 97 | } 98 | 99 | void 100 | multiload_ps_preferences_closed_cb(MultiloadPlugin *ma) 101 | { 102 | } 103 | 104 | -------------------------------------------------------------------------------- /common/ui.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #ifndef __UI_H__ 23 | #define __UI_H__ 24 | 25 | #include "multiload.h" 26 | 27 | 28 | G_BEGIN_DECLS 29 | 30 | G_GNUC_INTERNAL void 31 | multiload_ui_read (MultiloadPlugin *ma); 32 | G_GNUC_INTERNAL void 33 | multiload_ui_save (MultiloadPlugin *ma); 34 | G_GNUC_INTERNAL void 35 | multiload_ui_show_help(); 36 | G_GNUC_INTERNAL void 37 | multiload_ui_show_about (GtkWindow* parent); 38 | G_GNUC_INTERNAL GtkWidget * 39 | multiload_ui_configure_dialog_new (MultiloadPlugin *ma, GtkWindow *parent); 40 | G_GNUC_INTERNAL void 41 | multiload_ui_start_system_monitor(MultiloadPlugin *ma); 42 | 43 | G_GNUC_INTERNAL MultiloadOptions * 44 | multiload_ui_parse_cmdline(int *argc, char ***argv, GOptionEntry *extra_entries); 45 | G_GNUC_INTERNAL void 46 | multiload_ui_print_notice(); 47 | 48 | extern const char* MULTILOAD_CONFIG_PATH; 49 | 50 | G_END_DECLS 51 | 52 | #endif /* __UI_H__ */ 53 | -------------------------------------------------------------------------------- /common/util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #ifndef __UTIL_H__ 23 | #define __UTIL_H__ 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | 30 | G_BEGIN_DECLS 31 | 32 | G_GNUC_INTERNAL guint64 33 | calculate_speed(guint64 delta, guint period_ms); 34 | G_GNUC_INTERNAL char* 35 | str_replace(const char *string, const char *needle, const char *replacement); 36 | 37 | G_GNUC_INTERNAL gchar* 38 | format_size_for_display (guint64 size, gboolean iec_units); 39 | G_GNUC_INTERNAL gchar* 40 | format_rate_for_display (guint64 rate, gboolean iec_units); 41 | G_GNUC_INTERNAL gchar* 42 | format_percent(guint64 value, guint64 total, guint ndigits); 43 | G_GNUC_INTERNAL gchar* 44 | format_time_duration(gdouble seconds); 45 | 46 | G_GNUC_INTERNAL void 47 | show_modal_info_dialog(GtkWindow *parent, GtkMessageType type, const gchar *message); 48 | 49 | G_GNUC_INTERNAL gchar* 50 | get_system_monitor_executable(); 51 | G_GNUC_INTERNAL void 52 | xdg_open_url(); 53 | 54 | G_GNUC_INTERNAL GdkPixbuf* 55 | cairo_surface_to_gdk_pixbuf(cairo_surface_t *surface, guint width, guint height); 56 | 57 | G_GNUC_INTERNAL gchar* 58 | int_array_to_string(const int *data, const int length); 59 | G_GNUC_INTERNAL void 60 | string_to_int_array(const gchar *array_str, int *data, const int length); 61 | 62 | G_END_DECLS 63 | 64 | #endif /* __UTIL_H__ */ 65 | -------------------------------------------------------------------------------- /data/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 3 | -------------------------------------------------------------------------------- /data/color-scheme-arc.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_arc_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #1B1E24", 6 | "+ c #383C4A", 7 | "@ c #5924E2", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-colored-glass.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_colored_glass_xpm[] = { 3 | "20 20 129 2", 4 | " c None", 5 | ". c #5A7B97", 6 | "+ c #EDBBEC", 7 | "@ c #EABEEA", 8 | "# c #E8C0E7", 9 | "$ c #E1C4E4", 10 | "% c #DDCBDD", 11 | "& c #D8D0D8", 12 | "* c #D3D5D3", 13 | "= c #CEDACE", 14 | "- c #CBE0C8", 15 | "; c #C8E3C5", 16 | "> c #C6E5C3", 17 | ", c #C3E8C0", 18 | "' c #E7BFE9", 19 | ") c #E7C1E6", 20 | "! c #E3C5E2", 21 | "~ c #D7D1D4", 22 | "{ c #C0EABE", 23 | "] c #BEEDBB", 24 | "^ c #E4C4E3", 25 | "/ c #D3D8D0", 26 | "( c #CDDDCB", 27 | "_ c #C0EDBB", 28 | ": c #C3EDBB", 29 | "< c #C9EBBB", 30 | "[ c #D0D8D0", 31 | "} c #C3E5C3", 32 | "| c #C2ECBC", 33 | "1 c #C4ECBC", 34 | "2 c #CEEBBB", 35 | "3 c #D0EBBB", 36 | "4 c #D6EBBB", 37 | "5 c #D9E9BD", 38 | "6 c #DEE9BD", 39 | "7 c #C5EABE", 40 | "8 c #CBEBBB", 41 | "9 c #D3EBBB", 42 | "0 c #E3E9BD", 43 | "a c #E6E7BD", 44 | "b c #E9E6BD", 45 | "c c #EBE6BB", 46 | "d c #D7E9BD", 47 | "e c #E1E9BD", 48 | "f c #EDE5BB", 49 | "g c #ECE3BC", 50 | "h c #E9E4BF", 51 | "i c #E7E1C1", 52 | "j c #E6E9BD", 53 | "k c #EAE6BE", 54 | "l c #E8E5C0", 55 | "m c #E2E3C5", 56 | "n c #D9DECC", 57 | "o c #D0DAD2", 58 | "p c #E8E2C0", 59 | "q c #DCDECA", 60 | "r c #D2DAD0", 61 | "s c #CBDADD", 62 | "t c #C5D8E3", 63 | "u c #C0D7E8", 64 | "v c #E4E1C4", 65 | "w c #E0E0C8", 66 | "x c #CEDADA", 67 | "y c #C8DBE0", 68 | "z c #C3D8E5", 69 | "A c #BED5EA", 70 | "B c #BBD5ED", 71 | "C c #E5E2C3", 72 | "D c #DEE1C7", 73 | "E c #D5DDCD", 74 | "F c #BED3EA", 75 | "G c #E3E4C4", 76 | "H c #D8DDCD", 77 | "I c #CFD9D7", 78 | "J c #BBD8ED", 79 | "K c #BFD7E9", 80 | "L c #C1D4E7", 81 | "M c #C7D1E1", 82 | "N c #CCD1DC", 83 | "O c #D3D0D8", 84 | "P c #D0DAD5", 85 | "Q c #C1D6E7", 86 | "R c #C9D9E1", 87 | "S c #CED9DC", 88 | "T c #D4D4D6", 89 | "U c #D9D1CF", 90 | "V c #DECCCA", 91 | "W c #E4C7C4", 92 | "X c #E7C1C1", 93 | "Y c #C0D3E8", 94 | "Z c #C4D2E4", 95 | "` c #C7D4E1", 96 | " . c #CCD7DC", 97 | ".. c #D1D7D7", 98 | "+. c #D9D4D1", 99 | "@. c #E1C9C7", 100 | "#. c #E7C4C1", 101 | "$. c #E9BFBF", 102 | "%. c #EABEBE", 103 | "&. c #EAC1BE", 104 | "*. c #E5C3C3", 105 | "=. c #C5D0E3", 106 | "-. c #C8CDE0", 107 | ";. c #D0CEDA", 108 | ">. c #D7CFD7", 109 | ",. c #DACED0", 110 | "'. c #E5C6C3", 111 | "). c #E9C2BF", 112 | "!. c #EDBEBB", 113 | "~. c #EBBDBB", 114 | "{. c #E8C0C0", 115 | "]. c #E3C5C5", 116 | "^. c #DACECE", 117 | "/. c #D0D8D3", 118 | "(. c #DFC7CC", 119 | "_. c #E3C3C8", 120 | ":. c #E5C3C6", 121 | "<. c #ECBCBC", 122 | "[. c #E0C8C8", 123 | "}. c #D6D3D0", 124 | "|. c #CBDDD8", 125 | "1. c #C5E3E0", 126 | "2. c #C0E8E2", 127 | "3. c #EDBBBB", 128 | "4. c #DDCBC9", 129 | "5. c #D8D1CE", 130 | "6. c #C8E0DB", 131 | "7. c #BEEAE6", 132 | "8. c #BBEDE7", 133 | ". . . . . . . . . . . . . . . . . . . . ", 134 | ". . . . . . . . . . . . . . . . . . . . ", 135 | ". . + + + + + @ # $ % & * = - ; > , . . ", 136 | ". . + @ ' ) ! % ~ = ; > , { ] ] ] ] . . ", 137 | ". . ^ % & / ( ; , { ] ] ] _ _ : : < . . ", 138 | ". . [ - } { { ] ] _ | 1 < 2 3 4 5 6 . . ", 139 | ". . , { ] _ _ | 7 8 9 5 6 0 a b c c . . ", 140 | ". . ] _ : < 3 d 6 e a b c f f g h i . . ", 141 | ". . : < 9 6 j b c f f f f k l m n o . . ", 142 | ". . d 6 j c f f f k k p m q r s t u . . ", 143 | ". . b c f g k p v w n r x y z A B B . . ", 144 | ". . g h C D E o x y t u A B B B A F . . ", 145 | ". . G H I y z u A A B J K K L M N O . . ", 146 | ". . P t A A B B K K Q R S T U V W X . . ", 147 | ". . z A F Y Z ` ...+.V @.#.$.%.&.*.. . ", 148 | ". . =.-.;.>.,.V W '.).%.!.~.{.].^./.. . ", 149 | ". . (._.:.{.&.%.<.~.%.%.{.[.}.|.1.2.. . ", 150 | ". . %.<.3.3.3.{.'.[.4.5.* 6.2.7.8.8.. . ", 151 | ". . . . . . . . . . . . . . . . . . . . ", 152 | ". . . . . . . . . . . . . . . . . . . . "}; 153 | -------------------------------------------------------------------------------- /data/color-scheme-default.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_default_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #005C7F", 6 | "+ c #111D21", 7 | "@ c #036E95", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-dragon-ball-z.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_dragon_ball_z_xpm[] = { 3 | "20 20 203 2", 4 | " c None", 5 | ". c #A32208", 6 | "+ c #000000", 7 | "@ c #030000", 8 | "# c #1F0F00", 9 | "$ c #281800", 10 | "% c #110300", 11 | "& c #2A1B02", 12 | "* c #8C763A", 13 | "= c #CFB777", 14 | "- c #E8CD94", 15 | "; c #ECD099", 16 | "> c #DFC68A", 17 | ", c #B39D5C", 18 | "' c #5C481A", 19 | ") c #060000", 20 | "! c #604914", 21 | "~ c #E6CA7F", 22 | "{ c #FFE9BC", 23 | "] c #FFDCC0", 24 | "^ c #FFD2BF", 25 | "/ c #FFD0BE", 26 | "( c #FFD6BF", 27 | "_ c #FFE3C1", 28 | ": c #FFE6AA", 29 | "< c #AE9448", 30 | "[ c #1E1200", 31 | "} c #604905", 32 | "| c #FAD571", 33 | "1 c #FFCFA7", 34 | "2 c #FEBB98", 35 | "3 c #FEBA96", 36 | "4 c #FFBA96", 37 | "5 c #FFC29E", 38 | "6 c #FFE09F", 39 | "7 c #C0A032", 40 | "8 c #150C00", 41 | "9 c #291C00", 42 | "0 c #E8B322", 43 | "a c #FFBD7F", 44 | "b c #FEAA79", 45 | "c c #FEAD78", 46 | "d c #FEB078", 47 | "e c #FCAF78", 48 | "f c #F7AA78", 49 | "g c #FDB078", 50 | "h c #FEAF78", 51 | "i c #FEAC78", 52 | "j c #FEAE80", 53 | "k c #FFCE62", 54 | "l c #8D6C0A", 55 | "m c #8D6C04", 56 | "n c #FFA51F", 57 | "o c #FE9255", 58 | "p c #FE9F5E", 59 | "q c #FEA45C", 60 | "r c #FFAC5C", 61 | "s c #F7A85C", 62 | "t c #EC995C", 63 | "u c #FCAA5C", 64 | "v c #FFA75C", 65 | "w c #FEA15C", 66 | "x c #FE9B5D", 67 | "y c #FF9544", 68 | "z c #ECB031", 69 | "A c #281D03", 70 | "B c #040100", 71 | "C c #D09C11", 72 | "D c #FF841B", 73 | "E c #FE7623", 74 | "F c #FF8A36", 75 | "G c #FF983C", 76 | "H c #FEA43C", 77 | "I c #FDAD3C", 78 | "J c #FCAE3C", 79 | "K c #FEA83C", 80 | "L c #FF9D3C", 81 | "M c #FF913A", 82 | "N c #FE802A", 83 | "O c #FF7829", 84 | "P c #FFC35A", 85 | "Q c #635115", 86 | "R c #1E1600", 87 | "S c #E8A61B", 88 | "T c #FF7D24", 89 | "U c #FE771F", 90 | "V c #F9761F", 91 | "W c #F27B20", 92 | "X c #FD9722", 93 | "Y c #FEA922", 94 | "Z c #FFAC22", 95 | "` c #FFA022", 96 | " . c #F88721", 97 | ".. c #F3731E", 98 | "+. c #FE751B", 99 | "@. c #FE8D4A", 100 | "#. c #FFC472", 101 | "$. c #866E28", 102 | "%. c #281E00", 103 | "&. c #ECA721", 104 | "*. c #FF7F2A", 105 | "=. c #FF7E28", 106 | "-. c #F27328", 107 | ";. c #E16B28", 108 | ">. c #FC9928", 109 | ",. c #FFAA28", 110 | "'. c #FEAD28", 111 | "). c #FFA327", 112 | "!. c #EF7F25", 113 | "~. c #E26324", 114 | "{. c #FE8F45", 115 | "]. c #FFA46F", 116 | "^. c #FFC77E", 117 | "/. c #8D7530", 118 | "(. c #110B00", 119 | "_. c #E0A723", 120 | ":. c #FF8932", 121 | "<. c #FE7F2F", 122 | "[. c #FD832F", 123 | "}. c #FB8B2E", 124 | "|. c #FE9E2E", 125 | "1. c #FEAD2D", 126 | "2. c #FFB02D", 127 | "3. c #FEA32C", 128 | "4. c #FC9634", 129 | "5. c #FB9A52", 130 | "6. c #FEAB73", 131 | "7. c #FFAC7C", 132 | "8. c #FFD48B", 133 | "9. c #786329", 134 | "0. c #B58E1C", 135 | "a. c #FFA13A", 136 | "b. c #FE8136", 137 | "c. c #FE8A37", 138 | "d. c #FF9538", 139 | "e. c #FEA338", 140 | "f. c #FBAD3B", 141 | "g. c #F7AA42", 142 | "h. c #FDB351", 143 | "i. c #FFB368", 144 | "j. c #FFB479", 145 | "k. c #FEB280", 146 | "l. c #FFB88B", 147 | "m. c #FED587", 148 | "n. c #473811", 149 | "o. c #5B4809", 150 | "p. c #FFBE3C", 151 | "q. c #FF8D43", 152 | "r. c #FE9147", 153 | "s. c #FEA04D", 154 | "t. c #FFB154", 155 | "u. c #FAB75F", 156 | "v. c #F2B06A", 157 | "w. c #FDC073", 158 | "x. c #FEBD7B", 159 | "y. c #FEB882", 160 | "z. c #FEB78B", 161 | "A. c #FFD49F", 162 | "B. c #C8A95B", 163 | "C. c #0D0600", 164 | "D. c #080300", 165 | "E. c #AF8B22", 166 | "F. c #FFBF53", 167 | "G. c #FF9955", 168 | "H. c #FEA55B", 169 | "I. c #FEB764", 170 | "J. c #FEC56C", 171 | "K. c #FECA75", 172 | "L. c #FEC77E", 173 | "M. c #FEC186", 174 | "N. c #FEBC8E", 175 | "O. c #FFCEA0", 176 | "P. c #F7D78A", 177 | "Q. c #4B3813", 178 | "R. c #1E1400", 179 | "S. c #C09B31", 180 | "T. c #FFCC64", 181 | "U. c #FFB96E", 182 | "V. c #FFBD72", 183 | "W. c #FEC879", 184 | "X. c #FECF81", 185 | "Y. c #FECC8A", 186 | "Z. c #FFCB96", 187 | "`. c #FFDCA5", 188 | " + c #F7D98D", 189 | ".+ c #6B5323", 190 | "++ c #130A00", 191 | "@+ c #8E7225", 192 | "#+ c #E9C25C", 193 | "$+ c #FFDF7E", 194 | "%+ c #FFE88C", 195 | "&+ c #FFEB95", 196 | "*+ c #FFEB9C", 197 | "=+ c #FDDE90", 198 | "-+ c #C4AA60", 199 | ";+ c #4C3812", 200 | ">+ c #271B02", 201 | ",+ c #63501C", 202 | "'+ c #867031", 203 | ")+ c #8D7838", 204 | "!+ c #78642E", 205 | "~+ c #473814", 206 | "{+ c #0C0200", 207 | ". . . . . . . . . . . . . . . . . . . . ", 208 | ". . . . . . . . . . . . . . . . . . . . ", 209 | ". . + + + + + + @ # $ % + + + + + + . . ", 210 | ". . + + + + & * = - ; > , ' ) + + + . . ", 211 | ". . + + + ! ~ { ] ^ / ( _ : < [ + + . . ", 212 | ". . + + } | 1 2 3 3 4 3 3 5 6 7 8 + . . ", 213 | ". . + 9 0 a b c d e f g h i j k l + . . ", 214 | ". . + m n o p q r s t u v w x y z A . . ", 215 | ". . B C D E F G H I J K L M N O P Q . . ", 216 | ". . R S T U V W X Y Z ` ...+.@.#.$.. . ", 217 | ". . %.&.*.=.-.;.>.,.'.).!.~.{.].^./.. . ", 218 | ". . (._.:.<.[.}.|.1.2.3.4.5.6.7.8.9.. . ", 219 | ". . + 0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.. . ", 220 | ". . + o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.. . ", 221 | ". . + D.E.F.G.H.I.J.K.L.M.N.O.P.Q.+ . . ", 222 | ". . + + R.S.T.U.V.W.X.Y.Z.`. +.++ + . . ", 223 | ". . + + + ++@+#+$+%+&+*+=+-+;++ + + . . ", 224 | ". . + + + + + >+,+'+)+!+~+{++ + + + . . ", 225 | ". . . . . . . . . . . . . . . . . . . . ", 226 | ". . . . . . . . . . . . . . . . . . . . "}; 227 | -------------------------------------------------------------------------------- /data/color-scheme-earth.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_earth_xpm[] = { 3 | "20 20 200 2", 4 | " c None", 5 | ". c #2A5A6C", 6 | "+ c #000000", 7 | "@ c #15252B", 8 | "# c #3F6A7A", 9 | "$ c #89B1C0", 10 | "% c #D8E3E8", 11 | "& c #C0D6DF", 12 | "* c #84ADBD", 13 | "= c #346173", 14 | "- c #102127", 15 | "; c #396475", 16 | "> c #C4D9E2", 17 | ", c #DCE5EA", 18 | "' c #C1D7E1", 19 | ") c #DAE4E9", 20 | "! c #E0E7EB", 21 | "~ c #C5D9E2", 22 | "{ c #8ABACD", 23 | "] c #2A596C", 24 | "^ c #3E758A", 25 | "/ c #54A2C0", 26 | "( c #5BA4C1", 27 | "_ c #80B7CC", 28 | ": c #A6C9D6", 29 | "< c #6EAAC1", 30 | "[ c #59A1BC", 31 | "} c #5EA4BE", 32 | "| c #98C1D1", 33 | "1 c #86B7CA", 34 | "2 c #4393B2", 35 | "3 c #2B667D", 36 | "4 c #326072", 37 | "5 c #54A1BF", 38 | "6 c #529FBE", 39 | "7 c #4E9CB8", 40 | "8 c #4E9BB4", 41 | "9 c #58909B", 42 | "0 c #59807B", 43 | "a c #4D8B9A", 44 | "b c #4796B4", 45 | "c c #4293B1", 46 | "d c #3C8FAE", 47 | "e c #3A8DAD", 48 | "f c #205265", 49 | "g c #122329", 50 | "h c #4E9DB5", 51 | "i c #41957D", 52 | "j c #419077", 53 | "k c #646D4E", 54 | "l c #715A20", 55 | "m c #725A1E", 56 | "n c #527E7C", 57 | "o c #418AA1", 58 | "p c #3C8EAF", 59 | "q c #398DAD", 60 | "r c #378BAB", 61 | "s c #3489AA", 62 | "t c #0A1D24", 63 | "u c #315F71", 64 | "v c #519FBE", 65 | "w c #40947A", 66 | "x c #388F51", 67 | "y c #368D46", 68 | "z c #4590A4", 69 | "A c #528184", 70 | "B c #66663F", 71 | "C c #6F5C26", 72 | "D c #6C5F2D", 73 | "E c #44828F", 74 | "F c #368AA9", 75 | "G c #3187A8", 76 | "H c #1B4E62", 77 | "I c #44869F", 78 | "J c #4F9DBB", 79 | "K c #4B9AB0", 80 | "L c #378E4B", 81 | "M c #378E4E", 82 | "N c #368D44", 83 | "O c #4192AA", 84 | "P c #4091B0", 85 | "Q c #42899D", 86 | "R c #4C7C7D", 87 | "S c #705B22", 88 | "T c #705A21", 89 | "U c #487879", 90 | "V c #3284A4", 91 | "W c #2F85A6", 92 | "X c #256E8B", 93 | "Y c #4B97B6", 94 | "Z c #4A9AB8", 95 | "` c #449698", 96 | " . c #358D3F", 97 | ".. c #368D49", 98 | "+. c #3C8EA9", 99 | "@. c #3E8BA7", 100 | "#. c #676339", 101 | "$. c #715A1E", 102 | "%. c #72591C", 103 | "&. c #6E5C26", 104 | "*. c #3F7982", 105 | "=. c #2C82A2", 106 | "-. c #277D9D", 107 | ";. c #4996B3", 108 | ">. c #4898B6", 109 | ",. c #42949A", 110 | "'. c #378E52", 111 | "). c #358D44", 112 | "!. c #328B4E", 113 | "~. c #257D9D", 114 | "{. c #3A849B", 115 | "]. c #696132", 116 | "^. c #71591E", 117 | "/. c #705A20", 118 | "(. c #6D5C26", 119 | "_. c #3E7881", 120 | ":. c #2980A0", 121 | "<. c #247B9B", 122 | "[. c #3C819A", 123 | "}. c #4797B6", 124 | "|. c #4294AA", 125 | "1. c #358D49", 126 | "2. c #358C5B", 127 | "3. c #227D77", 128 | "4. c #1B7291", 129 | "5. c #5D694B", 130 | "6. c #6C5D2A", 131 | "7. c #6F5B23", 132 | "8. c #666033", 133 | "9. c #2E7D98", 134 | "0. c #267FA0", 135 | "a. c #1D6986", 136 | "b. c #29586B", 137 | "c. c #4495B4", 138 | "d. c #4192AB", 139 | "e. c #368D52", 140 | "f. c #338B44", 141 | "g. c #257F80", 142 | "h. c #2B768A", 143 | "i. c #65623A", 144 | "j. c #72591D", 145 | "k. c #536953", 146 | "l. c #287D9B", 147 | "m. c #237D9E", 148 | "n. c #13485C", 149 | "o. c #0E1F26", 150 | "p. c #4193B2", 151 | "q. c #3E90AF", 152 | "r. c #398E91", 153 | "s. c #348B5B", 154 | "t. c #2C7A8D", 155 | "u. c #625D31", 156 | "v. c #685F2F", 157 | "w. c #6B5D29", 158 | "x. c #675F30", 159 | "y. c #496D63", 160 | "z. c #217B9C", 161 | "A. c #061A21", 162 | "B. c #245568", 163 | "C. c #3B8FAF", 164 | "D. c #388CA8", 165 | "E. c #378A74", 166 | "F. c #4E7652", 167 | "G. c #5D6747", 168 | "H. c #666135", 169 | "I. c #686338", 170 | "J. c #656034", 171 | "K. c #695E2C", 172 | "L. c #5C684B", 173 | "M. c #287995", 174 | "N. c #207A9D", 175 | "O. c #11475B", 176 | "P. c #28657C", 177 | "Q. c #388CAC", 178 | "R. c #559CB3", 179 | "S. c #5C9DB1", 180 | "T. c #4589A0", 181 | "U. c #617A6A", 182 | "V. c #92A299", 183 | "W. c #607969", 184 | "X. c #407983", 185 | "Y. c #72A6B8", 186 | "Z. c #247C9D", 187 | "`. c #15566E", 188 | " + c #225467", 189 | ".+ c #A5C7D4", 190 | "++ c #D6E1E7", 191 | "@+ c #D0DEE4", 192 | "#+ c #D1DEE4", 193 | "$+ c #CEDDE3", 194 | "%+ c #7DAEC1", 195 | "&+ c #71A8BD", 196 | "*+ c #15495E", 197 | "=+ c #0B1E25", 198 | "-+ c #9BBAC6", 199 | ";+ c #D2DFE5", 200 | ">+ c #AAC8D4", 201 | ",+ c #A4BFCB", 202 | "'+ c #497181", 203 | ")+ c #081C23", 204 | ". . . . . . . . . . . . . . . . . . . . ", 205 | ". . . . . . . . . . . . . . . . . . . . ", 206 | ". . + + + + @ # $ % & * = - + + + + . . ", 207 | ". . + + + ; > , % ' ) ! ~ { ] + + + . . ", 208 | ". . + + ^ / ( _ : < [ } | 1 2 3 + + . . ", 209 | ". . + 4 5 6 7 8 9 0 a 2 b c d e f + . . ", 210 | ". . g 5 6 h i j k l m n o p q r s t . . ", 211 | ". . u v 7 w x y z A B C D E F s G H . . ", 212 | ". . I J K L M N O P Q R S T U V W X . . ", 213 | ". . Y Z ` .y ..+.@.#.$.%.%.&.*.=.-.. . ", 214 | ". . ;.>.,.'.).!.~.{.].^./.^.(._.:.<.. . ", 215 | ". . [.}.|.1.2.3.4.5.6.7././.8.9.0.a.. . ", 216 | ". . b.c.d.e.f.g.h.i.T T j./.k.l.m.n.. . ", 217 | ". . o.p.q.r.s.t.u.(.T v.w.x.y.<.z.A.. . ", 218 | ". . + B.C.D.E.F.G.H.I.J.K.L.M.N.O.+ . . ", 219 | ". . + + P.Q.R.S.T.U.V.W.X.Y.Z.`.+ + . . ", 220 | ". . + + + +.+++@+@+#+$+%+&+*++ + + . . ", 221 | ". . + + + + =+. -+;+>+,+'+)++ + + + . . ", 222 | ". . . . . . . . . . . . . . . . . . . . ", 223 | ". . . . . . . . . . . . . . . . . . . . "}; 224 | -------------------------------------------------------------------------------- /data/color-scheme-fruity.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_fruity_xpm[] = { 3 | "20 20 182 2", 4 | " c None", 5 | ". c #D9AE00", 6 | "+ c #AD5362", 7 | "@ c #AC5360", 8 | "# c #B36555", 9 | "$ c #C47F57", 10 | "% c #CC8B5E", 11 | "& c #C9875F", 12 | "* c #B86D57", 13 | "= c #AC545F", 14 | "- c #AD565E", 15 | "; c #D0925C", 16 | "> c #F2DBA7", 17 | ", c #FCF8E7", 18 | "' c #F9F3DA", 19 | ") c #F6EDC8", 20 | "! c #F9F4DD", 21 | "~ c #FDFAEA", 22 | "{ c #F0D699", 23 | "] c #C88253", 24 | "^ c #B36158", 25 | "/ c #EBCA86", 26 | "( c #FBF8E8", 27 | "_ c #F0E3AA", 28 | ": c #F0E1A6", 29 | "< c #ECD98E", 30 | "[ c #EBD78A", 31 | "} c #F0E2A8", 32 | "| c #F3E8B8", 33 | "1 c #FBF5DA", 34 | "2 c #D4995C", 35 | "3 c #AD575D", 36 | "4 c #EBC97F", 37 | "5 c #F9F4DB", 38 | "6 c #F2E5B1", 39 | "7 c #EBD686", 40 | "8 c #EDDA91", 41 | "9 c #E9D47F", 42 | "0 c #EBD789", 43 | "a c #E8D27A", 44 | "b c #EBD788", 45 | "c c #F6EEC9", 46 | "d c #FBF5DB", 47 | "e c #C68057", 48 | "f c #D29656", 49 | "g c #F9F2D6", 50 | "h c #EAD583", 51 | "i c #EBD787", 52 | "j c #EDDB92", 53 | "k c #E8D279", 54 | "l c #EBD888", 55 | "m c #E8D276", 56 | "n c #E9D47E", 57 | "o c #EAD57F", 58 | "p c #EEDE98", 59 | "q c #E6CE6A", 60 | "r c #F1E4A9", 61 | "s c #F1D79A", 62 | "t c #AC555E", 63 | "u c #F4E1AD", 64 | "v c #EFE0A1", 65 | "w c #E8D176", 66 | "x c #E7D173", 67 | "y c #EAD681", 68 | "z c #E9D57D", 69 | "A c #E8D172", 70 | "B c #EAD57D", 71 | "C c #E5CB60", 72 | "D c #E4CB5D", 73 | "E c #E7D06C", 74 | "F c #FBF6DB", 75 | "G c #C57D4B", 76 | "H c #BC7353", 77 | "I c #FDFBED", 78 | "J c #F2E6B1", 79 | "K c #ECD98A", 80 | "L c #EBD783", 81 | "M c #E7CF6C", 82 | "N c #E8D275", 83 | "O c #EFE09D", 84 | "P c #EFE09C", 85 | "Q c #E6CE67", 86 | "R c #E3C957", 87 | "S c #E3C854", 88 | "T c #E4CA57", 89 | "U c #EAD67D", 90 | "V c #FDFCEF", 91 | "W c #D69941", 92 | "X c #D0945F", 93 | "Y c #FDFCF1", 94 | "Z c #E6CD65", 95 | "` c #E4CB5E", 96 | " . c #E4CA5D", 97 | ".. c #ECD988", 98 | "+. c #EEDD94", 99 | "@. c #FAF5D9", 100 | "#. c #FBF7DF", 101 | "$. c #EAD57A", 102 | "%. c #E6CC5E", 103 | "&. c #E5CB5B", 104 | "*. c #E5CC5C", 105 | "=. c #FDFCEE", 106 | "-. c #DEA63E", 107 | ";. c #D49C64", 108 | ">. c #FEFDF0", 109 | ",. c #EDDD92", 110 | "'. c #ECD987", 111 | "). c #E9D476", 112 | "!. c #E3C852", 113 | "~. c #E7CF67", 114 | "{. c #F0E19D", 115 | "]. c #EBD880", 116 | "^. c #E4CA58", 117 | "/. c #E6CE63", 118 | "(. c #E1C445", 119 | "_. c #E1C340", 120 | ":. c #E5CB59", 121 | "<. c #FDF9E5", 122 | "[. c #DBA137", 123 | "}. c #CE8F5B", 124 | "|. c #FEFDEF", 125 | "1. c #EAD579", 126 | "2. c #E1C342", 127 | "3. c #E3C74C", 128 | "4. c #E5CC5D", 129 | "5. c #E8D16C", 130 | "6. c #E5CC5B", 131 | "7. c #E7D067", 132 | "8. c #E9D371", 133 | "9. c #F8E9B3", 134 | "0. c #D19040", 135 | "a. c #B46753", 136 | "b. c #FCF7DD", 137 | "c. c #F6EDBF", 138 | "d. c #E1C443", 139 | "e. c #EAD67A", 140 | "f. c #EFCC5D", 141 | "g. c #BB6D50", 142 | "h. c #AC5361", 143 | "i. c #E4BE7F", 144 | "j. c #F7EFC5", 145 | "k. c #EBD87F", 146 | "l. c #E6CD60", 147 | "m. c #E1C341", 148 | "n. c #EAD578", 149 | "o. c #FAF5D7", 150 | "p. c #F5E09B", 151 | "q. c #E0A933", 152 | "r. c #B26059", 153 | "s. c #F3E1B2", 154 | "t. c #FCFAE6", 155 | "u. c #EFE099", 156 | "v. c #E6CE62", 157 | "w. c #EBD982", 158 | "x. c #E8D26F", 159 | "y. c #F9F4D4", 160 | "z. c #FDFCED", 161 | "A. c #F5DE93", 162 | "B. c #EABA2B", 163 | "C. c #BA6B52", 164 | "D. c #B66758", 165 | "E. c #EED396", 166 | "F. c #FCF9E3", 167 | "G. c #FDFAE6", 168 | "H. c #F7E6AB", 169 | "I. c #EEC751", 170 | "J. c #E9B92A", 171 | "K. c #C67F49", 172 | "L. c #AD575C", 173 | "M. c #CF8844", 174 | "N. c #E7B151", 175 | "O. c #EEC065", 176 | "P. c #ECB851", 177 | "Q. c #E9AC30", 178 | "R. c #E9AB2B", 179 | "S. c #DD9B35", 180 | "T. c #B96A52", 181 | "U. c #AC5855", 182 | "V. c #B4604C", 183 | "W. c #B7634A", 184 | "X. c #B4604D", 185 | "Y. c #AC5757", 186 | ". . . . . . . . . . . . . . . . . . . . ", 187 | ". . . . . . . . . . . . . . . . . . . . ", 188 | ". . + + + + + @ # $ % & * = + + + + . . ", 189 | ". . + + + - ; > , ' ) ! ~ { ] + + + . . ", 190 | ". . + + ^ / ( _ : < [ < } | 1 2 + + . . ", 191 | ". . + 3 4 5 6 7 7 8 9 0 a b c d e + . . ", 192 | ". . + f g h i j k l m n o p q r s - . . ", 193 | ". . t u v w x n y z y A B C D E F G . . ", 194 | ". . H I J K L M N O P Q R S T U V W . . ", 195 | ". . X Y Z ` ...+.@.#.$.%.&.*.&.=.-.. . ", 196 | ". . ;.>.,.'.).!.~.{.].^./.(._.:.<.[.. . ", 197 | ". . }.|.1.(.2.3.4.5._.6._.7.8.{.9.0.. . ", 198 | ". . a.b.c.d.d.:._./._.6.2._.e.=.f.g.. . ", 199 | ". . h.i.|.j.k._._.l._.m.n.6.o.p.q.h.. . ", 200 | ". . + r.s.|.t.u.v.w.4.x.y.z.A.B.C.+ . . ", 201 | ". . + + D.E.F.|.|.|.|.G.H.I.J.K.+ + . . ", 202 | ". . + + + L.M.N.O.O.P.Q.R.S.T.+ + + . . ", 203 | ". . + + + + + @ U.V.W.X.Y.+ + + + + . . ", 204 | ". . . . . . . . . . . . . . . . . . . . ", 205 | ". . . . . . . . . . . . . . . . . . . . "}; 206 | -------------------------------------------------------------------------------- /data/color-scheme-jupiter.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_jupiter_xpm[] = { 3 | "20 20 190 2", 4 | " c None", 5 | ". c #444C3B", 6 | "+ c #000000", 7 | "@ c #515545", 8 | "# c #90997D", 9 | "$ c #98A183", 10 | "% c #97A082", 11 | "& c #959F81", 12 | "* c #8F9B7C", 13 | "= c #828E71", 14 | "- c #464D3C", 15 | "; c #929A7E", 16 | "> c #9DA688", 17 | ", c #9BA386", 18 | "' c #98A184", 19 | ") c #95A081", 20 | "! c #929E7E", 21 | "~ c #8F9C7C", 22 | "{ c #8D9A7A", 23 | "] c #8A9877", 24 | "^ c #7A8969", 25 | "/ c #9AA185", 26 | "( c #9DA588", 27 | "_ c #97A184", 28 | ": c #939E7F", 29 | "< c #909B7C", 30 | "[ c #8C9A7A", 31 | "} c #8A9777", 32 | "| c #879675", 33 | "1 c #849472", 34 | "2 c #7A8B6B", 35 | "3 c #9AA386", 36 | "4 c #959F80", 37 | "5 c #929D7E", 38 | "6 c #8D997A", 39 | "7 c #899878", 40 | "8 c #879575", 41 | "9 c #849473", 42 | "0 c #829270", 43 | "a c #7E8F6D", 44 | "b c #6F805F", 45 | "c c #515546", 46 | "d c #9CA387", 47 | "e c #99A284", 48 | "f c #919C7D", 49 | "g c #8E9A7B", 50 | "h c #8B9978", 51 | "i c #899676", 52 | "j c #859473", 53 | "k c #839272", 54 | "l c #80916F", 55 | "m c #7D8E6C", 56 | "n c #7C8D69", 57 | "o c #798B67", 58 | "p c #394431", 59 | "q c #8C9177", 60 | "r c #91957B", 61 | "s c #8F9379", 62 | "t c #8F9479", 63 | "u c #8C9277", 64 | "v c #8C9477", 65 | "w c #899275", 66 | "x c #858E71", 67 | "y c #848F72", 68 | "z c #818E6F", 69 | "A c #808F6E", 70 | "B c #7D8C6C", 71 | "C c #7C8A6A", 72 | "D c #798967", 73 | "E c #768865", 74 | "F c #687A59", 75 | "G c #96A081", 76 | "H c #969F81", 77 | "I c #939D7F", 78 | "J c #8F997C", 79 | "K c #8D9779", 80 | "L c #869173", 81 | "M c #838D6F", 82 | "N c #828D6E", 83 | "O c #7F8B6C", 84 | "P c #7D886A", 85 | "Q c #7B8668", 86 | "R c #788566", 87 | "S c #778465", 88 | "T c #758262", 89 | "U c #6E805E", 90 | "V c #939C7F", 91 | "W c #929A7D", 92 | "X c #919B7C", 93 | "Y c #8D997B", 94 | "Z c #8B9877", 95 | "` c #889675", 96 | " . c #80906E", 97 | ".. c #7C8D6C", 98 | "+. c #7B8B6A", 99 | "@. c #788A67", 100 | "#. c #758864", 101 | "$. c #728762", 102 | "%. c #708461", 103 | "&. c #6C825E", 104 | "*. c #8C9176", 105 | "=. c #888F74", 106 | "-. c #868D71", 107 | ";. c #869072", 108 | ">. c #848F71", 109 | ",. c #818D6F", 110 | "'. c #7B8467", 111 | "). c #798466", 112 | "!. c #778365", 113 | "~. c #748462", 114 | "{. c #718161", 115 | "]. c #6F7E5E", 116 | "^. c #6E7B5C", 117 | "/. c #8D9879", 118 | "(. c #8D987A", 119 | "_. c #8B9777", 120 | ":. c #838E71", 121 | "<. c #818D6E", 122 | "[. c #7C8A6B", 123 | "}. c #7A8668", 124 | "|. c #798366", 125 | "1. c #778164", 126 | "2. c #718160", 127 | "3. c #6F805E", 128 | "4. c #6B7F5C", 129 | "5. c #647B56", 130 | "6. c #80896C", 131 | "7. c #878F72", 132 | "8. c #828C6F", 133 | "9. c #818A6E", 134 | "0. c #7E876B", 135 | "a. c #7C896A", 136 | "b. c #7A8868", 137 | "c. c #778867", 138 | "d. c #758664", 139 | "e. c #728462", 140 | "f. c #708360", 141 | "g. c #6D825E", 142 | "h. c #6C7E5C", 143 | "i. c #6C7B5B", 144 | "j. c #5C704E", 145 | "k. c #879374", 146 | "l. c #859171", 147 | "m. c #818F6F", 148 | "n. c #7F886B", 149 | "o. c #7C886A", 150 | "p. c #7A8867", 151 | "q. c #778666", 152 | "r. c #758364", 153 | "s. c #748162", 154 | "t. c #728061", 155 | "u. c #6E7D5C", 156 | "v. c #6A7D5A", 157 | "w. c #697A58", 158 | "x. c #303E29", 159 | "y. c #778667", 160 | "z. c #81916F", 161 | "A. c #7E906D", 162 | "B. c #7C8E6B", 163 | "C. c #7A8C68", 164 | "D. c #748764", 165 | "E. c #728662", 166 | "F. c #6F8460", 167 | "G. c #69815B", 168 | "H. c #677E59", 169 | "I. c #637C56", 170 | "J. c #546D49", 171 | "K. c #7A8A69", 172 | "L. c #7A8D69", 173 | "M. c #778B67", 174 | "N. c #6B835D", 175 | "O. c #6A815B", 176 | "P. c #667F59", 177 | "Q. c #647D56", 178 | "R. c #59754E", 179 | "S. c #6D7F5E", 180 | "T. c #748964", 181 | "U. c #6F855F", 182 | "V. c #6C835E", 183 | "W. c #667F58", 184 | "X. c #637D56", 185 | "Y. c #546E48", 186 | "Z. c #384430", 187 | "`. c #647956", 188 | " + c #6B825D", 189 | ".+ c #6B815C", 190 | "++ c #67805A", 191 | "@+ c #627C54", 192 | "#+ c #57704B", 193 | "$+ c #2D3C27", 194 | ". . . . . . . . . . . . . . . . . . . . ", 195 | ". . . . . . . . . . . . . . . . . . . . ", 196 | ". . + + + + @ # $ % & * = - + + + + . . ", 197 | ". . + + + ; > , ' ) ! ~ { ] ^ + + + . . ", 198 | ". . + + / ( , _ & : < [ } | 1 2 + + . . ", 199 | ". . + ; ( 3 _ 4 5 * 6 7 8 9 0 a b + . . ", 200 | ". . c d e % : f g h i j k l m n o p . . ", 201 | ". . q r s t u v w x y z A B C D E F . . ", 202 | ". . G H I J K w L M N O P Q R S T U . . ", 203 | ". . V W X Y Z ` j 0 ...+.@.#.$.%.&.. . ", 204 | ". . u *.=.-.;.>.,.O P '.).!.~.{.].^.. . ", 205 | ". . /.(._.8 :.<.O [.}.|.1.T 2.3.4.5.. . ", 206 | ". . 6.7.x 8.9.0.a.b.c.d.e.f.g.h.i.j.. . ", 207 | ". . . k.l.m.n.o.p.q.r.s.t.].u.v.w.x.. . ", 208 | ". . + y.z.A.B.C.@.D.E.F.&.G.H.I.J.+ . . ", 209 | ". . + + K.m L.M.#.$.F.N.O.P.Q.R.+ + . . ", 210 | ". . + + + S.M.T.E.U.V.G.W.X.Y.+ + + . . ", 211 | ". . + + + + Z.`. +.+++@+#+$++ + + + . . ", 212 | ". . . . . . . . . . . . . . . . . . . . ", 213 | ". . . . . . . . . . . . . . . . . . . . "}; 214 | -------------------------------------------------------------------------------- /data/color-scheme-linux-mint.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_linux_mint_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #3C3C3C", 6 | "+ c #484848", 7 | "@ c #97BF60", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-mars.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_mars_xpm[] = { 3 | "20 20 122 2", 4 | " c None", 5 | ". c #362C21", 6 | "+ c #000000", 7 | "@ c #483622", 8 | "# c #7F613C", 9 | "$ c #866540", 10 | "% c #856541", 11 | "& c #826442", 12 | "* c #7F6240", 13 | "= c #755A3C", 14 | "- c #403221", 15 | "; c #82623D", 16 | "> c #8A6842", 17 | ", c #876742", 18 | "' c #856641", 19 | ") c #826541", 20 | "! c #806242", 21 | "~ c #7D6242", 22 | "{ c #7B6041", 23 | "] c #795F41", 24 | "^ c #70573C", 25 | "/ c #87663F", 26 | "( c #8A6941", 27 | "_ c #826542", 28 | ": c #7F6341", 29 | "< c #7E6142", 30 | "[ c #7B6141", 31 | "} c #775E41", 32 | "| c #745C41", 33 | "1 c #70583F", 34 | "2 c #81623D", 35 | "3 c #896842", 36 | "4 c #876741", 37 | "5 c #856542", 38 | "6 c #836441", 39 | "7 c #806342", 40 | "8 c #7D6141", 41 | "9 c #765D41", 42 | "0 c #715B40", 43 | "a c #6F5941", 44 | "b c #67533C", 45 | "c c #846642", 46 | "d c #806341", 47 | "e c #765E41", 48 | "f c #725B41", 49 | "g c #6F5A41", 50 | "h c #6D5841", 51 | "i c #6B5640", 52 | "j c #372D21", 53 | "k c #7F613D", 54 | "l c #7D6142", 55 | "m c #7C6041", 56 | "n c #6A5641", 57 | "o c #685641", 58 | "p c #614F3B", 59 | "q c #856640", 60 | "r c #826441", 61 | "s c #806241", 62 | "t c #7E6141", 63 | "u c #705A41", 64 | "v c #6B5741", 65 | "w c #685540", 66 | "x c #665440", 67 | "y c #63523F", 68 | "z c #785E41", 69 | "A c #715B41", 70 | "B c #6F5940", 71 | "C c #6B5641", 72 | "D c #685640", 73 | "E c #665441", 74 | "F c #635240", 75 | "G c #615140", 76 | "H c #846541", 77 | "I c #7E6241", 78 | "J c #6A5740", 79 | "K c #655440", 80 | "L c #5F4F40", 81 | "M c #826440", 82 | "N c #836541", 83 | "O c #8E6B41", 84 | "P c #816341", 85 | "Q c #7F6241", 86 | "R c #755C41", 87 | "S c #735B40", 88 | "T c #715A40", 89 | "U c #5D4E3F", 90 | "V c #745A3C", 91 | "W c #785E40", 92 | "X c #695640", 93 | "Y c #55483B", 94 | "Z c #3F3121", 95 | "` c #785F41", 96 | " . c #705941", 97 | ".. c #6E5740", 98 | "+. c #6C5740", 99 | "@. c #675540", 100 | "#. c #655441", 101 | "$. c #635241", 102 | "%. c #605041", 103 | "&. c #5A4D40", 104 | "*. c #2F2821", 105 | "=. c #6F563C", 106 | "-. c #715A41", 107 | ";. c #685541", 108 | ">. c #635341", 109 | ",. c #615240", 110 | "'. c #5F5041", 111 | "). c #5C4F40", 112 | "!. c #54473B", 113 | "~. c #6E583E", 114 | "{. c #645240", 115 | "]. c #5E5040", 116 | "^. c #5D4E40", 117 | "/. c #564B3E", 118 | "(. c #66523C", 119 | "_. c #655340", 120 | ":. c #635340", 121 | "<. c #604F3B", 122 | "[. c #62523F", 123 | "}. c #5F5040", 124 | "|. c #5B4E3F", 125 | "1. c #2F2721", 126 | ". . . . . . . . . . . . . . . . . . . . ", 127 | ". . . . . . . . . . . . . . . . . . . . ", 128 | ". . + + + + @ # $ % & * = - + + + + . . ", 129 | ". . + + + ; > , ' ) ! ~ { ] ^ + + + . . ", 130 | ". . + + / ( , ' _ : < [ ] } | 1 + + . . ", 131 | ". . + 2 3 4 5 6 7 8 [ ] 9 | 0 a b + . . ", 132 | ". . @ 3 , c & d 8 { ] e | f g h i j . . ", 133 | ". . k , c _ d l m ] e | f a h n o p . . ", 134 | ". . q c r s t { ] 9 | 0 u h v w x y . . ", 135 | ". . ' r d l { z e | A B h C D E F G . . ", 136 | ". . ' H I { ] 9 | f a h J w x K F L . . ", 137 | ". . M N O % 6 r P Q R S T B ] 6 P U . . ", 138 | ". . V { { ) r d Q I ' H H r W r X Y . . ", 139 | ". . Z ` e | f ...+.X @.#.$.%.L &.*.. . ", 140 | ". . + =.| -.B h C ;.K >.,.'.).&.!.+ . . ", 141 | ". . + + ~.a h n ;.K {.G ].^.&./.+ + . . ", 142 | ". . + + + (.n o _.:.G '.^.&.!.+ + + . . ", 143 | ". . + + + + . <.[.G }.|.Y 1.+ + + + . . ", 144 | ". . . . . . . . . . . . . . . . . . . . ", 145 | ". . . . . . . . . . . . . . . . . . . . "}; 146 | -------------------------------------------------------------------------------- /data/color-scheme-moon.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_moon_xpm[] = { 3 | "20 20 18 1", 4 | " c None", 5 | ". c #494949", 6 | "+ c #000000", 7 | "@ c #090909", 8 | "# c #959595", 9 | "$ c #C8C8C8", 10 | "% c #D4D4D4", 11 | "& c #D3D3D3", 12 | "* c #6C6C6C", 13 | "= c #D2D2D2", 14 | "- c #C7C7C7", 15 | "; c #B8B8B8", 16 | "> c #D1D1D1", 17 | ", c #AAAAAA", 18 | "' c #D0D0D0", 19 | ") c #A1A1A1", 20 | "! c #CDCDCD", 21 | "~ c #BDBDBD", 22 | "....................", 23 | "....................", 24 | "..++++@.#$$#.@++++..", 25 | "..+++.%%%%%&%%.+++..", 26 | "..++*%==%%&-&%%*++..", 27 | "..+.%=;;=%>,>%%%.+..", 28 | "..@%%%==%%%>%%'%%@..", 29 | "...%%'%%%&&%%')'%...", 30 | "..#%')'%&!!&%%'%%#..", 31 | "..$%%'%%=~~=%=%%%$..", 32 | "..$%%%%%%==%=;=%%$..", 33 | "..#%%%>&%%%%=;=%%#..", 34 | "...%%>,-&%&&%=%%%...", 35 | "..@%%%>&%&!!&%%%%@..", 36 | "..+.%%%%%=~~=%%%.+..", 37 | "..++*%%%%%==%%%*++..", 38 | "..+++.%%%%%%%%.+++..", 39 | "..++++@.#$$#.@++++..", 40 | "....................", 41 | "...................."}; 42 | -------------------------------------------------------------------------------- /data/color-scheme-neptune.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_neptune_xpm[] = { 3 | "20 20 169 2", 4 | " c None", 5 | ". c #2F275B", 6 | "+ c #000000", 7 | "@ c #141128", 8 | "# c #372F6C", 9 | "$ c #4D4297", 10 | "% c #574AAD", 11 | "& c #574AA9", 12 | "* c #4A3E91", 13 | "= c #332B63", 14 | "- c #120F23", 15 | "; c #372F6E", 16 | "> c #5D50B8", 17 | ", c #5C4EB5", 18 | "' c #5A4DB1", 19 | ") c #594BAF", 20 | "! c #584BAB", 21 | "~ c #5748A8", 22 | "{ c #5548A5", 23 | "] c #5446A2", 24 | "^ c #31285D", 25 | "/ c #433A85", 26 | "( c #5D50B7", 27 | "_ c #5B4EB4", 28 | ": c #5B4DB1", 29 | "< c #594BAD", 30 | "[ c #5649A7", 31 | "} c #5647A5", 32 | "| c #53459F", 33 | "1 c #52439B", 34 | "2 c #392F6D", 35 | "3 c #372F6D", 36 | "4 c #5D4FB6", 37 | "5 c #5A4DB0", 38 | "6 c #574AAA", 39 | "7 c #5749A7", 40 | "8 c #5548A4", 41 | "9 c #5345A1", 42 | "0 c #53459E", 43 | "a c #52429B", 44 | "b c #504198", 45 | "c c #4F4095", 46 | "d c #2D2556", 47 | "e c #141127", 48 | "f c #5C50B6", 49 | "g c #5C4EB3", 50 | "h c #584CAD", 51 | "i c #584AAA", 52 | "j c #5649A6", 53 | "k c #5547A4", 54 | "l c #5346A1", 55 | "m c #52449E", 56 | "n c #51429B", 57 | "o c #504197", 58 | "p c #4D3E91", 59 | "q c #4D3C8E", 60 | "r c #100C1D", 61 | "s c #372E6B", 62 | "t c #5B4EB3", 63 | "u c #594CB0", 64 | "v c #584BAD", 65 | "w c #584AA9", 66 | "x c #5648A7", 67 | "y c #5546A3", 68 | "z c #5445A0", 69 | "A c #52449D", 70 | "B c #51429A", 71 | "C c #4F3F94", 72 | "D c #4E3E91", 73 | "E c #4D3D8D", 74 | "F c #4B3B8A", 75 | "G c #2B224F", 76 | "H c #4C4196", 77 | "I c #594CAF", 78 | "J c #584BAC", 79 | "K c #5749A9", 80 | "L c #5648A6", 81 | "M c #5447A3", 82 | "N c #52449C", 83 | "O c #504196", 84 | "P c #4F3F93", 85 | "Q c #4D3E90", 86 | "R c #4C3C8D", 87 | "S c #4A3A87", 88 | "T c #3C2F6F", 89 | "U c #5749AA", 90 | "V c #584AAC", 91 | "W c #5749A8", 92 | "X c #5547A5", 93 | "Y c #5546A2", 94 | "Z c #5344A0", 95 | "` c #52439C", 96 | " . c #514299", 97 | ".. c #4F3F92", 98 | "+. c #4E3D90", 99 | "@. c #4C3C8C", 100 | "#. c #4A3B8A", 101 | "$. c #493987", 102 | "%. c #483884", 103 | "&. c #45347C", 104 | "*. c #5547A6", 105 | "=. c #504298", 106 | "-. c #504095", 107 | ";. c #4E3F93", 108 | ">. c #4D3D8F", 109 | ",. c #4A3A89", 110 | "'. c #4A3986", 111 | "). c #483883", 112 | "!. c #473680", 113 | "~. c #433379", 114 | "{. c #493C8D", 115 | "]. c #5445A1", 116 | "^. c #52459E", 117 | "/. c #51439C", 118 | "(. c #514298", 119 | "_. c #4E3E92", 120 | ":. c #4D3D8E", 121 | "<. c #4A3A88", 122 | "[. c #493986", 123 | "}. c #483882", 124 | "|. c #47367F", 125 | "1. c #392B66", 126 | "2. c #322A61", 127 | "3. c #53449E", 128 | "4. c #514198", 129 | "5. c #4F4094", 130 | "6. c #4E3F91", 131 | "7. c #4C3B8B", 132 | "8. c #4A3B89", 133 | "9. c #493885", 134 | "0. c #483782", 135 | "a. c #46347C", 136 | "b. c #443378", 137 | "c. c #271D45", 138 | "d. c #110E22", 139 | "e. c #4B3C8A", 140 | "f. c #483984", 141 | "g. c #473782", 142 | "h. c #46367E", 143 | "i. c #45347B", 144 | "j. c #443278", 145 | "k. c #433175", 146 | "l. c #0E0A18", 147 | "m. c #4B3B8B", 148 | "n. c #493988", 149 | "o. c #493884", 150 | "p. c #483781", 151 | "q. c #47357E", 152 | "r. c #261C43", 153 | "s. c #372D69", 154 | "t. c #4E3E90", 155 | "u. c #473780", 156 | "v. c #46367D", 157 | "w. c #44347A", 158 | "x. c #433377", 159 | "y. c #423174", 160 | "z. c #2F2251", 161 | "A. c #2D2353", 162 | "B. c #4B3B89", 163 | "C. c #46357D", 164 | "D. c #433277", 165 | "E. c #261C42", 166 | "F. c #0F0C1C", 167 | "G. c #2A214D", 168 | "H. c #3B2D6B", 169 | "I. c #443379", 170 | "J. c #433176", 171 | "K. c #392963", 172 | "L. c #271C44", 173 | ". . . . . . . . . . . . . . . . . . . . ", 174 | ". . . . . . . . . . . . . . . . . . . . ", 175 | ". . + + + + @ # $ % & * = - + + + + . . ", 176 | ". . + + + ; > , ' ) ! ~ { ] ^ + + + . . ", 177 | ". . + + / ( _ : < ! [ } ] | 1 2 + + . . ", 178 | ". . + 3 4 _ 5 < 6 7 8 9 0 a b c d + . . ", 179 | ". . e f g 5 h i j k l m n o c p q r . . ", 180 | ". . s t u v w x y z A B o C D E F G . . ", 181 | ". . H I J K L M | N B O P Q R F S T . . ", 182 | ". . U V W X Y Z ` .O ..+.@.#.$.%.&.. . ", 183 | ". . *.W } Y 0 ` =.-.;.>.@.,.'.).!.~.. . ", 184 | ". . {.k ].^./.(.-._.:.@.<.[.}.|.&.1.. . ", 185 | ". . 2.].3.1 4.5.6.>.7.8.9.0.|.a.b.c.. . ", 186 | ". . d.3.B o c D :.e.<.f.g.h.i.j.k.l.. . ", 187 | ". . + . o C D R m.n.o.p.q.i.b.k.r.+ . . ", 188 | ". . + + s.t.R F $.%.u.v.w.x.y.z.+ + . . ", 189 | ". . + + + A.B.$.).!.C.w.D.y.E.+ + + . . ", 190 | ". . + + + + F.G.H.I.J.K.L.l.+ + + + . . ", 191 | ". . . . . . . . . . . . . . . . . . . . ", 192 | ". . . . . . . . . . . . . . . . . . . . "}; 193 | -------------------------------------------------------------------------------- /data/color-scheme-numix-dark.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_numix_dark_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #DEDEDE", 6 | "+ c #333333", 7 | "@ c #D64937", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-numix-light.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_numix_light_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #333333", 6 | "+ c #DEDEDE", 7 | "@ c #D64937", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-simpsons.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_simpsons_xpm[] = { 3 | "20 20 211 2", 4 | " c #FCCA07", 5 | ". c #F2F1DC", 6 | "+ c #F3F1DC", 7 | "@ c #978F7C", 8 | "# c #5F4F3F", 9 | "$ c #544132", 10 | "% c #776A59", 11 | "& c #DAD5C1", 12 | "* c #EFF1DB", 13 | "= c #F2F0DB", 14 | "- c #F0F2DC", 15 | "; c #F1F3DB", 16 | "> c #3B2A18", 17 | ", c #B65278", 18 | "' c #E26CA8", 19 | ") c #AD4369", 20 | "! c #5F4224", 21 | "~ c #7A413A", 22 | "{ c #66432D", 23 | "] c #4B3623", 24 | "^ c #A89C8C", 25 | "/ c #EFF1DC", 26 | "( c #F3F0DD", 27 | "_ c #F2F1DD", 28 | ": c #D0CBB7", 29 | "< c #503520", 30 | "[ c #B9577D", 31 | "} c #DC78AE", 32 | "| c #997CBE", 33 | "1 c #E176AC", 34 | "2 c #DE75AE", 35 | "3 c #D4B5C7", 36 | "4 c #DE77AC", 37 | "5 c #E33992", 38 | "6 c #877A69", 39 | "7 c #F2F2DA", 40 | "8 c #F1F0DB", 41 | "9 c #663D39", 42 | "0 c #E170A8", 43 | "a c #D2B75C", 44 | "b c #DF7BAF", 45 | "c c #B25D84", 46 | "d c #DE4595", 47 | "e c #E04297", 48 | "f c #DB519E", 49 | "g c #DF72A9", 50 | "h c #E16EA7", 51 | "i c #D9317E", 52 | "j c #A83F68", 53 | "k c #897C69", 54 | "l c #F4F2DD", 55 | "m c #824155", 56 | "n c #E277AD", 57 | "o c #C07BB2", 58 | "p c #DE77AE", 59 | "q c #DB4896", 60 | "r c #356C42", 61 | "s c #B754A6", 62 | "t c #DD3D93", 63 | "u c #DF3B91", 64 | "v c #DD4C99", 65 | "w c #DE3A91", 66 | "x c #84606C", 67 | "y c #DE3787", 68 | "z c #5B4128", 69 | "A c #EBE8D5", 70 | "B c #F0EED9", 71 | "C c #BC6286", 72 | "D c #E13D94", 73 | "E c #D58FB4", 74 | "F c #DC3A90", 75 | "G c #D42D85", 76 | "H c #C01476", 77 | "I c #BC2984", 78 | "J c #BA1C57", 79 | "K c #D03885", 80 | "L c #E04296", 81 | "M c #DF3B92", 82 | "N c #93506F", 83 | "O c #DE3C8F", 84 | "P c #973357", 85 | "Q c #392618", 86 | "R c #8A7F6D", 87 | "S c #A25E6D", 88 | "T c #B9091D", 89 | "U c #E13B8F", 90 | "V c #C01679", 91 | "W c #4D3720", 92 | "X c #BCB19F", 93 | "Y c #E4E3CF", 94 | "Z c #665545", 95 | "` c #C83E79", 96 | " . c #DF3C8F", 97 | ".. c #E13895", 98 | "+. c #DC418D", 99 | "@. c #D5358D", 100 | "#. c #523724", 101 | "$. c #493828", 102 | "%. c #D5649C", 103 | "&. c #D1A94A", 104 | "*. c #C14A9C", 105 | "=. c #6F3D36", 106 | "-. c #CAC1B0", 107 | ";. c #EFF2DD", 108 | ">. c #452E1C", 109 | ",. c #866FBF", 110 | "'. c #DC3C96", 111 | "). c #DF3D92", 112 | "!. c #CF2C85", 113 | "~. c #5A4025", 114 | "{. c #402D1E", 115 | "]. c #DE408D", 116 | "^. c #DE3C91", 117 | "/. c #DB3C8E", 118 | "(. c #9A3557", 119 | "_. c #ECEED8", 120 | ":. c #F0F2DD", 121 | "<. c #3D2A19", 122 | "[. c #E44C9F", 123 | "}. c #DE3A90", 124 | "|. c #BB0A1E", 125 | "1. c #AB49A0", 126 | "2. c #614327", 127 | "3. c #605342", 128 | "4. c #A13D5F", 129 | "5. c #9762B0", 130 | "6. c #DC3D91", 131 | "7. c #8E4D53", 132 | "8. c #7B6B5C", 133 | "9. c #E9EBD3", 134 | "0. c #995466", 135 | "a. c #DF378E", 136 | "b. c #DE3C92", 137 | "c. c #D39258", 138 | "d. c #BF3F92", 139 | "e. c #803144", 140 | "f. c #BBB6A2", 141 | "g. c #62442C", 142 | "h. c #B3459B", 143 | "i. c #E13A94", 144 | "j. c #DF3D90", 145 | "k. c #DB357F", 146 | "l. c #524B21", 147 | "m. c #482E1F", 148 | "n. c #3E2918", 149 | "o. c #8B5459", 150 | "p. c #F99DCC", 151 | "q. c #D28EB3", 152 | "r. c #DB5B7C", 153 | "s. c #BD1E78", 154 | "t. c #6B2D3A", 155 | "u. c #513824", 156 | "v. c #C71F7E", 157 | "w. c #CFB642", 158 | "x. c #E13A92", 159 | "y. c #D32A6B", 160 | "z. c #E64D9F", 161 | "A. c #168133", 162 | "B. c #F48BC4", 163 | "C. c #F490C6", 164 | "D. c #E03C92", 165 | "E. c #C42381", 166 | "F. c #733C35", 167 | "G. c #918A78", 168 | "H. c #938876", 169 | "I. c #CF2C87", 170 | "J. c #C7247D", 171 | "K. c #DA68A4", 172 | "L. c #DC3A8F", 173 | "M. c #D86E6E", 174 | "N. c #DF3892", 175 | "O. c #C21F7A", 176 | "P. c #BB2370", 177 | "Q. c #4A311D", 178 | "R. c #F5F0DC", 179 | "S. c #6C3E31", 180 | "T. c #BB1875", 181 | "U. c #A45FB0", 182 | "V. c #E13B91", 183 | "W. c #DF3890", 184 | "X. c #E23B93", 185 | "Y. c #E03C95", 186 | "Z. c #BE1975", 187 | "`. c #B91A76", 188 | " + c #5B3C2A", 189 | ".+ c #DAD7C4", 190 | "++ c #F1F0DE", 191 | "@+ c #8B7C69", 192 | "#+ c #A62B64", 193 | "$+ c #B51E7B", 194 | "%+ c #C72683", 195 | "&+ c #D53188", 196 | "*+ c #D78CB5", 197 | "=+ c #566755", 198 | "-+ c #BF1575", 199 | ";+ c #BD1A73", 200 | ">+ c #B0296E", 201 | ",+ c #D7D2BF", 202 | "'+ c #F1F0DC", 203 | ")+ c #F1F2E0", 204 | "!+ c #F0F2DA", 205 | "~+ c #DDDCC8", 206 | "{+ c #502828", 207 | "]+ c #5A392A", 208 | "^+ c #693F2F", 209 | "/+ c #BB2775", 210 | "(+ c #BB2275", 211 | "_+ c #503228", 212 | ":+ c #918473", 213 | "<+ c #F0F1DF", 214 | "[+ c #F2F0D9", 215 | " ", 216 | " ", 217 | " . . . . . + @ # $ % & . * . . . ", 218 | " . = - ; > , ' ) ! ~ { ] ^ / ( _ ", 219 | " . * : < [ } | 1 2 3 4 5 { 6 - 7 ", 220 | " . 8 9 0 a b c d e f g h i j k l ", 221 | " . m n o p q r s t u v w x y z A ", 222 | " B C D E F G H I J K L M N O P Q ", 223 | " R S T u U V W X Y Z ` ...+.@.#. ", 224 | " $.%.&.M *.=.-.+ ;.( >.,.'.).!.~. ", 225 | " {.].O ^./.(._._ :.7 <.[.}.|.1.2. ", 226 | " 3.4.5.6.^.7.8.( ( 9.0.a.b.c.d.e. ", 227 | " f.g.h.i.j.k.l.m.n.o.p.q.}.r.s.t. ", 228 | " . u.v.w.x.y.z.A.B.C.D.M j.E.F.G. ", 229 | " - H.I.J.^.b.K.L.M.N.).6.O.P.Q._ ", 230 | " . R.n.S.T.U.^.V.W.X.Y.Z.`. +.+_ ", 231 | " . . ++@+#+$+%+&+*+=+-+;+>+,+_ '+ ", 232 | " . )+7 !+~+{+]+^+/+(+_+:+7 <+[+. ", 233 | " ", 234 | " "}; 235 | -------------------------------------------------------------------------------- /data/color-scheme-solarized-dark.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_solarized_dark_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #586E75", 6 | "+ c #063440", 7 | "@ c #93A1A1", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-solarized-light.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_solarized_light_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #586E75", 6 | "+ c #F9F2DF", 7 | "@ c #657B83", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-super-mario-bros.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_super_mario_bros_xpm[] = { 3 | "20 20 13 1", 4 | " c #281F18", 5 | ". c #6285FB", 6 | "+ c #6386FB", 7 | "@ c #FAB000", 8 | "# c #FBB100", 9 | "$ c #6386FC", 10 | "% c #DC0000", 11 | "& c #DB0000", 12 | "* c #6385FB", 13 | "= c #716800", 14 | "- c #716900", 15 | "; c #706800", 16 | "> c #FAB100", 17 | " ", 18 | " ", 19 | " ..+++++++++++@## ", 20 | " ++$+++%%&&%++### ", 21 | " $.+*+%&%&&%%&&## ", 22 | " ++.+.=-=##=#.=;= ", 23 | " ++*.-#=###-##--= ", 24 | " *++.-#--###;###- ", 25 | " *..+=-####=--;;+ ", 26 | " .+**+.>>#####-.+ ", 27 | " *+=----%--=%-*.. ", 28 | " .-------%===&+$- ", 29 | " #@==----&%&%&++- ", 30 | " ##>+%%-&&#&%#&-= ", 31 | " +#+-&&&&%%&&&%-- ", 32 | " .+---&&%%%&%&&== ", 33 | " +=;-%%%&%&%..*++ ", 34 | " +-+.%&%%*+++++++ ", 35 | " ", 36 | " "}; 37 | -------------------------------------------------------------------------------- /data/color-scheme-tango.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_tango_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #2E3436", 6 | "+ c #858782", 7 | "@ c #73D216", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-ubuntu-ambiance.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_ubuntu_ambiance_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #373737", 6 | "+ c #300A24", 7 | "@ c #E96F20", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-ubuntu-radiance.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_ubuntu_radiance_xpm[] = { 3 | "20 20 4 1", 4 | " c None", 5 | ". c #D6D6D6", 6 | "+ c #E8E8E8", 7 | "@ c #E96F20", 8 | "....................", 9 | "....................", 10 | "..++++++++@@@@@@@@..", 11 | "..++++++++@@@@@@@@..", 12 | "..++++++++@@@@@@@@..", 13 | "..++++++++@@@@@@@@..", 14 | "..++++++++@@@@@@@@..", 15 | "..++++++++@@@@@@@@..", 16 | "..++++++++@@@@@@@@..", 17 | "..++++++++@@@@@@@@..", 18 | "..++++++++@@@@@@@@..", 19 | "..++++++++@@@@@@@@..", 20 | "..++++++++@@@@@@@@..", 21 | "..++++++++@@@@@@@@..", 22 | "..++++++++@@@@@@@@..", 23 | "..++++++++@@@@@@@@..", 24 | "..++++++++@@@@@@@@..", 25 | "..++++++++@@@@@@@@..", 26 | "....................", 27 | "...................."}; 28 | -------------------------------------------------------------------------------- /data/color-scheme-uranus.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_uranus_xpm[] = { 3 | "20 20 193 2", 4 | " c None", 5 | ". c #0B3A42", 6 | "+ c #000000", 7 | "@ c #061A1D", 8 | "# c #104651", 9 | "$ c #166370", 10 | "% c #197081", 11 | "& c #186E7F", 12 | "* c #155F6B", 13 | "= c #0E414A", 14 | "- c #04171A", 15 | "; c #104751", 16 | "> c #1C7788", 17 | ", c #1B7586", 18 | "' c #1A7384", 19 | ") c #1A7282", 20 | "! c #187080", 21 | "~ c #166D7C", 22 | "{ c #166B7A", 23 | "] c #0C3E47", 24 | "^ c #010203", 25 | "/ c #145663", 26 | "( c #1B7687", 27 | "_ c #1A7383", 28 | ": c #197181", 29 | "< c #197080", 30 | "[ c #176E7E", 31 | "} c #176C7B", 32 | "| c #166A7A", 33 | "1 c #156977", 34 | "2 c #146876", 35 | "3 c #0D4952", 36 | "4 c #030506", 37 | "5 c #050A0B", 38 | "6 c #1F373C", 39 | "7 c #114751", 40 | "8 c #1C7688", 41 | "9 c #1B7485", 42 | "0 c #197284", 43 | "a c #18707F", 44 | "b c #186D7E", 45 | "c c #156A79", 46 | "d c #146775", 47 | "e c #156775", 48 | "f c #176976", 49 | "g c #32707B", 50 | "h c #37616A", 51 | "i c #366069", 52 | "j c #06191D", 53 | "k c #1C7687", 54 | "l c #1A7484", 55 | "m c #1A7283", 56 | "n c #187081", 57 | "o c #186F7E", 58 | "p c #186E7D", 59 | "q c #166C7B", 60 | "r c #166A78", 61 | "s c #156876", 62 | "t c #166776", 63 | "u c #186A77", 64 | "v c #358696", 65 | "w c #3C8D9C", 66 | "x c #368694", 67 | "y c #0C2327", 68 | "z c #20383E", 69 | "A c #0F454F", 70 | "B c #197282", 71 | "C c #176F7F", 72 | "D c #176D7C", 73 | "E c #166B7B", 74 | "F c #156A78", 75 | "G c #166978", 76 | "H c #1F7180", 77 | "I c #378998", 78 | "J c #3D8E9D", 79 | "K c #2F7F8E", 80 | "L c #146371", 81 | "M c #14626E", 82 | "N c #1D535C", 83 | "O c #28484E", 84 | "P c #15616F", 85 | "Q c #196F80", 86 | "R c #176C7C", 87 | "S c #166A79", 88 | "T c #186B79", 89 | "U c #2B7E8D", 90 | "V c #368796", 91 | "W c #3F8F9E", 92 | "X c #1F707C", 93 | "Y c #12616E", 94 | "Z c #105D69", 95 | "` c #0E5C67", 96 | " . c #10525C", 97 | ".. c #080E0F", 98 | "+. c #186D7D", 99 | "@. c #176D7D", 100 | "#. c #176B7A", 101 | "$. c #1A6E7C", 102 | "%. c #2C7E8D", 103 | "&. c #3F91A0", 104 | "*. c #3E8F9E", 105 | "=. c #166775", 106 | "-. c #146370", 107 | ";. c #105F6B", 108 | ">. c #0F5D69", 109 | ",. c #0E5B67", 110 | "'. c #0E5A65", 111 | "). c #0C555F", 112 | "!. c #176B7B", 113 | "~. c #176E7D", 114 | "{. c #1B6F7E", 115 | "]. c #2D7F8F", 116 | "^. c #4395A4", 117 | "/. c #2C7E8C", 118 | "(. c #176774", 119 | "_. c #156572", 120 | ":. c #11616D", 121 | "<. c #0D5964", 122 | "[. c #0D5862", 123 | "}. c #0B535D", 124 | "|. c #135B68", 125 | "1. c #186C7C", 126 | "2. c #1C6F7F", 127 | "3. c #4395A5", 128 | "4. c #2D7F8D", 129 | "5. c #2B7D8B", 130 | "6. c #146572", 131 | "7. c #12626F", 132 | "8. c #105F6C", 133 | "9. c #0F5E6A", 134 | "0. c #0F5C68", 135 | "a. c #0E5B66", 136 | "b. c #0C5762", 137 | "c. c #0B5660", 138 | "d. c #09464F", 139 | "e. c #11464F", 140 | "f. c #2D808F", 141 | "g. c #3E90A0", 142 | "h. c #2C7F8D", 143 | "i. c #156774", 144 | "j. c #136371", 145 | "k. c #11616E", 146 | "l. c #10606C", 147 | "m. c #105E6A", 148 | "n. c #0A545D", 149 | "o. c #053135", 150 | "p. c #0A1213", 151 | "q. c #366772", 152 | "r. c #388A9A", 153 | "s. c #146573", 154 | "t. c #0E5A66", 155 | "u. c #0C5761", 156 | "v. c #0A525B", 157 | "w. c #011113", 158 | "x. c #3D6D77", 159 | "y. c #26434A", 160 | "z. c #12454D", 161 | "A. c #136471", 162 | "B. c #0F5E69", 163 | "C. c #0F5C66", 164 | "D. c #0E5A64", 165 | "E. c #0C5962", 166 | "F. c #0C5661", 167 | "G. c #0B555E", 168 | "H. c #0A535C", 169 | "I. c #0A515A", 170 | "J. c #042F34", 171 | "K. c #213B40", 172 | "L. c #080F10", 173 | "M. c #233E44", 174 | "N. c #1F5F69", 175 | "O. c #0D5762", 176 | "P. c #0B545E", 177 | "Q. c #09525B", 178 | "R. c #05393F", 179 | "S. c #27454B", 180 | "T. c #2C4E55", 181 | "U. c #325861", 182 | "V. c #0F5D68", 183 | "W. c #0C5862", 184 | "X. c #0A545E", 185 | "Y. c #095159", 186 | "Z. c #233E43", 187 | "`. c #0E1A1C", 188 | " + c #0D181A", 189 | ".+ c #031315", 190 | "++ c #07343A", 191 | "@+ c #0A4952", 192 | "#+ c #0A525C", 193 | "$+ c #07454C", 194 | "%+ c #011112", 195 | "&+ c #020303", 196 | "*+ c #000101", 197 | ". . . . . . . . . . . . . . . . . . . . ", 198 | ". . . . . . . . . . . . . . . . . . . . ", 199 | ". . + + + + @ # $ % & * = - + + + + . . ", 200 | ". . + + + ; > , ' ) ! & ~ { ] + + + ^ . ", 201 | ". . + + / ( , _ : < [ } | 1 2 3 4 5 6 . ", 202 | ". . + 7 8 9 0 : a b } c 1 d e f g h i . ", 203 | ". . j k l m n o p q r s t u v w x y z . ", 204 | ". . A l B ! C D E F G H I J K L M N O . ", 205 | ". . P B Q [ R { S T U V W X Y Z ` .... ", 206 | ". . +.< @.D #.$.%.&.*.=.-.;.>.,.'.).. . ", 207 | ". . !.~.} {.].^./.(._.:.;.>.,.<.[.}.. . ", 208 | ". . |.1.2.3.4.5.6.7.8.9.0.a.<.b.c.d.. . ", 209 | ". . e.f.g.h.i.j.k.l.m.0.a.<.b.).n.o.. . ", 210 | ". p.q.r.T s.7.k.;.9.` t.<.u.c.n.v.w.. . ", 211 | ". x.y.z.A.7.:.;.B.C.D.E.F.G.H.I.J.+ . . ", 212 | ". K.L.M.N.l.m.>.` '.O.c.P.H.Q.R.+ + . . ", 213 | ". S.T.U.T.. V.t.<.W.c.X.H.Y.J.+ + + . . ", 214 | ". Z.`. +4 + .+++@+#+I.$+J.%++ + + + . . ", 215 | ". &+*+*++ . . . . . . . . . . . . . . . ", 216 | ". . . . . . . . . . . . . . . . . . . . "}; 217 | -------------------------------------------------------------------------------- /data/color-scheme-venus.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_venus_xpm[] = { 3 | "20 20 173 2", 4 | " c None", 5 | ". c #4E3C0A", 6 | "+ c #000000", 7 | "@ c #5D4809", 8 | "# c #C99D15", 9 | "$ c #E9B419", 10 | "% c #ECB71A", 11 | "& c #E8B41A", 12 | "* c #E3AE19", 13 | "= c #C29615", 14 | "- c #594509", 15 | "; c #C99C15", 16 | "> c #F0BA1A", 17 | ", c #EDB81A", 18 | "' c #EAB61B", 19 | ") c #E6B21A", 20 | "! c #E3AF1A", 21 | "~ c #E1AD1A", 22 | "{ c #DEAB1A", 23 | "] c #BC9115", 24 | "^ c #DDAB17", 25 | "/ c #EFB91A", 26 | "( c #EDB71B", 27 | "_ c #E9B51A", 28 | ": c #E7B41A", 29 | "< c #E4B11A", 30 | "[ c #E2AF1B", 31 | "} c #DFAC1A", 32 | "| c #DDAB1A", 33 | "1 c #DBA81B", 34 | "2 c #D7A71B", 35 | "3 c #C89A17", 36 | "4 c #C59915", 37 | "5 c #EEB81A", 38 | "6 c #EBB71B", 39 | "7 c #E8B51A", 40 | "8 c #E7B21B", 41 | "9 c #E4B01A", 42 | "0 c #E1AE1A", 43 | "a c #DEAC1A", 44 | "b c #DCA91A", 45 | "c c #D9A81B", 46 | "d c #D7A61A", 47 | "e c #D5A31A", 48 | "f c #D2A21B", 49 | "g c #B28915", 50 | "h c #EBB61B", 51 | "i c #E8B41B", 52 | "j c #E5B11A", 53 | "k c #E3AF1B", 54 | "l c #E0AD1A", 55 | "m c #D9A71B", 56 | "n c #D7A51A", 57 | "o c #D4A31B", 58 | "p c #D1A11A", 59 | "q c #CE9F1A", 60 | "r c #CC9C1B", 61 | "s c #513E09", 62 | "t c #C19516", 63 | "u c #EAB61A", 64 | "v c #DEAA1A", 65 | "w c #DAA91A", 66 | "x c #D8A71A", 67 | "y c #D6A41A", 68 | "z c #D3A21A", 69 | "A c #D1A01B", 70 | "B c #CE9E1B", 71 | "C c #CB9C1B", 72 | "D c #C9991B", 73 | "E c #AA8216", 74 | "F c #E0AD19", 75 | "G c #E7B21A", 76 | "H c #E4B01B", 77 | "I c #DFAC1B", 78 | "J c #DDAA1A", 79 | "K c #D8A61A", 80 | "L c #D2A11A", 81 | "M c #CF9F1B", 82 | "N c #CD9D1B", 83 | "O c #CB9B1B", 84 | "P c #C8991B", 85 | "Q c #C5971A", 86 | "R c #C09319", 87 | "S c #E3B01A", 88 | "T c #E0AE1A", 89 | "U c #DFAB1A", 90 | "V c #D7A51B", 91 | "W c #D2A01B", 92 | "X c #CF9E1B", 93 | "Y c #CA9A1B", 94 | "Z c #C8981B", 95 | "` c #C5961A", 96 | " . c #C2931B", 97 | ".. c #BF911A", 98 | "+. c #E2AE1A", 99 | "@. c #E0AD1B", 100 | "#. c #DBA91A", 101 | "$. c #D8A71B", 102 | "%. c #D6A41B", 103 | "&. c #D4A21B", 104 | "*. c #D0A01B", 105 | "=. c #CC9C1A", 106 | "-. c #C99A1A", 107 | ";. c #C7981B", 108 | ">. c #C4961A", 109 | ",. c #C1931B", 110 | "'. c #BF911B", 111 | "). c #BD8F1A", 112 | "!. c #D5A619", 113 | "~. c #DDAA1B", 114 | "{. c #DAA81B", 115 | "]. c #D5A41B", 116 | "^. c #D09F1B", 117 | "/. c #CD9E1B", 118 | "(. c #CA9B1B", 119 | "_. c #C6971A", 120 | ":. c #C3941A", 121 | "<. c #BE901B", 122 | "[. c #BC8E1B", 123 | "}. c #B6891A", 124 | "|. c #B18815", 125 | "1. c #DAA71B", 126 | "2. c #D6A51B", 127 | "3. c #D5A31B", 128 | "4. c #CF9F1A", 129 | "5. c #CD9C1A", 130 | "6. c #C4961B", 131 | "7. c #C2941B", 132 | "8. c #C0921A", 133 | "9. c #BD901B", 134 | "0. c #BB8E1B", 135 | "a. c #B88B1B", 136 | "b. c #9B7416", 137 | "c. c #D3A31A", 138 | "d. c #CB9C1A", 139 | "e. c #C99A1B", 140 | "f. c #C4951B", 141 | "g. c #BF921B", 142 | "h. c #BC8F1B", 143 | "i. c #BA8D1A", 144 | "j. c #B78B1B", 145 | "k. c #B5891B", 146 | "l. c #463509", 147 | "m. c #A98115", 148 | "n. c #CE9E1A", 149 | "o. c #C3951B", 150 | "p. c #BE911B", 151 | "q. c #B98D1B", 152 | "r. c #B68A1B", 153 | "s. c #B4881B", 154 | "t. c #967116", 155 | "u. c #B78C17", 156 | "v. c #CA9B1A", 157 | "w. c #C5961B", 158 | "x. c #C3941B", 159 | "y. c #BB8D1A", 160 | "z. c #B88C1A", 161 | "A. c #B6891B", 162 | "B. c #B3881B", 163 | "C. c #A37A17", 164 | "D. c #A07915", 165 | "E. c #B88B1A", 166 | "F. c #B5881A", 167 | "G. c #B2871A", 168 | "H. c #936F16", 169 | "I. c #45350A", 170 | "J. c #997416", 171 | "K. c #B4881A", 172 | "L. c #B98C1B", 173 | "M. c #B58A1B", 174 | "N. c #AD831A", 175 | "O. c #926E16", 176 | "P. c #42310A", 177 | ". . . . . . . . . . . . . . . . . . . . ", 178 | ". . . . . . . . . . . . . . . . . . . . ", 179 | ". . + + + + @ # $ % & * = - + + + + . . ", 180 | ". . + + + ; > , ' & ) ! ~ { ] + + + . . ", 181 | ". . + + ^ / ( _ : < [ } | 1 2 3 + + . . ", 182 | ". . + 4 5 6 7 8 9 0 a b c d e f g + . . ", 183 | ". . - , h i j k l { b m n o p q r s . . ", 184 | ". . t u : j ! l v w x y z A B C D E . . ", 185 | ". . F G H 0 I J c K e L M N O P Q R . . ", 186 | ". . j S T U b c V o W X N Y Z ` .... . ", 187 | ". . +.@.| #.$.%.&.*.B =.-.;.>.,.'.).. . ", 188 | ". . !.~.{.K ].f ^./.(.D _.:.,.<.[.}.. . ", 189 | ". . |.1.2.3.L 4.5.(.P 6.7.8.9.0.a.b.. . ", 190 | ". . . %.c.A 4.d.e.;.f.,.g.h.i.j.k.l.. . ", 191 | ". . + m.*.n.C D _.o.,.p.0.q.r.s.t.+ . . ", 192 | ". . + + u.v.Z w.x.8.<.y.z.A.B.C.+ + . . ", 193 | ". . + + + D.` .'.h.i.E.F.G.H.+ + + . . ", 194 | ". . + + + + I.J.K.L.M.N.O.P.+ + + + . . ", 195 | ". . . . . . . . . . . . . . . . . . . . ", 196 | ". . . . . . . . . . . . . . . . . . . . "}; 197 | -------------------------------------------------------------------------------- /data/color-scheme-windows-metro.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * color_scheme_windows_metro_xpm[] = { 3 | "20 20 117 2", 4 | " c None", 5 | ". c #00ADEF", 6 | "+ c #FFFFFF", 7 | "@ c #FFFFFE", 8 | "# c #F5FBFC", 9 | "$ c #DBF2FA", 10 | "% c #F8FDFE", 11 | "& c #FBFDFE", 12 | "* c #EBF8FC", 13 | "= c #C5EAF9", 14 | "- c #A6E1F7", 15 | "; c #85D5F4", 16 | "> c #64CBF2", 17 | ", c #45C0F1", 18 | "' c #29B7F0", 19 | ") c #36BCF0", 20 | "! c #F1FAFC", 21 | "~ c #FDFFFE", 22 | "{ c #C6EAF9", 23 | "] c #9BDDF5", 24 | "^ c #77D0F3", 25 | "/ c #53C5F2", 26 | "( c #2FB7EF", 27 | "_ c #66CAF0", 28 | ": c #71CEF1", 29 | "< c #00A2EC", 30 | "[ c #00A6EE", 31 | "} c #00A7EE", 32 | "| c #00A9EF", 33 | "1 c #22B6F0", 34 | "2 c #F2FAFC", 35 | "3 c #F4FBFD", 36 | "4 c #1DB3EE", 37 | "5 c #00A4ED", 38 | "6 c #00A8EE", 39 | "7 c #00A6EF", 40 | "8 c #4FC5F1", 41 | "9 c #73D0F2", 42 | "0 c #00ABEF", 43 | "a c #25B7F0", 44 | "b c #F5FBFD", 45 | "c c #27B8F0", 46 | "d c #54C6F1", 47 | "e c #74D0F2", 48 | "f c #28B8F0", 49 | "g c #1AB3EF", 50 | "h c #00A5EE", 51 | "i c #00A3EE", 52 | "j c #48C2F0", 53 | "k c #6ACCF1", 54 | "l c #00A0ED", 55 | "m c #15B1EF", 56 | "n c #F1FAFB", 57 | "o c #F8FDFD", 58 | "p c #8CD7F4", 59 | "q c #78D0F3", 60 | "r c #7DD2F3", 61 | "s c #80D2F2", 62 | "t c #7FD0F2", 63 | "u c #ACE1F5", 64 | "v c #BCE7F6", 65 | "w c #85D2F3", 66 | "x c #8BD6F4", 67 | "y c #8DD6F3", 68 | "z c #8ED7F3", 69 | "A c #90D9F4", 70 | "B c #92D9F5", 71 | "C c #A3DFF5", 72 | "D c #FAFDFD", 73 | "E c #F7FCFD", 74 | "F c #56C5F2", 75 | "G c #38BCF1", 76 | "H c #3BBEF1", 77 | "I c #3CBEF0", 78 | "J c #3CBBF0", 79 | "K c #7DD2F2", 80 | "L c #95DAF5", 81 | "M c #3FBBF0", 82 | "N c #43C0F1", 83 | "O c #44C0F1", 84 | "P c #46C1F1", 85 | "Q c #47C0F1", 86 | "R c #62C9F1", 87 | "S c #F5FCFC", 88 | "T c #21B6F0", 89 | "U c #00A8EF", 90 | "V c #00AAEF", 91 | "W c #4DC4F1", 92 | "X c #6ECEF2", 93 | "Y c #00A4EE", 94 | "Z c #00A7EF", 95 | "` c #1BB4EF", 96 | " . c #44BFF0", 97 | ".. c #0AACEE", 98 | "+. c #00A9ED", 99 | "@. c #00A6ED", 100 | "#. c #00A2EE", 101 | "$. c #47C1F0", 102 | "%. c #6DCEF2", 103 | "&. c #00ACEF", 104 | "*. c #FCFEFE", 105 | "=. c #E9F7FC", 106 | "-. c #CEEDF9", 107 | ";. c #ADE2F7", 108 | ">. c #9CDCF4", 109 | ",. c #92DAF4", 110 | "'. c #27B2EE", 111 | "). c #0DAFEE", 112 | "!. c #00AAED", 113 | "~. c #00A7ED", 114 | "{. c #18B3EF", 115 | "]. c #EFF9FC", 116 | "^. c #D5F0FA", 117 | "/. c #B8E7F8", 118 | "(. c #97DCF6", 119 | "_. c #74CFF3", 120 | ":. c #6CCDF2", 121 | ". . . . . . . . . . . . . . . . . . . . ", 122 | ". . . . . . . . . . . . . . . . . . . . ", 123 | ". . + + + + + + + + + + + + @ # $ % . . ", 124 | ". . + + + + + @ & * = - ; > , ' ) ! . . ", 125 | ". . ~ { ] ^ / ( _ : < [ [ } | | 1 2 . . ", 126 | ". . 3 4 5 [ 6 7 8 9 } . . . . 0 a 2 . . ", 127 | ". . b c 0 . . | d e } . . . . 0 a 2 . . ", 128 | ". . b f 0 . . | d e } . . . . 0 a 2 . . ", 129 | ". . 3 g h } } i j k l } } } } h m n . . ", 130 | ". . o p q r s t u v w x y z A B C D . . ", 131 | ". . E F G H I J K L M N O , P Q R S . . ", 132 | ". . b T U V V 7 W X Y V V V V Z ` ! . . ", 133 | ". . b f 0 . . | d e } . . . . 0 a 2 . . ", 134 | ". . b T V . . | d e } . . . . 0 a 2 . . ", 135 | ". . E ...+.@.#.$.%.Y &.. . . 0 a 2 . . ", 136 | ". . + *.=.-.;.; >.,.'.).!.~.[ Y {.n . . ", 137 | ". . + + + + + + + + @ ].^./.(._.:.n . . ", 138 | ". . + + + + + + + + + + + + + + + + . . ", 139 | ". . . . . . . . . . . . . . . . . . . . ", 140 | ". . . . . . . . . . . . . . . . . . . . "}; 141 | -------------------------------------------------------------------------------- /data/configure.m4: -------------------------------------------------------------------------------- 1 | 2 | AC_CONFIG_FILES([ 3 | data/Makefile 4 | data/generate-about-data.sh 5 | ]) 6 | 7 | -------------------------------------------------------------------------------- /data/generate-about-data.sh.in: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (C) 2016 Mario Cianciolo 4 | # 5 | # This file is part of multiload-ng. 6 | # 7 | # This program is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License along 18 | # with this program; if not, write to the Free Software Foundation, Inc., 19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | # 21 | 22 | 23 | echo "/* Copyright (C) 2016 Mario Cianciolo */" 24 | echo "/* This file is part of multiload-ng. */" 25 | echo 26 | echo "/* THIS FILE IS GENERATED AUTOMATICALLY. DO NOT EDIT */" 27 | echo 28 | echo "#ifndef NULL" 29 | echo "#define NULL (char)0x00" 30 | echo "#endif" 31 | echo 32 | echo "const char * const about_data_authors[] = {" 33 | cat $1 | while read line; do 34 | echo " \"$line\"," 35 | done 36 | echo " NULL" 37 | echo "};" 38 | echo 39 | echo "const char *about_data_icon = \"@APPICON@\";" 40 | echo 41 | -------------------------------------------------------------------------------- /data/generate-binary-data.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (C) 2016 Mario Cianciolo 4 | # 5 | # This file is part of multiload-ng. 6 | # 7 | # This program is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License along 18 | # with this program; if not, write to the Free Software Foundation, Inc., 19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | # 21 | 22 | 23 | hexdump() { 24 | local BYTES_PER_LINE=16 25 | local A=0 26 | 27 | echo "const char $1[] = {" 28 | echo -n " " 29 | 30 | IFS= 31 | 32 | while read -r -s -N 1 char; do 33 | printf "0x%02X, " "'$char" 34 | 35 | let A=A+1 36 | if [ "$A" = "$BYTES_PER_LINE" ]; then 37 | printf "\n " 38 | A=0 39 | fi 40 | done 41 | echo "0x00" 42 | echo "};" 43 | } 44 | 45 | strdump() { 46 | echo 'const char *'$1' = ' 47 | while read -r -s line; do 48 | echo '"'"${line//\"/\\\"}"'\n"' 49 | done 50 | echo ";" 51 | } 52 | 53 | echo "/* Copyright (C) 2016 Mario Cianciolo */" 54 | echo "/* This file is part of multiload-ng. */" 55 | echo 56 | echo "/* THIS FILE IS GENERATED AUTOMATICALLY. DO NOT EDIT */" 57 | echo 58 | echo "#include " 59 | echo 60 | echo 61 | echo "#if GTK_API == 2" 62 | echo 63 | cat preferences_gtk2.ui | strdump "binary_data_preferences_ui" 64 | echo 65 | echo "#elif GTK_API == 3" 66 | echo 67 | cat preferences_gtk3.ui | strdump "binary_data_preferences_ui" 68 | echo 69 | echo "#else" 70 | echo "#error Invalid GTK_API" 71 | echo "#endif" 72 | echo 73 | -------------------------------------------------------------------------------- /data/generate-color-scheme-icons.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Copyright (C) 2016 Mario Cianciolo 4 | # 5 | # This file is part of multiload-ng. 6 | # 7 | # This program is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License along 18 | # with this program; if not, write to the Free Software Foundation, Inc., 19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 | # 21 | 22 | 23 | echo "/* Copyright (C) 2016 Mario Cianciolo */" 24 | echo "/* This file is part of multiload-ng. */" 25 | echo 26 | echo "/* THIS FILE IS GENERATED AUTOMATICALLY. DO NOT EDIT */" 27 | echo 28 | echo 29 | for i in ../data/color-scheme-*.xpm; do 30 | echo "#include \"$i\"" 31 | done 32 | echo 33 | -------------------------------------------------------------------------------- /extras/README.md: -------------------------------------------------------------------------------- 1 | # Multiload-ng extras 2 | 3 | This file describes contents of **extras** subdirectory in Multiload-ng source. 4 | 5 | ## Contents 6 | - [checkinstall](#checkinstall) - Generate Debian, Slackware or RPM packages through `checkinstall` 7 | - [pacman](#pacman) - Generate PKGBUILD for all variants of Multiload-ng 8 | - [portage](#portage) - Ready to use Gentoo ebuilds 9 | 10 | ## checkinstall 11 | Generate Debian, Slackware or RPM packages through `checkinstall` 12 | 13 | Debian packages are used on Debian and its derivatives, Ubuntu and its 14 | derivatives, Linux Mint, and so on. 15 | 16 | RPM packages are used on Red Hat Linux, Fedora, Mandriva, SuSe, OpenSUSE, 17 | PCLinuxOS, Mageia, and so on. 18 | 19 | ### Prerequisites 20 | You will need `make` executable. Since you will have to build Multiload-ng 21 | before creating package, you already have it. 22 | 23 | You will also need **checkinstall** executable. It's likely that you will have to 24 | install it. Refer to your distribution documentation to install **checkinstall**. 25 | 26 | ### Usage 27 | First, configure and build Multiload-ng with desired options. Detailed 28 | instructions are in main README. 29 | 30 | Then, `cd` into *extras/checkinstall* directory, and execute: 31 | - `make deb-package` to generate Debian package 32 | - `make slack-package` to generate Slackware package 33 | - `make rpm-package` to generate RPM package 34 | 35 | Below there are the methods to install generated packages (you might need to run these as *root*): 36 | - `dpkg -i ` to install Debian package 37 | - `installpkg ` to install Slackware package 38 | - `rpm -i ` to install Slackware package 39 | 40 | 41 | ## pacman 42 | Generate PKGBUILD for all variants of Multiload-ng 43 | 44 | ### Prerequisites 45 | For creating PKGBUILDs, there is no prerequisite. Every Linux distro with a 46 | Bash shell is just fine. `wget`, when present, allows to include MD5 sums 47 | in generated PKGBUILDs, but it's optional. 48 | 49 | Obviously, in order to use generated PKGBUILDs, you will need **Pacman** (default 50 | package manager in Arch Linux and its derivatives) 51 | 52 | ### Usage 53 | Simply `cd` into *extras/pacman* directory and execute included script: 54 | `./generate-pkgbuild-files.sh` 55 | 56 | The script will run for a while, and then will generate several PKGBUILD files 57 | with meaningful names, for each plugin/GTK+ version combination. 58 | 59 | Script will generate PKGBUILDs for both last release and lastest git code. 60 | 61 | For generating only one specific PKGBUILD, automatic generation of **.SRCINFO**, 62 | and so on, run the script with `-h` option for details about available options: 63 | `./generate-pkgbuild-files.sh -h` 64 | 65 | After generation, create packages for desired configurations with *makepkg*: 66 | `cd ; makepkg` 67 | 68 | Install created packages with *pacman* (you might need to run as *root*): 69 | `pacman -U ` 70 | 71 | 72 | ## portage 73 | Ready to use Gentoo ebuilds 74 | 75 | ### Prerequisites 76 | You will need **Portage** (default package manager in Gentoo Linux and its 77 | derivatives). 78 | 79 | ### Usage 80 | First, `cd` into *extras/portage/x11-misc/multiload-ng* directory. Now, generate 81 | the *Manifest*: 82 | `for i in *.ebuild; do ebuild $i manifest; done` 83 | 84 | Now you can install Multiload-ng of desired version (you might need to run as *root*): 85 | `ebuild multiload-ng-.ebuild merge` 86 | 87 | There is also a *live ebuild*, which fetches always lastest git code. 88 | 89 | These files are ready to be included as-is in your local overlay, if you have one! 90 | Just copy whole *x11-misc* directory right under overlay root directory 91 | (and maybe `chown portage`). -------------------------------------------------------------------------------- /extras/checkinstall/makefile: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 Mario Cianciolo 2 | # 3 | # This file is part of multiload-ng. 4 | # 5 | # This program is free software; you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation; either version 2 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License along 16 | # with this program; if not, write to the Free Software Foundation, Inc., 17 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 18 | # 19 | 20 | # note: name of this makefile is lowercase, in order to not get ignored by .gitignore 21 | 22 | CHECKINSTALL_FLAGS=\ 23 | -y \ 24 | --install=no \ 25 | --nodoc \ 26 | --pkglicense=GPL2 \ 27 | --maintainer=mr.udda@gmail.com \ 28 | --spec=extras/checkinstall/.spec \ 29 | --pakdir=extras/checkinstall 30 | 31 | TOPSRCDIR=../.. 32 | 33 | all: 34 | @echo "Please select a target ( deb-package | slack-package | rpm-package )." 35 | 36 | .PHONY: notice 37 | notice: 38 | @echo "Note: checkinstall requires su privileges." 39 | 40 | .PHONY: checkbuild 41 | checkbuild: 42 | @cd ../.. ; if test ! -f common/multiload-ng-core.la ; then \ 43 | echo "*** ERROR: configure and build package according to desired options before calling this."; \ 44 | exit 1 ; fi 45 | 46 | .PHONY: .spec 47 | .spec: 48 | printf "Summary: Modern graphical system monitor\n" > .spec 49 | printf "Name: multiload-ng\n" >> .spec 50 | printf "Version: " >> .spec 51 | cat $(TOPSRCDIR)/version >> .spec 52 | printf "\n" >> .spec 53 | 54 | deb-package: checkbuild notice .spec 55 | @cd $(TOPSRCDIR) ; checkinstall $(CHECKINSTALL_FLAGS) --type=debian 56 | 57 | slack-package: checkbuild notice .spec 58 | @cd $(TOPSRCDIR) ; checkinstall $(CHECKINSTALL_FLAGS) --type=slackware 59 | 60 | rpm-package: checkbuild notice .spec 61 | @cd $(TOPSRCDIR) ; checkinstall $(CHECKINSTALL_FLAGS) --type=rpm 62 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/metadata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | mr.udda@gmail.com 6 | Mario Cianciolo 7 | Developer of Multiload-ng 8 | 9 | 10 | Multiload-ng is a modern graphical system monitor. It's a near-complete rewrite of the good old GNOME multiload applet. 11 | 12 | It runs on a variety of panels, including XFCE, MATE, LXDE, and others. 13 | There is also a system tray version, for panels without plugin support, and a standalone version, with its own window. 14 | 15 | Multiload-ng can be built with GTK2 and GTK3, so can be embedded within GTK2/GTK3 builds of all the aforementioned panels. 16 | 17 | -debug -experimental gtk2 +gtk3 -awn -indicator +lxde +mate +standalone -systray +xfce4 18 | Enable experimental code (may be unstable) 19 | Install autostart entries for suitable targets 20 | Build against GTK+2 (check compatibility with your panel) 21 | Build against GTK+3 (check compatibility with your panel) 22 | Build plugin for gnome-extra/avant-window-navigator 23 | Build plugin with dev-libs/libappindicator (Ubuntu Unity and others) 24 | Build plugin for lxde-base/lxpanel 25 | Build plugin for mate-base/mate-panel 26 | Build plugin for xfce-base/xfce4-panel 27 | Build application with standalone window 28 | Build application for system tray 29 | 30 | 31 | https://github.com/udda/multiload-ng/wiki 32 | http://udda.github.io/multiload-ng 33 | mailto:mr.udda@gmail.com 34 | https://github.com/udda/multiload-ng/blob/master/Changelog.md 35 | udda/multiload-ng 36 | 37 | 38 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.3.0.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug -experimental gtk2 +gtk3 -indicator +lxde +mate +standalone -systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | indicator? ( 26 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 27 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 28 | ) 29 | lxde? ( 30 | >=lxde-base/lxpanel-0.7.0 31 | >=x11-libs/libfm-1.2.0 32 | ) 33 | mate? ( 34 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 35 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 36 | ) 37 | xfce4? ( 38 | gtk2? ( 39 | >=xfce-base/libxfce4util-4.6.0 40 | >=xfce-base/xfce4-panel-4.6.0 41 | ) 42 | gtk3? ( 43 | >=xfce-base/libxfce4util-4.12.0 44 | >=xfce-base/xfce4-panel-4.12.0 45 | ) 46 | )" 47 | 48 | DEPEND="${RDEPEND} 49 | dev-util/intltool 50 | sys-devel/gettext 51 | virtual/pkgconfig" 52 | 53 | DOCS="AUTHORS README.md" 54 | 55 | REQUIRED_USE=" 56 | ^^ ( gtk2 gtk3 ) 57 | || ( indicator lxde mate standalone systray xfce4 ) 58 | indicator? ( experimental ) 59 | systray? ( experimental ) 60 | lxde? ( gtk2 )" 61 | 62 | src_prepare() { 63 | eautoreconf 64 | eapply_user 65 | } 66 | 67 | src_configure() { 68 | if use gtk2; then 69 | GTK_CONF="--with-gtk=2.0" 70 | else 71 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 72 | fi 73 | econf \ 74 | $(use_enable experimental) \ 75 | $(use_enable debug) \ 76 | $GTK_CONF \ 77 | $(use_with standalone) \ 78 | $(use_with lxde lxpanel) \ 79 | $(use_with mate) \ 80 | $(use_with systray) \ 81 | $(use_with xfce4) 82 | 83 | if use experimental; then 84 | elog "You are enabling experimental code. Please note that this can be really unstable." 85 | fi 86 | } 87 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.3.1.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug -experimental gtk2 +gtk3 -indicator +lxde +mate +standalone -systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | indicator? ( 26 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 27 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 28 | ) 29 | lxde? ( 30 | >=lxde-base/lxpanel-0.7.0 31 | >=x11-libs/libfm-1.2.0 32 | ) 33 | mate? ( 34 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 35 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 36 | ) 37 | xfce4? ( 38 | gtk2? ( 39 | >=xfce-base/libxfce4util-4.6.0 40 | >=xfce-base/xfce4-panel-4.6.0 41 | ) 42 | gtk3? ( 43 | >=xfce-base/libxfce4util-4.12.0 44 | >=xfce-base/xfce4-panel-4.12.0 45 | ) 46 | )" 47 | 48 | DEPEND="${RDEPEND} 49 | dev-util/intltool 50 | sys-devel/gettext 51 | virtual/pkgconfig" 52 | 53 | DOCS="AUTHORS README.md" 54 | 55 | REQUIRED_USE=" 56 | ^^ ( gtk2 gtk3 ) 57 | || ( indicator lxde mate standalone systray xfce4 ) 58 | indicator? ( experimental ) 59 | systray? ( experimental ) 60 | lxde? ( gtk2 )" 61 | 62 | src_prepare() { 63 | eautoreconf 64 | eapply_user 65 | } 66 | 67 | src_configure() { 68 | if use gtk2; then 69 | GTK_CONF="--with-gtk=2.0" 70 | else 71 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 72 | fi 73 | econf \ 74 | $(use_enable experimental) \ 75 | $(use_enable debug) \ 76 | $GTK_CONF \ 77 | $(use_with standalone) \ 78 | $(use_with lxde lxpanel) \ 79 | $(use_with mate) \ 80 | $(use_with systray) \ 81 | $(use_with xfce4) 82 | 83 | if use experimental; then 84 | elog "You are enabling experimental code. Please note that this can be really unstable." 85 | fi 86 | } 87 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.4.0.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.7.0 36 | >=x11-libs/libfm-1.2.0 37 | ) 38 | mate? ( 39 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 40 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 41 | ) 42 | xfce4? ( 43 | gtk2? ( 44 | >=xfce-base/libxfce4util-4.6.0 45 | >=xfce-base/xfce4-panel-4.6.0 46 | ) 47 | gtk3? ( 48 | >=xfce-base/libxfce4util-4.12.0 49 | >=xfce-base/xfce4-panel-4.12.0 50 | ) 51 | )" 52 | 53 | DEPEND="${RDEPEND} 54 | dev-util/intltool 55 | sys-devel/gettext 56 | virtual/pkgconfig" 57 | 58 | DOCS="AUTHORS README.md" 59 | 60 | REQUIRED_USE=" 61 | ^^ ( gtk2 gtk3 ) 62 | || ( awn indicator lxde mate standalone systray xfce4 ) 63 | awn? ( gtk2 experimental )" 64 | 65 | src_prepare() { 66 | eautoreconf 67 | eapply_user 68 | } 69 | 70 | src_configure() { 71 | if use gtk2; then 72 | GTK_CONF="--with-gtk=2.0" 73 | else 74 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 75 | fi 76 | econf \ 77 | $(use_enable experimental) \ 78 | $(use_enable debug) \ 79 | $(use_enable autostart) \ 80 | $GTK_CONF \ 81 | $(use_with standalone) \ 82 | $(use_with awn) \ 83 | $(use_with indicator) \ 84 | $(use_with lxde lxpanel) \ 85 | $(use_with mate) \ 86 | $(use_with systray) \ 87 | $(use_with xfce4) 88 | 89 | if use experimental; then 90 | elog "You are enabling experimental code. Please note that this can be really unstable." 91 | fi 92 | } 93 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.4.1.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.7.0 36 | >=x11-libs/libfm-1.2.0 37 | ) 38 | mate? ( 39 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 40 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 41 | ) 42 | xfce4? ( 43 | gtk2? ( 44 | >=xfce-base/libxfce4util-4.6.0 45 | >=xfce-base/xfce4-panel-4.6.0 46 | ) 47 | gtk3? ( 48 | >=xfce-base/libxfce4util-4.12.0 49 | >=xfce-base/xfce4-panel-4.12.0 50 | ) 51 | )" 52 | 53 | DEPEND="${RDEPEND} 54 | dev-util/intltool 55 | sys-devel/gettext 56 | virtual/pkgconfig" 57 | 58 | DOCS="AUTHORS README.md" 59 | 60 | REQUIRED_USE=" 61 | ^^ ( gtk2 gtk3 ) 62 | || ( awn indicator lxde mate standalone systray xfce4 ) 63 | awn? ( gtk2 experimental )" 64 | 65 | src_prepare() { 66 | eautoreconf 67 | eapply_user 68 | } 69 | 70 | src_configure() { 71 | if use gtk2; then 72 | GTK_CONF="--with-gtk=2.0" 73 | else 74 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 75 | fi 76 | econf \ 77 | $(use_enable experimental) \ 78 | $(use_enable debug) \ 79 | $(use_enable autostart) \ 80 | $GTK_CONF \ 81 | $(use_with standalone) \ 82 | $(use_with awn) \ 83 | $(use_with indicator) \ 84 | $(use_with lxde lxpanel) \ 85 | $(use_with mate) \ 86 | $(use_with systray) \ 87 | $(use_with xfce4) 88 | 89 | if use experimental; then 90 | elog "You are enabling experimental code. Please note that this can be really unstable." 91 | fi 92 | } 93 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.4.2.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.7.0 36 | >=x11-libs/libfm-1.2.0 37 | ) 38 | mate? ( 39 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 40 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 41 | ) 42 | xfce4? ( 43 | gtk2? ( 44 | >=xfce-base/libxfce4util-4.6.0 45 | >=xfce-base/xfce4-panel-4.6.0 46 | ) 47 | gtk3? ( 48 | >=xfce-base/libxfce4util-4.12.0 49 | >=xfce-base/xfce4-panel-4.12.0 50 | ) 51 | )" 52 | 53 | DEPEND="${RDEPEND} 54 | dev-util/intltool 55 | sys-devel/gettext 56 | virtual/pkgconfig" 57 | 58 | DOCS="AUTHORS README.md" 59 | 60 | REQUIRED_USE=" 61 | ^^ ( gtk2 gtk3 ) 62 | || ( awn indicator lxde mate standalone systray xfce4 ) 63 | awn? ( gtk2 experimental )" 64 | 65 | src_prepare() { 66 | eautoreconf 67 | eapply_user 68 | } 69 | 70 | src_configure() { 71 | if use gtk2; then 72 | GTK_CONF="--with-gtk=2.0" 73 | else 74 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 75 | fi 76 | econf \ 77 | $(use_enable experimental) \ 78 | $(use_enable debug) \ 79 | $(use_enable autostart) \ 80 | $GTK_CONF \ 81 | $(use_with standalone) \ 82 | $(use_with awn) \ 83 | $(use_with indicator) \ 84 | $(use_with lxde lxpanel) \ 85 | $(use_with mate) \ 86 | $(use_with systray) \ 87 | $(use_with xfce4) 88 | 89 | if use experimental; then 90 | elog "You are enabling experimental code. Please note that this can be really unstable." 91 | fi 92 | } 93 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.5.0.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.5.8 36 | ) 37 | mate? ( 38 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 39 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 40 | ) 41 | xfce4? ( 42 | gtk2? ( 43 | >=xfce-base/libxfce4util-4.6.0 44 | >=xfce-base/xfce4-panel-4.6.0 45 | ) 46 | gtk3? ( 47 | >=xfce-base/libxfce4util-4.12.0 48 | >=xfce-base/xfce4-panel-4.12.0 49 | ) 50 | )" 51 | 52 | DEPEND="${RDEPEND} 53 | dev-util/intltool 54 | sys-devel/gettext 55 | virtual/pkgconfig" 56 | 57 | DOCS="AUTHORS README.md" 58 | 59 | REQUIRED_USE=" 60 | ^^ ( gtk2 gtk3 ) 61 | || ( awn indicator lxde mate standalone systray xfce4 ) 62 | awn? ( gtk2 experimental )" 63 | 64 | src_prepare() { 65 | eautoreconf 66 | eapply_user 67 | } 68 | 69 | src_configure() { 70 | if use gtk2; then 71 | GTK_CONF="--with-gtk=2.0" 72 | else 73 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 74 | fi 75 | econf \ 76 | $(use_enable experimental) \ 77 | $(use_enable debug) \ 78 | $(use_enable autostart) \ 79 | $GTK_CONF \ 80 | $(use_with standalone) \ 81 | $(use_with awn) \ 82 | $(use_with indicator) \ 83 | $(use_with lxde lxpanel) \ 84 | $(use_with mate) \ 85 | $(use_with systray) \ 86 | $(use_with xfce4) 87 | 88 | if use experimental; then 89 | elog "You are enabling experimental code. Please note that this can be really unstable." 90 | fi 91 | } 92 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.5.1.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.5.8 36 | ) 37 | mate? ( 38 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 39 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 40 | ) 41 | xfce4? ( 42 | gtk2? ( 43 | >=xfce-base/libxfce4util-4.6.0 44 | >=xfce-base/xfce4-panel-4.6.0 45 | ) 46 | gtk3? ( 47 | >=xfce-base/libxfce4util-4.12.0 48 | >=xfce-base/xfce4-panel-4.12.0 49 | ) 50 | )" 51 | 52 | DEPEND="${RDEPEND} 53 | dev-util/intltool 54 | sys-devel/gettext 55 | virtual/pkgconfig" 56 | 57 | DOCS="AUTHORS README.md" 58 | 59 | REQUIRED_USE=" 60 | ^^ ( gtk2 gtk3 ) 61 | || ( awn indicator lxde mate standalone systray xfce4 ) 62 | awn? ( gtk2 experimental )" 63 | 64 | src_prepare() { 65 | eautoreconf 66 | eapply_user 67 | } 68 | 69 | src_configure() { 70 | if use gtk2; then 71 | GTK_CONF="--with-gtk=2.0" 72 | else 73 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 74 | fi 75 | econf \ 76 | $(use_enable experimental) \ 77 | $(use_enable debug) \ 78 | $(use_enable autostart) \ 79 | $GTK_CONF \ 80 | $(use_with standalone) \ 81 | $(use_with awn) \ 82 | $(use_with indicator) \ 83 | $(use_with lxde lxpanel) \ 84 | $(use_with mate) \ 85 | $(use_with systray) \ 86 | $(use_with xfce4) 87 | 88 | if use experimental; then 89 | elog "You are enabling experimental code. Please note that this can be really unstable." 90 | fi 91 | } 92 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-1.5.2.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | SRC_URI="https://github.com/udda/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" 12 | KEYWORDS="amd64 x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.5.8 36 | ) 37 | mate? ( 38 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 39 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 40 | ) 41 | xfce4? ( 42 | gtk2? ( 43 | >=xfce-base/libxfce4util-4.6.0 44 | >=xfce-base/xfce4-panel-4.6.0 45 | ) 46 | gtk3? ( 47 | >=xfce-base/libxfce4util-4.12.0 48 | >=xfce-base/xfce4-panel-4.12.0 49 | ) 50 | )" 51 | 52 | DEPEND="${RDEPEND} 53 | dev-util/intltool 54 | sys-devel/gettext 55 | virtual/pkgconfig" 56 | 57 | DOCS="AUTHORS README.md" 58 | 59 | REQUIRED_USE=" 60 | ^^ ( gtk2 gtk3 ) 61 | || ( awn indicator lxde mate standalone systray xfce4 ) 62 | awn? ( gtk2 experimental )" 63 | 64 | src_prepare() { 65 | eautoreconf 66 | eapply_user 67 | } 68 | 69 | src_configure() { 70 | if use gtk2; then 71 | GTK_CONF="--with-gtk=2.0" 72 | else 73 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 74 | fi 75 | econf \ 76 | $(use_enable experimental) \ 77 | $(use_enable debug) \ 78 | $(use_enable autostart) \ 79 | $GTK_CONF \ 80 | $(use_with standalone) \ 81 | $(use_with awn) \ 82 | $(use_with indicator) \ 83 | $(use_with lxde lxpanel) \ 84 | $(use_with mate) \ 85 | $(use_with systray) \ 86 | $(use_with xfce4) 87 | 88 | if use experimental; then 89 | elog "You are enabling experimental code. Please note that this can be really unstable." 90 | fi 91 | } 92 | -------------------------------------------------------------------------------- /extras/portage/x11-plugins/multiload-ng/multiload-ng-9999.ebuild: -------------------------------------------------------------------------------- 1 | # Copyright 1999-2016 Gentoo Foundation 2 | # Distributed under the terms of the GNU General Public License v2 3 | # $Id$ 4 | 5 | EAPI=6 6 | inherit autotools eutils git-r3 7 | 8 | DESCRIPTION="Modern graphical system monitor for any panel" 9 | HOMEPAGE="https://github.com/udda/multiload-ng" 10 | 11 | EGIT_REPO_URI="git://github.com/udda/multiload-ng.git" 12 | KEYWORDS="~amd64 ~x86" 13 | 14 | LICENSE="GPL-2" 15 | SLOT="0" 16 | IUSE="-debug +autostart -experimental gtk2 +gtk3 -awn +indicator +lxde +mate +standalone +systray +xfce4" 17 | 18 | LANGS="de es fr it lt ru zh_CN" 19 | for lang in ${LANGS} ; do IUSE+=" linguas_${lang}"; done 20 | 21 | RDEPEND=" 22 | gtk2? ( >=x11-libs/gtk+-2.20:2 ) 23 | gtk3? ( x11-libs/gtk+:3 ) 24 | x11-libs/cairo:= 25 | awn? ( 26 | >=gnome-extra/avant-window-navigator-0.3.9 27 | >=dev-cpp/glibmm-2.16.0:2 28 | >=dev-cpp/gtkmm-2.20:2.4 29 | ) 30 | indicator? ( 31 | gtk2? ( >=dev-libs/libappindicator-0.4.92:2 ) 32 | gtk3? ( >=dev-libs/libappindicator-0.4.92:3 ) 33 | ) 34 | lxde? ( 35 | >=lxde-base/lxpanel-0.5.8 36 | ) 37 | mate? ( 38 | gtk2? ( >=mate-base/mate-panel-1.7.0 ) 39 | gtk3? ( >=mate-base/mate-panel-1.7.0[gtk3(-)] ) 40 | ) 41 | xfce4? ( 42 | gtk2? ( 43 | >=xfce-base/libxfce4util-4.6.0 44 | >=xfce-base/xfce4-panel-4.6.0 45 | ) 46 | gtk3? ( 47 | >=xfce-base/libxfce4util-4.12.0 48 | >=xfce-base/xfce4-panel-4.12.0 49 | ) 50 | )" 51 | 52 | DEPEND="${RDEPEND} 53 | dev-util/intltool 54 | sys-devel/gettext 55 | virtual/pkgconfig" 56 | 57 | DOCS="AUTHORS README.md" 58 | 59 | REQUIRED_USE=" 60 | ^^ ( gtk2 gtk3 ) 61 | || ( awn indicator lxde mate standalone systray xfce4 ) 62 | awn? ( gtk2 experimental )" 63 | 64 | src_prepare() { 65 | eautoreconf 66 | eapply_user 67 | } 68 | 69 | src_configure() { 70 | if use gtk2; then 71 | GTK_CONF="--with-gtk=2.0" 72 | else 73 | GTK_CONF="--with-gtk=3.0 --disable-deprecations" 74 | fi 75 | econf \ 76 | $(use_enable experimental) \ 77 | $(use_enable debug) \ 78 | $(use_enable autostart) \ 79 | $GTK_CONF \ 80 | $(use_with standalone) \ 81 | $(use_with awn) \ 82 | $(use_with indicator) \ 83 | $(use_with lxde lxpanel) \ 84 | $(use_with mate) \ 85 | $(use_with systray) \ 86 | $(use_with xfce4) 87 | 88 | if use experimental; then 89 | elog "You are enabling experimental code. Please note that this can be really unstable." 90 | fi 91 | } 92 | -------------------------------------------------------------------------------- /indicator/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | bin_PROGRAMS = multiload-ng-indicator 10 | 11 | multiload_ng_indicator_SOURCES = plugin.c 12 | 13 | multiload_ng_indicator_CFLAGS = \ 14 | $(GTK_CFLAGS) \ 15 | $(APPINDICATOR_CFLAGS) 16 | 17 | 18 | multiload_ng_indicator_LDFLAGS = \ 19 | -avoid-version \ 20 | -no-undefined \ 21 | $(PLATFORM_LDFLAGS) 22 | 23 | multiload_ng_indicator_LDADD = \ 24 | ../common/multiload-ng-core.la \ 25 | $(GTK_LIBS) \ 26 | $(APPINDICATOR_LIBS) 27 | 28 | 29 | # Desktop file 30 | desktopdir = $(datadir)/applications 31 | desktop_DATA = multiload-ng-indicator.desktop 32 | 33 | @INTLTOOL_DESKTOP_RULE@ 34 | 35 | # Autostart 36 | if ENABLE_AUTOSTART 37 | autostartdir = $(sysconfdir)/xdg/autostart 38 | autostart_DATA = $(desktop_DATA) 39 | endif 40 | 41 | EXTRA_DIST = multiload-ng-indicator.desktop.in.in 42 | CLEANFILES = $(desktop_DATA) 43 | DISTCLEANFILES = multiload-ng-indicator.desktop.in 44 | 45 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 46 | -------------------------------------------------------------------------------- /indicator/configure.m4: -------------------------------------------------------------------------------- 1 | AC_ARG_WITH([indicator], AS_HELP_STRING([--with-indicator], [Build plugin for libindicator]), [], [with_indicator="check"]) 2 | AS_IF([test "x$with_indicator" != "xno"], [ 3 | AS_IF([test "x$GTK_API" = "x2"], [LIBNAME=appindicator], [LIBNAME=appindicator3]) 4 | 5 | PKG_CHECK_MODULES(APPINDICATOR, [$LIBNAME-0.1 >= 0.4.92], [ 6 | AC_DEFINE([HAVE_APPINDICATOR], [1], [Support for libappindicator]) 7 | with_indicator="yes" 8 | ],[ 9 | if test "x$with_indicator" != "xcheck"; then 10 | AC_MSG_FAILURE([--with-indicator was given, but test failed]) 11 | fi 12 | with_indicator="no" 13 | ]) 14 | ]) 15 | 16 | AC_SUBST(APPINDICATOR_CFLAGS) 17 | AC_SUBST(APPINDICATOR_LIBS) 18 | 19 | AC_CONFIG_FILES([ 20 | indicator/Makefile 21 | indicator/multiload-ng-indicator.desktop.in 22 | ]) 23 | 24 | AM_CONDITIONAL(HAVE_APPINDICATOR, test "x$with_indicator" = "xyes") 25 | -------------------------------------------------------------------------------- /indicator/multiload-ng-indicator.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | _Name=Multiload-ng (indicator) 5 | _Comment=Modern graphical system monitor 6 | TryExec=multiload-ng-indicator 7 | Exec=multiload-ng-indicator 8 | Icon=@APPICON@ 9 | Categories=Utility;System;Monitor;GTK;Applet; 10 | Terminal=false 11 | StartupNotify=false 12 | Actions=Preferences; 13 | 14 | [Desktop Action Preferences] 15 | _Name=Preferences 16 | Exec=multiload-ng-indicator --preferences 17 | Icon=preferences-system 18 | -------------------------------------------------------------------------------- /lxpanel/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | plugin_LTLIBRARIES = \ 10 | multiload_ng.la 11 | 12 | plugindir = \ 13 | $(libdir)/lxpanel/plugins 14 | 15 | multiload_ng_la_SOURCES = \ 16 | plugin.c plugin-old.c 17 | 18 | multiload_ng_la_CFLAGS = \ 19 | $(GTK_CFLAGS) \ 20 | $(LXPANEL_CFLAGS) 21 | 22 | 23 | multiload_ng_la_LDFLAGS = \ 24 | -avoid-version \ 25 | -module \ 26 | -no-undefined \ 27 | $(PLATFORM_LDFLAGS) 28 | 29 | multiload_ng_la_LIBADD = \ 30 | ../common/multiload-ng-core.la \ 31 | $(GTK_LIBS) \ 32 | $(LXPANEL_LIBS) 33 | 34 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 35 | -------------------------------------------------------------------------------- /lxpanel/configure.m4: -------------------------------------------------------------------------------- 1 | AC_ARG_WITH([lxpanel], AS_HELP_STRING([--with-lxpanel], [Build plugin for lxpanel]), [], [with_lxpanel="check"]) 2 | AS_IF([test "x$with_lxpanel" != "xno"], [ 3 | PKG_CHECK_MODULES(LXPANEL, [lxpanel >= 0.5.8], [ 4 | # libmenu-cache is implicitly required 5 | AC_DEFINE([HAVE_LXPANEL], [1], [Support for lxpanel]) 6 | with_lxpanel="yes" 7 | 8 | # Check for LxPanel>=0.7.0 (new API) 9 | PKG_CHECK_EXISTS( [lxpanel >= 0.7.0 libfm >= 1.2.0], [ AC_DEFINE([LXPANEL_NEW_API], [1], [LxPanel version is >= 0.7.0]) ]) 10 | 11 | ],[ 12 | if test "x$with_lxpanel" != "xcheck"; then 13 | AC_MSG_FAILURE([--with-lxpanel was given, but test failed]) 14 | fi 15 | with_lxpanel="no" 16 | ]) 17 | ]) 18 | 19 | AC_SUBST(LXPANEL_CFLAGS) 20 | AC_SUBST(LXPANEL_LIBS) 21 | 22 | AC_CONFIG_FILES([ 23 | lxpanel/Makefile 24 | ]) 25 | 26 | AM_CONDITIONAL(HAVE_LXPANEL, test "x$with_lxpanel" = "xyes") 27 | -------------------------------------------------------------------------------- /lxpanel/plugin-old.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include 22 | 23 | 24 | #ifndef LXPANEL_NEW_API 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #include 32 | 33 | #include "common/about-data.h" 34 | #include "common/multiload.h" 35 | #include "common/ui.h" 36 | #include "common/util.h" 37 | 38 | typedef struct { 39 | Plugin *plugin; 40 | char **fp_read; 41 | FILE *fp_save; 42 | } PanelData; 43 | 44 | 45 | static gchar* 46 | key_name_convert(const gchar *key) 47 | { 48 | // LxPanel old API accepts only alphanumeric characters for key names 49 | return str_replace(key, "-", "00"); 50 | } 51 | 52 | gpointer 53 | multiload_ps_settings_open_for_read(MultiloadPlugin *ma) 54 | { 55 | return ((PanelData*)ma->panel_data)->fp_read; 56 | } 57 | gpointer 58 | multiload_ps_settings_open_for_save(MultiloadPlugin *ma) 59 | { 60 | return ((PanelData*)ma->panel_data)->fp_save; 61 | } 62 | 63 | gboolean 64 | multiload_ps_settings_save(gpointer settings) 65 | { 66 | return TRUE; 67 | } 68 | 69 | void 70 | multiload_ps_settings_close(gpointer settings) 71 | { 72 | } 73 | 74 | void 75 | multiload_ps_settings_get_string(gpointer settings, const gchar *key, gchar *destination, size_t maxlen) 76 | { 77 | line s; 78 | s.len = 1024; 79 | gchar *key_converted = key_name_convert(key); 80 | 81 | // make a new buffer everytime (expensive, but necessary to read settings out of order) 82 | char *fp = g_strdup(*((char**)settings)); 83 | char *cur = fp; 84 | 85 | while ( lxpanel_get_line(&cur, &s) != LINE_BLOCK_END ) { 86 | if ( s.type == LINE_VAR ) { 87 | if ( g_ascii_strcasecmp(s.t[0], key_converted) == 0 ) { 88 | strncpy(destination, s.t[1], maxlen); 89 | break; 90 | } 91 | } else { 92 | break; 93 | } 94 | } 95 | 96 | g_free(fp); 97 | g_free(key_converted); 98 | } 99 | void 100 | multiload_ps_settings_get_int(gpointer settings, const gchar *key, int *destination) 101 | { 102 | char buf[1024]; 103 | multiload_ps_settings_get_string(settings, key, buf, 1024); 104 | *destination = atoi(buf); 105 | } 106 | void 107 | multiload_ps_settings_get_boolean(gpointer settings, const gchar *key, gboolean *destination) 108 | { 109 | char buf[1024]; 110 | multiload_ps_settings_get_string(settings, key, buf, 1024); 111 | *destination = (buf[0]=='1' ? TRUE:FALSE); 112 | } 113 | 114 | void 115 | multiload_ps_settings_set_int(gpointer settings, const gchar *key, int value) 116 | { 117 | gchar *key_converted = key_name_convert(key); 118 | lxpanel_put_int((FILE*)settings, key_converted, value); 119 | g_free(key_converted); 120 | } 121 | void 122 | multiload_ps_settings_set_boolean(gpointer settings, const gchar *key, gboolean value) 123 | { 124 | gchar *key_converted = key_name_convert(key); 125 | lxpanel_put_bool((FILE*)settings, key_converted, value); 126 | g_free(key_converted); 127 | } 128 | void 129 | multiload_ps_settings_set_string(gpointer settings, const gchar *key, const gchar *value) 130 | { 131 | gchar *key_converted = key_name_convert(key); 132 | lxpanel_put_str((FILE*)settings, key_converted, value); 133 | g_free(key_converted); 134 | } 135 | 136 | void 137 | multiload_ps_preferences_closed_cb(MultiloadPlugin *ma) 138 | { 139 | PanelData *pd = (PanelData*)ma->panel_data; 140 | 141 | //reset 142 | pd->fp_save = NULL; 143 | } 144 | 145 | 146 | static void lxpanel_configuration_changed(Plugin *p) 147 | { 148 | MultiloadPlugin *multiload = p->priv; 149 | Panel *panel = p->panel; 150 | 151 | if ( panel->orientation == ORIENT_HORIZ ) 152 | multiload->panel_orientation = GTK_ORIENTATION_HORIZONTAL; 153 | else 154 | multiload->panel_orientation = GTK_ORIENTATION_VERTICAL; 155 | 156 | multiload_refresh_orientation(multiload); 157 | } 158 | 159 | static int 160 | lxpanel_constructor(Plugin *p, char **fp) 161 | { 162 | MultiloadPlugin *multiload = multiload_new(); 163 | 164 | multiload->panel_data = g_slice_new0(PanelData); 165 | ((PanelData*)multiload->panel_data)->plugin = p; 166 | ((PanelData*)multiload->panel_data)->fp_read = fp; 167 | 168 | p->priv = multiload; 169 | p->pwid = GTK_WIDGET(multiload->container); 170 | 171 | multiload_ui_read (multiload); 172 | lxpanel_configuration_changed(p); 173 | multiload_start(multiload); 174 | 175 | return 1; 176 | } 177 | 178 | static void 179 | lxpanel_destructor(Plugin * p) { 180 | MultiloadPlugin *multiload = (MultiloadPlugin*)p->priv; 181 | gtk_widget_destroy (GTK_WIDGET(multiload->container)); 182 | g_free(multiload); 183 | } 184 | 185 | static void lxpanel_configure(Plugin * p, GtkWindow * parent) 186 | { 187 | MultiloadPlugin *multiload = (MultiloadPlugin*)p->priv; 188 | ((PanelData*)multiload->panel_data)->fp_save = NULL; 189 | GtkWidget *dialog = multiload_ui_configure_dialog_new(multiload, parent); 190 | gtk_window_present(GTK_WINDOW(dialog)); 191 | } 192 | 193 | static void lxpanel_save(Plugin * p, FILE * fp) 194 | { 195 | MultiloadPlugin *multiload = (MultiloadPlugin*)p->priv; 196 | ((PanelData*)multiload->panel_data)->fp_save = fp; 197 | multiload_ui_save(multiload); 198 | } 199 | 200 | 201 | /* Plugin descriptor. */ 202 | PluginClass multiload_ng_plugin_class = { 203 | PLUGINCLASS_VERSIONING, 204 | 205 | type : "multiload_ng", 206 | name : about_data_progname, 207 | version: PACKAGE_VERSION, 208 | description : about_data_description_N, 209 | one_per_system : FALSE, 210 | expand_available : FALSE, 211 | 212 | constructor : lxpanel_constructor, 213 | destructor : lxpanel_destructor, 214 | config : lxpanel_configure, 215 | save : lxpanel_save, 216 | panel_configuration_changed : lxpanel_configuration_changed 217 | }; 218 | 219 | #endif 220 | -------------------------------------------------------------------------------- /lxpanel/plugin.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include 22 | 23 | #ifdef LXPANEL_NEW_API 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | #include 30 | 31 | #include "common/about-data.h" 32 | #include "common/multiload.h" 33 | #include "common/ui.h" 34 | 35 | 36 | typedef struct { 37 | LXPanel *panel; 38 | config_setting_t *settings; 39 | } PanelData; 40 | 41 | 42 | gpointer 43 | multiload_ps_settings_open_for_read(MultiloadPlugin *ma) 44 | { 45 | return ((PanelData*)ma->panel_data)->settings; 46 | } 47 | gpointer 48 | multiload_ps_settings_open_for_save(MultiloadPlugin *ma) 49 | { 50 | return ((PanelData*)ma->panel_data)->settings; 51 | } 52 | 53 | gboolean 54 | multiload_ps_settings_save(gpointer settings) 55 | { 56 | return TRUE; 57 | } 58 | 59 | void 60 | multiload_ps_settings_close(gpointer settings) 61 | { 62 | } 63 | 64 | void 65 | multiload_ps_settings_get_int(gpointer settings, const gchar *key, int *destination) 66 | { 67 | config_setting_lookup_int((config_setting_t*)settings, key, destination); 68 | } 69 | void 70 | multiload_ps_settings_get_boolean(gpointer settings, const gchar *key, gboolean *destination) 71 | { 72 | config_setting_lookup_int((config_setting_t*)settings, key, destination); 73 | *destination = (*destination)? TRUE:FALSE; 74 | } 75 | void 76 | multiload_ps_settings_get_string(gpointer settings, const gchar *key, gchar *destination, size_t maxlen) 77 | { 78 | const gchar* temp = NULL; 79 | config_setting_lookup_string((config_setting_t*)settings, key, &temp); 80 | if (G_LIKELY(temp != NULL)) 81 | strncpy(destination, temp, maxlen); 82 | } 83 | 84 | void 85 | multiload_ps_settings_set_int(gpointer settings, const gchar *key, int value) 86 | { 87 | config_group_set_int((config_setting_t*)settings, key, value); 88 | } 89 | void 90 | multiload_ps_settings_set_boolean(gpointer settings, const gchar *key, gboolean value) 91 | { 92 | config_group_set_int((config_setting_t*)settings, key, value?TRUE:FALSE); 93 | } 94 | void 95 | multiload_ps_settings_set_string(gpointer settings, const gchar *key, const gchar *value) 96 | { 97 | config_group_set_string((config_setting_t*)settings, key, value); 98 | } 99 | 100 | void 101 | multiload_ps_preferences_closed_cb(MultiloadPlugin *ma) 102 | { 103 | //force settings update 104 | LXPanel *panel = ((PanelData*)ma->panel_data)->panel; 105 | lxpanel_config_save(panel); 106 | } 107 | 108 | 109 | 110 | GtkWidget* 111 | lxpanel_configure_cb(LXPanel *panel, GtkWidget *ebox) 112 | { 113 | MultiloadPlugin *multiload = lxpanel_plugin_get_data(ebox); 114 | return multiload_ui_configure_dialog_new(multiload, 115 | GTK_WINDOW(gtk_widget_get_toplevel (GTK_WIDGET(ebox)))); 116 | } 117 | 118 | void 119 | lxpanel_reconfigure_cb(LXPanel *panel, GtkWidget *ebox) 120 | { 121 | MultiloadPlugin *multiload = lxpanel_plugin_get_data(ebox); 122 | 123 | if ( panel_get_orientation(panel) == GTK_ORIENTATION_VERTICAL ) 124 | multiload->panel_orientation = GTK_ORIENTATION_VERTICAL; 125 | else // lxpanel panel orientation can have values other than vert/horiz 126 | multiload->panel_orientation = GTK_ORIENTATION_HORIZONTAL; 127 | 128 | multiload_refresh_orientation(multiload); 129 | } 130 | 131 | void 132 | lxpanel_destructor(gpointer user_data) 133 | { 134 | MultiloadPlugin *multiload = lxpanel_plugin_get_data(user_data); 135 | gtk_widget_destroy (GTK_WIDGET(user_data)); 136 | g_free(multiload->panel_data); 137 | g_free(multiload); 138 | } 139 | 140 | GtkWidget* 141 | lxpanel_constructor(LXPanel *panel, config_setting_t *settings) 142 | { 143 | MultiloadPlugin *multiload = multiload_new(); 144 | 145 | multiload->panel_data = g_slice_new0(PanelData); 146 | ((PanelData*)multiload->panel_data)->panel = panel; 147 | ((PanelData*)multiload->panel_data)->settings = settings; 148 | 149 | lxpanel_plugin_set_data(multiload->container, multiload, lxpanel_destructor); 150 | 151 | multiload_ui_read (multiload); 152 | lxpanel_reconfigure_cb(panel, GTK_WIDGET(multiload->container)); 153 | multiload_start(multiload); 154 | 155 | return GTK_WIDGET(multiload->container); 156 | } 157 | 158 | 159 | FM_DEFINE_MODULE(lxpanel_gtk, multiload_ng) 160 | 161 | /* Plugin descriptor. */ 162 | LXPanelPluginInit fm_module_init_lxpanel_gtk = { 163 | .name = about_data_progname, 164 | .description = about_data_description_N, 165 | 166 | .new_instance = lxpanel_constructor, 167 | .config = lxpanel_configure_cb, 168 | .reconfigure = lxpanel_reconfigure_cb, 169 | .one_per_system = FALSE, 170 | .expand_available = FALSE 171 | }; 172 | 173 | #endif 174 | -------------------------------------------------------------------------------- /mate/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | -DMATELOCALEDIR=\"$(localedir)\" \ 5 | $(PLATFORM_CPPFLAGS) 6 | 7 | 8 | libexec_PROGRAMS = mate-multiload-ng-applet 9 | mate_multiload_ng_applet_LOCATION = \ 10 | $(libexecdir)/mate-multiload-ng-applet 11 | 12 | mate_multiload_ng_applet_SOURCES = \ 13 | plugin.c 14 | 15 | mate_multiload_ng_applet_CFLAGS = \ 16 | $(GTK_CFLAGS) \ 17 | $(MATE_CFLAGS) 18 | 19 | 20 | mate_multiload_ng_applet_LDADD = \ 21 | ../common/multiload-ng-core.la \ 22 | $(GTK_LIBS) \ 23 | $(MATE_LIBS) 24 | 25 | 26 | plugindir = $(datadir)/mate-panel/applets 27 | plugin_in_files = org.mate.multiload-ng.Applet.mate-panel-applet.in 28 | plugin_DATA = $(plugin_in_files:.mate-panel-applet.in=.mate-panel-applet) 29 | 30 | $(plugin_in_files): $(plugin_in_files).in Makefile 31 | @$(AM_V_GEN)sed -e "s|\@LOCATION\@|$(mate_multiload_ng_applet_LOCATION)|" $< > $@ 32 | 33 | org.mate.multiload-ng.Applet.mate-panel-applet: org.mate.multiload-ng.Applet.mate-panel-applet.in 34 | @$(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache 35 | 36 | servicedir = $(datadir)/dbus-1/services 37 | service_in_files = org.mate.panel.applet.MultiloadNgFactory.service.in 38 | service_DATA = $(service_in_files:.service.in=.service) 39 | 40 | org.mate.panel.applet.MultiloadNgFactory.service: $(service_in_files) 41 | @$(AM_V_GEN)sed -e "s|\@LOCATION\@|$(mate_multiload_ng_applet_LOCATION)|" $< > $@ 42 | 43 | 44 | @INTLTOOL_XML_NOMERGE_RULE@ 45 | multiload_gschema_in_files = org.mate.panel.applet.multiload-ng.gschema.xml.in 46 | gsettings_SCHEMAS = $(multiload_gschema_in_files:.xml.in=.xml) 47 | @GSETTINGS_RULES@ 48 | 49 | EXTRA_DIST = \ 50 | $(plugin_in_files) \ 51 | $(service_in_files) \ 52 | $(multiload_gschema_in_files) 53 | 54 | CLEANFILES = \ 55 | org.mate.multiload-ng.Applet.mate-panel-applet \ 56 | org.mate.panel.applet.MultiloadNgFactory.service \ 57 | org.mate.panel.applet.multiload-ng.gschema.xml \ 58 | $(plugin_in_files) 59 | 60 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 61 | -------------------------------------------------------------------------------- /mate/configure.m4: -------------------------------------------------------------------------------- 1 | AC_ARG_WITH([mate], AS_HELP_STRING([--with-mate], [Build plugin for mate-panel]), [], [with_mate="check"]) 2 | AS_IF([test "x$with_mate" != "xno"], [ 3 | GLIB_GSETTINGS 4 | PKG_CHECK_MODULES(MATE, [libmatepanelapplet-4.0 >= 1.7.0], [ 5 | AC_DEFINE([HAVE_MATE], [1], [Support for mate-panel]) 6 | with_mate="yes" 7 | ],[ 8 | if test "x$with_mate" != xcheck; then 9 | AC_MSG_FAILURE([--with-mate was given, but test failed]) 10 | fi 11 | with_mate="no" 12 | ]) 13 | ]) 14 | 15 | AC_SUBST(MATE_CFLAGS) 16 | AC_SUBST(MATE_LIBS) 17 | 18 | AC_CONFIG_FILES([ 19 | mate/Makefile 20 | mate/org.mate.multiload-ng.Applet.mate-panel-applet.in.in 21 | mate/org.mate.panel.applet.multiload-ng.gschema.xml.in 22 | ]) 23 | 24 | AM_CONDITIONAL(HAVE_MATE, test "x$with_mate" = "xyes") 25 | -------------------------------------------------------------------------------- /mate/org.mate.multiload-ng.Applet.mate-panel-applet.in.in.in: -------------------------------------------------------------------------------- 1 | [Applet Factory] 2 | Id=MultiloadNgFactory 3 | Location=@LOCATION@ 4 | Name=Multiload-ng Factory 5 | Description=Multiload-ng Factory 6 | 7 | [MultiloadNgApplet] 8 | Name=Multiload-ng 9 | _Description=Modern graphical system monitor 10 | Icon=@APPICON@ 11 | -------------------------------------------------------------------------------- /mate/org.mate.panel.applet.MultiloadNgFactory.service.in: -------------------------------------------------------------------------------- 1 | [D-BUS Service] 2 | Name=org.mate.panel.applet.MultiloadNgFactory 3 | Exec=@LOCATION@ -------------------------------------------------------------------------------- /mate/plugin.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Mario Cianciolo 3 | * 4 | * This file is part of multiload-ng. 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License along 17 | * with this program; if not, write to the Free Software Foundation, Inc., 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | 22 | #include 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #include 29 | #include 30 | 31 | #include "common/about-data.h" 32 | #include "common/multiload.h" 33 | #include "common/ui.h" 34 | 35 | 36 | // Panel Specific Settings Implementation 37 | #define MULTILOAD_CONFIG_BASENAME "indicator.conf" 38 | #include "common/ps-settings-impl-gsettings.inc" 39 | 40 | 41 | static void 42 | mate_sysmon_cb (GtkAction *action, MultiloadPlugin *ma) 43 | { 44 | multiload_ui_start_system_monitor(ma); 45 | } 46 | 47 | static void 48 | mate_properties_cb (GtkAction *action, MultiloadPlugin *ma) 49 | { 50 | GtkWidget *dialog = multiload_ui_configure_dialog_new(ma, 51 | GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (ma->container)))); 52 | gtk_window_present(GTK_WINDOW(dialog)); 53 | } 54 | 55 | static void 56 | mate_help_cb (GtkAction *action, gpointer data) 57 | { 58 | multiload_ui_show_help(); 59 | } 60 | 61 | static void 62 | mate_about_cb (GtkAction *action, MultiloadPlugin *ma) 63 | { 64 | multiload_ui_show_about(GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (ma->container)))); 65 | } 66 | 67 | static void 68 | mate_orientation_cb (MatePanelApplet *applet, guint orient, MultiloadPlugin *ma) 69 | { 70 | // ignore provided orientation as sometimes at startup has invalid values 71 | orient = mate_panel_applet_get_orient(applet); 72 | 73 | if (orient == MATE_PANEL_APPLET_ORIENT_UP || orient == MATE_PANEL_APPLET_ORIENT_DOWN) 74 | ma->panel_orientation = GTK_ORIENTATION_HORIZONTAL; 75 | else // if (orient == MATE_PANEL_APPLET_ORIENT_LEFT || orient == MATE_PANEL_APPLET_ORIENT_RIGHT) 76 | ma->panel_orientation = GTK_ORIENTATION_VERTICAL; 77 | 78 | multiload_refresh_orientation(ma); 79 | } 80 | 81 | 82 | static void 83 | mate_setup_menu(MatePanelApplet *applet, gpointer data) { 84 | const gchar* xml = 85 | "" 86 | "" 87 | "" 88 | "" 89 | ""; 90 | 91 | const GtkActionEntry actions [] = { 92 | { "MultiloadNgSysmon", "utilities-system-monitor", N_("Start task manager"), NULL, NULL, G_CALLBACK (mate_sysmon_cb) }, 93 | { "MultiloadNgProperties", "preferences-system", N_("_Preferences"), NULL, NULL, G_CALLBACK (mate_properties_cb) }, 94 | { "MultiloadNgHelp", "help-browser", N_("_Help"), NULL, NULL, G_CALLBACK (mate_help_cb) }, 95 | { "MultiloadNgAbout", "help-about", N_("_About"), NULL, NULL, G_CALLBACK (mate_about_cb) } 96 | }; 97 | 98 | GtkActionGroup *action_group = gtk_action_group_new ("Multiload-ng Actions"); 99 | gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE); 100 | gtk_action_group_add_actions (action_group, actions, G_N_ELEMENTS (actions), data); 101 | 102 | mate_panel_applet_setup_menu (applet, xml, action_group); 103 | } 104 | 105 | 106 | static gboolean 107 | mate_constructor (MatePanelApplet* applet, const char* iid, gpointer data) 108 | { 109 | if (g_strcmp0(iid, "MultiloadNgApplet")) 110 | return FALSE; 111 | 112 | 113 | MultiloadPlugin *multiload = multiload_new(); 114 | 115 | mate_panel_applet_set_flags (applet, MATE_PANEL_APPLET_EXPAND_MINOR | MATE_PANEL_APPLET_HAS_HANDLE); 116 | mate_panel_applet_set_background_widget(applet, GTK_WIDGET(applet)); 117 | 118 | gtk_container_add (GTK_CONTAINER(applet), GTK_WIDGET(multiload->container)); 119 | gtk_widget_show (GTK_WIDGET(applet)); 120 | 121 | _settings = mate_panel_applet_settings_new (applet, "org.mate.panel.applet.multiload-ng"); 122 | multiload_ui_read (multiload); 123 | // trigger orientation setup 124 | mate_orientation_cb(applet, -1, multiload); 125 | multiload_start(multiload); 126 | 127 | mate_setup_menu(applet, multiload); 128 | 129 | 130 | /* plugin signals */ 131 | g_signal_connect (G_OBJECT (applet), "change-orient", G_CALLBACK (mate_orientation_cb), multiload); 132 | 133 | return TRUE; 134 | } 135 | 136 | MATE_PANEL_APPLET_OUT_PROCESS_FACTORY("MultiloadNgFactory", 137 | PANEL_TYPE_APPLET, 138 | about_data_description, 139 | mate_constructor, 140 | NULL) 141 | -------------------------------------------------------------------------------- /po/Makefile.am: -------------------------------------------------------------------------------- 1 | CLEANFILES = \ 2 | LINGUAS 3 | -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | awn/multiload-ng-awn.desktop.in.in 2 | awn/plugin.c 3 | common/about-data.h 4 | common/graph-bat.c 5 | common/graph-cpu.c 6 | common/graph-mem.c 7 | common/graph-net.c 8 | common/graph-swap.c 9 | common/graph-load.c 10 | common/graph-disk.c 11 | common/graph-temp.c 12 | common/graph-parm.c 13 | common/load-graph.c 14 | common/multiload.c 15 | common/multiload-config.c 16 | common/preferences.c 17 | common/util.c 18 | common/ui.c 19 | data/preferences_gtk2.ui 20 | data/preferences_gtk3.ui 21 | indicator/multiload-ng-indicator.desktop.in.in 22 | indicator/plugin.c 23 | lxpanel/plugin.c 24 | mate/plugin.c 25 | mate/org.mate.multiload-ng.Applet.mate-panel-applet.in.in.in 26 | standalone/multiload-ng-standalone.desktop.in.in 27 | standalone/plugin.c 28 | systray/multiload-ng-systray.desktop.in.in 29 | systray/plugin.c 30 | xfce4/multiload-ng-xfce4.desktop.in.in 31 | xfce4/plugin.c 32 | -------------------------------------------------------------------------------- /po/POTFILES.skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udda/multiload-ng/743885da84474bfffc5f5505c0d1a7160de6afef/po/POTFILES.skip -------------------------------------------------------------------------------- /standalone/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | bin_PROGRAMS = multiload-ng 10 | 11 | multiload_ng_SOURCES = \ 12 | plugin.c 13 | 14 | multiload_ng_CFLAGS = \ 15 | $(GTK_CFLAGS) 16 | 17 | 18 | multiload_ng_LDFLAGS = \ 19 | -avoid-version \ 20 | -no-undefined \ 21 | $(PLATFORM_LDFLAGS) 22 | 23 | multiload_ng_LDADD = \ 24 | ../common/multiload-ng-core.la \ 25 | $(GTK_LIBS) 26 | 27 | 28 | # Desktop file 29 | desktopdir = $(datadir)/applications 30 | desktop_DATA = multiload-ng-standalone.desktop 31 | 32 | @INTLTOOL_DESKTOP_RULE@ 33 | 34 | EXTRA_DIST = multiload-ng-standalone.desktop.in.in 35 | CLEANFILES = $(desktop_DATA) 36 | DISTCLEANFILES = multiload-ng-standalone.desktop.in 37 | 38 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 39 | -------------------------------------------------------------------------------- /standalone/configure.m4: -------------------------------------------------------------------------------- 1 | AC_ARG_WITH([standalone], AS_HELP_STRING([--with-standalone], [Build standalone application]), [], [with_standalone="yes"]) 2 | 3 | AC_DEFINE([HAVE_STANDALONE], [1], [Support for standalone]) 4 | 5 | AC_CONFIG_FILES([ 6 | standalone/Makefile 7 | standalone/multiload-ng-standalone.desktop.in 8 | ]) 9 | 10 | AM_CONDITIONAL(HAVE_STANDALONE, test "x$with_standalone" != "xno") 11 | -------------------------------------------------------------------------------- /standalone/multiload-ng-standalone.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=Multiload-ng 5 | _Comment=Modern graphical system monitor 6 | TryExec=multiload-ng 7 | Exec=multiload-ng 8 | Icon=@APPICON@ 9 | Categories=Utility;System;Monitor;GTK; 10 | Terminal=false 11 | StartupNotify=true 12 | Actions=Preferences; 13 | 14 | [Desktop Action Preferences] 15 | _Name=Preferences 16 | Exec=multiload-ng-indicator --preferences 17 | Icon=preferences-system 18 | -------------------------------------------------------------------------------- /systray/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | bin_PROGRAMS = multiload-ng-systray 10 | 11 | multiload_ng_systray_SOURCES = plugin.c 12 | 13 | multiload_ng_systray_CFLAGS = $(GTK_CFLAGS) 14 | 15 | multiload_ng_systray_LDFLAGS = \ 16 | -avoid-version \ 17 | -no-undefined \ 18 | $(PLATFORM_LDFLAGS) 19 | 20 | multiload_ng_systray_LDADD = \ 21 | ../common/multiload-ng-core.la \ 22 | $(GTK_LIBS) 23 | 24 | 25 | # Desktop file 26 | desktopdir = $(datadir)/applications 27 | desktop_DATA = multiload-ng-systray.desktop 28 | 29 | @INTLTOOL_DESKTOP_RULE@ 30 | 31 | # Autostart 32 | if ENABLE_AUTOSTART 33 | autostartdir = $(sysconfdir)/xdg/autostart 34 | autostart_DATA = $(desktop_DATA) 35 | endif 36 | 37 | EXTRA_DIST = multiload-ng-systray.desktop.in.in 38 | CLEANFILES = $(desktop_DATA) 39 | DISTCLEANFILES = multiload-ng-systray.desktop.in 40 | 41 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 42 | -------------------------------------------------------------------------------- /systray/configure.m4: -------------------------------------------------------------------------------- 1 | AC_ARG_WITH([systray], AS_HELP_STRING([--with-systray], [Build plugin for system tray icon]), [], [with_systray="yes"]) 2 | 3 | AC_DEFINE([HAVE_SYSTRAY], [1], [Support for system tray]) 4 | 5 | AC_CONFIG_FILES([ 6 | systray/Makefile 7 | systray/multiload-ng-systray.desktop.in 8 | ]) 9 | 10 | AM_CONDITIONAL(HAVE_SYSTRAY, test "x$with_systray" = "xyes") 11 | -------------------------------------------------------------------------------- /systray/multiload-ng-systray.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | _Name=Multiload-ng (system tray) 5 | _Comment=Modern graphical system monitor 6 | TryExec=multiload-ng-systray 7 | Exec=multiload-ng-systray 8 | Icon=@APPICON@ 9 | Categories=Utility;System;Monitor;GTK;Applet;TrayIcon; 10 | Terminal=false 11 | StartupNotify=false 12 | Actions=Preferences; 13 | 14 | [Desktop Action Preferences] 15 | _Name=Preferences 16 | Exec=multiload-ng-indicator --preferences 17 | Icon=preferences-system 18 | -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | 1.5.2 -------------------------------------------------------------------------------- /xfce4/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CPPFLAGS = \ 2 | -I$(top_srcdir) \ 3 | -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ 4 | $(PLATFORM_CPPFLAGS) 5 | 6 | # 7 | # multiload plugin 8 | # 9 | plugin_LTLIBRARIES = \ 10 | libmultiload-ng.la 11 | 12 | plugindir = \ 13 | $(libdir)/xfce4/panel/plugins 14 | 15 | libmultiload_ng_la_SOURCES = \ 16 | plugin.c 17 | 18 | libmultiload_ng_la_CFLAGS = \ 19 | $(GTK_CFLAGS) \ 20 | $(XFCE4_CFLAGS) 21 | 22 | 23 | libmultiload_ng_la_LDFLAGS = \ 24 | -avoid-version \ 25 | -module \ 26 | -no-undefined \ 27 | -export-symbols-regex '^xfce_panel_(module_(preinit|init|construct)|plugin_get_(check|construct))' \ 28 | $(PLATFORM_LDFLAGS) 29 | 30 | libmultiload_ng_la_LIBADD = \ 31 | ../common/multiload-ng-core.la \ 32 | $(GTK_LIBS) \ 33 | $(XFCE4_LIBS) 34 | 35 | 36 | # Desktop file 37 | if XFCE_IS_4_6 38 | desktopdir = $(datadir)/xfce4/panel-plugins 39 | else 40 | desktopdir = $(datadir)/xfce4/panel/plugins 41 | endif 42 | desktop_DATA = multiload-ng-xfce4.desktop 43 | 44 | @INTLTOOL_DESKTOP_RULE@ 45 | 46 | EXTRA_DIST = multiload-ng-xfce4.desktop.in.in 47 | CLEANFILES = $(desktop_DATA) 48 | DISTCLEANFILES = multiload-ng-xfce4.desktop.in 49 | 50 | # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: 51 | -------------------------------------------------------------------------------- /xfce4/configure.m4: -------------------------------------------------------------------------------- 1 | AC_ARG_WITH([xfce4], AS_HELP_STRING([--with-xfce4], [Build plugin for xfce4-panel]), [], [with_xfce4="check"]) 2 | AS_IF([test "x$with_xfce4" != "xno"], [ 3 | 4 | # Select package versions depending on GTK version 5 | AS_IF([test "x$GTK_API" = "x2"], [ 6 | XFCE_API=1.0 7 | XFCE_MIN_VERSION=4.6.0 8 | ], [ 9 | XFCE_API=2.0 10 | XFCE_MIN_VERSION=4.12.0 11 | ]) 12 | 13 | # Special case: check for XFCE 4.6 (different paths used) 14 | PKG_CHECK_EXISTS( [libxfce4ui-1 >= 4.8.0], [ 15 | xfce_is_4_6="no" 16 | ], [ 17 | PKG_CHECK_EXISTS( [libxfcegui4-1.0 >= 4.6.0], [ 18 | xfce_is_4_6="yes" 19 | ]) 20 | ]) 21 | 22 | # Check for packages 23 | PKG_CHECK_MODULES(XFCE4, [libxfce4util-1.0 >= $XFCE_MIN_VERSION libxfce4panel-$XFCE_API >= $XFCE_MIN_VERSION], [ 24 | AC_DEFINE([HAVE_XFCE4], [1], [Support for xfce4-panel (GTK+$GTK_API)]) 25 | with_xfce4="yes" 26 | ],[ 27 | if test "x$with_xfce4" != xcheck; then 28 | AC_MSG_FAILURE([--with-xfce4 was given, but test failed]) 29 | fi 30 | with_xfce4="no" 31 | ]) 32 | ]) 33 | 34 | AM_CONDITIONAL([XFCE_IS_4_6], [test "x$xfce_is_4_6" = "xyes"]) 35 | 36 | AC_SUBST(XFCE4_CFLAGS) 37 | AC_SUBST(XFCE4_LIBS) 38 | AC_SUBST(XFCE_API) 39 | 40 | AC_CONFIG_FILES([ 41 | xfce4/Makefile 42 | xfce4/multiload-ng-xfce4.desktop.in 43 | ]) 44 | 45 | AM_CONDITIONAL([HAVE_XFCE4], [test "x$with_xfce4" = "xyes"]) 46 | -------------------------------------------------------------------------------- /xfce4/multiload-ng-xfce4.desktop.in.in: -------------------------------------------------------------------------------- 1 | [Xfce Panel] 2 | Type=X-XFCE-PanelPlugin 3 | Encoding=UTF-8 4 | Name=Multiload-ng 5 | _Comment=Modern graphical system monitor 6 | Icon=@APPICON@ 7 | X-XFCE-Module=multiload-ng 8 | X-XFCE-Internal=false 9 | X-XFCE-Unique=false 10 | X-XFCE-Module-Path=@LIBDIR@/xfce4/panel/plugins 11 | X-XFCE-API=@XFCE_API@ 12 | --------------------------------------------------------------------------------