st-cyclefonts-20220731-baa9357.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       st-cyclefonts-20220731-baa9357.diff (2602B)
       ---
            1 From 3c83f90504445efb358f18b4ae86193c6baa709c Mon Sep 17 00:00:00 2001
            2 From: Justinas Grigas <jstn_as@protonmail.com>
            3 Date: Sun, 31 Jul 2022 10:43:14 +0300
            4 Subject: [PATCH] cyclefonts: keybind to cycle fonts
            5 
            6 This patch is an update to the 20210604, which fixes zoomreset.
            7 
            8 Because the cyclefonts function doesn't change the defaultfontsize
            9 variable, zoomreset function resets all fonts to the size of the first
           10 one loaded.
           11 
           12 With this patch, zoomreset will reset the font to the specified fontsize
           13 ---
           14  config.def.h |  7 ++++++-
           15  x.c          | 20 ++++++++++++++------
           16  2 files changed, 20 insertions(+), 7 deletions(-)
           17 
           18 diff --git a/config.def.h b/config.def.h
           19 index 91ab8ca..c213e48 100644
           20 --- a/config.def.h
           21 +++ b/config.def.h
           22 @@ -5,7 +5,11 @@
           23   *
           24   * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
           25   */
           26 -static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
           27 +static char *fonts[] = {
           28 +        "Liberation Mono:pixelsize=12:antialias=true:autohint=true",
           29 +        "Gohu GohuFont:pixelsize=11:antialias=false:autohint=false",
           30 +};
           31 +static size_t currentfont = 0;
           32  static int borderpx = 2;
           33  
           34  /*
           35 @@ -201,6 +205,7 @@ static Shortcut shortcuts[] = {
           36          { TERMMOD,              XK_Y,           selpaste,       {.i =  0} },
           37          { ShiftMask,            XK_Insert,      selpaste,       {.i =  0} },
           38          { TERMMOD,              XK_Num_Lock,    numlock,        {.i =  0} },
           39 +        { TERMMOD,              XK_S,           cyclefonts,     {}        },
           40  };
           41  
           42  /*
           43 diff --git a/x.c b/x.c
           44 index 2a3bd38..08f7275 100644
           45 --- a/x.c
           46 +++ b/x.c
           47 @@ -59,6 +59,7 @@ static void zoom(const Arg *);
           48  static void zoomabs(const Arg *);
           49  static void zoomreset(const Arg *);
           50  static void ttysend(const Arg *);
           51 +static void cyclefonts(const Arg *);
           52  
           53  /* config.h for applying patches and the configuration. */
           54  #include "config.h"
           55 @@ -315,11 +316,7 @@ void
           56  zoomreset(const Arg *arg)
           57  {
           58          Arg larg;
           59 -
           60 -        if (defaultfontsize > 0) {
           61 -                larg.f = defaultfontsize;
           62 -                zoomabs(&larg);
           63 -        }
           64 +        zoomabs(&larg);
           65  }
           66  
           67  void
           68 @@ -328,6 +325,17 @@ ttysend(const Arg *arg)
           69          ttywrite(arg->s, strlen(arg->s), 1);
           70  }
           71  
           72 +void
           73 +cyclefonts(const Arg *arg)
           74 +{
           75 +        currentfont++;
           76 +        currentfont %= (sizeof fonts / sizeof fonts[0]);
           77 +        usedfont = fonts[currentfont];
           78 +        Arg larg;
           79 +        larg.f = usedfontsize;
           80 +        zoomabs(&larg);
           81 +}
           82 +
           83  int
           84  evcol(XEvent *e)
           85  {
           86 @@ -1144,7 +1152,7 @@ xinit(int cols, int rows)
           87          if (!FcInit())
           88                  die("could not init fontconfig.\n");
           89  
           90 -        usedfont = (opt_font == NULL)? font : opt_font;
           91 +        usedfont = (opt_font == NULL)? fonts[currentfont] : opt_font;
           92          xloadfonts(usedfont, 0);
           93  
           94          /* colors */
           95 -- 
           96 2.37.1
           97