「Spectrwm」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎spectrwm の起動: 翻訳を修正)
(関連記事へのリンクを追加)
 
(同じ利用者による、間の2版が非表示)
2行目: 2行目:
 
[[Category:動的ウィンドウマネージャ]]
 
[[Category:動的ウィンドウマネージャ]]
 
[[en:Spectrwm]]
 
[[en:Spectrwm]]
  +
{{Related articles start}}
  +
{{Related|ウィンドウマネージャ}}
  +
{{Related articles end}}
 
[http://spectrwm.org/ spectrwm ウェブサイト] より:
 
[http://spectrwm.org/ spectrwm ウェブサイト] より:
 
 
10行目: 13行目:
 
== インストール ==
 
== インストール ==
   
{{Pkg|spectrwm}} パッケージを[[インストール]]してください
+
{{AUR|spectrwm}} パッケージを [[インストール]] ます
   
  +
== 起動 ==
ステータスバーへフォントを設定する必要があります。{{ic|fc-list}} コマンドでインストールされたフォントを確認し、ローカルな設定ファイルの {{ic|bar_font}} にフォントを一つ設定してください。例:
 
   
  +
[[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=
 
{{hc|~/.spectrwm.conf|2=
 
bar_font = ''xos4 Terminus:pixelsize=14''}}
 
bar_font = ''xos4 Terminus:pixelsize=14''}}
  +
}}
 
 
Mod キー (コマンドを実行するメインキー) は Mod4 に設定されており、普通は Mod4 は {{ic|Super}} キーにあたります。
 
Mod キー (コマンドを実行するメインキー) は Mod4 に設定されており、普通は Mod4 は {{ic|Super}} キーにあたります。
   
24行目: 36行目:
   
 
{{Pkg|xterm}} や {{Pkg|xscreensaver}} のフォントや色などの設定を変更する方法は [[X resources|Xdefaults]] を見てください。アニメーションやディスプレイの電源管理を選択するには {{ic|xscreensaver-demo}} を実行します。
 
{{Pkg|xterm}} や {{Pkg|xscreensaver}} のフォントや色などの設定を変更する方法は [[X resources|Xdefaults]] を見てください。アニメーションやディスプレイの電源管理を選択するには {{ic|xscreensaver-demo}} を実行します。
 
== 設定 ==
 
 
''spectrwm'' はまずユーザー個別のファイルである {{ic|~/.spectrwm.conf}} を開こうとします。ファイルが存在しない場合、次に全ユーザー共通の設定ファイルである {{ic|/etc/spectrwm.conf}} を開きます。
 
 
任意で、spectrwm から (ユーザーのパスにある) {{ic|baraction.sh}} を呼び出すことができ、ステータスメッセージを {{Ic|stdout}} に出力してステータスバーで使うことができます。
 
   
 
=== キーバインドの設定 ===
 
=== キーバインドの設定 ===
38行目: 44行目:
 
* {{ic|/etc/spectrwm/spectrewm_<<キーボードレイアウト>>.conf}} の内容をコピーして {{ic|~/.spectrwm.conf}} の後ろに貼り付け
 
* {{ic|/etc/spectrwm/spectrewm_<<キーボードレイアウト>>.conf}} の内容をコピーして {{ic|~/.spectrwm.conf}} の後ろに貼り付け
   
  +
=== マルチモニター (Xinerama) ===
== spectrwm の起動 ==
 
 
{{Ic|startx}} や [[SLiM]] ログインマネージャで spectrwm を起動するには、以下を {{ic|~/.xinitrc}} に追加してください:
 
 
exec spectrwm
 
 
=== XDM で spectrwm を起動 ===
 
 
[[XDM]] を使う場合、以下の内容で {{ic|~/.xsession}} を作成してください:
 
 
# .xsession
 
# This file is sourced by xdm
 
spectrwm
 
 
そして {{ic|~/.xsession}} に実行可能属性を付与:
 
 
$ chmod a+x ~/.xsession
 
 
{{Note|{{ic|~/.xsession}} を作成しない場合、{{ic|~/.xinitrc}} が使用されますが、startx と XDM のどちらを使用するかによって異なる設定が必要になる場合があります。 {{ic|~/.xinitrc}} を実行可能にしてくださいそうしないと XDM は起動しません}}
 
 
{{Tip|Archをテーマにした素敵なxdmについては {{AUR|xdm-arch-theme}} }}
 
 
=== KDM で spectrwm を起動 ===
 
 
[[KDM]] の場合、[[KDM#SessionsDirs|こちら]]に書かれているように {{ic|/usr/share/config/kdm/kdmrc}} の SessionDirs に {{ic|/usr/share/xsessions}} を挿入してください。KDM のセッションタイプメニューで SpectrWM が選択できるようになります。
 
 
セッションが起動しているときに別のタスクを起動するには (xscreensaver を起動して背景画像を設定する場合など)、[[KDM#Session|こちら]]に書かれているように {{ic|/usr/share/config/kdm/Xsession}} をコピーして以下のように編集してください:
 
 
{{bc|<nowiki>
 
case $session in
 
"")
 
exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
 
;;
 
failsafe)
 
exec xterm -geometry 80x24-0-0
 
;;
 
custom)
 
exec $HOME/.xsession
 
;;
 
default)
 
exec /usr/bin/startkde
 
;;
 
'''/usr/bin/spectrwm'''|otherwm''')'''
 
'''feh --bg-scale /usr/share/wallpapers/Plasmalicious/contents/images/1280x1024.jpg'''
 
'''xscreensaver -no-splash &'''
 
'''eval exec "$session"'''
 
''';;'''
 
*)
 
eval exec "$session"
 
;;
 
esac
 
</nowiki>}}
 
 
== マルチモニター (Xinerama) ==
 
   
 
Xrandr を使用しないでマルチモニターを設定するには、リージョンを作成してデスクトップ全体をモニターごとに一つのリージョンに分割します:
 
Xrandr を使用しないでマルチモニターを設定するには、リージョンを作成してデスクトップ全体をモニターごとに一つのリージョンに分割します:
98行目: 51行目:
 
region = screen[1]:1280x1024+1280+0
 
region = screen[1]:1280x1024+1280+0
   
== ステータスバーの設定 ==
+
=== ステータスバーの設定 ===
   
 
ステータスバーを有効にするには、{{ic|/etc/spectrwm.conf}} (もしくは {{ic|~/.spectrwm.conf}}) にある以下の2つのアイテムをアンコメントしてください。デフォルトではコメントアウトされてステータスバーは無効になっています。
 
ステータスバーを有効にするには、{{ic|/etc/spectrwm.conf}} (もしくは {{ic|~/.spectrwm.conf}}) にある以下の2つのアイテムをアンコメントしてください。デフォルトではコメントアウトされてステータスバーは無効になっています。
105行目: 58行目:
 
bar_delay = 5
 
bar_delay = 5
   
=== Bash スクリプト ===
+
==== Bash スクリプト ====
   
 
ステータスバーをテストするには、先に [[bashrc|~/.bashrc]] ファイルの $PATH に追加した {{ic|~/scripts}} (あるいは {{ic|~/bin}}) ディレクトリに以下のシンプルな {{ic|baraction.sh}} を追加してください:
 
ステータスバーをテストするには、先に [[bashrc|~/.bashrc]] ファイルの $PATH に追加した {{ic|~/scripts}} (あるいは {{ic|~/bin}}) ディレクトリに以下のシンプルな {{ic|baraction.sh}} を追加してください:
131行目: 84行目:
 
clock_enabled = 0
 
clock_enabled = 0
   
=== Conky ===
+
==== Conky ====
   
 
bash スクリプトの代替として conky を使うことができます。テキスト文字列を stdout に出力して spectrwm から読み込めるように、conky はグラフィカルモードでは使わないようにします。まず conky をインストールしてください。AUR からカット版の "conky-cli" をインストールする必要はありません。
 
bash スクリプトの代替として conky を使うことができます。テキスト文字列を stdout に出力して spectrwm から読み込めるように、conky はグラフィカルモードでは使わないようにします。まず conky をインストールしてください。AUR からカット版の "conky-cli" をインストールする必要はありません。
149行目: 102行目:
 
${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}
 
${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}} の以下の部分を:
 
他にも [[dzen|dzen2]] を使ってステータスバーを作成する方法もあります。カラーやアイコンも使うことができるという利点がありますが、spectrwm とバーを統合することができないという欠点も存在します。現在のワークスペースの番号やレイアウト、バーを切り替えるキーバインドなどは使うことができません。"region" オプションを使うことでステータスバーで使用する画面領域を予約することができます。例えば画面の上部14ピクセルを予約するには {{ic|spectrwm.conf}} の以下の部分を:
253行目: 206行目:
   
 
現在、新しいウィンドウで使われるデスクトップはウィンドウの PID によって決定されます。新しいプロセスでターミナルを開いて引数を渡すことで、ターミナルで回避することができます。
 
現在、新しいウィンドウで使われるデスクトップはウィンドウの PID によって決定されます。新しいプロセスでターミナルを開いて引数を渡すことで、ターミナルで回避することができます。
  +
  +
=== startx を実行すると Xorg が終了します ===
  +
  +
{{Pkg|xlockmore}} などのすべての依存関係がインストールされていることを確認してください。
  +
  +
トラブルシューティングのために、別の xsession 内の xinitrc に対して [[Xephyr]] を使用することもできます。
   
 
== 参照 ==
 
== 参照 ==

2023年6月7日 (水) 21:59時点における最新版

関連記事

spectrwm ウェブサイト より:

spectrwm は Xorg 用の小型の動的タイル型ウィンドウマネージャです。余計なことをしないようにすることで、貴重なスクリーン画面を一番重要なことだけに使うことができます。デフォルトで無難に使いこなすことができ、設定するのに何か言語を学ぶ必要はありません。ハッカーによるハッカーのためのウィンドウマネージャであり、小さくコンパクトに高速で動作することを希求しています。

Spectrwm は C 言語で書かれておりテキストファイルで設定を行います。以前は scrotwm という名前でした。

インストール

spectrwmAUR パッケージを インストール します。

起動

xinit を指定して spectrwm を実行します。

設定

spectrwm はまずユーザー個別のファイルである ~/.spectrwm.conf を開こうとします。ファイルが存在しない場合、次に全ユーザー共通の設定ファイルである /etc/spectrwm.conf を開きます。

任意で、spectrwm から (ユーザーのパスにある) baraction.sh を呼び出すことができ、ステータスメッセージを stdout に出力してステータスバーで使うことができます。

ノート: ステータス バーに使用可能なフォントを設定する必要があります。fc-list コマンドを使用してインストールされているフォントを確認し、ローカル設定ファイルの bar_font フィールドにフォントを設定します。例えば:
~/.spectrwm.conf
bar_font = xos4 Terminus:pixelsize=14

Mod キー (コマンドを実行するメインキー) は Mod4 に設定されており、普通は Mod4 は Super キーにあたります。

画面をロックするキーバインドも存在しており、デフォルトでは xlockmore パッケージの xlock が呼びだされます。

アイドル状態が一定時間続いた後に画面をロックするスクリーンセーバーや電源管理として xscreensaver を使うこともできます。

xtermxscreensaver のフォントや色などの設定を変更する方法は Xdefaults を見てください。アニメーションやディスプレイの電源管理を選択するには xscreensaver-demo を実行します。

キーバインドの設定

デフォルトのキーバインドは /etc/spectrwm/spectrwm_<<キーボードレイアウト>>.conf にあります。キーバインドをカスタマイズするには:

  • ~/.spectrwm.confkeyboard_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 チャンネル
  • dmenu - dwm の開発者によるシンプルなアプリケーションランチャー