|
<ul>
<li>A collection of StumpWM modules
Documentation on modules can be found [[<a href="https://github.com/stumpwm/stumpwm/wiki/Modules][on" rel="nofollow">https://github.com/stumpwm/stumpwm/wiki/Modules][on</a> our wiki]].<br>
** How to write a module
*** General guidelines</li>
<li>Create your own package and optionally import the stumpwm
package. Don't use the stumpwm package. If you need a symbol
exported, [[<a href="https://github.com/stumpwm/stumpwm/issues][open" rel="nofollow">https://github.com/stumpwm/stumpwm/issues][open</a> an issue]].</li>
<li>Use =asdf=.</li>
<li>Document exported symbols and commands.</li>
<li>Stay organized! Put things in neat little directories. A distro
might want to package your module.</li>
</ul>
<p>*** A pseudo-tutorial
The path of least resistance is to use <code>quickproject</code> and its helper
functions. Specifically (get [[<a href="http://www.quicklisp.org/beta/][quicklisp]]):" rel="nofollow">http://www.quicklisp.org/beta/][quicklisp]]):</a>
#+BEGIN_SRC lisp
(ql:quickload "quickproject")
(quickproject:make-project #p"~/path/to/new-module" :depends-on '(stumpwm) :name "swm-new-module")
#+END_SRC
Then in =~/path/to/new-module/= you will have:
#+BEGIN_EXAMPLE
-rw-rw-r-- 1 dave dave 68 Apr 6 19:38 package.lisp
-rw-rw-r-- 1 dave dave 53 Mar 16 2014 README.txt
-rw-rw-r-- 1 dave dave 271 Mar 16 2014 swm-new-module.asd
-rw-rw-r-- 1 dave dave 1.8K Apr 6 17:51 swm-new-module.lisp
#+END_EXAMPLE
The files that are important for you are =package.lisp= and
=swm-new-module.asd=. They contain the =asdf= metadata that describes
your project.</p>
<p>An example =asd= file looks like:
#+BEGIN_EXAMPLE
(asdf:defsystem #:swm-new-module
:serial t
:description "Describe swm-new-module here"
:author "Guy Steele"
:license "GPLv3"
:depends-on (#:stumpwm)
:components ((:file "package")</p>
<pre><code> (:file "swm-emacs"))) ; any other files you make go here
</code></pre>
<p>#+END_EXAMPLE
A =package.lisp= looks like:
#+BEGIN_EXAMPLE
(defpackage #:swm-new-module
(:use #:cl :stumpwm))
#+END_EXAMPLE</p>
<p>From here you can commence hacking. When you're ready, advertise it
to the world!</p>
<p>[[<a href="http://www.xach.com/lisp/quickproject/][More" rel="nofollow">http://www.xach.com/lisp/quickproject/][More</a> docs here]].</p>
<ul>
<li>Current Modules
(click for its respective README/docs)
** Media</li>
<li>[[./media/amixer/README.org][amixer]]</li>
<li>[[./media/aumix/README.org][aumix]]
** Minor Modes</li>
<li>[[./minor-mode/mpd/README.org][mpd]]</li>
<li>[[./minor-mode/notifications/README.org][notifications]]
** Modeline</li>
<li>[[./modeline/battery-portable/README.org][portable]]</li>
<li>[[./modeline/battery/README.org][battery]]</li>
<li>[[./modeline/cpu/README.org][cpu]]</li>
<li>[[./modeline/disk/README.org][disk]]</li>
<li>[[file:modeline/hostname/README.org][hostname]]</li>
<li>[[./modeline/maildir/README.org][maildir]]</li>
<li>[[./modeline/mem/README.org][mem]]</li>
<li>[[./modeline/net/README.org][net]]</li>
<li>[[./modeline/wifi/README.org][wifi]]
** Utilities</li>
<li>[[./util/numpad-layouts/README.org][numpad-layouts]]</li>
<li>[[./util/app-menu/README.org][menu]]</li>
<li>[[./util/logitech-g15-keysyms/README.org][keysyms]]</li>
<li>[[./util/passwd/README.org][passwd]]</li>
<li>[[./util/productivity/README.org][productivity]]</li>
<li>[[./util/stumptray/README.org][stumptray]]</li>
<li>[[./util/surfraw/README.org][surfraw]]</li>
<li>[[./util/undocumented/README.org][undocumented]]</li>
<li>[[./util/windowtags/README.org][windowtags]]</li>
<li>[[./util/kbd-layouts/README.org][kbd-layouts]]</li>
</ul>
|