Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-statusbutton-20180524-c8e9479.diff - sites - public wiki contents of suckle…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-statusbutton-20180524-c8e9479.diff (3377B)
---
1 From 63515eaf23d3f32f12d159c5e84af09f3a2d3323 Mon Sep 17 00:00:00 2001
2 From: Christopher Drelich <[email protected]>
3 Date: Thu, 24 May 2018 20:26:42 -0400
4 Subject: [PATCH] Added left-hand side statusbar button.
5
6 ---
7 config.def.h | 2 ++
8 dwm.c | 34 +++++++++++++++++++++-------------
9 2 files changed, 23 insertions(+), 13 deletions(-)
10
11 diff --git a/config.def.h b/config.def.h
12 index a9ac303..63ff917 100644
13 --- a/config.def.h
14 +++ b/config.def.h
15 @@ -5,6 +5,7 @@ static const unsigned int borderpx = 1; /* borde…
16 static const unsigned int snap = 32; /* snap pixel */
17 static const int showbar = 1; /* 0 means no bar */
18 static const int topbar = 1; /* 0 means bottom bar */
19 +static const char buttonbar[] = "<O>";
20 static const char *fonts[] = { "monospace:size=10" };
21 static const char dmenufont[] = "monospace:size=10";
22 static const char col_gray1[] = "#222222";
23 @@ -100,6 +101,7 @@ static Key keys[] = {
24 /* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, …
25 static Button buttons[] = {
26 /* click event mask button functio…
27 + { ClkButton, 0, Button1, s…
28 { ClkLtSymbol, 0, Button1, setlayo…
29 { ClkLtSymbol, 0, Button3, setlayo…
30 { ClkWinTitle, 0, Button2, zoom, …
31 diff --git a/dwm.c b/dwm.c
32 index bb95e26..689cb01 100644
33 --- a/dwm.c
34 +++ b/dwm.c
35 @@ -64,7 +64,7 @@ enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
36 NetWMFullscreen, NetActiveWindow, NetWMWindowType,
37 NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
38 enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* defaul…
39 -enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
40 +enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkButton, ClkWinTitle,
41 ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
42
43 typedef union {
44 @@ -431,18 +431,23 @@ buttonpress(XEvent *e)
45 }
46 if (ev->window == selmon->barwin) {
47 i = x = 0;
48 - do
49 - x += TEXTW(tags[i]);
50 - while (ev->x >= x && ++i < LENGTH(tags));
51 - if (i < LENGTH(tags)) {
52 - click = ClkTagBar;
53 - arg.ui = 1 << i;
54 - } else if (ev->x < x + blw)
55 - click = ClkLtSymbol;
56 - else if (ev->x > selmon->ww - TEXTW(stext))
57 - click = ClkStatusText;
58 - else
59 - click = ClkWinTitle;
60 + x += TEXTW(buttonbar);
61 + if(ev->x < x) {
62 + click = ClkButton;
63 + } else {
64 + do
65 + x += TEXTW(tags[i]);
66 + while (ev->x >= x && ++i < LENGTH(tags));
67 + if (i < LENGTH(tags)) {
68 + click = ClkTagBar;
69 + arg.ui = 1 << i;
70 + } else if (ev->x < x + blw)
71 + click = ClkLtSymbol;
72 + else if (ev->x > selmon->ww - TEXTW(stext))
73 + click = ClkStatusText;
74 + else
75 + click = ClkWinTitle;
76 + }
77 } else if ((c = wintoclient(ev->window))) {
78 focus(c);
79 restack(selmon);
80 @@ -714,6 +719,9 @@ drawbar(Monitor *m)
81 urg |= c->tags;
82 }
83 x = 0;
84 + w = blw = TEXTW(buttonbar);
85 + drw_setscheme(drw, scheme[SchemeNorm]);
86 + x = drw_text(drw, x, 0, w, bh, lrpad / 2, buttonbar, 0);
87 for (i = 0; i < LENGTH(tags); i++) {
88 w = TEXTW(tags[i]);
89 drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << …
90 --
91 2.7.4
92
You are viewing proxied material from suckless.org. 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.