Difference between revisions of "Stumpwm"

From ArchWiki
Jump to: navigation, search
m (" don't " -> " do not ")
m (Documentation and Support: Updated link to wiki)
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Tiling WMs (English)]]
+
[[Category:Tiling WMs]]
 
+
== Introduction ==
+
 
+
 
StumpWM is a tiling, full-screen window manager written entirely in
 
StumpWM is a tiling, full-screen window manager written entirely in
 
Common Lisp. The successor to the cult classic [[Ratpoison]] window
 
Common Lisp. The successor to the cult classic [[Ratpoison]] window
 
manager ("GNU Screen to the power of X"), StumpWM adds all the
 
manager ("GNU Screen to the power of X"), StumpWM adds all the
 
flexibility and hackability of common lisp, allowing the user to make
 
flexibility and hackability of common lisp, allowing the user to make
modifications to the source of the window manager even while it's
+
modifications to the source of the window manager even while it is
 
running.
 
running.
  
 
From the [http://www.nongnu.org/stumpwm/ StumpWM homepage]:
 
From the [http://www.nongnu.org/stumpwm/ StumpWM homepage]:
  
If you're tired of flipping through themes like channel-surfing, and
+
:''If you're tired of flipping through themes like channel-surfing, and going from one perfect-except-for-just-one-thing window manager to another even-more-broken-in-some-other-way then perhaps Stumpwm can help.''
going from one perfect-except-for-just-one-thing window manager to
+
:''Stumpwm attempts to be customizable yet visually minimal. There are no window decorations, no icons, and no buttons. It does have various hooks to attach your personal customizations, and variables to tweak.''
another even-more-broken-in-some-other-way then perhaps Stumpwm can
+
help.
+
 
+
Stumpwm attempts to be customizable yet visually minimal. There are
+
no window decorations, no icons, and no buttons. It does have various
+
hooks to attach your personal customizations, and variables to tweak.
+
  
 
Want to see it in action? A StumpWM user created
 
Want to see it in action? A StumpWM user created
Line 26: Line 17:
 
== Installation ==
 
== Installation ==
  
==== With SBCL (recommended, will run faster) ====
+
=== With SBCL (recommended, will run faster) ===
  
===== With Quicklisp (recommended) =====
+
==== With Quicklisp (recommended) ====
  
 
{{Box RED|WARNING:|Only use root to install SBCL and, if you want to, run "make install".}}
 
{{Box RED|WARNING:|Only use root to install SBCL and, if you want to, run "make install".}}
  
 
# Install SBCL
 
# Install SBCL
#* {{Codeline|pacman -S sbcl}}
+
#* {{Ic|pacman -S sbcl}}
 
# Get Quicklisp at [http://beta.quicklisp.org the Quicklisp website]
 
# Get Quicklisp at [http://beta.quicklisp.org the Quicklisp website]
#* {{Codeline|curl -O http://beta.quicklisp.org/quicklisp.lisp}}
+
#* {{Ic|curl -O http://beta.quicklisp.org/quicklisp.lisp}}
 
# Load Quicklisp with SBCL
 
# Load Quicklisp with SBCL
#* {{Codeline|sbcl --load quicklisp.lisp}}
+
#* {{Ic|sbcl --load quicklisp.lisp}}
 
# Install Quicklisp
 
# Install Quicklisp
#* {{Codeline|(quicklisp-quickstart:install)}}
+
#* {{Ic|(quicklisp-quickstart:install)}} or {{Ic|(quicklisp-quickstart:install :path "path/of/your/choice")}}
 
# Add it to your SBCL init file
 
# Add it to your SBCL init file
#* {{Codeline|(ql:add-to-init-file)}}
+
#* {{Ic|(ql:add-to-init-file)}}
# Check for updates of Quicklisp (not needed if you've just downloaded it)
+
# Check for updates of Quicklisp (not needed if you have just downloaded it)
#* {{Codeline|(ql:update-client)}}
+
#* {{Ic|(ql:update-client)}}
 
# Check for updates on Quicklisp
 
# Check for updates on Quicklisp
#* {{Codeline|(ql:update-all-dists)}}
+
#* {{Ic|(ql:update-all-dists)}}
 
# Install CLX and CL-PPCRE
 
# Install CLX and CL-PPCRE
#* {{Codeline|(ql:quickload "clx")}}
+
#* {{Ic|(ql:quickload "clx")}}
#* {{Codeline|(ql:quickload "cl-ppcre")}}
+
#* {{Ic|(ql:quickload "cl-ppcre")}}
 
# Quit SBCL with (quit)
 
# Quit SBCL with (quit)
 
# Get the git version of StumpWM
 
# Get the git version of StumpWM
#* {{Codeline|git clone git://git.savannah.nongnu.org/stumpwm.git}}
+
#* {{Ic|git clone git://github.com/sabetts/stumpwm.git}}
 
# Get into the stumpwm folder and start compiling
 
# Get into the stumpwm folder and start compiling
#* {{Codeline|cd stumpwm && ./autogen.sh && ./configure && make}}
+
#* {{Ic|cd stumpwm && ./autogen.sh && ./configure && make}}
 
#* You can optionally run "make install" as root.
 
#* You can optionally run "make install" as root.
 
# Put the StumpWM binary path into your .xinit and have fun! :)
 
# Put the StumpWM binary path into your .xinit and have fun! :)
Line 59: Line 50:
 
''Optional: Install slime/swank for nonstop real-time hacking'':
 
''Optional: Install slime/swank for nonstop real-time hacking'':
 
# Install swank server
 
# Install swank server
#* {{Codeline|(ql:quickload "swank")}}
+
#* {{Ic|(ql:quickload "swank")}}
 
# Install slime-helper
 
# Install slime-helper
#* {{Codeline|(ql:quickload "quicklisp-slime-helper")}}
+
#* {{Ic|(ql:quickload "quicklisp-slime-helper")}}
 
# Paste the following into your dot-emacs
 
# Paste the following into your dot-emacs
#* {{Codeline|(load (expand-file-name "/path/to/slime-helper.el"))}}
+
#* {{Ic|(load (expand-file-name "/path/to/slime-helper.el"))}}
#* {{Codeline|(setq inferior-lisp-program "sbcl")}}
+
#* {{Ic|(setq inferior-lisp-program "sbcl")}}
 
# Now put the following into your .stumpwmrc or just eval during your stumpwm-session
 
# Now put the following into your .stumpwmrc or just eval during your stumpwm-session
#* {{Codeline|(require 'swank)}}
+
#* {{Ic|(require 'swank)}}
#* {{Codeline|(swank:create-server)}}
+
#* {{Ic|(swank:create-server)}}
 
# Connect Emacs/Slime to your stumpwm-session using
 
# Connect Emacs/Slime to your stumpwm-session using
#* {{Codeline| M-x slime-connect}}
+
#* {{Ic| M-x slime-connect}}
  
===== With AUR =====
+
==== With AUR ====
 
# Install SBCL
 
# Install SBCL
#* {{Codeline|pacman -S sbcl}}
+
#* {{Ic|pacman -S sbcl}}
# Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=12084&O=0&L=0&C=0&K=clx&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd clx] from AUR.
+
# Install [https://aur.archlinux.org/packages.php?do_Details=1&ID=12084&O=0&L=0&C=0&K=clx&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd clx] from AUR.
 
#* If you really do not want to use a PKGBUILD here, you can also use asdf-install to install clx.
 
#* If you really do not want to use a PKGBUILD here, you can also use asdf-install to install clx.
# Install [http://aur.archlinux.org/packages.php?do_Details=1&ID=14549&O=0&L=0&C=0&K=cl-ppcre&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd cl-ppcre]
+
# Install [https://aur.archlinux.org/packages.php?do_Details=1&ID=14549&O=0&L=0&C=0&K=cl-ppcre&SB=n&SO=a&PP=25&do_MyPackages=0&do_Orphans=0&SeB=nd cl-ppcre]
 
#* Again, this can be installed with asdf-install if you really do not like PKGBUILDs.
 
#* Again, this can be installed with asdf-install if you really do not like PKGBUILDs.
 
# Install git
 
# Install git
#* {{Codeline|pacman -S git}}
+
#* {{Ic|pacman -S git}}
# Install [http://aur.archlinux.org/packages.php?ID=12996 stumpwm] from AUR.
+
# Install [https://aur.archlinux.org/packages.php?ID=12996 stumpwm] from AUR.
 
#* Alternately, you can check it out directly from the git repo., as described on the [ homepage]. Read the directions and check the StumpWM wiki for compilation instructions.
 
#* Alternately, you can check it out directly from the git repo., as described on the [ homepage]. Read the directions and check the StumpWM wiki for compilation instructions.
  
==== With Clisp ====
+
=== With Clisp ===
  
 
# Get and create these packages from AUR in the following order making sure to have makepkg install dependencies first (makepkg -s):
 
# Get and create these packages from AUR in the following order making sure to have makepkg install dependencies first (makepkg -s):
#* [http://aur.archlinux.org/packages.php?ID=15188 clisp-new-clx]
+
#* {{AUR|clisp-new-clx}}
#* [http://aur.archlinux.org/packages.php?ID=18800 cl-asdf]
+
#* {{AUR|cl-asdf}}
#* [http://aur.archlinux.org/packages.php?ID=14549 cl-ppcre].  To get this to install, I had to comment out the dependency line in the PKGBUILD.
+
#* {{AUR|cl-ppcre}}.  To get this to install, I had to comment out the dependency line in the PKGBUILD.
#* [http://aur.archlinux.org/packages.php?ID=12996 stumpwm-git].  Alternatively, download the latest version from the web site and follow the install instructions.  The executable can stay in your home directory tree.
+
#* {{AUR|stumpwm-git}}.  Alternatively, download the latest version from the web site and follow the install instructions.  The executable can stay in your home directory tree.
 
# Make sure to install each one (sudo pacman -U name.pkg.tar.gz) before installing the next.
 
# Make sure to install each one (sudo pacman -U name.pkg.tar.gz) before installing the next.
 
# See the [[Makepkg]] article for details on downloading and installing from AUR (compiling/creating package and installing).
 
# See the [[Makepkg]] article for details on downloading and installing from AUR (compiling/creating package and installing).
  
Also, look at [http://bbs.archlinux.org/viewtopic.php?pid=543537#p543537 this post] if you run into troubles.
+
Also, look at [https://bbs.archlinux.org/viewtopic.php?pid=543537#p543537 this post] if you run into troubles.
  
 
== Documentation and Support ==
 
== Documentation and Support ==
  
 
If you installed StumpWM by hand or still have the source lying
 
If you installed StumpWM by hand or still have the source lying
around, there's a TeXInfo manual.
+
around, there is a TeXInfo manual.
  
There's also a [http://stumpwm.svkt.org/cgi-bin/wiki.pl wiki], an IRC channel
+
There is also a [http://github.com/sabetts/stumpwm/wiki wiki], an IRC channel
 
(#stumpwm) on Freenode, and a mailing list. For more information, of
 
(#stumpwm) on Freenode, and a mailing list. For more information, of
 
course, see [http://www.nongnu.org/stumpwm/ the project's website].
 
course, see [http://www.nongnu.org/stumpwm/ the project's website].
Line 108: Line 99:
 
See the wiki for a variety of useful tweaks for your .stumpwmrc.
 
See the wiki for a variety of useful tweaks for your .stumpwmrc.
  
If you're an emacs user, you'll find an emacs minor mode for editing
+
If you are an emacs user, you will find an emacs minor mode for editing
StumpWM files (and interfacing with the program {{Codeline|stumpish}}, but
+
StumpWM files (and interfacing with the program {{Ic|stumpish}}, but
 
more on that below) in the contrib/ directory of the StumpWM source.
 
more on that below) in the contrib/ directory of the StumpWM source.
If you're using clisp, this file can also be found in
+
If you are using clisp, this file can also be found in
{{Codeline|/usr/share/stumpwm/}}.
+
{{Ic|/usr/share/stumpwm/}}.
  
{{Codeline|stumpish}} is the STUMP window manager Interactive SHell. It's
+
{{Ic|stumpish}} is the STUMP window manager Interactive SHell. It is
a program that allows the user to interact with StumpWM while it's
+
a program that allows the user to interact with StumpWM while it is
 
running, from the comfort of a terminal (or using the emacs mode). It
 
running, from the comfort of a terminal (or using the emacs mode). It
 
can be found in the contrib/ directory of the StumpWM source. If you
 
can be found in the contrib/ directory of the StumpWM source. If you
use clisp, this file can also be found in {{Codeline|/usr/bin/}}.
+
use clisp, this file can also be found in {{Ic|/usr/bin/}}.
 +
 
 +
== Troubleshooting ==
 +
If you cannot start stumpwm and get
 +
            debugger invoked on a SB-INT:SIMPLE-PARSE-ERROR in thread
 +
        #:
 +
        no non-whitespace characters in string "".
 +
        Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
 +
        (no restarts: If you did not do this on purpose, please report it as a bug.)
 +
        (PARSE-INTEGER "" :START 0 :END NIL :RADIX 10 :JUNK-ALLOWED NIL)
  
<h4>Happy hacking!</h4>
+
In the REPL,It can be solved by delete the .Xauthority in your home diretory.
 +
You can refer it at[https://github.com/sabetts/stumpwm/issues/1 Issue on github]

Revision as of 01:07, 3 June 2013

StumpWM is a tiling, full-screen window manager written entirely in Common Lisp. The successor to the cult classic Ratpoison window manager ("GNU Screen to the power of X"), StumpWM adds all the flexibility and hackability of common lisp, allowing the user to make modifications to the source of the window manager even while it is running.

From the StumpWM homepage:

If you're tired of flipping through themes like channel-surfing, and going from one perfect-except-for-just-one-thing window manager to another even-more-broken-in-some-other-way then perhaps Stumpwm can help.
Stumpwm attempts to be customizable yet visually minimal. There are no window decorations, no icons, and no buttons. It does have various hooks to attach your personal customizations, and variables to tweak.

Want to see it in action? A StumpWM user created a video.

Installation

With SBCL (recommended, will run faster)

With Quicklisp (recommended)

WARNING: Only use root to install SBCL and, if you want to, run "make install".
  1. Install SBCL
    • pacman -S sbcl
  2. Get Quicklisp at the Quicklisp website
  3. Load Quicklisp with SBCL
    • sbcl --load quicklisp.lisp
  4. Install Quicklisp
    • (quicklisp-quickstart:install) or (quicklisp-quickstart:install :path "path/of/your/choice")
  5. Add it to your SBCL init file
    • (ql:add-to-init-file)
  6. Check for updates of Quicklisp (not needed if you have just downloaded it)
    • (ql:update-client)
  7. Check for updates on Quicklisp
    • (ql:update-all-dists)
  8. Install CLX and CL-PPCRE
    • (ql:quickload "clx")
    • (ql:quickload "cl-ppcre")
  9. Quit SBCL with (quit)
  10. Get the git version of StumpWM
  11. Get into the stumpwm folder and start compiling
    • cd stumpwm && ./autogen.sh && ./configure && make
    • You can optionally run "make install" as root.
  12. Put the StumpWM binary path into your .xinit and have fun! :)

Optional: Install slime/swank for nonstop real-time hacking:

  1. Install swank server
    • (ql:quickload "swank")
  2. Install slime-helper
    • (ql:quickload "quicklisp-slime-helper")
  3. Paste the following into your dot-emacs
    • (load (expand-file-name "/path/to/slime-helper.el"))
    • (setq inferior-lisp-program "sbcl")
  4. Now put the following into your .stumpwmrc or just eval during your stumpwm-session
    • (require 'swank)
    • (swank:create-server)
  5. Connect Emacs/Slime to your stumpwm-session using
    • M-x slime-connect

With AUR

  1. Install SBCL
    • pacman -S sbcl
  2. Install clx from AUR.
    • If you really do not want to use a PKGBUILD here, you can also use asdf-install to install clx.
  3. Install cl-ppcre
    • Again, this can be installed with asdf-install if you really do not like PKGBUILDs.
  4. Install git
    • pacman -S git
  5. Install stumpwm from AUR.
    • Alternately, you can check it out directly from the git repo., as described on the [ homepage]. Read the directions and check the StumpWM wiki for compilation instructions.

With Clisp

  1. Get and create these packages from AUR in the following order making sure to have makepkg install dependencies first (makepkg -s):
    • clisp-new-clxAUR
    • cl-asdfAUR
    • cl-ppcreAUR. To get this to install, I had to comment out the dependency line in the PKGBUILD.
    • stumpwm-gitAUR. Alternatively, download the latest version from the web site and follow the install instructions. The executable can stay in your home directory tree.
  2. Make sure to install each one (sudo pacman -U name.pkg.tar.gz) before installing the next.
  3. See the Makepkg article for details on downloading and installing from AUR (compiling/creating package and installing).

Also, look at this post if you run into troubles.

Documentation and Support

If you installed StumpWM by hand or still have the source lying around, there is a TeXInfo manual.

There is also a wiki, an IRC channel (#stumpwm) on Freenode, and a mailing list. For more information, of course, see the project's website.

Tweaking

See the wiki for a variety of useful tweaks for your .stumpwmrc.

If you are an emacs user, you will find an emacs minor mode for editing StumpWM files (and interfacing with the program stumpish, but more on that below) in the contrib/ directory of the StumpWM source. If you are using clisp, this file can also be found in /usr/share/stumpwm/.

stumpish is the STUMP window manager Interactive SHell. It is a program that allows the user to interact with StumpWM while it is running, from the comfort of a terminal (or using the emacs mode). It can be found in the contrib/ directory of the StumpWM source. If you use clisp, this file can also be found in /usr/bin/.

Troubleshooting

If you cannot start stumpwm and get

           debugger invoked on a SB-INT:SIMPLE-PARSE-ERROR in thread
       #:
       no non-whitespace characters in string "".
       Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
       (no restarts: If you did not do this on purpose, please report it as a bug.)
       (PARSE-INTEGER "" :START 0 :END NIL :RADIX 10 :JUNK-ALLOWED NIL)

In the REPL,It can be solved by delete the .Xauthority in your home diretory. You can refer it atIssue on github