author | Anselm R. Garbe <arg@suckless.org> |
Mon, 04 Jun 2007 11:50:48 +0200 | |
changeset 915 | 67104d329f06 |
parent 913 | d9c7c686d4dc |
child 924 | 5b1caaa31aba |
permissions | -rw-r--r-- |
910
c13cb8c6b7a5
referred to LICENSE file
Anselm R. Garbe <arg@suckless.org>
parents:
909
diff
changeset
|
1 |
/* See LICENSE file for copyright and license details. |
457
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
2 |
* |
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
3 |
* dynamic window manager is designed like any other X client as well. It is |
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
4 |
* driven through handling X events. In contrast to other X clients, a window |
468 | 5 |
* manager selects for SubstructureRedirectMask on the root window, to receive |
6 |
* events about window (dis-)appearance. Only one X connection at a time is |
|
7 |
* allowed to select for this event mask. |
|
457
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
8 |
* |
468 | 9 |
* Calls to fetch an X event from the event queue are blocking. Due reading |
469
a2cc7adf9d4d
improved intro comment in dwm.h, updated config.mk
arg@mmvi
parents:
468
diff
changeset
|
10 |
* status text from standard input, a select()-driven main loop has been |
468 | 11 |
* implemented which selects for reads on the X connection and STDIN_FILENO to |
12 |
* handle all data smoothly. The event handlers of dwm are organized in an |
|
13 |
* array which is accessed whenever a new event has been fetched. This allows |
|
14 |
* event dispatching in O(1) time. |
|
457
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
15 |
* |
460
ab4b08d49d24
some more simplifications of intro comment in dwm.h, this should suffice for comments in dwm
Anselm R. Garbe <arg@10kloc.org>
parents:
459
diff
changeset
|
16 |
* Each child of the root window is called a client, except windows which have |
ab4b08d49d24
some more simplifications of intro comment in dwm.h, this should suffice for comments in dwm
Anselm R. Garbe <arg@10kloc.org>
parents:
459
diff
changeset
|
17 |
* set the override_redirect flag. Clients are organized in a global |
ab4b08d49d24
some more simplifications of intro comment in dwm.h, this should suffice for comments in dwm
Anselm R. Garbe <arg@10kloc.org>
parents:
459
diff
changeset
|
18 |
* doubly-linked client list, the focus history is remembered through a global |
ab4b08d49d24
some more simplifications of intro comment in dwm.h, this should suffice for comments in dwm
Anselm R. Garbe <arg@10kloc.org>
parents:
459
diff
changeset
|
19 |
* stack list. Each client contains an array of Bools of the same size as the |
ab4b08d49d24
some more simplifications of intro comment in dwm.h, this should suffice for comments in dwm
Anselm R. Garbe <arg@10kloc.org>
parents:
459
diff
changeset
|
20 |
* global tags array to indicate the tags of a client. For each client dwm |
468 | 21 |
* creates a small title window, which is resized whenever the (_NET_)WM_NAME |
22 |
* properties are updated or the client is moved/resized. |
|
457
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
23 |
* |
459
3c3f429dca99
made introduction comment in dwm.h shorter
Anselm R. Garbe <arg@10kloc.org>
parents:
457
diff
changeset
|
24 |
* Keys and tagging rules are organized as arrays and defined in the config.h |
3c3f429dca99
made introduction comment in dwm.h shorter
Anselm R. Garbe <arg@10kloc.org>
parents:
457
diff
changeset
|
25 |
* file. These arrays are kept static in event.o and tag.o respectively, |
782
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
26 |
* because no other part of dwm needs access to them. The current layout is |
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
27 |
* represented by the lt pointer. |
457
e97ad13f04dc
added a general comment to dwm.h how dwm is basically organized
Anselm R. Garbe <arg@10kloc.org>
parents:
456
diff
changeset
|
28 |
* |
468 | 29 |
* To understand everything else, start reading main.c:main(). |
0 | 30 |
*/ |
31 |
||
166
e0535db04dfe
removed the CONFIG variable from config.mk, renamed config.h into config.default.h, after first clone/extract one needs to copy config.default.h to config.h, that is easier than always heavy typing make CONFIG=blafasel
arg@10ksloc.org
parents:
164
diff
changeset
|
32 |
#include "config.h" |
32 | 33 |
#include <X11/Xlib.h> |
34 |
||
143 | 35 |
/* mask shorthands, used in event.c and client.c */ |
150
a26b32ff8911
cleaned config.*h to prevent some confusion
arg@10ksloc.org
parents:
148
diff
changeset
|
36 |
#define BUTTONMASK (ButtonPressMask | ButtonReleaseMask) |
143 | 37 |
|
878 | 38 |
enum { BarTop, BarBot, BarOff }; /* bar position */ |
39 |
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ |
|
40 |
enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ |
|
452 | 41 |
enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */ |
725
d99be681d502
handling WM_STATE seems to make DnD in gtk/qt apps working, well let's handle this in dwm as well
Anselm R. Garbe <arg@suckless.org>
parents:
716
diff
changeset
|
42 |
enum { WMProtocols, WMDelete, WMState, WMLast }; /* default atoms */ |
452 | 43 |
|
333
827f8f6c9e97
separated setup stuff into main.c:setup() - this makes main() more readable
Anselm R. Garbe <arg@10kloc.org>
parents:
327
diff
changeset
|
44 |
typedef struct Client Client; |
0 | 45 |
struct Client { |
31 | 46 |
char name[256]; |
115
329fd7dae530
removed c->f{x,y,w,h} and c->t{x,y,w,h} in favor for the new rule handling remembering two kinds of geometries is unnecessary, removed the randomized (x,y) setting on dofloat startup, was kind too random und unpredictable
arg@10ksloc.org
parents:
114
diff
changeset
|
47 |
int x, y, w, h; |
480 | 48 |
int rx, ry, rw, rh; /* revert geometry */ |
20 | 49 |
int basew, baseh, incw, inch, maxw, maxh, minw, minh; |
849
4f1ff9e068d3
some changes to updatesizehints, I don't change the aspect ratio algorithm now - I can't think, it is a mess
Anselm R. Garbe <arg@suckless.org>
parents:
848
diff
changeset
|
50 |
int minax, maxax, minay, maxay; |
164
21071ae1fe68
made fullscreen apps working fine in floating mode (there is no sane way to make them work in tiled mode, thus I switch to floating mode if I run such kind of app), also fixed the xterm issue reported by Sander
arg@10ksloc.org
parents:
157
diff
changeset
|
51 |
long flags; |
865
018c38468422
fixed the border issue for mplayer, ff is definately broken when using F11 (fullscreen mode)
Anselm R. Garbe <arg@suckless.org>
parents:
858
diff
changeset
|
52 |
unsigned int border, oldborder; |
837
123231b9eb87
renamed untiled into floating, keeping tiled instead of tiling (afaik tiled sounds more correct) - English speakers convinced me
Anselm R. Garbe <arg@suckless.org>
parents:
835
diff
changeset
|
53 |
Bool isbanned, isfixed, ismax, isfloating; |
178
e848966a1ac6
removed TLast tag enum, now tags is simple defined as char *[] array, the rest is calculated correctly, rules take an int array for the tags
arg@10ksloc.org
parents:
173
diff
changeset
|
54 |
Bool *tags; |
84
052fe7498930
ordered variables in structs and source files alphabetically
Anselm R. Garbe <garbeam@wmii.de>
parents:
80
diff
changeset
|
55 |
Client *next; |
127
1480e19f6377
using double-linked list in order to get correct prev focus handling
arg@10ksloc.org
parents:
125
diff
changeset
|
56 |
Client *prev; |
446
a2e587651c79
using a global stack for focus recovery on arrange() - seems to work great
Anselm R. Garbe <arg@10kloc.org>
parents:
431
diff
changeset
|
57 |
Client *snext; |
0 | 58 |
Window win; |
59 |
}; |
|
60 |
||
782
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
61 |
typedef struct { |
835
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
62 |
int x, y, w, h; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
63 |
unsigned long norm[ColLast]; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
64 |
unsigned long sel[ColLast]; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
65 |
Drawable drawable; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
66 |
GC gc; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
67 |
struct { |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
68 |
int ascent; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
69 |
int descent; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
70 |
int height; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
71 |
XFontSet set; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
72 |
XFontStruct *xfont; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
73 |
} font; |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
74 |
} DC; /* draw context */ |
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
75 |
|
93ecc09cd1ad
made Fnt an anonymous inner struct
Anselm R. Garbe <arg@suckless.org>
parents:
834
diff
changeset
|
76 |
typedef struct { |
782
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
77 |
const char *symbol; |
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
78 |
void (*arrange)(void); |
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
79 |
} Layout; |
92862ab407d5
introduced Layout struct
Anselm R. Garbe <arg@suckless.org>
parents:
780
diff
changeset
|
80 |
|
913
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
81 |
extern const char *tags[]; /* all tags */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
82 |
extern char stext[256]; /* status text */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
83 |
extern int screen, sx, sy, sw, sh; /* screen geometry */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
84 |
extern int wax, way, wah, waw; /* windowarea geometry */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
85 |
extern unsigned int bh, blw, bpos; /* bar height, bar layout label width, bar position */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
86 |
extern unsigned int ntags, numlockmask; /* number of tags, numlock mask */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
87 |
extern void (*handler[LASTEvent])(XEvent *); /* event handler */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
88 |
extern Atom wmatom[WMLast], netatom[NetLast]; |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
89 |
extern Bool selscreen, *seltag; /* seltag is array of Bool */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
90 |
extern Client *clients, *sel, *stack; /* global client list and stack */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
91 |
extern Cursor cursor[CurLast]; |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
92 |
extern DC dc; /* global draw context */ |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
93 |
extern Display *dpy; |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
94 |
extern Layout *lt; |
d9c7c686d4dc
making variable declarations in dwm.h extern, this seems to be more ansi compliant
Anselm R. Garbe <arg@suckless.org>
parents:
910
diff
changeset
|
95 |
extern Window root, barwin; |
3
e969f3575b7a
several new changes, made gridmenu working
Anselm R. Garbe <garbeam@wmii.de>
parents:
2
diff
changeset
|
96 |
|
5 | 97 |
/* client.c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
98 |
void attach(Client *c); /* attaches c to global client list */ |
915
67104d329f06
added an creatnotify event handler
Anselm R. Garbe <arg@suckless.org>
parents:
913
diff
changeset
|
99 |
void ban(Client *c); /* bans c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
100 |
void configure(Client *c); /* send synthetic configure event */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
101 |
void detach(Client *c); /* detaches c from global client list */ |
904
2dfd50e4cfde
applied anydot's 3 minor patches, thank you anydot
Anselm R. Garbe <arg@suckless.org>
parents:
895
diff
changeset
|
102 |
void focus(Client *c); /* focus c if visible && !NULL, or focus top visible */ |
878 | 103 |
void killclient(const char *arg); /* kill sel nicely */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
104 |
void manage(Window w, XWindowAttributes *wa); /* manage new client */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
105 |
void resize(Client *c, int x, int y, |
777
469dc170f833
draw.c is useless (belongs to main.c now)
Anselm R. Garbe <arg@suckless.org>
parents:
776
diff
changeset
|
106 |
int w, int h, Bool sizehints); /* resize with given coordinates c*/ |
875
73cd10af065a
applied dfenze cleanups, fixed some comments in dwm.h
Anselm R. Garbe <arg@suckless.org>
parents:
865
diff
changeset
|
107 |
void togglefloating(const char *arg); /* toggles sel between floating/tiled state */ |
915
67104d329f06
added an creatnotify event handler
Anselm R. Garbe <arg@suckless.org>
parents:
913
diff
changeset
|
108 |
void unban(Client *c); /* unbans c */ |
67104d329f06
added an creatnotify event handler
Anselm R. Garbe <arg@suckless.org>
parents:
913
diff
changeset
|
109 |
void unmanage(Client *c); /* destroy c */ |
878 | 110 |
void updatesizehints(Client *c); /* update the size hint variables of c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
111 |
void updatetitle(Client *c); /* update the name of c */ |
13
5cc5e55a132d
added protocol killing stuff
Anselm R. Garbe <garbeam@wmii.de>
parents:
10
diff
changeset
|
112 |
|
793
79cb72e82b21
added draw.c again (except getcolor and setfont which are helpers in main.c)
Anselm R. Garbe <arg@suckless.org>
parents:
792
diff
changeset
|
113 |
/* draw.c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
114 |
void drawstatus(void); /* draw the bar */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
115 |
void drawtext(const char *text, unsigned long col[ColLast]); /* draw text */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
116 |
unsigned int textw(const char *text); /* return the width of text in px*/ |
793
79cb72e82b21
added draw.c again (except getcolor and setfont which are helpers in main.c)
Anselm R. Garbe <arg@suckless.org>
parents:
792
diff
changeset
|
117 |
|
75 | 118 |
/* event.c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
119 |
void grabkeys(void); /* grab all keys defined in config.h */ |
18
1efa34c6e1b6
added mouse-based resizals
Anselm R. Garbe <garbeam@wmii.de>
parents:
16
diff
changeset
|
120 |
|
790
48e7c3b45250
split screen.c into layout.c and tag.c (because the view is an implicit mixture of both)
Anselm R. Garbe <arg@suckless.org>
parents:
788
diff
changeset
|
121 |
/* layout.c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
122 |
void floating(void); /* arranges all windows floating */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
123 |
void focusclient(const char *arg); /* focuses next(1)/previous(-1) visible client */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
124 |
void incmasterw(const char *arg); /* increments the master width with arg's index value */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
125 |
void incnmaster(const char *arg); /* increments nmaster with arg's index value */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
126 |
void initlayouts(void); /* initialize layout array */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
127 |
Client *nexttiled(Client *c); /* returns tiled successor of c */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
128 |
void restack(void); /* restores z layers of all clients */ |
895 | 129 |
void setlayout(const char *arg); /* sets layout, NULL means next layout */ |
878 | 130 |
void togglebar(const char *arg); /* shows/hides the bar */ |
131 |
void togglemax(const char *arg); /* toggles maximization of floating client */ |
|
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
132 |
void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ |
790
48e7c3b45250
split screen.c into layout.c and tag.c (because the view is an implicit mixture of both)
Anselm R. Garbe <arg@suckless.org>
parents:
788
diff
changeset
|
133 |
|
43 | 134 |
/* main.c */ |
878 | 135 |
void updatebarpos(void); /* updates the bar position */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
136 |
void quit(const char *arg); /* quit dwm nicely */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
137 |
int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */ |
43 | 138 |
|
790
48e7c3b45250
split screen.c into layout.c and tag.c (because the view is an implicit mixture of both)
Anselm R. Garbe <arg@suckless.org>
parents:
788
diff
changeset
|
139 |
/* tag.c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
140 |
void compileregs(void); /* initialize regexps of rules defined in config.h */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
141 |
Bool isvisible(Client *c); /* returns True if client is visible */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
142 |
void settags(Client *c, Client *trans); /* sets tags of c */ |
875
73cd10af065a
applied dfenze cleanups, fixed some comments in dwm.h
Anselm R. Garbe <arg@suckless.org>
parents:
865
diff
changeset
|
143 |
void tag(const char *arg); /* tags sel with arg's index */ |
878 | 144 |
void toggletag(const char *arg); /* toggles sel tags with arg's index */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
145 |
void toggleview(const char *arg); /* toggles the tag with arg's index (in)visible */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
146 |
void view(const char *arg); /* views the tag with arg's index */ |
769
dc60583894e0
introduced tile.c, some refactoring of functions
Anselm R. Garbe <arg@suckless.org>
parents:
762
diff
changeset
|
147 |
|
32 | 148 |
/* util.c */ |
843
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
149 |
void *emallocz(unsigned int size); /* allocates zero-initialized memory, exits on error */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
150 |
void eprint(const char *errstr, ...); /* prints errstr and exits with 1 */ |
e1fb60cca902
removed superfluous externs (except for tags, because tags is defined in the source)
Anselm R. Garbe <arg@suckless.org>
parents:
837
diff
changeset
|
151 |
void spawn(const char *arg); /* forks a new subprocess with arg's cmd */ |