[hackers] [wmii] Add some forgotten files.

From: Kris Maglione <jg_AT_suckless.org>
Date: Fri, 01 Jun 2007 01:10:30 -0000

changeset: 2133:d29624b2a2a1
user: Kris Maglione <jg_AT_suckless.org>
date: Thu May 10 14:30:22 2007 -0400
summary: Add some forgotten files.

diff -r de4907a49023 -r d29624b2a2a1 debian/changelog
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/changelog Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,6 @@
+wmii (3.6pre~20070508) unstable; urgency=low
+
+ * First commit of debian directory.
+
+ -- Kris Maglione <jg_AT_suckless.org> Tue, 8 May 2007 18:18:00 -0400
+
diff -r de4907a49023 -r d29624b2a2a1 debian/control
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/control Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,25 @@
+Source: wmii
+Section: x11
+Priority: optional
+Maintainer: Daniel Baumann <daniel_AT_debian.org>
+Build-Depends: libx11-dev, libxext-dev, x11proto-xext-dev, debhelper (>= 4.0)
+Standards-Version: 3.7.2
+
+Package: wmii
+Architecture: any
+Depends: ${shlibs:Depends}, dwm-tools
+Conflicts: wmii2
+Replaces: wmii2
+Recommends: wmii-doc
+Provides: x-window-manager
+Description: lightweight tabbed and tiled X11 window manager
+ wmii is a dynamic window manager for X11, which is highly customizable and
+ usable with keyboard and mouse. It supports conventional, tabbed and tiled
+ window management with low memory usage. It is highly modularized and uses an
+ inter-process communication interface which is oriented on the 9p protocol of
+ plan9.
+ .
+ This package contains a pre-3.6 snapshot of the window manager; wmii2 contains
+ version 2.
+ .
+ Homepage: <http://wmii.suckless.org/>
diff -r de4907a49023 -r d29624b2a2a1 debian/copyright
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/copyright Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,279 @@
+Debian packaging based on that of Daniel Baumann <daniel.baumann_AT_panthera-systems.net>,
+now maintained by the upstream author.
+
+It was downloaded from <http://wmii.suckless.org/>.
+Upstream Author: Kris Maglione <jg_AT_suckless.org>
+
+The majority of this package is under the following license, with exceptions
+following.
+
+In the event that a file contains a copyright notice at the top, that is the
+copyright notice that this license refers to. Otherwise, it is:
+©2006-2007 Kris Maglione <bsdaemon at comcast dot net>
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Exceptions:
+
+cmd/util.c and include/util.h are in the Public Domain.
+
+Original debian packaging is (C) 2005-2007, Daniel Baumann <daniel_AT_debian.org>
+and is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+Whether what remains is worthy of copyright is to be determined by the copyer.
+Portions by Kris Maglione are in the Public Domain.
+
+libixp/intmap.c falls under the Lucent Public License, as follows:
+
+Lucent Public License Version 1.02
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE
+PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a. in the case of Lucent Technologies Inc. ("LUCENT"), the Original
+ Program, and
+ b. in the case of each Contributor,
+
+ i. changes to the Program, and
+ ii. additions to the Program;
+
+ where such changes and/or additions to the Program were added to the
+ Program by such Contributor itself or anyone acting on such
+ Contributor's behalf, and the Contributor explicitly consents, in
+ accordance with Section 3C, to characterization of the changes and/or
+ additions as Contributions.
+
+"Contributor" means LUCENT and any other entity that has Contributed a
+Contribution to the Program.
+
+"Distributor" means a Recipient that distributes the Program,
+modifications to the Program, or any part thereof.
+
+"Licensed Patents" mean patent claims licensable by a Contributor
+which are necessarily infringed by the use or sale of its Contribution
+alone or when combined with the Program.
+
+"Original Program" means the original version of the software
+accompanying this Agreement as released by LUCENT, including source
+code, object code and documentation, if any.
+
+"Program" means the Original Program and Contributions or any part
+thereof
+
+"Recipient" means anyone who receives the Program under this
+Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+ a. Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare derivative works of, publicly display,
+ publicly perform, distribute and sublicense the Contribution of such
+ Contributor, if any, and such derivative works, in source code and
+ object code form.
+
+ b. Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor, if
+ any, in source code and object code form. The patent license granted
+ by a Contributor shall also apply to the combination of the
+ Contribution of that Contributor and the Program if, at the time the
+ Contribution is added by the Contributor, such addition of the
+ Contribution causes such combination to be covered by the Licensed
+ Patents. The patent license granted by a Contributor shall not apply
+ to (i) any other combinations which include the Contribution, nor to
+ (ii) Contributions of other Contributors. No hardware per se is
+ licensed hereunder.
+
+ c. Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity. Each
+ Contributor disclaims any liability to Recipient for claims brought by
+ any other entity based on infringement of intellectual property rights
+ or otherwise. As a condition to exercising the rights and licenses
+ granted hereunder, each Recipient hereby assumes sole responsibility
+ to secure any other intellectual property rights needed, if any. For
+ example, if a third party patent license is required to allow
+ Recipient to distribute the Program, it is Recipient's responsibility
+ to acquire that license before distributing the Program.
+
+ d. Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A. Distributor may choose to distribute the Program in any form under
+this Agreement or under its own license agreement, provided that:
+
+ a. it complies with the terms and conditions of this Agreement;
+
+ b. if the Program is distributed in source code or other tangible
+ form, a copy of this Agreement or Distributor's own license agreement
+ is included with each copy of the Program; and
+
+ c. if distributed under Distributor's own license agreement, such
+ license agreement:
+
+ i. effectively disclaims on behalf of all Contributors all warranties
+ and conditions, express and implied, including warranties or
+ conditions of title and non-infringement, and implied warranties or
+ conditions of merchantability and fitness for a particular purpose;
+ ii. effectively excludes on behalf of all Contributors all liability
+ for damages, including direct, indirect, special, incidental and
+ consequential damages, such as lost profits; and
+ iii. states that any provisions which differ from this Agreement are
+ offered by that Contributor alone and not by any other party.
+
+B. Each Distributor must include the following in a conspicuous
+ location in the Program:
+
+ Copyright (C) 2003, Lucent Technologies Inc. and others. All Rights
+ Reserved.
+
+C. In addition, each Contributor must identify itself as the
+originator of its Contribution in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+Also, each Contributor must agree that the additions and/or changes
+are intended to be a Contribution. Once a Contribution is contributed,
+it may not thereafter be revoked.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use
+of the Program, the Distributor who includes the Program in a
+commercial product offering should do so in a manner which does not
+create potential liability for Contributors. Therefore, if a
+Distributor includes the Program in a commercial product offering,
+such Distributor ("Commercial Distributor") hereby agrees to defend
+and indemnify every Contributor ("Indemnified Contributor") against
+any losses, damages and costs (collectively"Losses") arising from
+claims, lawsuits and other legal actions brought by a third party
+against the Indemnified Contributor to the extent caused by the acts
+or omissions of such Commercial Distributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement.
+In order to qualify, an Indemnified Contributor must: a) promptly
+notify the Commercial Distributor in writing of such claim, and b)
+allow the Commercial Distributor to control, and cooperate with the
+Commercial Distributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such
+claim at its own expense.
+
+For example, a Distributor might include the Program in a commercial
+product offering, Product X. That Distributor is then a Commercial
+Distributor. If that Commercial Distributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Distributor's responsibility
+alone. Under this section, the Commercial Distributor would have to
+defend claims against the Contributors related to those performance
+claims and warranties, and if a court requires any Contributor to pay
+any damages as a result, the Commercial Distributor must pay those
+damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
+WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement, including but not limited to
+the risks and costs of program errors, compliance with applicable
+laws, damage to or loss of data, programs or equipment, and
+unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
+ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. EXPORT CONTROL
+
+Recipient agrees that Recipient alone is responsible for compliance
+with the United States export administration regulations (and the
+export control laws and regulation of any other countries).
+
+8. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with
+respect to a patent applicable to software (including a cross-claim or
+counterclaim in a lawsuit), then any patent licenses granted by that
+Contributor to such Recipient under this Agreement shall terminate as
+of the date such litigation is filed. In addition, if Recipient
+institutes patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Program
+itself (excluding combinations of the Program with other software or
+hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and
+survive.
+
+LUCENT may publish new versions (including revisions) of this
+Agreement from time to time. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new
+version of the Agreement is published, Contributor may elect to
+distribute the Program (including its Contributions) under the new
+version. No one other than LUCENT has the right to modify this
+Agreement. Except as expressly stated in Sections 2(a) and 2(b) above,
+Recipient receives no rights or licenses to the intellectual property
+of any Contributor under this Agreement, whether expressly, by
+implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No
+party to this Agreement will bring a legal action under this Agreement
+more than one year after the cause of action arose. Each party waives
+its rights to a jury trial in any resulting litigation.
+
diff -r de4907a49023 -r d29624b2a2a1 debian/docs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/docs Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,1 @@
+README
diff -r de4907a49023 -r d29624b2a2a1 debian/file/wmii.desktop
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/file/wmii.desktop Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=wmii
+Comment=wmii pre-3.6 Development Snapshot
+Exec=wmii
+Icon=wmii.png
+Type=XSession
diff -r de4907a49023 -r d29624b2a2a1 debian/patches/unx-terminal-emulater.awk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/patches/unx-terminal-emulater.awk Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,9 @@
+/^[ ]*WMII_TERM[ ]*=/ {
+ print "E " FILENAME
+ print FNR "c"
+ print
+ print "."
+ print "w"
+ nextfile
+}
+
diff -r de4907a49023 -r d29624b2a2a1 debian/patches/x-terminal-emulater.ed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/patches/x-terminal-emulater.ed Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,3 @@
+/^[ ]*WMII_TERM[ ]*=/s/=.*/=x-terminal-emulator/
+w
+
diff -r de4907a49023 -r d29624b2a2a1 debian/patches/x-terminal-emulater.list
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/patches/x-terminal-emulater.list Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,3 @@
+rc/rc.wmii.rc
+rc/wmiirc.sh
+
diff -r de4907a49023 -r d29624b2a2a1 debian/rules
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/rules Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,97 @@
+#!/usr/bin/make -f
+
+#export DH_VERBOSE=1
+export DH_COMPAT=4
+
+PREFIX=/usr
+ETC=/etc/X11
+FAKE=$(CURDIR)/debian/wmii
+
+PATCHES=debian/patches
+UNPATCH=debian/unpatch.ed
+
+CFLAGS = -g -O0
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ # wmii is IO, not CPU bound. Please do not use -O2 here.
+ CFLAGS += -O
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ DH_STRIP = dh_strip
+endif
+
+export CFLAGS
+
+clean: unpatch
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Cleaning package
+ -$(MAKE) clean
+
+ dh_clean
+
+build: build-stamp
+build-stamp: patch
+ dh_testdir
+
+ $(MAKE) PREFIX=$(PREFIX) ETC=$(ETC)
+
+ touch build-stamp
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ $(MAKE) install PREFIX=$(FAKE)$(PREFIX) ETC=$(FAKE)$(ETC)
+
+ install -D -m 0644 debian/file/wmii.desktop $(FAKE)$(PREFIX)/share/xsessions/wmii.desktop
+ install -D -m 0644 img/icon.png $(FAKE)$(PREFIX)/share/icons/wmii.png
+
+patch:
+ set -e; \
+ if ! [ -e ${UNPATCH} ]; then \
+ patches=${PATCHES}/*.list; \
+ for i in $$patches; do \
+ files=$$(cat "$$i"); \
+ base=$${i%.list}; \
+ base=$${base##*/}; \
+ awk -f "${PATCHES}/un$$base.awk" $$files >>debian/unpatch.ed; \
+ for f in $$files; do \
+ cat <"${PATCHES}/$$base.ed"; \
+ ed $$f <"${PATCHES}/$$base.ed"; \
+ done; \
+ done; \
+ fi
+
+unpatch:
+ set -e; \
+ if [ -e ${UNPATCH} ]; then \
+ ed <${UNPATCH}; \
+ rm ${UNPATCH}; \
+ fi
+
+binary-indep: build install
+
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_install
+ dh_installmenu
+ dh_installwm --priority=30
+ dh_link
+ $(DH_STRIP)
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
diff -r de4907a49023 -r d29624b2a2a1 debian/watch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/watch Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,2 @@
+version=3
+http://www.suckless.org/download/wmii-(.*)\.tar\.gz
diff -r de4907a49023 -r d29624b2a2a1 debian/wmii.menu
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/wmii.menu Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,3 @@
+?package(wmii):needs="wm" section="WindowManagers"\
+ title="wmii" longtitle="wmii pre-3.6 Development Snapshot"\
+ command="/usr/bin/wmii"
diff -r de4907a49023 -r d29624b2a2a1 debian/wmii.wm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debian/wmii.wm Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,1 @@
+/usr/bin/wmii
diff -r de4907a49023 -r d29624b2a2a1 img/icon.png
Binary file img/icon.png has changed
diff -r de4907a49023 -r d29624b2a2a1 img/mkfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/img/mkfile Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,21 @@
+MKSHELL=rc
+path=$PLAN9/bin $path
+
+eps = wmii.eps
+
+epsbox = `{sed -n '/^%%BoundingBox:/{s/.*://p; q;}' $eps}
+iconwidth = 32
+iconscale = `{*=$epsbox; hoc -e $iconwidth/'('$3-' '$1')'}
+iconheight = `{*=$epsbox; hoc -e '('$4-' '$2')*'$iconscale}
+
+icon.png: $eps
+ x = `{hoc -e -'('$epsbox(1)^')'}
+ y = `{hoc -e -'('$epsbox(2)^')'}
+ gs -q -dBATCH -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=$target -g^$iconwidth^x^$iconheight - <<!
+ $iconscale $iconscale scale
+ $x $y translate
+ ($eps) run
+ showpage
+ quit
+ !
+
diff -r de4907a49023 -r d29624b2a2a1 mk/gcc.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mk/gcc.mk Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,11 @@
+CFLAGS += \
+ -std=gnu99 \
+ -pipe \
+ -Wall \
+ -Wno-parentheses \
+ -Wno-missing-braces \
+ -Wno-switch \
+ -Wno-comment \
+ -Wno-sign-compare \
+ -Wno-uninitialized \
+ -Wno-unused-parameter \
diff -r de4907a49023 -r d29624b2a2a1 rc/sh.wmii
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rc/sh.wmii Thu May 10 14:30:22 2007 -0400
@@ -0,0 +1,243 @@
+#!sh
+# WMII Configuration
+load std
+load string
+load regex
+
+mount -Aa {os dial unix!/tmp/ns.kris.:1/wmii >[1=0]} / || exit
+#mount -Aa {os rc -c 'dial $WMII_ADDRESS' >[1=0]} /
+
+MODKEY=Mod1
+UP=k
+DOWN=j
+LEFT=h
+RIGHT=l
+
+WMII_FONT=fixed
+WMII_NORMCOLORS=('#222222' '#5FBF77' '#2A7F3F')
+WMII_FOCUSCOLORS=('#ffffff' '#153F1F' '#2A7F3F')
+WMII_BACKGROUND='#333333'
+
+WMII_TERM=urxvt
+
+fn wmiimenu {
+ run_command ${re sg '#' '"#"' (dmenu -b -fn $WMII_FONT
+ -nf ${hd $WMII_NORMCOLORS} -nb ${index 2 $WMII_NORMCOLORS}
+ -sf ${hd $WMII_FOCUSCOLORS} -sb ${index 2 $WMII_FOCUSCOLORS})}
+}
+
+fn 9menu {
+ run_command (wmii9menu -font $WMII_FONT
+ -^(nf nb br)^$WMII_NORMCOLORS
+ -^(sf sb br)^$WMII_FOCUSCOLORS $*)
+}
+
+# Column Rules
+echo '/./ -> 60+40' >/colrules
+
+# Tagging Rules
+{ echo '/Firefox/ -> www
+/XMMS.*/ -> ~
+/MPlayer.*/ -> ~
+/.*/ -> !
+/.*/ -> 1
+' } >/tagrules
+
+subfn seq {
+ arg := $*
+ result=`{os seq $arg}
+}
+
+subfn hostenv {
+ arg := $"*
+ result="{os sh -c ${quote eval echo -n '$'$arg}}
+}
+
+# Status Bar Info
+fn status {
+ echo ${re mg '[0-9]+\.[0-9]+' "{os uptime}} '|' `{date}
+}
+
+# Events
+fn Event-Start {
+ if { ~ $1 wmiirc } {
+ rm -f $progs_file
+ exit
+ }
+}
+
+fn Event-Key {
+ echo Key-$1
+ Key-$1 $1
+}
+
+fn Event-CreateTag { echo $WMII_NORMCOLORS $* >> /lbar/$"* }
+fn Event-DestroyTag { rm /lbar/$"* }
+fn Event-FocusTag { echo $WMII_FOCUSCOLORS $* > /lbar/$"* }
+fn Event-UnfocusTag { echo $WMII_NORMCOLORS $* > /lbar/$"* }
+fn Event-UrgentTag { echo '*'${tl $*} > ${quote /lbar/${tl $*} } }
+fn Event-NotUrgentTag { echo ${tl $*} > ${quote /lbar/${tl $*} } }
+
+fn Event-LeftBarClick { echo view ${tl $*} >/ctl }
+lastcmd=''
+fn Event-ClientMouseDown {
+ (client button) := $*
+ if { ~ $button 3 } {
+ lastcmd = `{9menu -initial $lastcmd Nop Delete}
+ cmp := {~ $do $1}
+ or {and {$cmp Nop} {echo Do nothing}
+ } {and {$cmp Delete} {echo kill >/client/$client/ctl}}
+ }
+}
+
+# Actions
+fn Action {
+ (action args) := $*
+ if {whatis Action-$action | grep -s '^load std; fn '} {
+ Action-$action $args
+ } {
+ run_command ${config_whatis $action} $args </dev/null
+ }
+}
+fn Action-quit { echo quit >>/ctl }
+fn Action-rehash {
+ flag x -
+ proglist ${hostenv PATH} >$progs_file
+}
+fn Action-status {
+ if {rm /rbar/status >[2]/dev/null} {
+ sleep 2
+ }
+ echo $WMII_NORMCOLORS >/rbar/status
+ while {status >/rbar/status} {
+ sleep 1
+ }
+}
+
+# Key Bindings
+fn Key-$MODKEY-Control-t {
+ if { ~ `{wc -l /keys} 0 1} {
+ initkeys
+ grabmod $MODKEY >/ctl
+ } {
+ echo $MODKEY-Control-t >/keys
+ echo grabmod Mod3 >/ctl
+ }
+}
+
+fn Key-$MODKEY-$LEFT { echo select left >/tag/sel/ctl }
+fn Key-$MODKEY-$RIGHT { echo select right >/tag/sel/ctl }
+fn Key-$MODKEY-$DOWN { echo select down >/tag/sel/ctl }
+fn Key-$MODKEY-$UP { echo select up >/tag/sel/ctl }
+
+fn Key-$MODKEY-Shift-$LEFT { echo send sel left >/tag/sel/ctl }
+fn Key-$MODKEY-Shift-$RIGHT { echo send sel right >/tag/sel/ctl }
+fn Key-$MODKEY-Shift-$DOWN { echo send sel down >/tag/sel/ctl }
+fn Key-$MODKEY-Shift-$UP { echo send sel up >/tag/sel/ctl }
+
+fn Key-$MODKEY-space { echo select toggle >/tag/sel/ctl }
+fn Key-$MODKEY-Shift-space { echo send sel toggle >/tag/sel/ctl }
+
+fn Key-$MODKEY-d { echo colmode sel default >/tag/sel/ctl }
+fn Key-$MODKEY-s { echo colmode sel stack >/tag/sel/ctl }
+fn Key-$MODKEY-m { echo colmode sel max >/tag/sel/ctl }
+
+fn Key-$MODKEY-Shift-c { echo kill >/client/sel/ctl }
+
+fn Key-$MODKEY-a { Action `{actionlist | wmiimenu} & }
+fn Key-$MODKEY-p { run_command `{wmiimenu <$progs_file} </dev/null & }
+fn Key-$MODKEY-Return { run_command $WMII_TERM & }
+fn Key-$MODKEY-t { echo view `{read_tags | wmiimenu} >/ctl & }
+fn Key-$MODKEY-Shift-t {
+ sel := "{cat /client/sel/ctl}
+ read_tags | wmiimenu >/client/$sel/tags
+}
+
+for(i in ${seq 0 9}) {
+ fn Key-$MODKEY-$i { echo view ${tl ${splitr $1 -}} >/ctl }
+ fn Key-Shift-$MODKEY-$i { echo ${tl ${splitr $1 -}} >/client/sel/tags}
+}
+
+# Functions
+fn proglist {
+ apply {ls -lp $*} /n/local^${split : $"*} |
+ grep '^[^d][^ ]*x' |
+ getlines {
+ echo ${index 10 ${split ' ' $line}}
+ } | sort | uniq
+}
+
+fn getfuns {
+ ls -p /env | grep '^fn-' ^ $1 ^ '-' | getlines {
+ echo ${re s '^fn-[^-]+-' '' $line}
+ }
+}
+
+fn actionlist {
+ { rescue '*' {} {
+ proglist ${hostenv WMII_CONFPATH}
+ }
+ getfuns Action
+ } | sort | uniq
+}
+
+fn initkeys {
+ getfuns Key >/keys
+}
+
+fn read_tags {
+ ls -p /tag | grep -v '^sel$'
+}
+
+subfn config_whatis {
+ result="{os sh -c ${quote eval PATH'='${hostenv WMII_CONFPATH} which $*}}
+}
+
+fn run_command {
+ @{ pctl newpgrp
+ vars := 'DISPLAY=:1' 'PATH=/home/kris/wmiiinst/bin:$PATH'
+ os sh -c ${quote eval $vars $*}
+ } $*
+}
+
+# WM Configuration
+{
+ echo grabmod $MODKEY
+ echo border 2
+ echo font $WMII_FONT
+ echo focuscolors $WMII_FOCUSCOLORS
+ echo normcolors $WMII_NORMCOLORS
+} >/ctl
+
+# Misc Setup
+os xsetroot -solid $WMII_BACKGROUND
+Action status &
+progs_file=/tmp/proglist.${pid}
+Action rehash &
+
+# Tag Bar Setup
+seltag="{cat /tag/sel/ctl}
+comm -2 ${pipe read_tags} ${pipe ls -p /lbar/*} | getlines {
+ rm /lbar/$line
+}
+read_tags | getlines {
+ if {~ $line $seltag} {
+ echo $WMII_FOCUSCOLORS $line >/lbar/$line
+ } {
+ echo $WMII_NORMCOLORS $line >/lbar/$line
+ }
+}
+
+# Keygrab Setup
+initkeys
+
+echo Start wmiirc >/event
+
+# Event Loop
+getlines {
+ (event args) := ${split ' ' $line}
+ echo Event-$event: $args
+ rescue '*' { echo Exception: $exception } {
+ Event-$event $args
+ }
+} </event
Received on Fri Jun 01 2007 - 03:10:28 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:57:07 UTC