Introduction
Introduction Statistics Contact Development Disclaimer Help
cleanup Makefile, add initial man page svkbd.1 - svkbd - simple virtual keyboard
git clone git://git.suckless.org/svkbd
Log
Files
Refs
README
LICENSE
---
commit 1c75314faf5a6d6a9d330b01d50ebbf0cd424b15
parent fc267005ced2251de9e05e62e8a2b42a2712236a
Author: Hiltjo Posthuma <[email protected]>
Date: Fri, 29 May 2020 14:24:17 +0200
cleanup Makefile, add initial man page svkbd.1
Diffstat:
M Makefile | 93 +++++++++++++++--------------…
A README | 44 +++++++++++++++++++++++++++++…
D README.md | 44 -----------------------------…
M config.mk | 30 ++++++++----------------------
A svkbd.1 | 36 +++++++++++++++++++++++++++++…
M svkbd.c | 5 ++++-
6 files changed, 136 insertions(+), 116 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -1,73 +1,68 @@
# svkbd - simple virtual keyboard
# See LICENSE file for copyright and license details.
+.POSIX:
+
+NAME = svkbd
+VERSION = 0.1
include config.mk
-SRC = svkbd.c
+BIN = ${NAME}-${LAYOUT}
+SRC = ${NAME}.c
+OBJ = ${NAME}-${LAYOUT}.o
+MAN1 = ${NAME}.1
-all: options svkbd-${LAYOUT}
+all: ${BIN}
options:
@echo svkbd build options:
- @echo "CFLAGS = ${CFLAGS}"
- @echo "LDFLAGS = ${LDFLAGS}"
+ @echo "CFLAGS = ${SVKBD_CFLAGS}"
+ @echo "CPPLAGS = ${SVKBD_CPPFLAGS}"
+ @echo "LDFLAGS = ${SVKBD_LDFLAGS}"
@echo "CC = ${CC}"
-config.h: config.mk
- @echo creating $@ from config.def.h
- @cp config.def.h $@
+config.h:
+ cp config.def.h $@
+
+${BIN}: config.h ${OBJ}
+
+${OBJ}: config.h
-svkbd-%: layout.%.h config.h ${SRC}
- @echo creating layout.h from $<
- @cp $< layout.h
- @echo CC -o $@
- @${CC} -o $@ ${SRC} ${LDFLAGS} ${CFLAGS}
+${OBJ}:
+ ${CC} -o $@ -c ${SRC} ${SVKBD_CFLAGS} ${SVKBD_CPPFLAGS}
+
+${BIN}:
+ ${CC} -o ${BIN} ${OBJ} ${SVKBD_LDFLAGS}
clean:
- @echo cleaning
- @for i in svkbd-*; \
- do \
- if [ -x $$i ]; \
- then \
- rm -f $$i 2> /dev/null; \
- fi \
- done; true
- @rm -f ${OBJ} svkbd-${VERSION}.tar.gz 2> /dev/null; true
+ rm -f ${NAME}-?? ${NAME}-??.o ${OBJ}
-dist: clean
- @echo creating dist tarball
- @mkdir -p svkbd-${VERSION}
- @cp LICENSE Makefile README config.def.h config.mk \
- ${SRC} svkbd-${VERSION}
- @for i in layout.*.h; \
+dist:
+ rm -rf "${NAME}-${VERSION}"
+ mkdir -p "${NAME}-${VERSION}"
+ cp LICENSE Makefile README config.def.h config.mk ${MAN1} \
+ ${SRC} ${NAME}-${VERSION}
+ for i in layout.*.h; \
do \
- cp $$i svkbd-${VERSION}; \
+ cp $$i ${NAME}-${VERSION}; \
done
- @tar -cf svkbd-${VERSION}.tar svkbd-${VERSION}
- @gzip svkbd-${VERSION}.tar
- @rm -rf svkbd-${VERSION}
+ tar -cf - "${NAME}-${VERSION}" | \
+ gzip -c > "${NAME}-${VERSION}.tar.gz"
+ rm -rf "${NAME}-${VERSION}"
install: all
- @echo installing executable files to ${DESTDIR}${PREFIX}/bin
- @mkdir -p ${DESTDIR}${PREFIX}/bin
- @for i in svkbd-*; \
+ mkdir -p ${DESTDIR}${PREFIX}/bin
+ for i in ${NAME}-??; \
do \
- if [ -x $$i ]; \
- then \
- echo CP $$i; \
- cp $$i ${DESTDIR}${PREFIX}/bin; \
- chmod 755 ${DESTDIR}${PREFIX}/bin/$$i; \
- fi \
+ cp $$i ${DESTDIR}${PREFIX}/bin; \
+ chmod 755 ${DESTDIR}${PREFIX}/bin/$$i; \
done
-# @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
-# @mkdir -p ${DESTDIR}${MANPREFIX}/man1
-# @sed "s/VERSION/${VERSION}/g" < svkbd.1 > ${DESTDIR}${MANPREFIX}/man1…
-# @chmod 644 ${DESTDIR}${MANPREFIX}/man1/svkbd.1
+ mkdir -p "${DESTDIR}${MANPREFIX}/man1"
+ sed "s/VERSION/${VERSION}/g" < ${MAN1} > ${DESTDIR}${MANPREFIX}/man1/$…
+ chmod 644 ${DESTDIR}${MANPREFIX}/man1/${MAN1}
uninstall:
- @echo removing executable files from ${DESTDIR}${PREFIX}/bin
- @rm -f ${DESTDIR}${PREFIX}/bin/svkbd-*
-# @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
-# @rm -f ${DESTDIR}${MANPREFIX}/man1/svkbd.1
+ rm -f ${DESTDIR}${PREFIX}/bin/${NAME}-??
+ rm -f ${DESTDIR}${MANPREFIX}/man1/${MAN1}
-.PHONY: all options clean dist install uninstall
+.PHONY: all clean dist install uninstall
diff --git a/README b/README
@@ -0,0 +1,44 @@
+SVKBD
+=====
+This is a simple virtual keyboard, intended to be used in environments,
+where no keyboard is available.
+
+Installation
+------------
+
+ $ make
+ $ make install
+
+This will create by default `svkbd-en`, which is svkbd using an English
+keyboard layout. You can create svkbd for additional layouts by doing:
+
+ $ make LAYOUT=$layout
+
+This will take the file `layout.$layout.h` and create `svkbd-$layout`.
+`make install` will then pick up the new file and install it accordingly.
+
+Usage
+-----
+
+ $ svkbd-en
+
+This will open svkbd at the bottom of the screen, showing the default
+English layout.
+
+ $ svkbd-en -d
+
+This tells svkbd-en to announce itself being a dock window, which then
+is managed differently between different window managers. If using dwm
+and the dock patch, then this will make svkbd being managed by dwm and
+some space of the screen being reserved for it.
+
+ $ svkbd-en -g 400x200+1+1
+
+This will start svkbd-en with a size of 400x200 and at the upper left
+window corner.
+
+Repository
+----------
+
+ git clone https://git.suckless.org/svkbd
+
diff --git a/README.md b/README.md
@@ -1,44 +0,0 @@
-SVKBD
-=====
-This is a simple virtual keyboard, intended to be used in environments,
-where no keyboard is available.
-
-Installation
-------------
-
- % make
- % make install
-
-This will create by default `svkbd-en`, which is svkbd using an English
-keyboard layout. You can create svkbd for additional layouts by doing:
-
- % make svkbd-$layout
-
-This will take the file `layout.$layout.h` and create `svkbd-$layout`.
-`make install` will then pick up the new file and install it accordingly.
-
-Usage
------
-
- % svkbd-en
-
-This will open svkbd at the bottom of the screen, showing the default
-English layout.
-
- % svkbd-en -d
-
-This tells svkbd-en to announce itself being a dock window, which then
-is managed differently between different window managers. If using dwm
-and the dock patch, then this will make svkbd being managed by dwm and
-some space of the screen being reserved for it.
-
- % svkbd-en -g 400x200+1+1
-
-This will start svkbd-en with a size of 400x200 and at the upper left
-window corner.
-
-Repository
-----------
-
- git clone http://git.suckless.org/svkbd
-
diff --git a/config.mk b/config.mk
@@ -1,31 +1,17 @@
-# svkbd version
-VERSION = 0.1
-
-LAYOUT ?= en
-
-# Customize below to fit your system
+LAYOUT = en
# paths
-PREFIX ?= /usr/local
+PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# includes and libs
-INCS = -I. -I./layouts -I/usr/include -I${X11INC}
-LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lXtst
-
-# flags
-CPPFLAGS = -DVERSION=\"${VERSION}\" \
- ${XINERAMAFLAGS}
-CFLAGS = -g -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
-LDFLAGS = -g ${LIBS}
-
-# Solaris
-#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
-#LDFLAGS = ${LIBS}
-
-# compiler and linker
-CC = cc
+INCS = -I. -I./layouts -I${X11INC}
+LIBS = -L${X11LIB} -lX11 -lXtst
+# use system flags
+SVKBD_CFLAGS = ${CFLAGS}
+SVKBD_LDFLAGS = ${LDFLAGS} ${LIBS}
+SVKBD_CPPFLAGS = ${CPPFLAGS} ${INCS} -DVERSION=\"VERSION\" -DLAYOUT=\"layout.$…
diff --git a/svkbd.1 b/svkbd.1
@@ -0,0 +1,36 @@
+.Dd May 29, 2020
+.Dt SVKBD 1
+.Os
+.Sh NAME
+.Nm svkbd
+.Nd simple virtual keyboard
+.Sh SYNOPSIS
+.Nm
+.Op Fl d
+.Op Fl g Ar geometry
+.Op Fl h
+.Op Fl v
+.Sh DESCRIPTION
+.Nm
+is a simple virtual keyboard, intended to be used in environments, where no
+keyboard is available.
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl d
+Set the _NET_WM_WINDOW_TYPE_DOCK property to hint windowmanagers it is
+dockable, by default off.
+.It Fl g Ar geometry
+Adjust the initial window position or size as specified by the standard X11
+geometry format.
+.It Fl h
+Show the usage information.
+.It Fl v
+Show the version information.
+.El
+.Sh SEE ALSO
+.Xr XParseGeometry 3
+.Sh AUTHORS
+.An Christoph Lohmann Aq Mt [email protected]
+and
+.An Enno Boland Aq Mt [email protected]
diff --git a/svkbd.c b/svkbd.c
@@ -101,7 +101,10 @@ Bool ispressing = False;
/* configuration, allows nested code to access above variables */
#include "config.h"
-#include "layout.h"
+#ifndef LAYOUT
+#error "make sure to define LAYOUT"
+#endif
+#include LAYOUT
void
motionnotify(XEvent *e)
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.