Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Bspwmのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Bspwm
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Lowercase title}} [[Category:タイル型ウィンドウマネージャ]] [[en:Bspwm]] [[es:Bspwm]] [[ru:Bspwm]] {{Related articles start}} {{Related|ウィンドウマネージャ}} {{Related|タイル型ウィンドウマネージャの比較}} {{Related articles end}} ''bspwm'' はウィンドウがフルバイナリツリーの葉となるタイル型ウィンドウマネージャです。[https://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH] やマルチモニターに対応しており、メッセージで設定したり制御することができます。 ==インストール== {{Pkg|bspwm}} と {{Pkg|sxhkd}} を[[インストール]]してください。あるいは開発版も存在します: {{AUR|bspwm-git}} と {{AUR|sxhkd-git}}。Sxhkd はシンプルな X ホットキーデーモンで、{{ic|bspc}} で bspwm と対話したりアプリケーションを起動したりするのに使います。 ログイン時に bspwm を起動させるには、以下を {{ic|~/.xinitrc}} や {{ic|~/.xprofile}} に追加してください (設定するファイルは X を起動する方法やディスプレイマネージャによって異なります): {{bc| sxhkd & exec bspwm }} 設定ファイルの bspwmrc で sxhkd を起動する場合は最初の行は省いてください。 ==設定== 設定例は [https://github.com/baskerville/bspwm/blob/master/examples/ GitHub] や {{ic|/usr/share/doc/bspwm/examples/}} にあります。 '''重要:''' $XDG_CONFIG_HOME 環境変数を設定しないと bspwmrc が認識されません。{{ic|1=export XDG_CONFIG_HOME="$HOME/.config"}} を {{ic|~/.profile}} に追加してください。 {{ic|~/.config/bspwm/}} と {{ic|~/.config/sxhkd/}} を作成して、{{ic|/usr/share/doc/bspwm/examples/bspwmrc}} を {{ic|~/.config/bspwm/}} に、{{ic|/usr/share/doc/bspwm/examples/sxhkdrc}} を {{ic|~/.config/sxhkd/}} にコピーしてください。そして {{ic|chmod +x ~/.config/bspwm/bspwmrc}} で bspwmrc に実行可能権限を付与してください。 ウィンドウマネージャの設定やキーバインドを設定するファイルは2つ存在します。[[en2:bspwm/Example configurations|bspwm/設定例]]に注釈付きのサンプルがあります。 bspwm のドキュメントは {{ic|man bspwm}} を実行することで確認できます。 sxhkd のドキュメントも {{ic|man sxhkd}} を実行すれば確認できます。 ====マルチモニターの設定==== 1つのモニターに10のデスクトップを設定する bspwmrc の例: bspc monitor -d I II III IV V VI VII VIII IX X 上記の行を修正して、以下のようにモニターごとにデスクトップを追加してください: bspc monitor DVI-I-1 -d I II III IV bspc monitor DVI-I-2 -d V VI VII bspc monitor DP-1 -d VIII IX X `xrandr -q` や `bspc query -M` を使うことでモニターの名前を確認できます。 上記の例では、使用するデスクトップの合計は10なので、sxhkdrc で 'super + {1-9,0}' とそれぞれのデスクトップを指定することができます。 ===ルール=== ウィンドウルールを設定する方法は2つあります ([https://github.com/baskerville/bspwm/commit/cd97a3290aa8d36346deb706fa307f5f8faa2f34 cd97a32])。 1番目の方法は組み込まれている rule コマンドを使う方法です。bspwmrc のサンプルでも使われています: {{bc|<nowiki> bspc rule -a Gimp desktop=^8 follow=on state=floating bspc rule -a Chromium desktop=^2 bspc rule -a mplayer2 state=floating bspc rule -a Kupfer.py focus=on bspc rule -a Screenkey manage=off </nowiki>}} 2番目の方法は外部の rule コマンドを使う方法です。こちらの方法は複雑ですが、複雑なウィンドウルールを作成することができます。ルールコマンドの例は [https://github.com/baskerville/bspwm/tree/master/examples/external_rules こちらのサンプル] を見て下さい。 特定のウィンドウが設定したルールのとおりに動かない場合、プログラムのクラス名を確認してください。{{ic|xprop <nowiki>|</nowiki> grep WM_CLASS}} を実行することでクラス名を確認することができます。 ===パネル=== {{AUR|lemonbar-git}} のパネルのサンプルが GitHub ページの examples フォルダに存在します。[[Lemonbar]] の wiki ページで何か考えが得られるかもしれません。パネルは bspwmrc の {{ic|panel &}} を置き換えることで実行できます。bspwm パッケージの opt-depends を確認して、必要なパッケージをチェックしてください。 様々なシステムコールを使うことでステータスバーにシステム情報を表示することが可能です。以下の例では {{ic|panel}} を編集して BAR にボリュームの情報を表示します: {{bc|<nowiki> panel_volume() { volStatus=$(amixer get Master | tail -n 1 | cut -d '[' -f 4 | sed 's/].*//g') volLevel=$(amixer get Master | tail -n 1 | cut -d '[' -f 2 | sed 's/%.*//g') # is alsa muted or not muted? if [ "$volStatus" == "on" ] then echo "%{Fyellowgreen} $volLevel %{F-}" else # If it is muted, make the font red echo "%{Findianred} $volLevel %{F-}" fi }</nowiki>}} 次に、パネルを呼び出して {{ic|$PANEL_FIFO}} にパイプするようにしてください: {{bc|<nowiki> while true; do echo "S" "$(panel_volume) $(panel_clock)" > "$PANEL_FIFO" sleep 1s done & </nowiki>}} ===スクラッチパッド=== bspwm のウィンドウフラグを使うことで (i3 のスクラッチパッド機能でターミナルを表示したときのような) ドロップダウンターミナルを模す事ができます。bspwm の設定ファイルの末尾に以下を追加してください (使用しているターミナルエミュレータに置き換えてください): {{bc|<nowiki> bspc rule -a scratchpad sticky=on state=floating hidden=on st -c scratchpad -e ~/bin/scratch & </nowiki>}} スティッキーフラグによってウィンドウが常時デスクトップに表示されるようになります。そして {{ic|~/bin/scratch}} は以下のようにします: {{bc|<nowiki> #!/usr/bin/sh bspc query -N -n .floating > /tmp/scratchid $SHELL </nowiki>}} スクラッチパッドを切り替えるホットキーは以下のように指定してください: {{bc|<nowiki> id=$(cat /tmp/scratchid);\ bspc node $id --flag hidden;bspc node -f $id </nowiki>}} スクラッチパッドでは定義済みのルールがないどんなウィンドウタイプでも使うことができます。参照: [https://www.reddit.com/r/bspwm/comments/3xnwdf/i3_like_scratch_for_any_window_possible/cy6i585]。 多数のターミナルに対応して、tmuxinator/tmux のセッションを任意で起動したり、ウィンドウを即座にスクラッチパッドに変えたり、モニターに合わせてスクラッチパッドのサイズを自動的に調整する、高性能なスクラッチパッドスクリプトを探している場合 {{AUR|tdrop-git}} を見て下さい。 ===マシンごとにモニターの設定を変える=== {{ic|bspwmrc}} はシェルスクリプトなので、以下のように設定することができます: #! /bin/sh <nowiki> if [[ $(hostname) == 'myhost' ]]; then bspc monitor eDP1 -d I II III IV V VI VII VIII IX X elif [[ $(hostname) == 'otherhost' ]]; then bspc monitor VGA-0 -d I II III IV V bspc monitor VGA-1 -d VI VII VIII IX X elif [[ $(hostname) == 'yetanotherhost' ]]; then bspc monitor DVI-I-3 -d VI VII VIII IX X bspc monitor DVI-I-2 -d I II III IV V fi </nowiki> ===全てのウィンドウがフロートするデスクトップの設定=== 以下はフリーティングウィンドウだけを表示するデスクトップ3を設定するスクリプトです。マルチウィンドウの GIMP などのアプリケーションで役に立ちます。 $PATH の通っているディレクトリに以下のスクリプトを配置して {{ic|.xinitrc}} などから呼び出してください (呼び出すときは末尾に & を付けます): #!/bin/bash <nowiki> # change the desktop number here FLOATING_DESKTOP_ID=$(bspc query -D -d '^3') bspc subscribe node_manage | while read -a msg ; do desk_id=${msg[2]} wid=${msg[3]} [ "$FLOATING_DESKTOP_ID" = "$desk_id" ] && bspc node "$wid" -t floating done </nowiki> ([https://github.com/baskerville/bspwm/issues/428#issuecomment-199985423 ソース]) ==トラブルシューティング== ===画面が表示されずキーバインドが機能しない=== デバッグする方法はあまりありません。まず、画面が表示されないのは問題ありません。bspwm が動いているということだからです。 xinitrc が以下のようになっているか確認してください: {{bc|<nowiki> sxhkd & exec bspwm </nowiki>}} アンパサンド (&) は重要です。次に、xinitrc でターミナルを実行して正しく位置取りがされるか確認してください。画面の"中心"に表示されるはずです。ターミナルを実行するには、{{ic|.xinitrc}} に以下を記述します: {{bc|<nowiki> sxhkd & urxvt & exec bspwm </nowiki>}} 何も表示されない場合、おそらく urxvt がインストールされていません。表示はされるが画面全体を覆ってしまう場合、BSPWM が正しく起動していません。{{ic|chmod +x ~/.config/bspwm/bspwmrc}} を実行したか確認してください。 次に、表示されたターミナルに {{ic|pidof sxhkd}} と入力してみてください。数字が返ってくるはずです。返ってこない場合、sxhd が動いていません。{{ic|sxhkd -c ~/.config/sxhkd/sxhkdrc}} で明示的に実行してみてください。sxhkdrc で Super キーを Alt キーなどに変更して何か変わらないかも確認してください。また、サンプルファイルから (物理的にファイルをコピーしないで) テキストをコピーしたときに何か問題があった可能性もあります。コードをコピーアンドペーストするとインデントに何か不具合が生じることがあり、sxhkd はそれによって上手く動作しなくなったのかもしれません。 ===ウィンドウボックスがアプリケーションよりも大きく表示される=== GTK3 アプリを使っている場合にダイアログボックスでこの問題が起こることがあります。gtk3 のテーマファイル ({{ic|~/.config/gtk-3.0/gtk.css}}) に以下を作成・追加することで解決できます: {{bc|<nowiki> .window-frame, .window-frame:backdrop { box-shadow: 0 0 0 black; border-style: none; margin: 0; border-radius: 0; } .titlebar { border-radius: 0; } </nowiki>}} (ソース: [https://bbs.archlinux.org/viewtopic.php?pid=1404973#p1404973 Bspwm フォーラムスレッド]) ===Java アプリケーションの問題=== Java アプリケーションのウィンドウがリサイズできない、メニューがクリックするとすぐ閉じてしまうなどの問題が起こる場合、[[Java]] を見て下さい。 ===fish を使用する場合のキーバインドの問題=== [[fish]] を使うと、デスクトップが切り替えられなくなります。これは bspc が ^ 文字を使っており fish と互換性がないためです。コマンドを実行するときは bash を使うように sxhkd を設定することで解決できます: $ set -U SXHKD_SHELL /usr/bin/bash もしくは、sxhkdrc ファイルの ^ 文字をバックスラッシュでエスケープすることもできます。 ===起動時に "Could not grab key 43 with modfield 68" というエラーメッセージ=== 同じキーを二回使用としたか、sxhkd を二回起動しようとしています。bspwmrc や {{ic | ~/.profile}}、{{ic | ~/.bash_profile}} などをチェックして sxhkd を二重に起動してないか確認してください。 ==参照== *メーリングリスト: bspwm ''at'' librelist.com. *{{ic|#bspwm}} - IRC チャンネル at irc.freenode.net *https://bbs.archlinux.org/viewtopic.php?id=149444 - Arch フォーラムスレッド *https://github.com/baskerville/bspwm - GitHub プロジェクト *https://github.com/windelicato/dotfiles/wiki/bspwm-for-dummies - earsplit's "bspwm for dummies" *https://github.com/smlb/dotfiles/wiki/Bspwm - smlb の wiki
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Lowercase title
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
Bspwm
に戻る。
検索
検索
Bspwmのソースを表示
話題を追加