st-cyclefonts-0.8.4.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
st-cyclefonts-0.8.4.diff (2253B)
---
1 From 9262cecf21a3a2fcf5f5c0f7dcc872fdc5435ca1 Mon Sep 17 00:00:00 2001
2 From: Miles Alan <m@milesalan.com>
3 Date: Mon, 7 Dec 2020 21:16:37 -0600
4 Subject: [PATCH] cyclefont: Add keybinding to cycle between multiple different
5 fonts
6
7 ---
8 config.def.h | 8 +++++++-
9 x.c | 17 +++++++++++++++--
10 2 files changed, 22 insertions(+), 3 deletions(-)
11
12 diff --git a/config.def.h b/config.def.h
13 index 6f05dce..5cd506c 100644
14 --- a/config.def.h
15 +++ b/config.def.h
16 @@ -5,7 +5,12 @@
17 *
18 * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
19 */
20 -static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
21 +static char *fonts[] = {
22 + "Liberation Mono:pixelsize=12:antialias=true:autohint=true",
23 + "tewi:pixelsize=12:antialias=true:autohint=true"
24 +};
25 +static int fonts_current = 0;
26 +
27 static int borderpx = 2;
28
29 /*
30 @@ -199,6 +204,7 @@ static Shortcut shortcuts[] = {
31 { TERMMOD, XK_Y, selpaste, {.i = 0} },
32 { ShiftMask, XK_Insert, selpaste, {.i = 0} },
33 { TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
34 + { TERMMOD, XK_S, cyclefonts, {} },
35 };
36
37 /*
38 diff --git a/x.c b/x.c
39 index 210f184..88cb8e7 100644
40 --- a/x.c
41 +++ b/x.c
42 @@ -59,6 +59,7 @@ static void zoom(const Arg *);
43 static void zoomabs(const Arg *);
44 static void zoomreset(const Arg *);
45 static void ttysend(const Arg *);
46 +static void cyclefonts(const Arg *);
47
48 /* config.h for applying patches and the configuration. */
49 #include "config.h"
50 @@ -949,6 +950,18 @@ xloadfont(Font *f, FcPattern *pattern)
51 return 0;
52 }
53
54 +void
55 +cyclefonts(const Arg *dummy)
56 +{
57 + fonts_current++;
58 + if (fonts_current > (sizeof fonts / sizeof fonts[0]) - 1) {
59 + fonts_current = 0;
60 + }
61 + usedfont = fonts[fonts_current];
62 + xloadfonts(fonts[fonts_current], 0);
63 + redraw();
64 +}
65 +
66 void
67 xloadfonts(char *fontstr, double fontsize)
68 {
69 @@ -1113,8 +1126,8 @@ xinit(int cols, int rows)
70 if (!FcInit())
71 die("could not init fontconfig.\n");
72
73 - usedfont = (opt_font == NULL)? font : opt_font;
74 - xloadfonts(usedfont, 0);
75 + usedfont = fonts[fonts_current];
76 + xloadfonts(fonts[fonts_current], 0);
77
78 /* colors */
79 xw.cmap = XDefaultColormap(xw.dpy, xw.scr);
80 --
81 2.26.2
82