tabbed-basenames-0.7.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
tabbed-basenames-0.7.diff (2704B) | |
--- | |
1 From a682145f0daf599b6d2f6c1326f064ec67b30f73 Mon Sep 17 00:00:00 2001 | |
2 From: Jacob Fong <[email protected]> | |
3 Date: Mon, 5 Jun 2023 15:57:54 -0700 | |
4 Subject: [PATCH] Added `-b` to display only basenames of tab titles. | |
5 | |
6 --- | |
7 tabbed.1 | 3 +++ | |
8 tabbed.c | 24 ++++++++++++++++++++++-- | |
9 2 files changed, 25 insertions(+), 2 deletions(-) | |
10 | |
11 diff --git a/tabbed.1 b/tabbed.1 | |
12 index 07bdbd7..4a9c110 100644 | |
13 --- a/tabbed.1 | |
14 +++ b/tabbed.1 | |
15 @@ -106,6 +106,9 @@ defines the urgent background color. | |
16 .BI \-U " urgfgbcol" | |
17 defines the urgent foreground color. | |
18 .TP | |
19 +.BI \-b | |
20 +print only basenames of tab titles. | |
21 +.TP | |
22 .B \-v | |
23 prints version information to stderr, then exits. | |
24 .SH USAGE | |
25 diff --git a/tabbed.c b/tabbed.c | |
26 index eafe28a..03b0c8c 100644 | |
27 --- a/tabbed.c | |
28 +++ b/tabbed.c | |
29 @@ -80,6 +80,7 @@ typedef struct { | |
30 | |
31 typedef struct { | |
32 char name[256]; | |
33 + char *basename; | |
34 Window win; | |
35 int tabx; | |
36 Bool urgent; | |
37 @@ -106,6 +107,7 @@ static void focusonce(const Arg *arg); | |
38 static void focusurgent(const Arg *arg); | |
39 static void fullscreen(const Arg *arg); | |
40 static char *getatom(int a); | |
41 +static char *getbasename(const char *name); | |
42 static int getclient(Window w); | |
43 static XftColor getcolor(const char *colstr); | |
44 static int getfirsttab(void); | |
45 @@ -156,7 +158,7 @@ static int bh, obh, wx, wy, ww, wh; | |
46 static unsigned int numlockmask; | |
47 static Bool running = True, nextfocus, doinitspawn = True, | |
48 fillagain = False, closelastclient = False, | |
49 - killclientsfirst = False; | |
50 + killclientsfirst = False, basenametitles = Fals… | |
51 static Display *dpy; | |
52 static DC dc; | |
53 static Atom wmatom[WMLast]; | |
54 @@ -367,7 +369,10 @@ drawbar(void) | |
55 } else { | |
56 col = clients[c]->urgent ? dc.urg : dc.norm; | |
57 } | |
58 - drawtext(clients[c]->name, col); | |
59 + if (basenametitles) | |
60 + drawtext(clients[c]->basename, col); | |
61 + else | |
62 + drawtext(clients[c]->name, col); | |
63 dc.x += dc.w; | |
64 clients[c]->tabx = dc.x; | |
65 } | |
66 @@ -557,6 +562,16 @@ getatom(int a) | |
67 return buf; | |
68 } | |
69 | |
70 +char * | |
71 +getbasename(const char *name) | |
72 +{ | |
73 + char *pos = strrchr(name, '/'); | |
74 + if (pos) | |
75 + return pos+1; | |
76 + else | |
77 + return (char *)name; | |
78 +} | |
79 + | |
80 int | |
81 getclient(Window w) | |
82 { | |
83 @@ -1217,6 +1232,8 @@ updatetitle(int c) | |
84 sizeof(clients[c]->name))) | |
85 gettextprop(clients[c]->win, XA_WM_NAME, clients[c]->na… | |
86 sizeof(clients[c]->name)); | |
87 + if (basenametitles) | |
88 + clients[c]->basename = getbasename(clients[c]->name); | |
89 if (sel == c) | |
90 xsettitle(win, clients[c]->name); | |
91 drawbar(); | |
92 @@ -1333,6 +1350,9 @@ main(int argc, char *argv[]) | |
93 case 'u': | |
94 urgbgcolor = EARGF(usage()); | |
95 break; | |
96 + case 'b': | |
97 + basenametitles = True; | |
98 + break; | |
99 case 'v': | |
100 die("tabbed-"VERSION", © 2009-2016 tabbed engineers, " | |
101 "see LICENSE for details.\n"); | |
102 -- | |
103 2.40.0 | |
104 |