wmi

git clone git://oldgit.suckless.org/wmi/
Log | Files | Refs | LICENSE

commit c499544fc488760e6260f74927c298f452c327ab
parent 8da36e4743010e4714edc4e8064bb8f9b3ecd279
Author: Anselm R Garbe <garbeam@gmail.com>
Date:   Wed,  9 Sep 2009 13:56:36 +0100

update

Diffstat:
AUTHORS | 6+++---
CONTRIB | 2--
FAQ | 2--
INSTALL | 82++++++++++++++++++++++++++++++++-----------------------------------------------
LICENSE | 2+-
Makefile | 104+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
config.mk | 33+++++++++++++++++++++++++++++++++
7 files changed, 174 insertions(+), 57 deletions(-)

diff --git a/AUTHORS b/AUTHORS @@ -1,8 +1,8 @@ -$Id: AUTHORS 735 2004-09-27 18:36:45Z garbeam $ - Current developers of the WMI: - - Anselm R. Garbe <anselmg at t-online.de> + - Anselm R Garbe <anselm@garbe.us> + +Old developers of the WMI: - Marcel Manthe <-0m0- at web.de> - Oliver Rendgen <oli at hypeo.de> (Documentation) - John Pham <jhnphm at gmail.com> (Debian packager) diff --git a/CONTRIB b/CONTRIB @@ -1,5 +1,3 @@ -$Id: CONTRIB 735 2004-09-27 18:36:45Z garbeam $ - Current contributors: - Ryan Sorensen <rcsorensen at gmail.com> diff --git a/FAQ b/FAQ @@ -1,5 +1,3 @@ -$Id: FAQ 735 2004-09-27 18:36:45Z garbeam $ - General ------- diff --git a/INSTALL b/INSTALL @@ -1,4 +1,5 @@ -1. Required Software +Required Software +----------------- Make sure you have installed at least following software: @@ -7,74 +8,55 @@ Make sure you have installed at least following software: * STL library and headers -2. Installation of an SVN snapshot: +Installation +------------ -# ./autogen.sh -# ./configure +# vi config.mk +# vi config.h # make # sudo make install -3. Installation of a released version: - -# ./configure -# make -# sudo make install - - -4. Some build notes about configure arguments - -4.1. Notes for Xft support +Xft support +----------- If you've installed Xft and freetype WMI will build with Xft support by default. If Xft is not installed WMI won't build with Xft support. If you explicitly don't want Xft -support, although having Xft installed just use following -configure argument: +support, although having Xft installed just edit config.h +as follows: -./configure --without-xft +#define XFT_SUPPORT -4.2. Notes for stacked tabbing -WMI supports stacked tabbing with stack-alike visual -feedback within frame bars, groups and pagers. This feature -is not seen in any other window manager but disabled by -default. It's highly recommended to give it a try. All -focussed clients, groups, workspaces are arranged in -stacking order from left to right, the topmost element -is arranged leftwards and the bottom element is arranged -rightwards. -This results that the focussed element (e.g. a client in -a frame bar or group bar) appears always left, thus the -focus never changes, but the titles and order. -Just use following configure argument: +Debug support +------------- -./configure --with-stacked-tabbing +To run WMI with verbose debug output you've to edit config.h +with debug support: -4.3. Notes for debug support +#define DEBUG -To run WMI with verbose debug output you've to configure it -with debug support: -./configure --with-debug +Diamond box +----------- -4.4. Notes for diamond box +If you want WMI to draw a diamond box while resizing/moving +clients, enable it in config.h: -By default WMI draws a diamond box while resizing/moving -clients. If you don't like drawing the diamond box you -can disable it using: +#define DIAMOND -./configure --without-diamond -4.5. Notes for disabling the slot +Enabling the slot +----------------- -By default WMI is built with slot support. -If you don't need it you can disable it using: +WMI can be built with slot support. -./configure --without-slot +#define SLOT_SUPPORT -5. Start WMI +Running WMI +----------- To start WMI as your default window manager add following line to your $HOME/.xinitrc: @@ -88,13 +70,15 @@ and type afterwards to launch X and the WMI. -6. Further Help +Further Help +------------ -To get in contact with WMI you should read at least the manual +To get started with WMI you should read at least the manual pages wmi(1) and actions.conf(5). -7. Contact +Contact +------- -If you've problems visit http://wmi.berlios.de to get further +If you've problems visit http://wmi.suckless.org to get further information. diff --git a/LICENSE b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2003 - 2004 Anselm R. Garbe <anselmg at t-online.de> +Copyright (c) 2003 - 2009 Anselm R Garbe <anselm@garbe.us> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), diff --git a/Makefile b/Makefile @@ -0,0 +1,104 @@ +# wmi - window manager improved +# See LICENSE file for copyright and license details. + +include config.mk + +SRC_wmi = action.cpp \ + actions.cpp \ + atoms.cpp \ + bar.cpp \ + binder.cpp \ + box.cpp \ + clientbar.cpp \ + client.cpp \ + cursors.cpp \ + draw.cpp \ + expander.cpp \ + float.cpp \ + font.cpp \ + frame.cpp \ + inputbar.cpp \ + kernel.cpp \ + label.cpp \ + launcher.cpp \ + loader.cpp \ + logger.cpp \ + main.cpp \ + menu.cpp \ + monitor.cpp \ + prompt.cpp \ + rectangle.cpp \ + shortcut.cpp \ + slot.cpp \ + split.cpp \ + statusbar.cpp \ + theme.cpp \ + thing.cpp \ + tree.cpp \ + util.cpp \ + validators.cpp \ + widget.cpp \ + workspace.cpp \ + xcore.cpp \ + xfont.cpp \ + xftfont.cpp + +SRC_wmiremote = wmiremote.cpp + +OBJ_wmi = ${SRC_wmi:.cpp=.o} +OBJ_wmiremote = ${SRC_wmiremote:.cpp=.o} + +all: options wmi wmiremote + +options: + @echo wmi build options: + @echo "CXXFLAGS = ${CXXFLAGS}" + @echo "LDFLAGS = ${LDFLAGS}" + @echo "CXX = ${CXX}" + +.cpp.o: + @echo CXX $< + @${CXX} -c ${CXXFLAGS} $< + +${OBJ_wmi}: config.mk + +${OBJ_wmiremote}: config.mk + +wmi: ${OBJ_wmi} + @echo CXX -o $@ + @${CXX} -o $@ ${OBJ_wmi} ${LDFLAGS} + +wmiremote: ${OBJ_wmiremote} + @echo CC -o $@ + @${CXX} -o $@ ${OBJ_wmiremote} ${LDFLAGS} + +clean: + @echo cleaning + @rm -f wmi wmiremote ${OBJ_wmi} ${OBJ_wmiremote} wmi-${VERSION}.tar.gz + +dist: clean + @echo creating dist tarball + @mkdir -p wmi-${VERSION} + @cp -R LICENSE Makefile README config.def.h config.mk \ + wmi.1 ${SRC} wmi-${VERSION} + @tar -cf wmi-${VERSION}.tar wmi-${VERSION} + @gzip wmi-${VERSION}.tar + @rm -rf wmi-${VERSION} + +install: all + @echo installing executable file to ${DESTDIR}${PREFIX}/bin + @mkdir -p ${DESTDIR}${PREFIX}/bin + @cp -f wmi ${DESTDIR}${PREFIX}/bin + @chmod 755 ${DESTDIR}${PREFIX}/bin/wmi + @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 + @mkdir -p ${DESTDIR}${MANPREFIX}/man1 + @sed "s/VERSION/${VERSION}/g" < wmi.1 > ${DESTDIR}${MANPREFIX}/man1/wmi.1 + @chmod 644 ${DESTDIR}${MANPREFIX}/man1/wmi.1 + +uninstall: + @echo removing executable file from ${DESTDIR}${PREFIX}/bin + @rm -f ${DESTDIR}${PREFIX}/bin/wmi + @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 + @rm -f ${DESTDIR}${MANPREFIX}/man1/wmi.1 + +.PHONY: all options clean dist install uninstall diff --git a/config.mk b/config.mk @@ -0,0 +1,33 @@ +# wmi version +WMI_VERSION = 11 + +# Customize below to fit your system + +# paths +PREFIX = /usr/local +MANPREFIX = ${PREFIX}/share/man + +X11INC = /usr/X11R6/include +X11LIB = /usr/X11R6/lib + +# Xinerama, un-comment if you want it +XINERAMALIBS = -L${X11LIB} -lXinerama +XINERAMAFLAGS = -DXINERAMA + +# includes and libs +INCS = -I. -I/usr/include -I${X11INC} +LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS} + +# flags +CPPFLAGS = -D__WMI_VERSION=\"${WMI_VERSION}\" ${XINERAMAFLAGS} +#CFLAGS = -g -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} +CXXFLAGS = -pedantic -Wall -Os ${INCS} ${CPPFLAGS} +#LDFLAGS = -g ${LIBS} +LDFLAGS = -s ${LIBS} + +# Solaris +#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" +#LDFLAGS = ${LIBS} + +# compiler and linker +CXX = c++