# Stumpwm (日本語)

StumpWM は全てが Common Lisp で書かれた、タイル型のフルスクリーンウィンドウマネージャです。カルト的な人気がある Ratpoison ウィンドウマネージャの後継として ("GNU Screen to the power of X")、StumpWM には common lisp の完全な柔軟性・ハッカビリティがあり、たとえ動作中であってもウィンドウマネージャのソースを変更することが可能です。

StumpWM のホームページ より:

  チャンネルを変えるようにテーマを変えるのに、また、たった一つのことを除いて完璧なウィンドウマネージャからどこか他のところが壊れているウィンドウマネージャに移るのに飽いてしまった場合、Stumpwm がお役に立てるかもしれません。
  Stumpwm はカスタマイズを可能にしながら視覚的に最小限度を保つことを目標としています。ウィンドウ装飾や、アイコン、ボタンは存在しません。Stumpwm には個人カスタマイズを加えるための様々なフック、設定変数があります。

実際に動作しているところを見たいですか？StumpWM ユーザーが動画 を作成しています。

## インストール

### SBCL を使う (推奨、高速)

#### Quicklisp を使う (推奨)

Warning: Only use root to install SBCL and, if you want to, run "make install".

1. SBCL をインストール
   - `pacman -S sbcl`
2. Quicklisp ウェブサイト で Quicklisp を入手
   - `curl -O http://beta.quicklisp.org/quicklisp.lisp`
3. SBCL で Quicklisp をロード
   - `sbcl --load quicklisp.lisp`
4. Quicklisp をインストール
   - `(quicklisp-quickstart:install)` or `(quicklisp-quickstart:install :path "path/of/your/choice")`
5. Quicklisp を SBCL init ファイルに追加
   - `(ql:add-to-init-file)`
6. Quicklisp のアップデートを確認 (ダウンロードしたばかりなら必要ありません)
   - `(ql:update-client)`
7. Quicklisp 上のアップデートを確認
   - `(ql:update-all-dists)`
8. CLX と CL-PPCRE をインストール
   - `(ql:quickload "clx")`
   - `(ql:quickload "cl-ppcre")`
9. (quit) で SBCL を終了
10. StumpWM の git バージョンを入手
    - `git clone https://github.com/stumpwm/stumpwm.git`
11. stumpwm フォルダに入れてコンパイルを開始
    - `cd stumpwm && ./autogen.sh && ./configure && make`
    - "Component STUMPWM not found" というエラーが発生する場合は次を試して下さい:
    - `env CL_SOURCE_REGISTRY=$PWD: sbcl --load make-image.lisp`
12. 任意で root で "make install" を実行できます。
    - "Don't know how to REQUIRE STUMPWM" というエラーが発生する場合は次を試して下さい:
    - `env CL_SOURCE_REGISTRY=$PWD: make install`
13. StumpWM バイナリのパスを .xinit に記述してお楽しみ下さい！ :)

任意: リアルタイムハッキングのための slime/swank をインストール:

1. swank server をインストール
   - `(ql:quickload "swank")`
2. slime-helper をインストール
   - `(ql:quickload "quicklisp-slime-helper")`
3. 以下を dot-emacs に貼り付け
   - `(load (expand-file-name "/path/to/slime-helper.el"))`
   - `(setq inferior-lisp-program "sbcl")`
4. 以下を .stumpwmrc に記述、または stumpwm-session で eval
   - `(require 'swank)`
   - `(swank:create-server)`
5. 次のコマンドで Emacs/Slime を stumpwm-session に接続
   - `M-x slime-connect`

#### AUR を使う

1. SBCL をインストール
   - `pacman -S sbcl`
2. AUR から clx をインストール
   - この PKGBUILD を使いたくない場合は、asdf-install を使って clx をインストールすることもできます。
3. cl-ppcre をインストール
   - 同じく、PKGBUILD を使いたくない場合は、asdf-install でインストールできます。
4. git をインストール
   - `pacman -S git`
5. AUR から stumpwm-git をインストール
   - または、ホームページ にあるように、git リポジトリから直接チェックアウトすることもできます。StumpWM wiki を読んでコンパイルしてください。

### Clisp を使う

1. makepkg のインストールの依存関係を満たすように以下の順番でパッケージを AUR から入手・作成 (makepkg -s):
   - clisp-new-clx
   - cl-asdf
   - cl-ppcre. To get this to install, I had to comment out the dependency line in the PKGBUILD.
   - stumpwm-git。または最新のバージョンをウェブサイトからダウンロードしてインストールの指示に従って下さい。実行可能ファイルは home ディレクトリツリーに置くことができます。
2. それぞれのパッケージを順番通りにインストール (sudo pacman -U name.pkg.tar.gz)。
3. AUR からダウンロード・インストールする方法の詳細は Makepkg を参照 (パッケージのコンパイル・作成とインストール)。

また、問題が発生した場合はこの投稿も見て下さい。

## ドキュメントとサポート

手動で StumpWM をインストールしてソースに手を入れられてない場合、TeXInfo マニュアルがあります。

その他に wiki, Freenode の IRC チャンネル (#stumpwm), メーリングリストも存在します。もちろん、プロジェクトのウェブサイト も参照してください。

## 設定

.stumpwmrc の様々な便利な設定が wiki に載っています。

あなたが emacs ユーザーであるならば、StumpWM ソースの contrib/ ディレクトリに StumpWM ファイル編集用の emacs マイナーモードがあります (`stumpish` プログラムのインターフェイスにもなります、詳しくは下記参照)。clisp を使っている場合、このファイルは `/usr/share/stumpwm/` にもあります。

`stumpish` は STUMP ウィンドウマネージャインタラクティブシェルです。ターミナルから (もしくは emacs モードを使って) 楽に、実行中の StumpWM と対話することができるプログラムになります。StumpWM ソースの contrib/ ディレクトリに存在します。clisp を使っている場合、このファイルは `/usr/bin/` にもあります。

## トラブルシューティング

- マルチモニターの設定で問題が起こる場合は、おそらく 'xorg-xdpyinfo' パッケージをインストールする必要があります。

- stumpwm を起動できず、以下が出力される場合:

               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)

REPL では、ホームディレクトリの .Xauthority を削除することで解決できます。github の issue も参照してください。

Category:

- Tiling WMs (日本語)