mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-12-25 04:06:03 +00:00
UTF-8, bug fixes, lots of goodies.
git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky@11 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
0019e23e33
commit
466dd6f5d4
3
AUTHORS
3
AUTHORS
@ -86,6 +86,9 @@ Roman Bogorodskiy <bogorodskiy at inbox dot ru>
|
|||||||
Szymon Boniecki
|
Szymon Boniecki
|
||||||
Reads current LC_TIME
|
Reads current LC_TIME
|
||||||
|
|
||||||
|
Walt Nelson <wnelsonjr at comcast dot net>
|
||||||
|
$freq fix
|
||||||
|
|
||||||
William DiPlacido <bimbasaari at yahoo dot com>
|
William DiPlacido <bimbasaari at yahoo dot com>
|
||||||
Frequency from /proc/cpuinfo
|
Frequency from /proc/cpuinfo
|
||||||
Some other SETI stuff
|
Some other SETI stuff
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2005-07-24
|
||||||
|
* Conky now has UTF-8 support
|
||||||
|
* Fixed $freq for those with CPU scaling
|
||||||
|
* Fixed the problem with total_run_times
|
||||||
|
* Fixed alignment of bars and lines and stuff
|
||||||
|
* Reduced conky's memory usage (yay!)
|
||||||
|
|
||||||
2005-07-17
|
2005-07-17
|
||||||
* Fixed a pile of bugs in configure script
|
* Fixed a pile of bugs in configure script
|
||||||
* Added proper checking for headers in configure script
|
* Added proper checking for headers in configure script
|
||||||
|
7
TODO
7
TODO
@ -1,7 +0,0 @@
|
|||||||
* look into utf8 support
|
|
||||||
* fix conky -i N stuff
|
|
||||||
* fix bars not being centred
|
|
||||||
* fix lines not being centred
|
|
||||||
* fix bug where memory stuff gets messed when mpd_host is defined
|
|
||||||
* fix bug with $freq
|
|
||||||
|
|
6
autogen.sh
Executable file
6
autogen.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
aclocal-1.9
|
||||||
|
autoheader-2.59
|
||||||
|
automake-1.9 -a
|
||||||
|
autoconf-2.59
|
2
configure
vendored
2
configure
vendored
@ -6101,6 +6101,8 @@ _ACEOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "$as_me:$LINENO: checking for getloadavg" >&5
|
echo "$as_me:$LINENO: checking for getloadavg" >&5
|
||||||
echo $ECHO_N "checking for getloadavg... $ECHO_C" >&6
|
echo $ECHO_N "checking for getloadavg... $ECHO_C" >&6
|
||||||
cat >conftest.$ac_ext <<_ACEOF
|
cat >conftest.$ac_ext <<_ACEOF
|
||||||
|
14
configure.in
14
configure.in
@ -306,6 +306,20 @@ if test x$WANT_KSTAT = xyes; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
AC_DEFUN([AM_LANGINFO_CODESET],
|
||||||
|
[
|
||||||
|
AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
|
||||||
|
[AC_TRY_LINK([#include <langinfo.h>],
|
||||||
|
[char* cs = nl_langinfo(CODESET);],
|
||||||
|
am_cv_langinfo_codeset=yes,
|
||||||
|
am_cv_langinfo_codeset=no)
|
||||||
|
])
|
||||||
|
if test $am_cv_langinfo_codeset = yes; then
|
||||||
|
AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
|
||||||
|
[Define if you have <langinfo.h> and nl_langinfo(CODESET).])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl Check getloadavg
|
dnl Check getloadavg
|
||||||
dnl
|
dnl
|
||||||
|
51
conky.c
51
conky.c
@ -264,7 +264,7 @@ static void new_bar(char *buf, int w, int h, int usage)
|
|||||||
static const char *scan_bar(const char *args, int *w, int *h)
|
static const char *scan_bar(const char *args, int *w, int *h)
|
||||||
{
|
{
|
||||||
*w = 0; /* zero width means all space that is available */
|
*w = 0; /* zero width means all space that is available */
|
||||||
*h = 4;
|
*h = 6;
|
||||||
/* bar's argument is either height or height,width */
|
/* bar's argument is either height or height,width */
|
||||||
if (args) {
|
if (args) {
|
||||||
int n = 0;
|
int n = 0;
|
||||||
@ -2136,13 +2136,10 @@ static void draw_string(const char *s)
|
|||||||
i2=0;
|
i2=0;
|
||||||
for(i2=0;i2<(8-(1+pos)%8) && added <= max;i2++)
|
for(i2=0;i2<(8-(1+pos)%8) && added <= max;i2++)
|
||||||
{
|
{
|
||||||
//printf("pos thinger %i added %i max %i\n",(8-(1+pos)%8), added, max);
|
|
||||||
//printf("adding tab to: %s\n", s);
|
|
||||||
tmpstring2[pos+i2] = ' ';
|
tmpstring2[pos+i2] = ' ';
|
||||||
added++;
|
added++;
|
||||||
}
|
}
|
||||||
pos += i2;
|
pos += i2;
|
||||||
//printf("not adding tab to: %s\n", s);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2150,10 +2147,6 @@ static void draw_string(const char *s)
|
|||||||
tmpstring2[pos] = tmpstring1[i];
|
tmpstring2[pos] = tmpstring1[i];
|
||||||
pos++;
|
pos++;
|
||||||
}
|
}
|
||||||
/* else {
|
|
||||||
tmpstring2[pos] = ' ';
|
|
||||||
pos++;
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = tmpstring2;
|
s = tmpstring2;
|
||||||
@ -2169,9 +2162,8 @@ static void draw_string(const char *s)
|
|||||||
c2.color.green = c.green;
|
c2.color.green = c.green;
|
||||||
c2.color.blue = c.blue;
|
c2.color.blue = c.blue;
|
||||||
c2.color.alpha = font_alpha;
|
c2.color.alpha = font_alpha;
|
||||||
//printf("at: %i, %i\nstring: %s", cur_x, cur_y, s);
|
XftDrawStringUtf8(window.xftdraw, &c2, xftfont,
|
||||||
XftDrawString8(window.xftdraw, &c2, xftfont,
|
cur_x, cur_y, (XftChar8 *) s, strlen(s));
|
||||||
cur_x, cur_y, (XftChar8 *) s, strlen(s));
|
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@ -2220,8 +2212,8 @@ static void draw_line(char *s)
|
|||||||
JoinMiter);
|
JoinMiter);
|
||||||
XDrawLine(display, window.drawable,
|
XDrawLine(display, window.drawable,
|
||||||
window.gc, cur_x,
|
window.gc, cur_x,
|
||||||
cur_y - mid, cur_x + w,
|
cur_y - mid/2, cur_x + w,
|
||||||
cur_y - mid);
|
cur_y - mid/2);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2245,8 +2237,8 @@ static void draw_line(char *s)
|
|||||||
ss, 2);
|
ss, 2);
|
||||||
XDrawLine(display, window.drawable,
|
XDrawLine(display, window.drawable,
|
||||||
window.gc, cur_x,
|
window.gc, cur_x,
|
||||||
cur_y - mid, cur_x + w,
|
cur_y - mid/2, cur_x + w,
|
||||||
cur_y - mid);
|
cur_y - mid/2);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -2258,7 +2250,7 @@ static void draw_line(char *s)
|
|||||||
specials[special_index].arg;
|
specials[special_index].arg;
|
||||||
int by =
|
int by =
|
||||||
cur_y - (font_ascent() +
|
cur_y - (font_ascent() +
|
||||||
h) / 2 + 1;
|
h) / 2 - 1;
|
||||||
w = specials[special_index].width;
|
w = specials[special_index].width;
|
||||||
if (w == 0)
|
if (w == 0)
|
||||||
w = text_start_x +
|
w = text_start_x +
|
||||||
@ -2456,8 +2448,8 @@ static void update_text()
|
|||||||
static void main_loop()
|
static void main_loop()
|
||||||
{
|
{
|
||||||
Region region = XCreateRegion();
|
Region region = XCreateRegion();
|
||||||
info.looped = 0;
|
info.looped = -1;
|
||||||
while (total_run_times == 0 || info.looped < total_run_times) {
|
while (total_run_times == 0 || info.looped < total_run_times-1) {
|
||||||
info.looped++;
|
info.looped++;
|
||||||
XFlush(display);
|
XFlush(display);
|
||||||
|
|
||||||
@ -2828,7 +2820,7 @@ static void set_default_configurations(void)
|
|||||||
info.net_avg_samples = 2;
|
info.net_avg_samples = 2;
|
||||||
info.memmax = 0;
|
info.memmax = 0;
|
||||||
#ifdef MPD
|
#ifdef MPD
|
||||||
info.mpd.host = "localhost";
|
strcpy(info.mpd.host, "localhost");
|
||||||
info.mpd.port = 6600;
|
info.mpd.port = 6600;
|
||||||
info.mpd.status = "Checking status...";
|
info.mpd.status = "Checking status...";
|
||||||
#endif
|
#endif
|
||||||
@ -3001,11 +2993,10 @@ else if (strcasecmp(name, a) == 0 || strcasecmp(name, a) == 0)
|
|||||||
#ifdef MPD
|
#ifdef MPD
|
||||||
CONF("mpd_host") {
|
CONF("mpd_host") {
|
||||||
if (value)
|
if (value)
|
||||||
info.
|
strcpy(info.
|
||||||
mpd.
|
mpd.
|
||||||
host
|
host
|
||||||
=
|
, value);
|
||||||
value;
|
|
||||||
else
|
else
|
||||||
CONF_ERR}
|
CONF_ERR}
|
||||||
CONF("mpd_port") {
|
CONF("mpd_port") {
|
||||||
@ -3384,6 +3375,20 @@ else
|
|||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
/* handle command line parameters that don't change configs */
|
/* handle command line parameters that don't change configs */
|
||||||
|
char *s;
|
||||||
|
int utf8_mode = 0;
|
||||||
|
|
||||||
|
if (((s = getenv("LC_ALL")) && *s) ||
|
||||||
|
((s = getenv("LC_CTYPE")) && *s) ||
|
||||||
|
((s = getenv("LANG")) && *s)) {
|
||||||
|
if (strstr(s, "UTF-8"))
|
||||||
|
utf8_mode = 1;
|
||||||
|
}
|
||||||
|
if (!setlocale(LC_CTYPE, "")) {
|
||||||
|
fprintf(stderr, "Can't set the specified locale! "
|
||||||
|
"Check LANG, LC_CTYPE, LC_ALL.\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
while
|
while
|
||||||
(1)
|
(1)
|
||||||
{
|
{
|
||||||
@ -3465,7 +3470,7 @@ else
|
|||||||
}
|
}
|
||||||
/* initalize X BEFORE we load config. (we need to so that 'screen' is set) */
|
/* initalize X BEFORE we load config. (we need to so that 'screen' is set) */
|
||||||
init_X11
|
init_X11
|
||||||
();
|
();
|
||||||
|
|
||||||
tmpstring1 = (char*)malloc(2*TEXT_BUFFER_SIZE);
|
tmpstring1 = (char*)malloc(2*TEXT_BUFFER_SIZE);
|
||||||
tmpstring2 = (char*)malloc(2*TEXT_BUFFER_SIZE);
|
tmpstring2 = (char*)malloc(2*TEXT_BUFFER_SIZE);
|
||||||
|
7
conky.h
7
conky.h
@ -6,6 +6,9 @@
|
|||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <locale.h>
|
||||||
|
#include <langinfo.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
|
||||||
#if defined(HAVE_CAIRO_H) && defined(HAVE_CAIRO_XLIB_H) && defined(WANT_CAIRO)
|
#if defined(HAVE_CAIRO_H) && defined(HAVE_CAIRO_XLIB_H) && defined(WANT_CAIRO)
|
||||||
#define CAIRO
|
#define CAIRO
|
||||||
@ -20,7 +23,7 @@
|
|||||||
#define TOP_PID 3
|
#define TOP_PID 3
|
||||||
#define TOP_MEM 4
|
#define TOP_MEM 4
|
||||||
|
|
||||||
#define TEXT_BUFFER_SIZE (1024*4)
|
#define TEXT_BUFFER_SIZE 1024
|
||||||
|
|
||||||
#ifdef METAR
|
#ifdef METAR
|
||||||
#include <metar.h>
|
#include <metar.h>
|
||||||
@ -66,7 +69,7 @@ struct mpd_s {
|
|||||||
char *status;
|
char *status;
|
||||||
int volume;
|
int volume;
|
||||||
unsigned int port;
|
unsigned int port;
|
||||||
char *host;
|
char host[128];
|
||||||
float progress;
|
float progress;
|
||||||
int bitrate;
|
int bitrate;
|
||||||
};
|
};
|
||||||
|
70
linux.c
70
linux.c
@ -628,31 +628,61 @@ char *get_adt746x_cpu()
|
|||||||
return adt746x_cpu_state;
|
return adt746x_cpu_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *frequency;
|
/* Thanks to "Walt Nelson" <wnelsonjr@comcast.net> */
|
||||||
|
|
||||||
|
/***********************************************************************/
|
||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
* This file is part of x86info.
|
||||||
|
* (C) 2001 Dave Jones.
|
||||||
|
*
|
||||||
|
* Licensed under the terms of the GNU GPL License version 2.
|
||||||
|
*
|
||||||
|
* Estimate CPU MHz routine by Andrea Arcangeli <andrea@suse.de>
|
||||||
|
* Small changes by David Sterba <sterd9am@ss1000.ms.mff.cuni.cz>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
__inline__ unsigned long long int rdtsc()
|
||||||
|
{
|
||||||
|
unsigned long long int x;
|
||||||
|
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *buffer = NULL;
|
||||||
|
|
||||||
char *get_freq()
|
char *get_freq()
|
||||||
{
|
{
|
||||||
FILE *f;
|
if (buffer == NULL)
|
||||||
char s[1000];
|
buffer = malloc(64);
|
||||||
if (frequency == NULL) {
|
struct timezone tz;
|
||||||
frequency = (char *) malloc(100);
|
struct timeval tvstart, tvstop;
|
||||||
assert(frequency != NULL);
|
unsigned long long cycles[2]; /* gotta be 64 bit */
|
||||||
}
|
unsigned int microseconds; /* total time taken */
|
||||||
//char frequency[10];
|
|
||||||
f = fopen("/proc/cpuinfo", "r"); //open the CPU information file
|
memset(&tz, 0, sizeof(tz));
|
||||||
//if (!f)
|
|
||||||
// return;
|
/* get this function in cached memory */
|
||||||
while (fgets(s, 1000, f) != NULL) //read the file
|
gettimeofday(&tvstart, &tz);
|
||||||
if (strncmp(s, "cpu M", 5) == 0) { //and search for the cpu mhz
|
cycles[0] = rdtsc();
|
||||||
//printf("%s", strchr(s, ':')+2);
|
gettimeofday(&tvstart, &tz);
|
||||||
strcpy(frequency, strchr(s, ':') + 2); //copy just the number
|
|
||||||
frequency[strlen(frequency) - 1] = '\0'; // strip \n
|
/* we don't trust that this is any specific length of time */
|
||||||
break;
|
usleep(100);
|
||||||
}
|
|
||||||
fclose(f);
|
cycles[1] = rdtsc();
|
||||||
return frequency;
|
gettimeofday(&tvstop, &tz);
|
||||||
|
microseconds = ((tvstop.tv_sec-tvstart.tv_sec)*1000000) +
|
||||||
|
(tvstop.tv_usec-tvstart.tv_usec);
|
||||||
|
|
||||||
|
sprintf(buffer, "%lldMHz",
|
||||||
|
(cycles[1]-cycles[0])/microseconds);
|
||||||
|
|
||||||
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define ACPI_FAN_DIR "/proc/acpi/fan/"
|
#define ACPI_FAN_DIR "/proc/acpi/fan/"
|
||||||
|
|
||||||
static char *acpi_fan_state;
|
static char *acpi_fan_state;
|
||||||
|
Loading…
Reference in New Issue
Block a user