[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

Found at: gopher.r-36.net:70/scm/dmenu/commit/3438af001adcb1d8ff840f89ae7cb5ef8589bde6.gph

tapplied Stefan Tibus' sun patch, added -bottom option to dmenu which makes it appear in the bottom (for wmii compliance), slightly modified version than the patch proposed by Stefan Tibus - dmenu - Dmenu fork with xft fonts.

git clone git://r-36.net/dmenu

Log

Files

Refs

README

LICENSE

---

commit 3438af001adcb1d8ff840f89ae7cb5ef8589bde6

parent 201b056e39267ab34ee777f7766457ef51a9da12

Author: arg@mig29

Date:   Mon, 18 Dec 2006 12:52:58 +0100
applied Stefan Tibus' sun patch, added -bottom option to dmenu which makes it appear in the bottom (for wmii compliance), slightly modified version than the patch proposed by Stefan Tibus
Diffstat:
  config.mk                           |       5 +++++
  dmenu.1                             |       4 ++++
  main.c                              |      16 +++++++++++++---
3 files changed, 22 insertions(+), 3 deletions(-)
---

diff --git a/config.mk b/config.mk

t@@ -20,6 +20,11 @@ LDFLAGS = ${LIBS}
 #CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
 #LDFLAGS = -g ${LIBS}
+# Solaris
+#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
+#LDFLAGS = ${LIBS}
+#CFLAGS += -xtarget=ultra
+
 # compiler and linker
 CC = cc
 LD = ${CC}

diff --git a/dmenu.1 b/dmenu.1

t@@ -3,6 +3,7 @@
 dmenu \- dynamic menu
 .SH SYNOPSIS
 .B dmenu
+.RB [ \-bottom ]
 .RB [ \-font " "]
 .RB [ \-normbg " "]
 .RB [ \-normfg " "]
t@@ -19,6 +20,9 @@ It manages huge amounts (up to 10.000 and more) of user defined menu items
 efficiently.
 .SS Options
 .TP
+.B \-bottom
+makes dmenu appear at the screen bottom (by default it appears at the screen top).
+.TP
 .B \-font 
 defines the font.
 .TP

diff --git a/main.c b/main.c

t@@ -330,6 +330,7 @@ DC dc = {0};
 int
 main(int argc, char *argv[]) {
+        Bool bottom = False;
         char *font = FONT;
         char *maxname;
         char *normbg = NORMBGCOLOR;
t@@ -347,7 +348,10 @@ main(int argc, char *argv[]) {
         timeout.tv_sec = 3;
         /* command line args */
         for(i = 1; i < argc; i++)
-                if(!strncmp(argv[i], "-font", 6)) {
+                if(!strncmp(argv[i], "-bottom", 8)) {
+                        bottom = True;
+                }
+                else if(!strncmp(argv[i], "-font", 6)) {
                         if(++i < argc) font = argv[i];
                 }
                 else if(!strncmp(argv[i], "-normbg", 8)) {
t@@ -373,7 +377,8 @@ main(int argc, char *argv[]) {
                         exit(EXIT_SUCCESS);
                 }
                 else
-                        eprint("usage: dmenu [-font ] [-{norm,sel}{bg,fg} ] [-p ] [-t ] [-v]\n", stdout);
+                        eprint("usage: dmenu [-bottom] [-font ] [-{norm,sel}{bg,fg} ]\n"
+                                "             [-p ] [-t ] [-v]\n", stdout);
         setlocale(LC_CTYPE, "");
         dpy = XOpenDisplay(0);
         if(!dpy)
t@@ -406,7 +411,12 @@ main(int argc, char *argv[]) {
         wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask;
         mx = my = 0;
         mw = DisplayWidth(dpy, screen);
-        mh = dc.font.height + 2;
+        if(bottom) {
+                mh = dc.font.ascent + dc.font.descent + 3; // match wmii
+                my = DisplayHeight(dpy, screen) - mh;
+        }
+        else
+                mh = dc.font.height + 2;
         win = XCreateWindow(dpy, root, mx, my, mw, mh, 0,
                         DefaultDepth(dpy, screen), CopyFromParent,
                         DefaultVisual(dpy, screen),
.


AD: