「Spectrwm」の版間の差分
(en:spectrwmへの転送ページ) |
(同期) |
||
(3人の利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
− | + | {{DISPLAYTITLE:spectrwm}} |
|
+ | [[Category:動的ウィンドウマネージャ]] |
||
+ | [[en:Spectrwm]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|ウィンドウマネージャ}} |
||
+ | {{Related articles end}} |
||
+ | [http://spectrwm.org/ spectrwm ウェブサイト] より: |
||
+ | |||
+ | :spectrwm は [[Xorg]] 用の小型の動的タイル型ウィンドウマネージャです。余計なことをしないようにすることで、貴重なスクリーン画面を一番重要なことだけに使うことができます。デフォルトで無難に使いこなすことができ、設定するのに何か言語を学ぶ必要はありません。ハッカーによるハッカーのためのウィンドウマネージャであり、小さくコンパクトに高速で動作することを追求しています。 |
||
+ | |||
+ | Spectrwm は C 言語で書かれておりテキストファイルで設定を行います。以前は scrotwm という名前でした。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | {{AUR|spectrwm}} パッケージを [[インストール]] します。 |
||
+ | |||
+ | == 起動 == |
||
+ | |||
+ | [[xinit]] を指定して {{ic|spectrwm}} を実行します。 |
||
+ | |||
+ | == 設定 == |
||
+ | |||
+ | ''spectrwm'' はまずユーザー個別のファイルである {{ic|~/.spectrwm.conf}} を開こうとします。ファイルが存在しない場合、次に全ユーザー共通の設定ファイルである {{ic|/etc/spectrwm.conf}} を開きます。 |
||
+ | |||
+ | 任意で、spectrwm から (ユーザーのパスにある) {{ic|baraction.sh}} を呼び出すことができ、ステータスメッセージを {{Ic|stdout}} に出力してステータスバーで使うことができます。 |
||
+ | |||
+ | {{Note|ステータス バーに使用可能なフォントを設定する必要があります。{{ic|fc-list}} コマンドを使用してインストールされているフォントを確認し、ローカル設定ファイルの {{ic|bar_font}} フィールドにフォントを設定します。例えば: |
||
+ | {{hc|~/.spectrwm.conf|2= |
||
+ | bar_font = ''xos4 Terminus:pixelsize=14''}} |
||
+ | }} |
||
+ | Mod キー (コマンドを実行するメインキー) は Mod4 に設定されており、普通は Mod4 は {{ic|Super}} キーにあたります。 |
||
+ | |||
+ | 画面をロックするキーバインドも存在しており、デフォルトでは {{Pkg|xlockmore}} パッケージの xlock が呼びだされます。 |
||
+ | |||
+ | アイドル状態が一定時間続いた後に画面をロックするスクリーンセーバーや電源管理として {{Pkg|xscreensaver}} を使うこともできます。 |
||
+ | |||
+ | {{Pkg|xterm}} や {{Pkg|xscreensaver}} のフォントや色などの設定を変更する方法は [[X resources|Xdefaults]] を見てください。アニメーションやディスプレイの電源管理を選択するには {{ic|xscreensaver-demo}} を実行します。 |
||
+ | |||
+ | === キーバインドの設定 === |
||
+ | |||
+ | デフォルトのキーバインドは {{ic|/etc/spectrwm/spectrwm_<<キーボードレイアウト>>.conf}} にあります。キーバインドをカスタマイズするには: |
||
+ | |||
+ | * {{ic|~/.spectrwm.conf}} の {{ic|keyboard_mapping}} を /dev/null に設定 |
||
+ | * {{ic|/etc/spectrwm/spectrewm_<<キーボードレイアウト>>.conf}} の内容をコピーして {{ic|~/.spectrwm.conf}} の後ろに貼り付け |
||
+ | |||
+ | === マルチモニター (Xinerama) === |
||
+ | |||
+ | Xrandr を使用しないでマルチモニターを設定するには、リージョンを作成してデスクトップ全体をモニターごとに一つのリージョンに分割します: |
||
+ | |||
+ | region = screen[1]:1280x1024+0+0 |
||
+ | region = screen[1]:1280x1024+1280+0 |
||
+ | |||
+ | === ステータスバーの設定 === |
||
+ | |||
+ | ステータスバーを有効にするには、{{ic|/etc/spectrwm.conf}} (もしくは {{ic|~/.spectrwm.conf}}) にある以下の2つのアイテムをアンコメントしてください。デフォルトではコメントアウトされてステータスバーは無効になっています。 |
||
+ | |||
+ | bar_action = baraction.sh |
||
+ | bar_delay = 5 |
||
+ | |||
+ | ==== Bash スクリプト ==== |
||
+ | |||
+ | ステータスバーをテストするには、先に [[bashrc|~/.bashrc]] ファイルの $PATH に追加した {{ic|~/scripts}} (あるいは {{ic|~/bin}}) ディレクトリに以下のシンプルな {{ic|baraction.sh}} を追加してください: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | #!/bin/bash |
||
+ | # baraction.sh script for spectrwm status bar |
||
+ | |||
+ | SLEEP_SEC=5 # set bar_delay = 5 in /etc/spectrwm.conf |
||
+ | COUNT=0 |
||
+ | #loops forever outputting a line every SLEEP_SEC secs |
||
+ | while :; do |
||
+ | let COUNT=$COUNT+1 |
||
+ | echo -e " Hello World! $COUNT" |
||
+ | sleep $SLEEP_SEC |
||
+ | done |
||
+ | </nowiki>}} |
||
+ | |||
+ | {{ic|Modkey+Q}} を押して spectrwm を再起動すれば数秒後にステータスバーに出力が確認できるはずです。この段階で問題が起こる場合、スクリプトに実行可能属性を付与して、コマンドラインからスクリプトをテストしてください。{{ic|bar_action}} に指定したパスやファイル名も確認してください。 |
||
+ | |||
+ | ステータスバーでは次のようなアイテムを追加することができます: イーサネットの状態, メール通知, ディスク容量, マウント, 再生中の曲 (mpc current)。 |
||
+ | |||
+ | スクリプトで日付を表示することもでき、その場合は spectrwm に組み込まれている時計は無効にできます: |
||
+ | |||
+ | clock_enabled = 0 |
||
+ | |||
+ | ==== Conky ==== |
||
+ | |||
+ | bash スクリプトの代替として conky を使うことができます。テキスト文字列を stdout に出力して spectrwm から読み込めるように、conky はグラフィカルモードでは使わないようにします。まず conky をインストールしてください。AUR からカット版の "conky-cli" をインストールする必要はありません。 |
||
+ | |||
+ | {{ic|~/.spectrwm.conf}} で以下を設定: |
||
+ | |||
+ | bar_action = conky |
||
+ | |||
+ | そして各ユーザーの {{ic|~/.conkyrc}} ファイルに以下のように記述: |
||
+ | |||
+ | out_to_x no |
||
+ | out_to_console yes |
||
+ | update_interval 1.0 |
||
+ | total_run_times 0 |
||
+ | use_spacer none |
||
+ | TEXT |
||
+ | ${time %R %a,%d-%#b-%y} |Mail:${new_mails} |Up:${uptime_short} |Temp:${acpitemp}C |Batt:${battery_short} |${addr wlan0} |RAM:$memperc% |CPU:${cpu}% | ${downspeedf wlan0} |
||
+ | |||
+ | === 他のステータスバー === |
||
+ | |||
+ | 他にも [[dzen|dzen2]] を使ってステータスバーを作成する方法もあります。カラーやアイコンも使うことができるという利点がありますが、spectrwm とバーを統合することができないという欠点も存在します。現在のワークスペースの番号やレイアウト、バーを切り替えるキーバインドなどは使うことができません。"region" オプションを使うことでステータスバーで使用する画面領域を予約することができます。例えば画面の上部14ピクセルを予約するには {{ic|spectrwm.conf}} の以下の部分を: |
||
+ | |||
+ | bar_enabled = 1 |
||
+ | region = screen[1]:1024x768+0+0 |
||
+ | |||
+ | 以下のように変更してください (解像度は適宜置き換えてください): |
||
+ | |||
+ | bar_enabled = 0 |
||
+ | region = screen[1]:1024x754+0+14 |
||
+ | |||
+ | [[i3|i3status]] などを使って情報を流し込みます: |
||
+ | |||
+ | $ i3status | dzen2 -fn -*-terminus-medium-*-*-*-*-*-*-*-*-*-*-* & |
||
+ | |||
+ | 上記のバーとは無関係に Spectrwm のバーは {{ic|Meta+b}} で有効化・無効化できます。 |
||
+ | |||
+ | == スクリーンショット == |
||
+ | |||
+ | Spectrwm にはキーバインドを使って {{ic|screenshot.sh}} という名前のスクリプトを実行する機能があります。 |
||
+ | |||
+ | Meta+s for a full screenshot |
||
+ | Meta+Shift+s for a screenshot of a single window |
||
+ | |||
+ | まず scrot をインストールしてから、spectrwm パッケージに含まれているデフォルトスクリプトを {{ic|$PATH}} が通っている場所にコピーしてください。例: |
||
+ | |||
+ | $ cp /usr/share/spectrwm/screenshot.sh ~/bin |
||
+ | |||
+ | == 画面ロック == |
||
+ | |||
+ | デフォルトでは、ロックを行うキーバインド {{ic|Mod+Shift+Delete}} では ''xlock'' を実行されます。 |
||
+ | |||
+ | program[lock] = xlock |
||
+ | |||
+ | xlock の代わりに xscreensaver を使うには: |
||
+ | |||
+ | program[lock] = xscreensaver-command -lock |
||
+ | |||
+ | == spectrwm を使う == |
||
+ | |||
+ | * スペースを節約するために、ウィンドウのタイトルバーは表示されません。ウィンドウのボーダーはたった1ピクセルです。ボーダーの色はフォーカスされると変化します。 |
||
+ | |||
+ | * レイアウトは動的に管理され即座に変更されます。標準のレイアウトは3つ存在します (スタッキングアルゴリズム): vertical, horizontal, maximized (ステータスバーの [|], [-], [ ] でレイアウトを確認できます)。 |
||
+ | |||
+ | * マスターエリア (ワーキングエリア) という概念が存在します。全てのウィンドウはマスターに切り替えることができ、そうするとマスターエリアに表示されます。vertical (horizontal) モードではマスターエリアは画面の左 (上) 側です。マスターエリアのサイズはキーで調整できます。デフォルトではマスターエリアに表示できるウィンドウは一つだけですが、増やすことも可能です。 |
||
+ | |||
+ | * マスターエリア以外の領域はスタッキングエリアと呼ばれます。新しいウィンドウはスタッキングエリアに追加されます。デフォルトでは vertical (horizontal) モードのスタッキングエリアは列 (行) は一つだけですが、増やすことも可能です。 |
||
+ | |||
+ | * ウィンドウはタイル管理から切り離してフローティングレイヤーに移動することができます。タイルにそぐわないプログラムで有用です。 |
||
+ | |||
+ | キーバインド一覧: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | Meta+Shift+Return: open terminal |
||
+ | Meta+p: dmenu (then type the start of the program name and return) |
||
+ | Meta+1/2/3/4/5/6/7/8/9/0: select workspaces 1-10 |
||
+ | Meta+Shift+1/2/3/4/5/6/7/8/9/0: move window to workspace 1-10 |
||
+ | Meta+Right/Left: select next/previous workspace |
||
+ | Meta+Shift+Right/Left: select next/previous screen |
||
+ | Meta+Spacebar: cycle through layouts (vertical, horizontal, maximized) |
||
+ | Meta+j/k: cycle through windows forwards/backwards |
||
+ | Meta+Tab/Meta+Shft+Tab: same as Meta+j/k |
||
+ | Meta+Return: move current window to master area |
||
+ | Meta+h/l: increase/decrease size of master area |
||
+ | </nowiki>}} |
||
+ | |||
+ | 高度なスタッキング: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | Meta+,/. : increase/decrease the number of windows in master area (default is 1) |
||
+ | Meta+Shift+,/. : increase/decrease number of columns(rows) in stacking area in vertical(horizontal) mode (default is 1) |
||
+ | Meta+Shift+j/k: swap window position with next/previous window |
||
+ | Meta+t: float<->tile toggle |
||
+ | </nowiki>}} |
||
+ | |||
+ | マウスバインド: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | Mouseover: focus window |
||
+ | Meta+LeftClick+Drag: move window (and float it if tiled) |
||
+ | Meta+RightClick+Drag: resize floating window |
||
+ | Meta+Shift+RightClick+Drag: resize floating window keeping it centred |
||
+ | </nowiki>}} |
||
+ | |||
+ | 他のキーバインド: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | Meta+x: close window |
||
+ | Meta+Shift+x: kill window |
||
+ | Meta+b: hide/show status bar |
||
+ | Meta+q: restart spectrwm (reset desktops and reread spectrwm config without stopping running programs) |
||
+ | Meta+Shift+q: exit spectrwm |
||
+ | </nowiki>}} |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | |||
+ | === ログインしても何も表示されない === |
||
+ | |||
+ | {{ic|Shift+WinKey+Return}} を押すと xterm が起動します。デフォルトのキーバインドは {{man|1| spectrwm}} を見てください。また、設定ファイルをチェックしてください。 |
||
+ | |||
+ | === アクティブでないデスクトップでウィンドウが開く === |
||
+ | |||
+ | 現在、新しいウィンドウで使われるデスクトップはウィンドウの PID によって決定されます。新しいプロセスでターミナルを開いて引数を渡すことで、ターミナルで回避することができます。 |
||
+ | |||
+ | === startx を実行すると Xorg が終了します === |
||
+ | |||
+ | {{Pkg|xlockmore}} などのすべての依存関係がインストールされていることを確認してください。 |
||
+ | |||
+ | トラブルシューティングのために、別の xsession 内の xinitrc に対して [[Xephyr]] を使用することもできます。 |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | * [http://www.spectrwm.org spectrwm] - spectrwm の公式ウェブサイト |
||
+ | |||
+ | * #spectrwm at [https://www.oftc.net/ OFTC] - 公式 IRC チャンネル |
||
+ | |||
+ | * [[dmenu]] - [[dwm]] の開発者によるシンプルなアプリケーションランチャー |
||
+ | |||
+ | * [https://bbs.archlinux.org/viewtopic.php?id=64645 The scrotwm thread] |
2024年6月24日 (月) 20:06時点における最新版
関連記事
spectrwm ウェブサイト より:
- spectrwm は Xorg 用の小型の動的タイル型ウィンドウマネージャです。余計なことをしないようにすることで、貴重なスクリーン画面を一番重要なことだけに使うことができます。デフォルトで無難に使いこなすことができ、設定するのに何か言語を学ぶ必要はありません。ハッカーによるハッカーのためのウィンドウマネージャであり、小さくコンパクトに高速で動作することを追求しています。
Spectrwm は C 言語で書かれておりテキストファイルで設定を行います。以前は scrotwm という名前でした。
目次
インストール
spectrwmAUR パッケージを インストール します。
起動
xinit を指定して spectrwm
を実行します。
設定
spectrwm はまずユーザー個別のファイルである ~/.spectrwm.conf
を開こうとします。ファイルが存在しない場合、次に全ユーザー共通の設定ファイルである /etc/spectrwm.conf
を開きます。
任意で、spectrwm から (ユーザーのパスにある) baraction.sh
を呼び出すことができ、ステータスメッセージを stdout
に出力してステータスバーで使うことができます。
Mod キー (コマンドを実行するメインキー) は Mod4 に設定されており、普通は Mod4 は Super
キーにあたります。
画面をロックするキーバインドも存在しており、デフォルトでは xlockmore パッケージの xlock が呼びだされます。
アイドル状態が一定時間続いた後に画面をロックするスクリーンセーバーや電源管理として xscreensaver を使うこともできます。
xterm や xscreensaver のフォントや色などの設定を変更する方法は Xdefaults を見てください。アニメーションやディスプレイの電源管理を選択するには xscreensaver-demo
を実行します。
キーバインドの設定
デフォルトのキーバインドは /etc/spectrwm/spectrwm_<<キーボードレイアウト>>.conf
にあります。キーバインドをカスタマイズするには:
~/.spectrwm.conf
のkeyboard_mapping
を /dev/null に設定/etc/spectrwm/spectrewm_<<キーボードレイアウト>>.conf
の内容をコピーして~/.spectrwm.conf
の後ろに貼り付け
マルチモニター (Xinerama)
Xrandr を使用しないでマルチモニターを設定するには、リージョンを作成してデスクトップ全体をモニターごとに一つのリージョンに分割します:
region = screen[1]:1280x1024+0+0 region = screen[1]:1280x1024+1280+0
ステータスバーの設定
ステータスバーを有効にするには、/etc/spectrwm.conf
(もしくは ~/.spectrwm.conf
) にある以下の2つのアイテムをアンコメントしてください。デフォルトではコメントアウトされてステータスバーは無効になっています。
bar_action = baraction.sh bar_delay = 5
Bash スクリプト
ステータスバーをテストするには、先に ~/.bashrc ファイルの $PATH に追加した ~/scripts
(あるいは ~/bin
) ディレクトリに以下のシンプルな baraction.sh
を追加してください:
#!/bin/bash # baraction.sh script for spectrwm status bar SLEEP_SEC=5 # set bar_delay = 5 in /etc/spectrwm.conf COUNT=0 #loops forever outputting a line every SLEEP_SEC secs while :; do let COUNT=$COUNT+1 echo -e " Hello World! $COUNT" sleep $SLEEP_SEC done
Modkey+Q
を押して spectrwm を再起動すれば数秒後にステータスバーに出力が確認できるはずです。この段階で問題が起こる場合、スクリプトに実行可能属性を付与して、コマンドラインからスクリプトをテストしてください。bar_action
に指定したパスやファイル名も確認してください。
ステータスバーでは次のようなアイテムを追加することができます: イーサネットの状態, メール通知, ディスク容量, マウント, 再生中の曲 (mpc current)。
スクリプトで日付を表示することもでき、その場合は spectrwm に組み込まれている時計は無効にできます:
clock_enabled = 0
Conky
bash スクリプトの代替として conky を使うことができます。テキスト文字列を stdout に出力して spectrwm から読み込めるように、conky はグラフィカルモードでは使わないようにします。まず conky をインストールしてください。AUR からカット版の "conky-cli" をインストールする必要はありません。
~/.spectrwm.conf
で以下を設定:
bar_action = conky
そして各ユーザーの ~/.conkyrc
ファイルに以下のように記述:
out_to_x no out_to_console yes update_interval 1.0 total_run_times 0 use_spacer none TEXT ${time %R %a,%d-%#b-%y} |Mail:${new_mails} |Up:${uptime_short} |Temp:${acpitemp}C |Batt:${battery_short} |${addr wlan0} |RAM:$memperc% |CPU:${cpu}% | ${downspeedf wlan0}
他のステータスバー
他にも dzen2 を使ってステータスバーを作成する方法もあります。カラーやアイコンも使うことができるという利点がありますが、spectrwm とバーを統合することができないという欠点も存在します。現在のワークスペースの番号やレイアウト、バーを切り替えるキーバインドなどは使うことができません。"region" オプションを使うことでステータスバーで使用する画面領域を予約することができます。例えば画面の上部14ピクセルを予約するには spectrwm.conf
の以下の部分を:
bar_enabled = 1 region = screen[1]:1024x768+0+0
以下のように変更してください (解像度は適宜置き換えてください):
bar_enabled = 0 region = screen[1]:1024x754+0+14
i3status などを使って情報を流し込みます:
$ i3status | dzen2 -fn -*-terminus-medium-*-*-*-*-*-*-*-*-*-*-* &
上記のバーとは無関係に Spectrwm のバーは Meta+b
で有効化・無効化できます。
スクリーンショット
Spectrwm にはキーバインドを使って screenshot.sh
という名前のスクリプトを実行する機能があります。
Meta+s for a full screenshot Meta+Shift+s for a screenshot of a single window
まず scrot をインストールしてから、spectrwm パッケージに含まれているデフォルトスクリプトを $PATH
が通っている場所にコピーしてください。例:
$ cp /usr/share/spectrwm/screenshot.sh ~/bin
画面ロック
デフォルトでは、ロックを行うキーバインド Mod+Shift+Delete
では xlock を実行されます。
program[lock] = xlock
xlock の代わりに xscreensaver を使うには:
program[lock] = xscreensaver-command -lock
spectrwm を使う
- スペースを節約するために、ウィンドウのタイトルバーは表示されません。ウィンドウのボーダーはたった1ピクセルです。ボーダーの色はフォーカスされると変化します。
- レイアウトは動的に管理され即座に変更されます。標準のレイアウトは3つ存在します (スタッキングアルゴリズム): vertical, horizontal, maximized (ステータスバーの [|], [-], [ ] でレイアウトを確認できます)。
- マスターエリア (ワーキングエリア) という概念が存在します。全てのウィンドウはマスターに切り替えることができ、そうするとマスターエリアに表示されます。vertical (horizontal) モードではマスターエリアは画面の左 (上) 側です。マスターエリアのサイズはキーで調整できます。デフォルトではマスターエリアに表示できるウィンドウは一つだけですが、増やすことも可能です。
- マスターエリア以外の領域はスタッキングエリアと呼ばれます。新しいウィンドウはスタッキングエリアに追加されます。デフォルトでは vertical (horizontal) モードのスタッキングエリアは列 (行) は一つだけですが、増やすことも可能です。
- ウィンドウはタイル管理から切り離してフローティングレイヤーに移動することができます。タイルにそぐわないプログラムで有用です。
キーバインド一覧:
Meta+Shift+Return: open terminal Meta+p: dmenu (then type the start of the program name and return) Meta+1/2/3/4/5/6/7/8/9/0: select workspaces 1-10 Meta+Shift+1/2/3/4/5/6/7/8/9/0: move window to workspace 1-10 Meta+Right/Left: select next/previous workspace Meta+Shift+Right/Left: select next/previous screen Meta+Spacebar: cycle through layouts (vertical, horizontal, maximized) Meta+j/k: cycle through windows forwards/backwards Meta+Tab/Meta+Shft+Tab: same as Meta+j/k Meta+Return: move current window to master area Meta+h/l: increase/decrease size of master area
高度なスタッキング:
Meta+,/. : increase/decrease the number of windows in master area (default is 1) Meta+Shift+,/. : increase/decrease number of columns(rows) in stacking area in vertical(horizontal) mode (default is 1) Meta+Shift+j/k: swap window position with next/previous window Meta+t: float<->tile toggle
マウスバインド:
Mouseover: focus window Meta+LeftClick+Drag: move window (and float it if tiled) Meta+RightClick+Drag: resize floating window Meta+Shift+RightClick+Drag: resize floating window keeping it centred
他のキーバインド:
Meta+x: close window Meta+Shift+x: kill window Meta+b: hide/show status bar Meta+q: restart spectrwm (reset desktops and reread spectrwm config without stopping running programs) Meta+Shift+q: exit spectrwm
トラブルシューティング
ログインしても何も表示されない
Shift+WinKey+Return
を押すと xterm が起動します。デフォルトのキーバインドは spectrwm(1) を見てください。また、設定ファイルをチェックしてください。
アクティブでないデスクトップでウィンドウが開く
現在、新しいウィンドウで使われるデスクトップはウィンドウの PID によって決定されます。新しいプロセスでターミナルを開いて引数を渡すことで、ターミナルで回避することができます。
startx を実行すると Xorg が終了します
xlockmore などのすべての依存関係がインストールされていることを確認してください。
トラブルシューティングのために、別の xsession 内の xinitrc に対して Xephyr を使用することもできます。
参照
- spectrwm - spectrwm の公式ウェブサイト
- #spectrwm at OFTC - 公式 IRC チャンネル