several changes, new stuff
This commit is contained in:
		
							parent
							
								
									b1669b5c48
								
							
						
					
					
						commit
						d6e0e6e987
					
				
							
								
								
									
										24
									
								
								bar.c
								
								
								
								
							
							
						
						
									
										24
									
								
								bar.c
								
								
								
								
							| 
						 | 
					@ -5,22 +5,24 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "wm.h"
 | 
					#include "wm.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const char *status[] = {
 | 
					 | 
				
			||||||
	"sh", "-c", "echo -n `date` `uptime | sed 's/.*://; s/,//g'`"
 | 
					 | 
				
			||||||
		" `acpi | awk '{print $4}' | sed 's/,//'`", 0 \
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
draw_bar()
 | 
					draw_bar()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static char buf[1024];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	buf[0] = 0;
 | 
					 | 
				
			||||||
	pipe_spawn(buf, sizeof(buf), dpy, (char **)status);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	brush.rect = barrect;
 | 
						brush.rect = barrect;
 | 
				
			||||||
	brush.rect.x = brush.rect.y = 0;
 | 
						brush.rect.x = brush.rect.y = 0;
 | 
				
			||||||
	draw(dpy, &brush, False, buf);
 | 
						draw(dpy, &brush, False, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if(stack) {
 | 
				
			||||||
 | 
							brush.rect.width = textwidth(&brush.font, stack->name) + labelheight(&brush.font);
 | 
				
			||||||
 | 
							swap((void **)&brush.fg, (void **)&brush.bg);
 | 
				
			||||||
 | 
							draw(dpy, &brush, False, stack->name);
 | 
				
			||||||
 | 
							swap((void **)&brush.fg, (void **)&brush.bg);
 | 
				
			||||||
 | 
							brush.rect.x += brush.rect.width;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						brush.rect.width = textwidth(&brush.font, statustext) + labelheight(&brush.font);
 | 
				
			||||||
 | 
						brush.rect.x = barrect.x + barrect.width - brush.rect.width;
 | 
				
			||||||
 | 
						draw(dpy, &brush, False, statustext);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width,
 | 
						XCopyArea(dpy, brush.drawable, barwin, brush.gc, 0, 0, barrect.width,
 | 
				
			||||||
			barrect.height, 0, 0);
 | 
								barrect.height, 0, 0);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								client.c
								
								
								
								
							
							
						
						
									
										5
									
								
								client.c
								
								
								
								
							| 
						 | 
					@ -35,6 +35,10 @@ update_name(Client *c)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	XFree(name.value);
 | 
						XFree(name.value);
 | 
				
			||||||
 | 
						if(c == stack)
 | 
				
			||||||
 | 
							draw_bar();
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							draw_client(c);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
| 
						 | 
					@ -66,6 +70,7 @@ manage(Window w, XWindowAttributes *wa)
 | 
				
			||||||
	c->r[RFloat].height = wa->height;
 | 
						c->r[RFloat].height = wa->height;
 | 
				
			||||||
	c->border = wa->border_width;
 | 
						c->border = wa->border_width;
 | 
				
			||||||
	XSetWindowBorderWidth(dpy, c->win, 0);
 | 
						XSetWindowBorderWidth(dpy, c->win, 0);
 | 
				
			||||||
 | 
						XSelectInput(dpy, c->win, StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
 | 
				
			||||||
	XGetTransientForHint(dpy, c->win, &c->trans);
 | 
						XGetTransientForHint(dpy, c->win, &c->trans);
 | 
				
			||||||
	if(!XGetWMNormalHints(dpy, c->win, &c->size, &msize) || !c->size.flags)
 | 
						if(!XGetWMNormalHints(dpy, c->win, &c->size, &msize) || !c->size.flags)
 | 
				
			||||||
		c->size.flags = PSize;
 | 
							c->size.flags = PSize;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								config.h
								
								
								
								
							
							
						
						
									
										2
									
								
								config.h
								
								
								
								
							| 
						 | 
					@ -7,4 +7,4 @@
 | 
				
			||||||
#define BGCOLOR		"#000000"
 | 
					#define BGCOLOR		"#000000"
 | 
				
			||||||
#define FGCOLOR		"#ffaa00"
 | 
					#define FGCOLOR		"#ffaa00"
 | 
				
			||||||
#define BORDERCOLOR	"#000000"
 | 
					#define BORDERCOLOR	"#000000"
 | 
				
			||||||
#define STATUSDELAY 1 /* milliseconds */
 | 
					#define STATUSDELAY	10 /* milliseconds */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								event.c
								
								
								
								
							
							
						
						
									
										1
									
								
								event.c
								
								
								
								
							| 
						 | 
					@ -187,7 +187,6 @@ propertynotify(XEvent *e)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if(ev->atom == XA_WM_NAME || ev->atom == net_atom[NetWMName]) {
 | 
							if(ev->atom == XA_WM_NAME || ev->atom == net_atom[NetWMName]) {
 | 
				
			||||||
			update_name(c);
 | 
								update_name(c);
 | 
				
			||||||
			/*draw_frame(c->sel);*/
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								util.c
								
								
								
								
							
							
						
						
									
										2
									
								
								util.c
								
								
								
								
							| 
						 | 
					@ -134,7 +134,7 @@ pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[])
 | 
				
			||||||
			n += l;
 | 
								n += l;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		close(pfd[0]);
 | 
							close(pfd[0]);
 | 
				
			||||||
		buf[n - 1] = 0;
 | 
							buf[n < len ? n : len - 1] = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	wait(0);
 | 
						wait(0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								wm.c
								
								
								
								
							
							
						
						
									
										16
									
								
								wm.c
								
								
								
								
							| 
						 | 
					@ -27,7 +27,7 @@ XRectangle rect, barrect;
 | 
				
			||||||
Bool running = True;
 | 
					Bool running = True;
 | 
				
			||||||
Bool sel_screen;
 | 
					Bool sel_screen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char *bartext, tag[256];
 | 
					char statustext[1024], tag[256];
 | 
				
			||||||
int screen;
 | 
					int screen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Brush brush = {0};
 | 
					Brush brush = {0};
 | 
				
			||||||
| 
						 | 
					@ -35,9 +35,15 @@ Client *clients = NULL;
 | 
				
			||||||
Client *stack = NULL;
 | 
					Client *stack = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Bool other_wm_running;
 | 
					static Bool other_wm_running;
 | 
				
			||||||
static char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n";
 | 
					static const char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n";
 | 
				
			||||||
static int (*x_error_handler) (Display *, XErrorEvent *);
 | 
					static int (*x_error_handler) (Display *, XErrorEvent *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const char *status[] = {
 | 
				
			||||||
 | 
						"sh", "-c", "echo -n `date '+%Y/%m/%d %H:%M'`" 
 | 
				
			||||||
 | 
						" `uptime | sed 's/.*://; s/,//g'`"
 | 
				
			||||||
 | 
						" `acpi | awk '{print $4}' | sed 's/,//'`", 0
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
usage()
 | 
					usage()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -258,9 +264,9 @@ main(int argc, char *argv[])
 | 
				
			||||||
			barrect.width, barrect.height, 0, DefaultDepth(dpy, screen),
 | 
								barrect.width, barrect.height, 0, DefaultDepth(dpy, screen),
 | 
				
			||||||
			CopyFromParent, DefaultVisual(dpy, screen),
 | 
								CopyFromParent, DefaultVisual(dpy, screen),
 | 
				
			||||||
			CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
 | 
								CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
 | 
				
			||||||
	bartext = NULL;
 | 
					 | 
				
			||||||
	XDefineCursor(dpy, barwin, cursor[CurNormal]);
 | 
						XDefineCursor(dpy, barwin, cursor[CurNormal]);
 | 
				
			||||||
	XMapRaised(dpy, barwin);
 | 
						XMapRaised(dpy, barwin);
 | 
				
			||||||
 | 
						pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status);
 | 
				
			||||||
	draw_bar();
 | 
						draw_bar();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wa.event_mask = SubstructureRedirectMask | EnterWindowMask \
 | 
						wa.event_mask = SubstructureRedirectMask | EnterWindowMask \
 | 
				
			||||||
| 
						 | 
					@ -282,8 +288,10 @@ main(int argc, char *argv[])
 | 
				
			||||||
		t = timeout;
 | 
							t = timeout;
 | 
				
			||||||
		if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0)
 | 
							if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		else if(errno != EINTR)
 | 
							else if(errno != EINTR) {
 | 
				
			||||||
 | 
								pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status);
 | 
				
			||||||
			draw_bar();
 | 
								draw_bar();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cleanup();
 | 
						cleanup();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								wm.h
								
								
								
								
							
							
						
						
									
										3
									
								
								wm.h
								
								
								
								
							| 
						 | 
					@ -55,7 +55,7 @@ extern Bool running, sel_screen, grid;
 | 
				
			||||||
extern void (*handler[LASTEvent]) (XEvent *);
 | 
					extern void (*handler[LASTEvent]) (XEvent *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern int screen;
 | 
					extern int screen;
 | 
				
			||||||
extern char *bartext, tag[256];
 | 
					extern char statustext[1024], tag[256];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern Brush brush;
 | 
					extern Brush brush;
 | 
				
			||||||
extern Client *clients, *stack;
 | 
					extern Client *clients, *stack;
 | 
				
			||||||
| 
						 | 
					@ -74,6 +74,7 @@ extern void unmanage(Client *c);
 | 
				
			||||||
extern Client *getclient(Window w);
 | 
					extern Client *getclient(Window w);
 | 
				
			||||||
extern void focus(Client *c);
 | 
					extern void focus(Client *c);
 | 
				
			||||||
extern void update_name(Client *c);
 | 
					extern void update_name(Client *c);
 | 
				
			||||||
 | 
					extern void draw_client(Client *c);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* event.c */
 | 
					/* event.c */
 | 
				
			||||||
extern unsigned int flush_events(long even_mask);
 | 
					extern unsigned int flush_events(long even_mask);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue