Compare commits

..

30 Commits
0.2 ... 0.4

Author SHA1 Message Date
26fc52fcf6 removed finished message 2006-08-14 16:11:38 +02:00
6a26e97f74 fixed string cutting 2006-08-14 10:56:57 +02:00
0e21ef5f37 fixed string cutting 2006-08-14 08:52:28 +02:00
2f3068fb77 added comment 2006-08-14 08:44:54 +02:00
b7f8911455 applied Sanders LD patch 2006-08-14 08:42:23 +02:00
35a06ccd2e applied my new color scheme 2006-08-11 18:12:07 +02:00
67649463c8 simplified drawborder 2006-08-11 11:52:34 +02:00
d1415ea497 Added tag 0.3 for changeset d352e9dc112ee96aa5cad961a0ed880ae9ce7276 2006-08-10 15:19:03 +02:00
c6113a3b27 readded border colors, this sucks least 2006-08-10 11:13:21 +02:00
dd902868df drawing border around sel item 2006-08-10 11:07:06 +02:00
4318bf2905 removed unnecessary border color 2006-08-10 10:28:58 +02:00
25f71b3829 swapping my default colors 2006-08-10 10:21:50 +02:00
0af369ba65 added uppercase chars for C-u and C-h as well 2006-08-10 10:10:32 +02:00
e4fbc43253 removed C-[ from source and man page 2006-08-10 10:09:44 +02:00
66f2a93eaa removed control sequences which actually aren't implemented anymore (only the real unix control sequences are implemented) 2006-08-09 18:45:32 +02:00
a381b3a819 fixes to README 2006-08-08 17:14:35 +02:00
2a4b146fc4 default colors are best 2006-08-08 12:47:58 +02:00
84d7f7bccf noborder 2006-08-08 11:47:58 +02:00
00dce8cc39 dito 2006-08-08 11:18:23 +02:00
170b977288 using a better colorscheme 2006-08-08 11:07:12 +02:00
366b2afd6c removed unnecessary typedef 2006-08-07 17:17:27 +02:00
4e009770d6 made dmenu(1) more dwm(1) alike 2006-08-07 14:07:04 +02:00
b24aa8312b font size changed as well 2006-08-07 12:21:31 +02:00
5146c3f27f appliead Sanders manpage/Makefile pacth 2006-08-07 11:58:23 +02:00
6a332a043a fixed dmenu.1 version info 2006-08-07 11:11:17 +02:00
9d574f5ebe settle with grey 2006-08-07 11:10:05 +02:00
1fb8a6b898 next version is 0.3 2006-08-07 10:32:18 +02:00
7fb4c2b818 also made my colors tasting better with my overall colorscheme 2006-08-07 10:28:42 +02:00
f3a60b583f next attempt for bright background switch 2006-08-07 09:40:28 +02:00
48e2ce8709 Added tag 0.2 for changeset 656be0f47df545dfdd2e1e0663663b8b1b26f031 2006-08-07 08:52:37 +02:00
9 changed files with 68 additions and 67 deletions

View File

@ -1 +1,3 @@
fcc8a282cb52c6a9343b461026b386825590cd31 0.1
656be0f47df545dfdd2e1e0663663b8b1b26f031 0.2
d352e9dc112ee96aa5cad961a0ed880ae9ce7276 0.3

View File

@ -7,13 +7,13 @@ SRC = draw.c main.c util.c
OBJ = ${SRC:.c=.o}
all: options dmenu
@echo finished
options:
@echo dmenu build options:
@echo "CFLAGS = ${CFLAGS}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}"
@echo "LD = ${LD}"
.c.o:
@echo CC $<
@ -27,7 +27,7 @@ config.h:
dmenu: ${OBJ}
@echo LD $@
@${CC} -o $@ ${OBJ} ${LDFLAGS}
@${LD} -o $@ ${OBJ} ${LDFLAGS}
@strip $@
clean:
@ -50,7 +50,7 @@ install: all
@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu
@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
@mkdir -p ${DESTDIR}${MANPREFIX}/man1
@cp -f dmenu.1 ${DESTDIR}${MANPREFIX}/man1
@sed 's/VERSION/${VERSION}/g' < dmenu.1 > ${DESTDIR}${MANPREFIX}/man1/dmenu.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/dmenu.1
uninstall:

4
README
View File

@ -1,6 +1,6 @@
dmenu - dynamic menu
--------------------
dwm is a generic, highly customizable, and efficient menu for the
dmenu is a generic, highly customizable, and efficient menu for the
X Window System.
@ -11,7 +11,7 @@ In order to build dmenu you need the Xlib header files.
Installation
------------
Edit config.mk to match your local setup (dwm is installed into
Edit config.mk to match your local setup (dmenu is installed into
the /usr/local namespace by default).
Afterwards enter the following command to build and install dmenu (if

View File

@ -3,7 +3,7 @@
* See LICENSE file for license details.
*/
#define FONT "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*"
#define BGCOLOR "#0a2c2d"
#define FGCOLOR "#ddeeee"
#define BORDERCOLOR "#176164"
#define FONT "-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*"
#define BGCOLOR "#0d121d"
#define FGCOLOR "#eeeeee"
#define BORDERCOLOR "#3f484d"

View File

@ -1,5 +1,5 @@
# dmenu version
VERSION = 0.2
VERSION = 0.4
# Customize below to fit your system
@ -20,5 +20,6 @@ LDFLAGS = ${LIBS}
#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = -g ${LIBS}
# compiler
# compiler and linker
CC = cc
LD = ${CC}

53
dmenu.1
View File

@ -1,4 +1,4 @@
.TH DMENU 1 d-0.0
.TH DMENU 1 dmenu-VERSION
.SH NAME
dmenu \- dynamic menu
.SH SYNOPSIS
@ -15,46 +15,45 @@ It supports arbitrary, user defined menu contents.
.TP
.B \-v
prints version information to stdout, then exits.
.SS Usage
.SH USAGE
.B dmenu
reads a list of newline-separated items from stdin and creates a menu.
When the user selects an item or enters any text and presses Enter, his choice
When the user selects an item or enters any text and presses Return, his choice
is printed to stdout and
.B dmenu
terminates.
.SS Keyboard Control
.B dmenu
is completely controlled by the keyboard. The following keys are recognized:
.TP 2
.TP
Any printable character
appends the character to the text in the input field. This works as a filter:
Appends the character to the text in the input field. This works as a filter:
only items containing this text will be displayed.
.TP 2
Left/Right (Control-p/Control-n)
select the previous/next item.
.TP 2
Tab (Control-i)
copy the selected item to the input field.
.TP 2
Enter (Control-j)
confirm selection and quit (print the selected item to stdout).
.TP 2
Shift-Enter (Shift-Control-j)
confirm selection and quit (print the text in the input field to stdout).
.TP 2
Escape (Control-[)
quit without selecting an item.
.TP 2
.TP
Left/Right
Select the previous/next item.
.TP
Tab
Copy the selected item to the input field.
.TP
Return
Confirm selection and quit (print the selected item to stdout).
.TP
Shift-Return
Confirm selection and quit (print the text in the input field to stdout).
.TP
Escape
Quit without selecting an item.
.TP
Backspace (Control-h)
remove enough characters from the input field to change its filtering effect.
.TP 2
Remove enough characters from the input field to change its filtering effect.
.TP
Control-u
remove all characters from the input field.
.SS Exit codes
Remove all characters from the input field.
.P
.B dmenu
returns
.B 0
if Enter is pressed on termination,
if Return is pressed on termination,
.B 1
if Escape is pressed.
.SH CUSTOMIZATION

View File

@ -9,7 +9,6 @@
#define SPACE 30 /* px */
typedef struct Brush Brush;
typedef struct DC DC;
typedef struct Fnt Fnt;

50
draw.c
View File

@ -9,26 +9,6 @@
/* static */
static void
drawborder(void)
{
XPoint points[5];
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
XSetForeground(dpy, dc.gc, dc.border);
points[0].x = dc.x;
points[0].y = dc.y;
points[1].x = dc.w - 1;
points[1].y = 0;
points[2].x = 0;
points[2].y = dc.h - 1;
points[3].x = -(dc.w - 1);
points[3].y = 0;
points[4].x = 0;
points[4].y = -(dc.h - 1);
XDrawLines(dpy, dc.drawable, dc.gc, points, 5, CoordModePrevious);
}
static unsigned int
textnw(const char *text, unsigned int len)
{
@ -48,21 +28,35 @@ drawtext(const char *text, Bool invert, Bool border)
{
int x, y, w, h;
static char buf[256];
unsigned int len;
unsigned int len, olen;
XGCValues gcv;
XPoint points[5];
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
XSetForeground(dpy, dc.gc, invert ? dc.fg : dc.bg);
XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
w = 0;
if(border)
drawborder();
if(border) {
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
XSetForeground(dpy, dc.gc, dc.border);
points[0].x = dc.x;
points[0].y = dc.y;
points[1].x = dc.w - 1;
points[1].y = 0;
points[2].x = 0;
points[2].y = dc.h - 1;
points[3].x = -(dc.w - 1);
points[3].y = 0;
points[4].x = 0;
points[4].y = -(dc.h - 1);
XDrawLines(dpy, dc.drawable, dc.gc, points, 5, CoordModePrevious);
}
if(!text)
return;
len = strlen(text);
olen = len = strlen(text);
if(len >= sizeof(buf))
len = sizeof(buf) - 1;
memcpy(buf, text, len);
@ -75,6 +69,14 @@ drawtext(const char *text, Bool invert, Bool border)
/* shorten text if necessary */
while(len && (w = textnw(buf, len)) > dc.w - h)
buf[--len] = 0;
if(len < olen) {
if(len > 1)
buf[len - 1] = '.';
if(len > 2)
buf[len - 2] = '.';
if(len > 3)
buf[len - 3] = '.';
}
if(w > dc.w)
return; /* too long */

6
main.c
View File

@ -172,18 +172,16 @@ kpress(XKeyEvent * e)
return;
break;
case XK_h:
case XK_H:
ksym = XK_BackSpace;
break;
case XK_U:
case XK_u:
case XK_U:
text[0] = 0;
match(text);
drawmenu();
return;
break;
case XK_bracketleft:
ksym = XK_Escape;
break;
}
}
switch(ksym) {