diff options
author | alexey.skladnoy <alexey.skladnoy@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2008-07-22 14:05:26 +0000 |
---|---|---|
committer | alexey.skladnoy <alexey.skladnoy@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2008-07-22 14:05:26 +0000 |
commit | 58f511fe8d8df9d33018dd34d357f46ce9046d3e (patch) | |
tree | cfeb3d06e1c75d6c81be657804a7949633d451e6 /main.c | |
parent | 01d2dc398add06d90119c45e7d060de73f72d8f7 (diff) | |
download | dzen-58f511fe8d8df9d33018dd34d357f46ce9046d3e.tar.gz dzen-58f511fe8d8df9d33018dd34d357f46ce9046d3e.zip |
Dzen is now able to get font and color settings from X resources
- Order of initialization changed:
1. connect to X server
2. Read X resources
3. Parse command line options
- README files updated
- x_read_resources may contain bugs
git-svn-id: http://dzen.googlecode.com/svn/trunk@230 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 38 |
1 files changed, 33 insertions, 5 deletions
@@ -385,17 +385,41 @@ x_create_gcs(void) { } static void +x_connect(void) { + dzen.dpy = XOpenDisplay(0); + if(!dzen.dpy) + eprint("dzen: cannot open display\n"); + dzen.screen = DefaultScreen(dzen.dpy); +} + +/* Read display styles from X resources. */ +static void +x_read_resources(void) { + XrmDatabase xdb; + char* xrm; + char* datatype[20]; + XrmValue xvalue; + + xrm = XResourceManagerString(dzen.dpy); + if( xrm != NULL ) { + xdb = XrmGetStringDatabase(xrm); + if( XrmGetResource(xdb, "dzen2.font", "*", datatype, &xvalue) == True ) + dzen.fnt = estrdup(xvalue.addr); + if( XrmGetResource(xdb, "dzen2.foreground", "*", datatype, &xvalue) == True ) + dzen.fg = estrdup(xvalue.addr); + if( XrmGetResource(xdb, "dzen2.background", "*", datatype, &xvalue) == True ) + dzen.bg = estrdup(xvalue.addr); + XrmDestroyDatabase(xdb); + } +} + +static void x_create_windows(int use_ewmh_dock) { XSetWindowAttributes wa; Window root; int i; XRectangle si; - dzen.dpy = XOpenDisplay(0); - if(!dzen.dpy) - eprint("dzen: cannot open display\n"); - - dzen.screen = DefaultScreen(dzen.dpy); root = RootWindow(dzen.dpy, dzen.screen); /* style */ @@ -797,6 +821,10 @@ main(int argc, char *argv[]) { dzen.line_height = 0; dzen.title_win.expand = noexpand; + /* Connect to X server */ + x_connect(); + x_read_resources(); + /* cmdline args */ for(i = 1; i < argc; i++) if(!strncmp(argv[i], "-l", 3)){ |