76 typedef struct { |
76 typedef struct { |
77 const char *symbol; |
77 const char *symbol; |
78 void (*arrange)(void); |
78 void (*arrange)(void); |
79 } Layout; |
79 } Layout; |
80 |
80 |
81 extern const char *tags[]; /* all tags */ |
81 extern const char *tags[]; /* all tags */ |
82 extern char stext[256]; /* status text */ |
82 char stext[256]; /* status text */ |
83 extern int screen, sx, sy, sw, sh; /* screen geometry */ |
83 int screen, sx, sy, sw, sh; /* screen geometry */ |
84 extern int wax, way, wah, waw; /* windowarea geometry */ |
84 int wax, way, wah, waw; /* windowarea geometry */ |
85 extern unsigned int bh, blw; /* bar height, bar layout label width */ |
85 unsigned int bh, blw; /* bar height, bar layout label width */ |
86 extern unsigned int ntags, numlockmask; /* number of tags, dynamic lock mask */ |
86 unsigned int ntags, numlockmask; /* number of tags, dynamic lock mask */ |
87 extern void (*handler[LASTEvent])(XEvent *); /* event handler */ |
87 void (*handler[LASTEvent])(XEvent *); /* event handler */ |
88 extern Atom wmatom[WMLast], netatom[NetLast]; |
88 Atom wmatom[WMLast], netatom[NetLast]; |
89 extern Bool selscreen, *seltag; /* seltag is array of Bool */ |
89 Bool selscreen, *seltag; /* seltag is array of Bool */ |
90 extern Client *clients, *sel, *stack; /* global client list and stack */ |
90 Client *clients, *sel, *stack; /* global client list and stack */ |
91 extern Cursor cursor[CurLast]; |
91 Cursor cursor[CurLast]; |
92 extern DC dc; /* global draw context */ |
92 DC dc; /* global draw context */ |
93 extern Display *dpy; |
93 Display *dpy; |
94 extern Layout *lt; |
94 Layout *lt; |
95 extern Window root, barwin; |
95 Window root, barwin; |
96 |
96 |
97 /* client.c */ |
97 /* client.c */ |
98 extern void attach(Client *c); /* attaches c to global client list */ |
98 void attach(Client *c); /* attaches c to global client list */ |
99 extern void configure(Client *c); /* send synthetic configure event */ |
99 void configure(Client *c); /* send synthetic configure event */ |
100 extern void detach(Client *c); /* detaches c from global client list */ |
100 void detach(Client *c); /* detaches c from global client list */ |
101 extern void focus(Client *c); /* focus c, c may be NULL */ |
101 void focus(Client *c); /* focus c, c may be NULL */ |
102 extern void killclient(const char *arg); /* kill c nicely */ |
102 void killclient(const char *arg); /* kill c nicely */ |
103 extern void manage(Window w, XWindowAttributes *wa); /* manage new client */ |
103 void manage(Window w, XWindowAttributes *wa); /* manage new client */ |
104 extern void resize(Client *c, int x, int y, |
104 void resize(Client *c, int x, int y, |
105 int w, int h, Bool sizehints); /* resize with given coordinates c*/ |
105 int w, int h, Bool sizehints); /* resize with given coordinates c*/ |
106 extern void togglefloating(const char *arg); /* toggles focused client between floating/tiled state */ |
106 void togglefloating(const char *arg); /* toggles focused client between floating/tiled state */ |
107 extern void updatesizehints(Client *c); /* update the size hint variables of c */ |
107 void updatesizehints(Client *c); /* update the size hint variables of c */ |
108 extern void updatetitle(Client *c); /* update the name of c */ |
108 void updatetitle(Client *c); /* update the name of c */ |
109 extern void unmanage(Client *c); /* destroy c */ |
109 void unmanage(Client *c); /* destroy c */ |
110 |
110 |
111 /* draw.c */ |
111 /* draw.c */ |
112 extern void drawstatus(void); /* draw the bar */ |
112 void drawstatus(void); /* draw the bar */ |
113 extern void drawtext(const char *text, unsigned long col[ColLast]); /* draw text */ |
113 void drawtext(const char *text, unsigned long col[ColLast]); /* draw text */ |
114 extern unsigned int textw(const char *text); /* return the width of text in px*/ |
114 unsigned int textw(const char *text); /* return the width of text in px*/ |
115 |
115 |
116 /* event.c */ |
116 /* event.c */ |
117 extern void grabkeys(void); /* grab all keys defined in config.h */ |
117 void grabkeys(void); /* grab all keys defined in config.h */ |
118 |
118 |
119 /* layout.c */ |
119 /* layout.c */ |
120 extern void floating(void); /* arranges all windows floating */ |
120 void floating(void); /* arranges all windows floating */ |
121 extern void focusclient(const char *arg); /* focuses next(1)/previous(-1) visible client */ |
121 void focusclient(const char *arg); /* focuses next(1)/previous(-1) visible client */ |
122 extern void incmasterw(const char *arg); /* increments the master width with arg's index value */ |
122 void incmasterw(const char *arg); /* increments the master width with arg's index value */ |
123 extern void incnmaster(const char *arg); /* increments nmaster with arg's index value */ |
123 void incnmaster(const char *arg); /* increments nmaster with arg's index value */ |
124 extern void initlayouts(void); /* initialize layout array */ |
124 void initlayouts(void); /* initialize layout array */ |
125 extern Client *nexttiled(Client *c); /* returns tiled successor of c */ |
125 Client *nexttiled(Client *c); /* returns tiled successor of c */ |
126 extern void restack(void); /* restores z layers of all clients */ |
126 void restack(void); /* restores z layers of all clients */ |
127 extern void setlayout(const char *arg); /* sets layout, -1 toggles */ |
127 void setlayout(const char *arg); /* sets layout, -1 toggles */ |
128 extern void togglemax(const char *arg); /* toggles maximization of floating client */ |
128 void togglemax(const char *arg); /* toggles maximization of floating client */ |
129 extern void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ |
129 void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ |
130 |
130 |
131 /* main.c */ |
131 /* main.c */ |
132 extern void quit(const char *arg); /* quit dwm nicely */ |
132 void quit(const char *arg); /* quit dwm nicely */ |
133 extern void sendevent(Window w, Atom a, long value); /* send synthetic event to w */ |
133 void sendevent(Window w, Atom a, long value); /* send synthetic event to w */ |
134 extern int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */ |
134 int xerror(Display *dsply, XErrorEvent *ee); /* dwm's X error handler */ |
135 |
135 |
136 /* tag.c */ |
136 /* tag.c */ |
137 extern void compileregs(void); /* initialize regexps of rules defined in config.h */ |
137 void compileregs(void); /* initialize regexps of rules defined in config.h */ |
138 extern Bool isvisible(Client *c); /* returns True if client is visible */ |
138 Bool isvisible(Client *c); /* returns True if client is visible */ |
139 extern void settags(Client *c, Client *trans); /* sets tags of c */ |
139 void settags(Client *c, Client *trans); /* sets tags of c */ |
140 extern void tag(const char *arg); /* tags c with arg's index */ |
140 void tag(const char *arg); /* tags c with arg's index */ |
141 extern void toggletag(const char *arg); /* toggles c tags with arg's index */ |
141 void toggletag(const char *arg); /* toggles c tags with arg's index */ |
142 extern void toggleview(const char *arg); /* toggles the tag with arg's index (in)visible */ |
142 void toggleview(const char *arg); /* toggles the tag with arg's index (in)visible */ |
143 extern void view(const char *arg); /* views the tag with arg's index */ |
143 void view(const char *arg); /* views the tag with arg's index */ |
144 |
144 |
145 /* util.c */ |
145 /* util.c */ |
146 extern void *emallocz(unsigned int size); /* allocates zero-initialized memory, exits on error */ |
146 void *emallocz(unsigned int size); /* allocates zero-initialized memory, exits on error */ |
147 extern void eprint(const char *errstr, ...); /* prints errstr and exits with 1 */ |
147 void eprint(const char *errstr, ...); /* prints errstr and exits with 1 */ |
148 extern void spawn(const char *arg); /* forks a new subprocess with arg's cmd */ |
148 void spawn(const char *arg); /* forks a new subprocess with arg's cmd */ |
149 |
149 |