st-cyclefonts-20210604-4536f46.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       st-cyclefonts-20210604-4536f46.diff (2362B)
       ---
            1 From f7fb9a9597ec1f428455e9ef1cfcdac879a7af83 Mon Sep 17 00:00:00 2001
            2 From: Justinas Grigas <jstn_as@protonmail.com>
            3 Date: Fri, 4 Jun 2021 10:44:24 +0000
            4 Subject: [PATCH] [PATCH] cycles between fonts
            5 
            6 this is an update to the original cyclefonts patch which doesn't apply
            7 cleanly to the git version, with some tweaks.
            8 
            9 currentfont is now of type size_t.
           10 cycling fonts now properly redraws the screen.
           11 optional font can be loaded at the start.
           12 ---
           13  config.def.h |  7 ++++++-
           14  x.c          | 14 +++++++++++++-
           15  2 files changed, 19 insertions(+), 2 deletions(-)
           16 
           17 diff --git a/config.def.h b/config.def.h
           18 index 6f05dce..ff9bac9 100644
           19 --- a/config.def.h
           20 +++ b/config.def.h
           21 @@ -5,7 +5,11 @@
           22   *
           23   * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
           24   */
           25 -static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true";
           26 +static char *fonts[] = {
           27 +        "Liberation Mono:pixelsize=12:antialias=true:autohint=true",
           28 +        "Gohu GohuFont:pixelsize=11:antialias=false:autohint=false",
           29 +};
           30 +static size_t currentfont = 0;
           31  static int borderpx = 2;
           32  
           33  /*
           34 @@ -199,6 +203,7 @@ static Shortcut shortcuts[] = {
           35          { TERMMOD,              XK_Y,           selpaste,       {.i =  0} },
           36          { ShiftMask,            XK_Insert,      selpaste,       {.i =  0} },
           37          { TERMMOD,              XK_Num_Lock,    numlock,        {.i =  0} },
           38 +        { TERMMOD,              XK_S,           cyclefonts,     {}        },
           39  };
           40  
           41  /*
           42 diff --git a/x.c b/x.c
           43 index 7186040..9a658fa 100644
           44 --- a/x.c
           45 +++ b/x.c
           46 @@ -59,6 +59,7 @@ static void zoom(const Arg *);
           47  static void zoomabs(const Arg *);
           48  static void zoomreset(const Arg *);
           49  static void ttysend(const Arg *);
           50 +static void cyclefonts(const Arg *);
           51  
           52  /* config.h for applying patches and the configuration. */
           53  #include "config.h"
           54 @@ -328,6 +329,17 @@ ttysend(const Arg *arg)
           55          ttywrite(arg->s, strlen(arg->s), 1);
           56  }
           57  
           58 +void
           59 +cyclefonts(const Arg *arg)
           60 +{
           61 +        currentfont++;
           62 +        currentfont %= (sizeof fonts / sizeof fonts[0]);
           63 +        usedfont = fonts[currentfont];
           64 +        Arg larg;
           65 +        larg.f = usedfontsize;
           66 +        zoomabs(&larg);
           67 +}
           68 +
           69  int
           70  evcol(XEvent *e)
           71  {
           72 @@ -1115,7 +1127,7 @@ xinit(int cols, int rows)
           73          if (!FcInit())
           74                  die("could not init fontconfig.\n");
           75  
           76 -        usedfont = (opt_font == NULL)? font : opt_font;
           77 +        usedfont = (opt_font == NULL)? fonts[currentfont] : opt_font;
           78          xloadfonts(usedfont, 0);
           79  
           80          /* colors */
           81 -- 
           82 2.31.1
           83