「Sway」の版間の差分
細 (→TTY から) |
(同期) |
||
2行目: | 2行目: | ||
[[Category:動的ウィンドウマネージャ]] |
[[Category:動的ウィンドウマネージャ]] |
||
[[en:Sway]] |
[[en:Sway]] |
||
− | ''sway'' (SirCmpwn's Wayland window manager) は [[i3]] の [[Wayland]] |
+ | ''sway'' (SirCmpwn's Wayland window manager) は [[i3]] と互換性のある [[Wayland]] コンポジタを作成しようという試みです。[https://swaywm.org 公式ウェブサイト] より: |
+ | :Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。 |
||
+ | == 現状 == |
||
− | {{Note|開発途上なので注意して使って下さい。ただし、開発者はすでに常用できる状態だとしています。}} |
||
+ | Sway は開発途上なので注意して使って下さい。ただし、開発者の [https://drewdevault.com/ Drew DeVault] (別名 SirCmpwn) はすでに常用できる状態だとしています。 |
||
+ | |||
+ | 既に実装されている機能と、まだ実装が進んでいない機能については以下のリンクを参照してください: |
||
+ | *[https://github.com/SirCmpwn/sway/issues/2#issue-99897933 i3 の機能のサポート] |
||
+ | *[https://github.com/SirCmpwn/sway/issues/98 IPC 機能のサポート] |
||
+ | *[https://github.com/SirCmpwn/sway/issues/343 i3bar の互換性] |
||
+ | *[https://github.com/SirCmpwn/sway/issues/307 Airblader のフォークの機能] |
||
== インストール == |
== インストール == |
||
− | ''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます |
+ | ''sway'' は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の git 開発版は {{AUR|sway-git}} でインストールできます。 |
== sway の起動 == |
== sway の起動 == |
||
+ | |||
− | === TTY から === |
||
+ | {{Tip|ウィンドウ装飾ライブラリなど設定する必要がある環境変数については [[Wayland#GUI ライブラリ]]を参照。}} |
||
− | TTY に {{ic|sway}} と入力すれば sway が起動します。 |
||
+ | |||
+ | === ターミナルから === |
||
+ | ターミナルに {{ic|sway}} と入力すれば sway が起動します。 |
||
=== ディスプレイマネージャを使う === |
=== ディスプレイマネージャを使う === |
||
− | sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。 |
+ | sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。 |
=== X から === |
=== X から === |
||
21行目: | 32行目: | ||
== 設定 == |
== 設定 == |
||
+ | i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は sway(5) の [[man ページ]]を見てください。 |
||
+ | |||
=== キーマップ === |
=== キーマップ === |
||
デフォルトでは、sway は US QWERTY キーマップで起動します。次のようなコマンドで sway を起動することでキーマップを変更できます: |
デフォルトでは、sway は US QWERTY キーマップで起動します。次のようなコマンドで sway を起動することでキーマップを変更できます: |
||
− | $ XKB_DEFAULT_LAYOUT=gb XKB_DEFAULT_VARIANT=colemak XKB_DEFAULT_MODEL=pc101 sway |
+ | $ export XKB_DEFAULT_LAYOUT=gb; export XKB_DEFAULT_VARIANT=colemak; export XKB_DEFAULT_MODEL=pc101; sway |
上記のコマンドでは、101キーボードの英国キーマップの Colemak 配列に設定されます。 |
上記のコマンドでは、101キーボードの英国キーマップの Colemak 配列に設定されます。 |
||
31行目: | 44行目: | ||
XKB_DEFAULT_LAYOUT=gb XKB_DEFAULT_VARIANT=colemak XKB_DEFAULT_MODEL=pc101 sway}} |
XKB_DEFAULT_LAYOUT=gb XKB_DEFAULT_VARIANT=colemak XKB_DEFAULT_MODEL=pc101 sway}} |
||
それから、上記のスクリプトを呼び出す {{ic|sway-gb-ck.desktop}} ファイルを作成してください: |
それから、上記のスクリプトを呼び出す {{ic|sway-gb-ck.desktop}} ファイルを作成してください: |
||
− | {{hc|/usr/share/wayland-sessions/sway.desktop|2= |
+ | {{hc|/usr/share/wayland-sessions/sway-gb-ck.desktop|2= |
[Desktop Entry] |
[Desktop Entry] |
||
Name=Sway British(Colemak) |
Name=Sway British(Colemak) |
||
42行目: | 55行目: | ||
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます: |
ステータスバーを表示したいときは {{Pkg|i3status}} プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます: |
||
{{hc|~/.config/sway/config|<nowiki> |
{{hc|~/.config/sway/config|<nowiki> |
||
− | + | bar { |
|
status_command i3status |
status_command i3status |
||
+ | }</nowiki>}} |
||
− | } |
||
− | </nowiki>}} |
||
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください: |
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください: |
||
{{hc|~/.config/i3status/config|<nowiki> |
{{hc|~/.config/i3status/config|<nowiki> |
||
58行目: | 70行目: | ||
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます: |
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|"*"}} という名前にマッチする画面) で背景画像を設定できます: |
||
{{hc|~/.config/sway/config|<nowiki> |
{{hc|~/.config/sway/config|<nowiki> |
||
− | + | output "*" background /home/onny/pictures/fredwang_norway.jpg fill |
|
</nowiki>}} |
</nowiki>}} |
||
ファイルの名前やパスは適当に置き換えて下さい。 |
ファイルの名前やパスは適当に置き換えて下さい。 |
||
=== 入力デバイス === |
=== 入力デバイス === |
||
− | 特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click を有効にするには、以下の input ブロックを追加: |
+ | 特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加: |
{{hc|~/.config/sway/config|<nowiki> |
{{hc|~/.config/sway/config|<nowiki> |
||
− | + | input "2:14:ETPS/2_Elantech_Touchpad" { |
|
− | + | tap enabled |
|
+ | natural_scroll enabled |
||
− | } |
||
+ | } |
||
</nowiki>}} |
</nowiki>}} |
||
デバイスの識別子は以下のコマンドで確認できます: |
デバイスの識別子は以下のコマンドで確認できます: |
||
73行目: | 86行目: | ||
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。 |
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: {{ic|"2:14:ETPS\/2_Elantech_Touchpad"}})。設定に追加するときはエスケープを取り除いてください。 |
||
− | アクセラレーションなど他のオプションについては |
+ | アクセラレーションなど他のオプションについては {{ic|sway-input}} の man ページで詳細を確認できます。 |
+ | |||
− | $ man sway-input |
||
+ | === HiDPI === |
||
+ | |||
+ | 設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは整数で指定する必要があります。HiDPI ディスプレイの場合は 2 などに設定してください。 |
||
+ | output <name> scale <factor> |
||
+ | ディスプレイの名前は以下のコマンドで確認できます: |
||
+ | $ swaymsg -t get_outputs |
||
=== カスタムキーバインド === |
=== カスタムキーバインド === |
||
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには: |
キーボードの[[特別なキーボードキー|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには: |
||
{{hc|~/.config/sway/config|<nowiki> |
{{hc|~/.config/sway/config|<nowiki> |
||
− | + | bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5% |
|
− | + | bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5% |
|
− | + | bindsym XF86AudioToggle exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle |
|
− | + | bindsym XF86MonBrightnessDown exec dsplight down 5 |
|
− | + | bindsym XF86MonBrightnessUp exec dsplight up 5 |
|
</nowiki>}} |
</nowiki>}} |
||
+ | |||
+ | 輝度や色補正を制御するユーティリティについては[[バックライト]]を見てください。 |
||
+ | |||
+ | == Tips and tricks == |
||
+ | |||
+ | === ログイン時に自動起動 === |
||
+ | |||
+ | tty1 にログインしたときに起動するには、以下を {{ic|.bash_profile}} に追加してください: |
||
+ | |||
+ | <nowiki>if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then |
||
+ | exec sway |
||
+ | fi</nowiki> |
||
== 既知の問題 == |
== 既知の問題 == |
||
92行目: | 123行目: | ||
i3-dmenu-desktop を sway から直接使うことはできませんが、パッチが存在します: https://github.com/i3/i3/pull/2265/files 。残念ながら、特定の状況で i3 から使ったときにパッチが問題を起こすために、パッチがマージされることはありません。詳しくは次を参照: https://github.com/SirCmpwn/sway/issues/521 。 |
i3-dmenu-desktop を sway から直接使うことはできませんが、パッチが存在します: https://github.com/i3/i3/pull/2265/files 。残念ながら、特定の状況で i3 から使ったときにパッチが問題を起こすために、パッチがマージされることはありません。詳しくは次を参照: https://github.com/SirCmpwn/sway/issues/521 。 |
||
+ | {{AUR|sway-dmenu-desktop}} をインストールすることでパッチを手動で適用できます。パッケージは {{ic|sway-dmenu-desktop}} という新しい名前のバイナリを作成して sway で使用します。 |
||
− | パッチは手動で適用することができます: |
||
+ | |||
+ | === VirtualBox を使う === |
||
+ | |||
+ | Sway は VirtualBox との相性があまり良くありません (あるいは全く動作しません)。 |
||
+ | |||
+ | === Sway Socket Not Detected === |
||
+ | |||
+ | ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で {{ic|swaymsg -t get_outputs}} などのように {{ic|swaymsg}} を使ったときに、以下のようなメッセージが返ってくることがあります: |
||
+ | sway socket not detected. |
||
+ | ERROR: Unable to connect to |
||
+ | 上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。 |
||
+ | |||
+ | === ディスプレイの解像度が正しくない === |
||
+ | |||
+ | {{ic|output "HDMI-A-1" res 1280x1024}} などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は {{Pkg|wlc}} コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。 |
||
+ | |||
+ | {{ic|1=video=HDMI-A-1:1280x1024:e}} などのカーネルパラメータを指定したりカスタム EDID バイナリ ([[Kernel Mode Setting]] を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。 |
||
+ | |||
+ | === GDM でログインすると余分なカーネルが表示される === |
||
+ | |||
+ | ログインマネージャに GDM を使用していると、ログイン後に余分なカーソルが残ってしまうことがあります ([https://github.com/SirCmpwn/sway/issues/759 issue #759] を参照)。 |
||
+ | 他の TTY に切り替えてから sway に戻ることで解決します。 |
||
− | <nowiki>$ wget 'https://patch-diff.githubusercontent.com/raw/i3/i3/pull/2265.patch'</nowiki> |
||
− | # patch -p0 /usr/bin/i3-dmenu-desktop < 2265.patch |
||
== 参照 == |
== 参照 == |
2017年3月18日 (土) 00:24時点における版
sway (SirCmpwn's Wayland window manager) は i3 と互換性のある Wayland コンポジタを作成しようという試みです。公式ウェブサイト より:
- Sway は Wayland において Xorg の i3 ウィンドウマネージャの代わりとなるウィンドウマネージャです。既存の i3 設定で動作し i3 の機能のほとんどをサポートしています。
現状
Sway は開発途上なので注意して使って下さい。ただし、開発者の Drew DeVault (別名 SirCmpwn) はすでに常用できる状態だとしています。
既に実装されている機能と、まだ実装が進んでいない機能については以下のリンクを参照してください:
インストール
sway は sway パッケージでインストールできます。最新の git 開発版は sway-gitAUR でインストールできます。
sway の起動
ターミナルから
ターミナルに sway
と入力すれば sway が起動します。
ディスプレイマネージャを使う
sway のセッションは /usr/share/wayland-sessions/sway.desktop
にあります。GDM や SDDM などのディスプレイマネージャは自動的にセッションを認識します。
X から
X セッションの中で通常のプログラムと同じように sway を起動してテストすることも可能です。
設定
i3 を既に使っている場合、i3 の設定を ~/.config/sway/config
にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを ~/.config/sway/config
にコピーしてください。サンプル設定ファイルは /etc/sway/config
にあります。ただし DFALLBACK_CONFIG_DIR
フラグが設定されている場合は存在しません。設定方法は sway(5) の man ページを見てください。
キーマップ
デフォルトでは、sway は US QWERTY キーマップで起動します。次のようなコマンドで sway を起動することでキーマップを変更できます:
$ export XKB_DEFAULT_LAYOUT=gb; export XKB_DEFAULT_VARIANT=colemak; export XKB_DEFAULT_MODEL=pc101; sway
上記のコマンドでは、101キーボードの英国キーマップの Colemak 配列に設定されます。
ディスプレイマネージャを使用している場合、sway.desktop
ファイルに上記の行を追加することはできません。root で、以下のファイルを作成してください:
/usr/bin/sway-gb-ck
#!/bin/sh XKB_DEFAULT_LAYOUT=gb XKB_DEFAULT_VARIANT=colemak XKB_DEFAULT_MODEL=pc101 sway
それから、上記のスクリプトを呼び出す sway-gb-ck.desktop
ファイルを作成してください:
/usr/share/wayland-sessions/sway-gb-ck.desktop
[Desktop Entry] Name=Sway British(Colemak) Comment=SirCmpwn's Wayland window manager with the British Colemak keyboard layout Exec=sway-gb-ck Type=Application
ステータスバー
ステータスバーを表示したいときは i3status プログラムをインストールするのが簡単です。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:
~/.config/sway/config
bar { status_command i3status }
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:
~/.config/i3status/config
general { colors = true interval = 5 }
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。
壁紙
以下の行を sway の設定の最後に追加することで、全ての画面 ("*"
という名前にマッチする画面) で背景画像を設定できます:
~/.config/sway/config
output "*" background /home/onny/pictures/fredwang_norway.jpg fill
ファイルの名前やパスは適当に置き換えて下さい。
入力デバイス
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:
~/.config/sway/config
input "2:14:ETPS/2_Elantech_Touchpad" { tap enabled natural_scroll enabled }
デバイスの識別子は以下のコマンドで確認できます:
$ swaymsg -t get_inputs
上記のコマンドの出力には、"/" などの記号をエスケープするために "\" が付いていることがあります (例: "2:14:ETPS\/2_Elantech_Touchpad"
)。設定に追加するときはエスケープを取り除いてください。
アクセラレーションなど他のオプションについては sway-input
の man ページで詳細を確認できます。
HiDPI
設定ファイルの output
コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは整数で指定する必要があります。HiDPI ディスプレイの場合は 2 などに設定してください。
output <name> scale <factor>
ディスプレイの名前は以下のコマンドで確認できます:
$ swaymsg -t get_outputs
カスタムキーバインド
キーボードの特殊なキーを使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:
~/.config/sway/config
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') +5% bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pacmd list-sinks |awk '/* index:/{print $3}') -5% bindsym XF86AudioToggle exec pactl set-sink-mute $(pacmd list-sinks |awk '/* index:/{print $3}') toggle bindsym XF86MonBrightnessDown exec dsplight down 5 bindsym XF86MonBrightnessUp exec dsplight up 5
輝度や色補正を制御するユーティリティについてはバックライトを見てください。
Tips and tricks
ログイン時に自動起動
tty1 にログインしたときに起動するには、以下を .bash_profile
に追加してください:
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then exec sway fi
既知の問題
i3-dmenu-desktop を sway から直接使うことはできませんが、パッチが存在します: https://github.com/i3/i3/pull/2265/files 。残念ながら、特定の状況で i3 から使ったときにパッチが問題を起こすために、パッチがマージされることはありません。詳しくは次を参照: https://github.com/SirCmpwn/sway/issues/521 。
sway-dmenu-desktopAUR をインストールすることでパッチを手動で適用できます。パッケージは sway-dmenu-desktop
という新しい名前のバイナリを作成して sway で使用します。
VirtualBox を使う
Sway は VirtualBox との相性があまり良くありません (あるいは全く動作しません)。
Sway Socket Not Detected
ターミナルマルチプレクサ (例: GNU Screen や tmux) の中で swaymsg -t get_outputs
などのように swaymsg
を使ったときに、以下のようなメッセージが返ってくることがあります:
sway socket not detected. ERROR: Unable to connect to
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。
ディスプレイの解像度が正しくない
output "HDMI-A-1" res 1280x1024
などの設定オプションで解像度が正しく設定できない場合があります。解像度の設定は wlc コンポジタが受け持っており、TTY からディスプレイの解像度を認識します。
video=HDMI-A-1:1280x1024:e
などのカーネルパラメータを指定したりカスタム EDID バイナリ (Kernel Mode Setting を参照) を使用することで TTY の解像度を変えられる場合があります (WLC や Sway の解像度も変わります)。
GDM でログインすると余分なカーネルが表示される
ログインマネージャに GDM を使用していると、ログイン後に余分なカーソルが残ってしまうことがあります (issue #759 を参照)。
他の TTY に切り替えてから sway に戻ることで解決します。