Introduction
Introduction Statistics Contact Development Disclaimer Help
tadded screen.c, removed layout.c and tag.c - dwm - [fork] customized build of …
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit 47765f728614c348aa7dfc2eed6f754efc376922
parent 96d7fe16eaf6b656800f08da3156bacd75ca3b08
Author: Anselm R. Garbe <[email protected]>
Date: Sun, 19 Aug 2007 10:57:02 +0200
added screen.c, removed layout.c and tag.c
Diffstat:
M Makefile | 2 +-
M client.c | 8 ++++----
M config.mk | 4 ++--
M dwm.h | 35 ++++++++++++++---------------…
D layout.c | 219 -----------------------------…
M main.c | 2 +-
A screen.c | 383 +++++++++++++++++++++++++++++…
D tag.c | 174 -----------------------------…
8 files changed, 407 insertions(+), 420 deletions(-)
---
diff --git a/Makefile b/Makefile
t@@ -3,7 +3,7 @@
include config.mk
-SRC += client.c draw.c event.c layout.c main.c tag.c util.c
+SRC += client.c draw.c event.c main.c screen.c util.c
OBJ = ${SRC:.c=.o}
all: options dwm
diff --git a/client.c b/client.c
t@@ -182,7 +182,7 @@ killclient(const char *arg) {
}
Bool
-loadprops(Client *c) {
+getprops(Client *c) {
unsigned int i;
Bool result = False;
t@@ -242,11 +242,11 @@ manage(Window w, XWindowAttributes *wa) {
if(t)
for(i = 0; i < ntags; i++)
c->tags[i] = t->tags[i];
- if(!loadprops(c))
+ if(!getprops(c))
applyrules(c);
if(!c->isfloating)
c->isfloating = (rettrans == Success) || c->isfixed;
- saveprops(c);
+ setprops(c);
attach(c);
attachstack(c);
XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); /* some window…
t@@ -318,7 +318,7 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehin…
}
void
-saveprops(Client *c) {
+setprops(Client *c) {
unsigned int i;
for(i = 0; i < ntags && i < sizeof prop - 1; i++)
diff --git a/config.mk b/config.mk
t@@ -20,8 +20,8 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
# flags
CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\"
LDFLAGS = -s ${LIBS}
-CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
-LDFLAGS = -g ${LIBS}
+#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
+#LDFLAGS = -g ${LIBS}
# Solaris
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
diff --git a/dwm.h b/dwm.h
t@@ -96,11 +96,11 @@ void configure(Client *c); /* send syntheti…
void detach(Client *c); /* detaches c from global clien…
void focus(Client *c); /* focus c if visible && !NULL, …
void killclient(const char *arg); /* kill sel nicely */
-Bool loadprops(Client *c); /* loads client properties */
+Bool getprops(Client *c); /* gets client properties */
void manage(Window w, XWindowAttributes *wa); /* manage new client */
void resize(Client *c, int x, int y,
int w, int h, Bool sizehints); /* resize with given coo…
-void saveprops(Client *c); /* saves client properties */
+void setprops(Client *c); /* sets client properties */
void unban(Client *c); /* unbans c */
void unmanage(Client *c, long state); /* unmanage c */
void updatesizehints(Client *c); /* update the size hint variables of c…
t@@ -114,22 +114,6 @@ unsigned int textw(const char *text); /* return th…
/* event.c */
void grabkeys(void); /* grab all keys defined in config…
-/* layout.c */
-void arrange(void); /* arranges all windows depending o…
-void focusnext(const char *arg); /* focuses next visible client */
-void focusprev(const char *arg); /* focuses prev visible client */
-const char *getsymbol(void); /* returns symbol of enabled layou…
-Bool isfloating(void); /* returns True if floating layo…
-Bool isarrange(void (*func)()); /* returns True if func is the …
-void initlayouts(void); /* initialize layout array */
-void loaddwmprops(void); /* loads dwm properties */
-Client *nexttiled(Client *c); /* returns tiled successor of c */
-void restack(void); /* restores z layers of all clients…
-void savedwmprops(void); /* saves dwm properties */
-void setlayout(const char *arg); /* sets layout, NULL means next layout…
-void togglebar(const char *arg); /* shows/hides the bar */
-void togglemax(const char *arg); /* toggles maximization of floating cl…
-
/* main.c */
Bool gettextprop(Window w, Atom atom,
char *text, unsigned int size); /* return text property, UTF-8…
t@@ -137,12 +121,25 @@ void updatebarpos(void); /* updates the b…
void quit(const char *arg); /* quit dwm nicely */
int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */
-/* tag.c */
+/* screen.c */
void applyrules(Client *c); /* applies rules to c */
+void arrange(void); /* arranges all windows depending o…
void compileregs(void); /* initialize regexps of rules …
+void focusnext(const char *arg); /* focuses next visible client */
+void focusprev(const char *arg); /* focuses prev visible client */
+const char *getsymbol(void); /* returns symbol of enabled layou…
+void initlayouts(void); /* initialize layout array */
+Bool isarrange(void (*func)()); /* returns True if func is the …
+Bool isfloating(void); /* returns True if floating layo…
Bool isvisible(Client *c); /* returns True if client is visible…
+void getdwmprops(void); /* gets dwm properties */
+Client *nexttiled(Client *c); /* returns tiled successor of c */
+void restack(void); /* restores z layers of all clients…
+void setlayout(const char *arg); /* sets layout, NULL means next layout…
void tag(const char *arg); /* tags sel with arg's index */
+void togglebar(const char *arg); /* shows/hides the bar */
void togglefloating(const char *arg); /* toggles sel between floating/t…
+void togglemax(const char *arg); /* toggles maximization of floating cl…
void toggletag(const char *arg); /* toggles sel tags with arg's index */
void toggleview(const char *arg); /* toggles the tag with arg's index (…
void view(const char *arg); /* views the tag with arg's index */
diff --git a/layout.c b/layout.c
t@@ -1,219 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include "dwm.h"
-#include <stdlib.h>
-#include <string.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-
-/* static */
-
-typedef struct {
- const char *symbol;
- void (*arrange)(void);
-} Layout;
-
-unsigned int blw = 0;
-static char prop[128];
-static unsigned int ltidx = 0; /* default */
-
-static void
-floating(void) { /* default floating layout */
- Client *c;
-
- for(c = clients; c; c = c->next)
- if(isvisible(c))
- resize(c, c->x, c->y, c->w, c->h, True);
-}
-
-static unsigned int nlayouts = 0;
-
-LAYOUTS
-
-/* extern */
-
-void
-arrange(void) {
- Client *c;
-
- for(c = clients; c; c = c->next)
- if(isvisible(c))
- unban(c);
- else
- ban(c);
- layouts[ltidx].arrange();
- focus(NULL);
- restack();
-}
-
-void
-focusnext(const char *arg) {
- Client *c;
-
- if(!sel)
- return;
- for(c = sel->next; c && !isvisible(c); c = c->next);
- if(!c)
- for(c = clients; c && !isvisible(c); c = c->next);
- if(c) {
- focus(c);
- restack();
- }
-}
-
-void
-focusprev(const char *arg) {
- Client *c;
-
- if(!sel)
- return;
- for(c = sel->prev; c && !isvisible(c); c = c->prev);
- if(!c) {
- for(c = clients; c && c->next; c = c->next);
- for(; c && !isvisible(c); c = c->prev);
- }
- if(c) {
- focus(c);
- restack();
- }
-}
-
-const char *
-getsymbol(void)
-{
- return layouts[ltidx].symbol;
-}
-
-Bool
-isfloating(void) {
- return layouts[ltidx].arrange == floating;
-}
-
-Bool
-isarrange(void (*func)())
-{
- return func == layouts[ltidx].arrange;
-}
-
-void
-initlayouts(void) {
- unsigned int i, w;
-
- nlayouts = sizeof layouts / sizeof layouts[0];
- for(blw = i = 0; i < nlayouts; i++) {
- w = textw(layouts[i].symbol);
- if(w > blw)
- blw = w;
- }
-}
-
-void
-loaddwmprops(void) {
- unsigned int i;
-
- if(gettextprop(root, dwmprops, prop, sizeof prop)) {
- for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'…
- seltags[i] = prop[i] == '1';
- if(i < sizeof prop - 1 && prop[i] != '\0') {
- if(prop[i] < nlayouts)
- ltidx = prop[i];
- }
- }
-}
-
-Client *
-nexttiled(Client *c) {
- for(; c && (c->isfloating || !isvisible(c)); c = c->next);
- return c;
-}
-
-void
-restack(void) {
- Client *c;
- XEvent ev;
- XWindowChanges wc;
-
- drawstatus();
- if(!sel)
- return;
- if(sel->isfloating || isfloating())
- XRaiseWindow(dpy, sel->win);
- if(!isfloating()) {
- wc.stack_mode = Below;
- wc.sibling = barwin;
- if(!sel->isfloating) {
- XConfigureWindow(dpy, sel->win, CWSibling | CWStackMod…
- wc.sibling = sel->win;
- }
- for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
- if(c == sel)
- continue;
- XConfigureWindow(dpy, c->win, CWSibling | CWStackMode,…
- wc.sibling = c->win;
- }
- }
- XSync(dpy, False);
- while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
-}
-
-void
-savedwmprops(void) {
- unsigned int i;
-
- for(i = 0; i < ntags && i < sizeof prop - 1; i++)
- prop[i] = seltags[i] ? '1' : '0';
- if(i < sizeof prop - 1)
- prop[i++] = (char)ltidx;
- prop[i] = '\0';
- XChangeProperty(dpy, root, dwmprops, XA_STRING, 8,
- PropModeReplace, (unsigned char *)prop, i);
-}
-
-void
-setlayout(const char *arg) {
- int i;
-
- if(!arg) {
- if(++ltidx == nlayouts)
- ltidx = 0;;
- }
- else {
- i = atoi(arg);
- if(i < 0 || i >= nlayouts)
- return;
- ltidx = i;
- }
- if(sel)
- arrange();
- else
- drawstatus();
- savedwmprops();
-}
-
-void
-togglebar(const char *arg) {
- if(bpos == BarOff)
- bpos = (BARPOS == BarOff) ? BarTop : BARPOS;
- else
- bpos = BarOff;
- updatebarpos();
- arrange();
-}
-
-void
-togglemax(const char *arg) {
- XEvent ev;
-
- if(!sel || (!isfloating() && !sel->isfloating) || sel->isfixed)
- return;
- if((sel->ismax = !sel->ismax)) {
- sel->rx = sel->x;
- sel->ry = sel->y;
- sel->rw = sel->w;
- sel->rh = sel->h;
- resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->bo…
- }
- else
- resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
- drawstatus();
- while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
-}
diff --git a/main.c b/main.c
t@@ -206,7 +206,7 @@ setup(void) {
XSetFont(dpy, dc.gc, dc.font.xfont->fid);
/* multihead support */
selscreen = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask);
- loaddwmprops();
+ getdwmprops();
}
/*
diff --git a/screen.c b/screen.c
t@@ -0,0 +1,383 @@
+/* See LICENSE file for copyright and license details. */
+#include "dwm.h"
+#include <regex.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+
+/* static */
+
+typedef struct {
+ const char *symbol;
+ void (*arrange)(void);
+} Layout;
+
+typedef struct {
+ const char *prop;
+ const char *tags;
+ Bool isfloating;
+} Rule;
+
+typedef struct {
+ regex_t *propregex;
+ regex_t *tagregex;
+} Regs;
+
+TAGS
+RULES
+
+static char prop[512];
+static unsigned int nrules = 0;
+static unsigned int nlayouts = 0;
+static unsigned int ltidx = 0; /* default */
+static Regs *regs = NULL;
+
+static unsigned int
+idxoftag(const char *tag) {
+ unsigned int i;
+
+ for(i = 0; i < ntags; i++)
+ if(tags[i] == tag)
+ return i;
+ return 0;
+}
+
+static void
+floating(void) { /* default floating layout */
+ Client *c;
+
+ for(c = clients; c; c = c->next)
+ if(isvisible(c))
+ resize(c, c->x, c->y, c->w, c->h, True);
+}
+
+static void
+setdwmprops(void) {
+ unsigned int i;
+
+ for(i = 0; i < ntags && i < sizeof prop - 1; i++)
+ prop[i] = seltags[i] ? '1' : '0';
+ if(i < sizeof prop - 1)
+ prop[i++] = (char)ltidx;
+ prop[i] = '\0';
+ XChangeProperty(dpy, root, dwmprops, XA_STRING, 8,
+ PropModeReplace, (unsigned char *)prop, i);
+}
+
+LAYOUTS
+
+/* extern */
+
+unsigned int blw = 0;
+
+void
+applyrules(Client *c) {
+ unsigned int i, j;
+ regmatch_t tmp;
+ Bool matched = False;
+ XClassHint ch = { 0 };
+
+ /* rule matching */
+ XGetClassHint(dpy, c->win, &ch);
+ snprintf(prop, sizeof prop, "%s:%s:%s",
+ ch.res_class ? ch.res_class : "",
+ ch.res_name ? ch.res_name : "", c->name);
+ for(i = 0; i < nrules; i++)
+ if(regs[i].propregex && !regexec(regs[i].propregex, prop, 1, &…
+ c->isfloating = rules[i].isfloating;
+ for(j = 0; regs[i].tagregex && j < ntags; j++) {
+ if(!regexec(regs[i].tagregex, tags[j], 1, &tmp…
+ matched = True;
+ c->tags[j] = True;
+ }
+ }
+ }
+ if(ch.res_class)
+ XFree(ch.res_class);
+ if(ch.res_name)
+ XFree(ch.res_name);
+ if(!matched)
+ for(i = 0; i < ntags; i++)
+ c->tags[i] = seltags[i];
+}
+
+void
+arrange(void) {
+ Client *c;
+
+ for(c = clients; c; c = c->next)
+ if(isvisible(c))
+ unban(c);
+ else
+ ban(c);
+ layouts[ltidx].arrange();
+ focus(NULL);
+ restack();
+}
+
+void
+compileregs(void) {
+ unsigned int i;
+ regex_t *reg;
+
+ if(regs)
+ return;
+ nrules = sizeof rules / sizeof rules[0];
+ regs = emallocz(nrules * sizeof(Regs));
+ for(i = 0; i < nrules; i++) {
+ if(rules[i].prop) {
+ reg = emallocz(sizeof(regex_t));
+ if(regcomp(reg, rules[i].prop, REG_EXTENDED))
+ free(reg);
+ else
+ regs[i].propregex = reg;
+ }
+ if(rules[i].tags) {
+ reg = emallocz(sizeof(regex_t));
+ if(regcomp(reg, rules[i].tags, REG_EXTENDED))
+ free(reg);
+ else
+ regs[i].tagregex = reg;
+ }
+ }
+}
+
+void
+focusnext(const char *arg) {
+ Client *c;
+
+ if(!sel)
+ return;
+ for(c = sel->next; c && !isvisible(c); c = c->next);
+ if(!c)
+ for(c = clients; c && !isvisible(c); c = c->next);
+ if(c) {
+ focus(c);
+ restack();
+ }
+}
+
+void
+focusprev(const char *arg) {
+ Client *c;
+
+ if(!sel)
+ return;
+ for(c = sel->prev; c && !isvisible(c); c = c->prev);
+ if(!c) {
+ for(c = clients; c && c->next; c = c->next);
+ for(; c && !isvisible(c); c = c->prev);
+ }
+ if(c) {
+ focus(c);
+ restack();
+ }
+}
+
+const char *
+getsymbol(void)
+{
+ return layouts[ltidx].symbol;
+}
+
+void
+initlayouts(void) {
+ unsigned int i, w;
+
+ nlayouts = sizeof layouts / sizeof layouts[0];
+ for(blw = i = 0; i < nlayouts; i++) {
+ w = textw(layouts[i].symbol);
+ if(w > blw)
+ blw = w;
+ }
+}
+
+Bool
+isfloating(void) {
+ return layouts[ltidx].arrange == floating;
+}
+
+Bool
+isarrange(void (*func)())
+{
+ return func == layouts[ltidx].arrange;
+}
+
+Bool
+isvisible(Client *c) {
+ unsigned int i;
+
+ for(i = 0; i < ntags; i++)
+ if(c->tags[i] && seltags[i])
+ return True;
+ return False;
+}
+
+void
+getdwmprops(void) {
+ unsigned int i;
+
+ if(gettextprop(root, dwmprops, prop, sizeof prop)) {
+ for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'…
+ seltags[i] = prop[i] == '1';
+ if(i < sizeof prop - 1 && prop[i] != '\0') {
+ if(prop[i] < nlayouts)
+ ltidx = prop[i];
+ }
+ }
+}
+
+Client *
+nexttiled(Client *c) {
+ for(; c && (c->isfloating || !isvisible(c)); c = c->next);
+ return c;
+}
+
+void
+restack(void) {
+ Client *c;
+ XEvent ev;
+ XWindowChanges wc;
+
+ drawstatus();
+ if(!sel)
+ return;
+ if(sel->isfloating || isfloating())
+ XRaiseWindow(dpy, sel->win);
+ if(!isfloating()) {
+ wc.stack_mode = Below;
+ wc.sibling = barwin;
+ if(!sel->isfloating) {
+ XConfigureWindow(dpy, sel->win, CWSibling | CWStackMod…
+ wc.sibling = sel->win;
+ }
+ for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
+ if(c == sel)
+ continue;
+ XConfigureWindow(dpy, c->win, CWSibling | CWStackMode,…
+ wc.sibling = c->win;
+ }
+ }
+ XSync(dpy, False);
+ while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
+}
+
+void
+setlayout(const char *arg) {
+ int i;
+
+ if(!arg) {
+ if(++ltidx == nlayouts)
+ ltidx = 0;;
+ }
+ else {
+ i = atoi(arg);
+ if(i < 0 || i >= nlayouts)
+ return;
+ ltidx = i;
+ }
+ if(sel)
+ arrange();
+ else
+ drawstatus();
+ setdwmprops();
+}
+
+void
+tag(const char *arg) {
+ unsigned int i;
+
+ if(!sel)
+ return;
+ for(i = 0; i < ntags; i++)
+ sel->tags[i] = arg == NULL;
+ i = idxoftag(arg);
+ if(i >= 0 && i < ntags)
+ sel->tags[i] = True;
+ setprops(sel);
+ arrange();
+}
+
+void
+togglebar(const char *arg) {
+ if(bpos == BarOff)
+ bpos = (BARPOS == BarOff) ? BarTop : BARPOS;
+ else
+ bpos = BarOff;
+ updatebarpos();
+ arrange();
+}
+
+void
+togglefloating(const char *arg) {
+ if(!sel || isfloating())
+ return;
+ sel->isfloating = !sel->isfloating;
+ if(sel->isfloating) {
+ resize(sel, sel->x, sel->y, sel->w, sel->h, True);
+ setprops(sel);
+ }
+ arrange();
+}
+
+void
+togglemax(const char *arg) {
+ XEvent ev;
+
+ if(!sel || (!isfloating() && !sel->isfloating) || sel->isfixed)
+ return;
+ if((sel->ismax = !sel->ismax)) {
+ sel->rx = sel->x;
+ sel->ry = sel->y;
+ sel->rw = sel->w;
+ sel->rh = sel->h;
+ resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->bo…
+ }
+ else
+ resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
+ drawstatus();
+ while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
+}
+
+void
+toggletag(const char *arg) {
+ unsigned int i, j;
+
+ if(!sel)
+ return;
+ i = idxoftag(arg);
+ sel->tags[i] = !sel->tags[i];
+ for(j = 0; j < ntags && !sel->tags[j]; j++);
+ if(j == ntags)
+ sel->tags[i] = True;
+ setprops(sel);
+ arrange();
+}
+
+void
+toggleview(const char *arg) {
+ unsigned int i, j;
+
+ i = idxoftag(arg);
+ seltags[i] = !seltags[i];
+ for(j = 0; j < ntags && !seltags[j]; j++);
+ if(j == ntags)
+ seltags[i] = True; /* cannot toggle last view */
+ setdwmprops();
+ arrange();
+}
+
+void
+view(const char *arg) {
+ unsigned int i;
+
+ for(i = 0; i < ntags; i++)
+ seltags[i] = arg == NULL;
+ i = idxoftag(arg);
+ if(i >= 0 && i < ntags)
+ seltags[i] = True;
+ setdwmprops();
+ arrange();
+}
diff --git a/tag.c b/tag.c
t@@ -1,174 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include "dwm.h"
-#include <regex.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <X11/Xutil.h>
-
-/* static */
-
-typedef struct {
- const char *prop;
- const char *tags;
- Bool isfloating;
-} Rule;
-
-typedef struct {
- regex_t *propregex;
- regex_t *tagregex;
-} Regs;
-
-TAGS
-RULES
-
-static Regs *regs = NULL;
-static unsigned int nrules = 0;
-static char prop[512];
-
-static unsigned int
-idxoftag(const char *tag) {
- unsigned int i;
-
- for(i = 0; i < ntags; i++)
- if(tags[i] == tag)
- return i;
- return 0;
-}
-
-/* extern */
-
-void
-applyrules(Client *c) {
- unsigned int i, j;
- regmatch_t tmp;
- Bool matched = False;
- XClassHint ch = { 0 };
-
- /* rule matching */
- XGetClassHint(dpy, c->win, &ch);
- snprintf(prop, sizeof prop, "%s:%s:%s",
- ch.res_class ? ch.res_class : "",
- ch.res_name ? ch.res_name : "", c->name);
- for(i = 0; i < nrules; i++)
- if(regs[i].propregex && !regexec(regs[i].propregex, prop, 1, &…
- c->isfloating = rules[i].isfloating;
- for(j = 0; regs[i].tagregex && j < ntags; j++) {
- if(!regexec(regs[i].tagregex, tags[j], 1, &tmp…
- matched = True;
- c->tags[j] = True;
- }
- }
- }
- if(ch.res_class)
- XFree(ch.res_class);
- if(ch.res_name)
- XFree(ch.res_name);
- if(!matched)
- for(i = 0; i < ntags; i++)
- c->tags[i] = seltags[i];
-}
-
-void
-compileregs(void) {
- unsigned int i;
- regex_t *reg;
-
- if(regs)
- return;
- nrules = sizeof rules / sizeof rules[0];
- regs = emallocz(nrules * sizeof(Regs));
- for(i = 0; i < nrules; i++) {
- if(rules[i].prop) {
- reg = emallocz(sizeof(regex_t));
- if(regcomp(reg, rules[i].prop, REG_EXTENDED))
- free(reg);
- else
- regs[i].propregex = reg;
- }
- if(rules[i].tags) {
- reg = emallocz(sizeof(regex_t));
- if(regcomp(reg, rules[i].tags, REG_EXTENDED))
- free(reg);
- else
- regs[i].tagregex = reg;
- }
- }
-}
-
-Bool
-isvisible(Client *c) {
- unsigned int i;
-
- for(i = 0; i < ntags; i++)
- if(c->tags[i] && seltags[i])
- return True;
- return False;
-}
-
-void
-tag(const char *arg) {
- unsigned int i;
-
- if(!sel)
- return;
- for(i = 0; i < ntags; i++)
- sel->tags[i] = arg == NULL;
- i = idxoftag(arg);
- if(i >= 0 && i < ntags)
- sel->tags[i] = True;
- saveprops(sel);
- arrange();
-}
-
-void
-togglefloating(const char *arg) {
- if(!sel || isfloating())
- return;
- sel->isfloating = !sel->isfloating;
- if(sel->isfloating) {
- resize(sel, sel->x, sel->y, sel->w, sel->h, True);
- saveprops(sel);
- }
- arrange();
-}
-
-void
-toggletag(const char *arg) {
- unsigned int i, j;
-
- if(!sel)
- return;
- i = idxoftag(arg);
- sel->tags[i] = !sel->tags[i];
- for(j = 0; j < ntags && !sel->tags[j]; j++);
- if(j == ntags)
- sel->tags[i] = True;
- saveprops(sel);
- arrange();
-}
-
-void
-toggleview(const char *arg) {
- unsigned int i, j;
-
- i = idxoftag(arg);
- seltags[i] = !seltags[i];
- for(j = 0; j < ntags && !seltags[j]; j++);
- if(j == ntags)
- seltags[i] = True; /* cannot toggle last view */
- savedwmprops();
- arrange();
-}
-
-void
-view(const char *arg) {
- unsigned int i;
-
- for(i = 0; i < ntags; i++)
- seltags[i] = arg == NULL;
- i = idxoftag(arg);
- if(i >= 0 && i < ntags)
- seltags[i] = True;
- savedwmprops();
- arrange();
-}
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.