dmenu-date-5.2.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       dmenu-date-5.2.diff (1494B)
       ---
            1 From 64fb38e3778addc0272eb8793deb909e639e5746 Mon Sep 17 00:00:00 2001
            2 From: piotr-marendowski <piotr-marendowski@tutanota.com>
            3 Date: Thu, 6 Jul 2023 10:03:03 +0000
            4 Subject: [PATCH] Displays date and time at the bottom of the vertical layout.
            5 
            6 ---
            7  dmenu.c | 20 +++++++++++++++++++-
            8  1 file changed, 19 insertions(+), 1 deletion(-)
            9 
           10 diff --git a/dmenu.c b/dmenu.c
           11 index 7cf253b..5428f67 100644
           12 --- a/dmenu.c
           13 +++ b/dmenu.c
           14 @@ -84,7 +84,7 @@ calcoffsets(void)
           15          int i, n;
           16  
           17          if (lines > 0)
           18 -                n = lines * bh;
           19 +                n = (lines * bh) - 1;
           20          else
           21                  n = mw - (promptw + inputw + TEXTW("<") + TEXTW(">"));
           22          /* calculate which items will begin the next page and previous page */
           23 @@ -143,6 +143,22 @@ drawitem(struct item *item, int x, int y, int w)
           24          return drw_text(drw, x, y, w, bh, lrpad / 2, item->text, 0);
           25  }
           26  
           27 +static int
           28 +drawdate(int x, int y, int w)
           29 +{
           30 +    char date[128];
           31 +    time_t t = time(NULL);
           32 +    struct tm *tm = localtime(&t);
           33 +
           34 +    /* Hour:Minute DayOfTheWeek DayOfTheMonth Month Year */
           35 +    strftime(date, sizeof(date), "%H:%M %A %d %B %Y", tm);
           36 +
           37 +        drw_setscheme(drw, scheme[SchemeSel]);
           38 +
           39 +        int r = drw_text(drw, x, y, w, bh, lrpad / 2, date, 0);
           40 +        return r;
           41 +}
           42 +
           43  static void
           44  drawmenu(void)
           45  {
           46 @@ -172,6 +188,8 @@ drawmenu(void)
           47                  /* draw vertical list */
           48                  for (item = curr; item != next; item = item->right)
           49                          drawitem(item, x, y += bh, mw - x);
           50 +
           51 +        drawdate(x, lines * bh, w);
           52          } else if (matches) {
           53                  /* draw horizontal list */
           54                  x += inputw;
           55 -- 
           56 2.41.0
           57