diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000..0d95b697 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,6 @@ +wmii (3.6pre~20070508) unstable; urgency=low + + * First commit of debian directory. + + -- Kris Maglione Tue, 8 May 2007 18:18:00 -0400 + diff --git a/debian/control b/debian/control new file mode 100644 index 00000000..3737a84b --- /dev/null +++ b/debian/control @@ -0,0 +1,25 @@ +Source: wmii +Section: x11 +Priority: optional +Maintainer: Daniel Baumann +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: diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 00000000..7315e0ef --- /dev/null +++ b/debian/copyright @@ -0,0 +1,279 @@ +Debian packaging based on that of Daniel Baumann , +now maintained by the upstream author. + +It was downloaded from . +Upstream Author: Kris Maglione + +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 + +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 +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 --git a/debian/docs b/debian/docs new file mode 100644 index 00000000..e845566c --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +README diff --git a/debian/file/wmii.desktop b/debian/file/wmii.desktop new file mode 100644 index 00000000..bfbbe69d --- /dev/null +++ b/debian/file/wmii.desktop @@ -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 --git a/debian/patches/unx-terminal-emulater.awk b/debian/patches/unx-terminal-emulater.awk new file mode 100644 index 00000000..042b70c7 --- /dev/null +++ b/debian/patches/unx-terminal-emulater.awk @@ -0,0 +1,9 @@ +/^[ ]*WMII_TERM[ ]*=/ { + print "E " FILENAME + print FNR "c" + print + print "." + print "w" + nextfile +} + diff --git a/debian/patches/x-terminal-emulater.ed b/debian/patches/x-terminal-emulater.ed new file mode 100644 index 00000000..7cd30b4a --- /dev/null +++ b/debian/patches/x-terminal-emulater.ed @@ -0,0 +1,3 @@ +/^[ ]*WMII_TERM[ ]*=/s/=.*/=x-terminal-emulator/ +w + diff --git a/debian/patches/x-terminal-emulater.list b/debian/patches/x-terminal-emulater.list new file mode 100644 index 00000000..25c5e7c9 --- /dev/null +++ b/debian/patches/x-terminal-emulater.list @@ -0,0 +1,3 @@ +rc/rc.wmii.rc +rc/wmiirc.sh + diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..fc15a224 --- /dev/null +++ b/debian/rules @@ -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 --git a/debian/watch b/debian/watch new file mode 100644 index 00000000..f0f31588 --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://www.suckless.org/download/wmii-(.*)\.tar\.gz diff --git a/debian/wmii.menu b/debian/wmii.menu new file mode 100644 index 00000000..8ccc57e3 --- /dev/null +++ b/debian/wmii.menu @@ -0,0 +1,3 @@ +?package(wmii):needs="wm" section="WindowManagers"\ + title="wmii" longtitle="wmii pre-3.6 Development Snapshot"\ + command="/usr/bin/wmii" diff --git a/debian/wmii.wm b/debian/wmii.wm new file mode 100644 index 00000000..c47af706 --- /dev/null +++ b/debian/wmii.wm @@ -0,0 +1 @@ +/usr/bin/wmii diff --git a/img/icon.png b/img/icon.png new file mode 100644 index 00000000..9784430a Binary files /dev/null and b/img/icon.png differ diff --git a/img/mkfile b/img/mkfile new file mode 100644 index 00000000..f22f2033 --- /dev/null +++ b/img/mkfile @@ -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 - <[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 >/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} /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 + } +}