<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mycelithyl</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mycelithyl"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Mycelithyl"/>
	<updated>2026-05-03T03:27:10Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Xterm&amp;diff=41297</id>
		<title>Xterm</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Xterm&amp;diff=41297"/>
		<updated>2026-01-18T14:19:06Z</updated>

		<summary type="html">&lt;p&gt;Mycelithyl: /* カラー */ 衍字を除去、man pageの記法を修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ターミナルエミュレータ]]&lt;br /&gt;
[[de:Xterm]]&lt;br /&gt;
[[en:Xterm]]&lt;br /&gt;
[[fr:Xterm]]&lt;br /&gt;
[[ru:Xterm]]&lt;br /&gt;
&#039;&#039;&#039;xterm&#039;&#039;&#039; は [[Xorg|X Window System]] の標準の[[Wikipedia:Terminal emulator|ターミナルエミュレータ]]です。様々なカスタマイズができ、多数の役に立つ機能と、少数のあまり役に立たない機能を備えています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|xterm}} パッケージを [[インストール]] して下さい。&lt;br /&gt;
&lt;br /&gt;
== 基本設定 ==&lt;br /&gt;
&lt;br /&gt;
=== リソースファイルの設定 ===&lt;br /&gt;
&lt;br /&gt;
ターミナルエミュレータとして使いやすさを向上させるオプションを [[X リソース]]ファイルで設定することができます。オプションのリストは {{ic|man xterm}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== TERM 環境変数 ====&lt;br /&gt;
&lt;br /&gt;
xterm が {{ic|TERM}} 変数を適切に設定できるようにしてください。{{ic|~/.bashrc}} や {{ic|~/.bash_profile}} などのファイルから TERM 変数を設定してはいけません。ターミナルが自ら適切な {{ic|TERM}} を設定することで、適切な &#039;&#039;terminfo&#039;&#039; ファイルが使われるようになります。利用できる terminfo ファイルは &#039;&#039;xterm&#039;&#039; と &#039;&#039;xterm-256color&#039;&#039; です。&lt;br /&gt;
&lt;br /&gt;
TERM を明示的に設定しなかった場合、xterm は {{ic|$TERM}} を {{ic|xterm}} と設定します。以下のコマンドを xterm の中から実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
 $ echo $TERM&lt;br /&gt;
 $ tset -q&lt;br /&gt;
&lt;br /&gt;
TERM が明示的に設定されていない場合、vim など、プログラムによっては何かキーが押されるまでカラースキームが正しく表示されないことがあります。この問題は以下のようにリソースを設定することで直せます:&lt;br /&gt;
&lt;br /&gt;
 xterm*termName: xterm-256color&lt;br /&gt;
&lt;br /&gt;
==== UTF-8 ====&lt;br /&gt;
&lt;br /&gt;
[[ロケール]] が UTF-8 に設定されていることを確認してください。UTF-8 を使用しない場合は、設定によって xterm がロケールに厳密に従うように強制する必要がある場合があります。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.locale: true&lt;br /&gt;
&lt;br /&gt;
UTF-8 を強制するには、次のように設定します。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.locale: false&lt;br /&gt;
 XTerm.vt100.utf8: true&lt;br /&gt;
&lt;br /&gt;
XTerm は {{ic|eo.UTF-8}} を含むすべての UTF-8 ロケールをサポートしているわけではないためこの設定は、多くの場合必要になります。&lt;br /&gt;
&lt;br /&gt;
==== &#039;Alt&#039; キーを他のターミナルエミュレータと同じように動作させる ====&lt;br /&gt;
&lt;br /&gt;
例えば {{Ic|Alt+f}} を押すと {{Ic|æ}} が挿入されます。{{ic|Alt}} の代わりに {{Ic|^[}} を送るようにするには、(gnome-terminal や konsole のように) 以下を設定します。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.metaSendsEscape: true&lt;br /&gt;
&lt;br /&gt;
==== バックスペースキーの修正 ====&lt;br /&gt;
&lt;br /&gt;
Arch Linux では、xterm は backspace が押されると {{ic|^H}} キーを送信します。これは [[Emacs]] の {{ic|Ctrl+H}} キーコンビネーションを壊してしまいます。&lt;br /&gt;
回避策として、リソースに以下を追加して下さい。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.backarrowKey: false&lt;br /&gt;
 XTerm.ttyModes: erase ^?&lt;br /&gt;
&lt;br /&gt;
==== キーバインド ====&lt;br /&gt;
&lt;br /&gt;
xterm は端末を操作するための一連の &amp;quot;アクション&amp;quot; を定義しています。例えば、 {{ic|copy-selection()}}, {{ic|hard-reset()}}, {{ic|scroll-back()}} などです。これらのアクションは {{ic|translations}} リソースを使用してマウスとキーの組み合わせにマッピングできます。例えば、ウィンドウを最大化/復元するために {{ic|Ctrl+M}} と {{ic|Ctrl+R}} をマップすることができます。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.translations: #override \n\&lt;br /&gt;
     Ctrl &amp;lt;Key&amp;gt;M: maximize() \n\&lt;br /&gt;
     Ctrl &amp;lt;Key&amp;gt;R: restore()&lt;br /&gt;
&lt;br /&gt;
{{ic|#override}} は、これらのキー割り当てが既存のキー割り当てを上書きすることを示します (カスタムキー割り当てでは、ほとんどの場合、これが必要です。) 各バインドはエスケープシーケンス {{ic|n}} で区切らなければなりません。もし、リテラルな改行を挿入したい場合は、それもエスケープする必要があります（{{ic|ac|n}} となります。）動作の完全なリストと多くの例は {{man|1|xterm}} の &#039;&#039;&#039;KEY BINDINGS&#039;&#039;&#039; セクションを参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|キーバインドを切り替えて使うこともできます。man ページの {{ic|keymap()}} アクションを参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== スクロール ===&lt;br /&gt;
&lt;br /&gt;
xterm ウィンドウの一番下に新しい行が書き込まれると、一番上の古い行は消えます。マウスホイールや {{ic|Shift+PageUp}} または {{ic|Shift+PageDown}} のキーコンビネーション、あるいはスクロールバーを使うことで画面から消えた行をスクロールして見ることができます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、1024行が保存されます。保存する行数は {{ic|saveLines}} リソースで変更できます:&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.saveLines: 4096&lt;br /&gt;
&lt;br /&gt;
スクロールの設定を変更する他の X リソースとしては {{ic|jumpScroll}} (デフォルトでは {{ic|true}}) や、{{ic|multiScroll}} と {{ic|fastScroll}} があります (どちらもデフォルトでは {{ic|false}}) [[#VT オプションメニュー|別のスクリーン]] の中をスクロールするには、{{ic|alternateScroll}} を {{ic|true}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
==== スクロールバー ====&lt;br /&gt;
&lt;br /&gt;
スクロールバーはデフォルトでは表示されません。これを有効にしたり、リソース設定を通じて外観を調整することができます (&amp;quot;scrollbar&amp;quot; の大文字と小文字の違いに注意してください)&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.scrollBar: true&lt;br /&gt;
 XTerm.vt100.scrollbar.width: 8&lt;br /&gt;
&lt;br /&gt;
他のスクロールバーリソースについては、{{man|1|xterm|Scrollbar Resources}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
スクロールバーの使い方は普段使用するようなスクロールバーとは異なっています。&lt;br /&gt;
&lt;br /&gt;
*下にスクロール:&lt;br /&gt;
** スクロールバーを左マウスボタンでクリック&lt;br /&gt;
** スクロールバーの &#039;&#039;つまみ&#039;&#039; (サム) の下部を中マウスボタンでクリック&lt;br /&gt;
*上にスクロール:&lt;br /&gt;
** スクロールバーを右マウスボタンでクリック&lt;br /&gt;
** スクロールバーの &#039;&#039;つまみ&#039;&#039; (サム) の上部を中マウスボタンでクリック&lt;br /&gt;
*上下どちらかに移動:&lt;br /&gt;
** 中マウスボタンで &#039;&#039;つまみ&#039;&#039; をクリックして &amp;quot;クリックアンドドラッグ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== メニュー ===&lt;br /&gt;
&lt;br /&gt;
Arch Linux の xterm ではツールバーやメニューバーは無効にしてコンパイルされています。メニューは xterm ウィンドウの中で {{ic|Ctrl+MouseButton}} を押すことでポップアップして表示されます。メニューアイテムで設定できることは、大抵コマンドラインオプションやリソースの設定でも可能です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|ポップアップメニューウィンドウが小さく表示される場合、リソースファイルに {{ic|xterm*geometry: 80x32}} などと設定しているのが原因です。この設定だと xterm のメインウィンドウが80列32行で起動するのではなく、メニューウィンドウが80ピクセルx32ピクセルになります。次のように置き換えてください: {{ic|xterm*VT100.geometry: 80x32}}。}}&lt;br /&gt;
&lt;br /&gt;
メニューオプションは以下で説明します。&lt;br /&gt;
&lt;br /&gt;
==== メインのオプションメニュー ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ctrl + 左マウス&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*{{ic|Secure Keyboard}} を設定すると xterm ウィンドウだけがキーストロークを受け取れるようになり、他のアプリケーションがキーストロークを傍受することはできなくなります。実行すると画面の色が反転します。色が反転しない場合、&#039;&#039;Secure Keyboard&#039;&#039; モードが有効になっていません。このオプションの制限については xterm の man ページの &amp;quot;SECURITY&amp;quot; セクションを読んで下さい。&lt;br /&gt;
&lt;br /&gt;
*{{ic|Allow SendEvents}} は他のプロセスが xterm ウィンドウに打鍵やマウスのイベントを送信できるようにします。セキュリティ上のリスクがあるため、何の効果があるのかよくわからないときは有効にしないでください。&lt;br /&gt;
&lt;br /&gt;
*{{ic|Log to File}} – ログファイルの名前は {{ic|Xterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX}} になります。このファイルには印字された出力とマウスの移動が全て記録されます。ログ出力はセキュリティリスクになることもあります。&lt;br /&gt;
&lt;br /&gt;
*6つの {{ic|Send *** Signal}} メニューアイテムはキーボードが動作しなくなったような場合を除いて、基本的に使うことはありません。{{ic|HUP}}, {{ic|TERM}}, {{ic|KILL}} は xterm ウィンドウを終了します。{{ic|KILL}} はできるだけ使わないでください。&lt;br /&gt;
&lt;br /&gt;
*{{ic|Quit}} メニューアイテムは xterm ウィンドウを終了します。{{ic|HUP}} シグナルを送信するのと同じです。キーボードで {{ic|Ctrl+d}} を押すか、または {{ic|exit}} を入力することでも xterm は終了できます。&lt;br /&gt;
==== VT オプションメニュー ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ctrl + 中マウス&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*{{ic|Select to Clipboard}} – 通常、選択されたテキストは PRIMARY に保存され、中マウスボタンを使うか {{ic|Shift+Insert}} で貼り付けることができます。このオプションをオンにすると、選択されたテキストは CLIPBOARD を使うようになり、xterm ウィンドウで選択したテキストを {{ic|Ctrl+v}} で GUI アプリケーションに貼り付けることができます。対応する XTerm リソースは {{ic|selectToClipboard}} です。&lt;br /&gt;
&lt;br /&gt;
*{{ic|Show Alternate Screen}} – &#039;&#039;vim&#039;&#039; や &#039;&#039;less&#039;&#039; などのターミナルアプリケーションを使うときに、新しい画面が開きます。メインの VT ウィンドウは非表示になりますが、メモリ上に残ります。このメニューオプションを有効にすると、メインウィンドウを見ることができるようになりますが、メインウィンドウでコマンドを実行することはできません。メインウィンドウからテキストを選択・コピーすることは可能です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|代替画面で実行中のプロセスを一時停止してから再開すると、{{ic|Show Alternate Screen}} を使用するよりも多くの機能が提供されます。bash シェルでは、{{ic|Ctrl+z}} を押すとプロセスが中断され、{{ic|fg}} コマンドを発行するとプロセスが再開されます。}}&lt;br /&gt;
&lt;br /&gt;
*{{ic|Show Tek Window}} と {{ic|Switch to Tek Mode}} – [[Wikipedia:Tektronix 4010|Tektronix 4014]] は CAD やプロットアプリケーションで使われていた1970年代のグラフィックスターミナルです。{{Pkg|plotutils}} に含まれているコマンドラインプログラム {{ic|graph}} やアプリケーション {{Pkg|gnuplot}} が xterm の Tek エミュレーションを使うことができます。ただし、普通の人はデータを図に記すのに近代的なディスプレイオプションを使うでしょう。下の [[#Tek 4014 デモンストレーション]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== VT フォントメニュー ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Ctrl + 右マウス&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*XLFD フォントを使用する場合、最初の7つのメニューアイテムが xterm ウィンドウで使われるフォントフェイスやフォントサイズを変更します。Xft フォントを使う場合、フォントサイズだけが変わります。フォントフェイスは変わりません。&lt;br /&gt;
&lt;br /&gt;
{{Tip|プロセスを監視したいが、ターミナルウィンドウに大きな画面スペースを割きたくない場合に、{{ic|Unreadable}} と {{ic|Tiny}} が便利です。 例えば、長時間のコンパイル処理で、処理が完了したことだけを確認したいような場合に使用します。}}&lt;br /&gt;
&lt;br /&gt;
* XLFD フォントの名前を使うときに、{{ic|Selection}} で PRIMARY (または CLIPBOARD) セレクションに保存されたフォントの名前に切り替えられます。&lt;br /&gt;
&lt;br /&gt;
==== Tek オプションメニュー ==== &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tek Window&#039;&#039;&#039; から &#039;&#039;&#039;&#039;&#039;Ctrl + 中マウス&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最初のセクションのオプションは Tek ウィンドウのフォントサイズを変えられます。2番目のセットのオプションは Tek エミュレーションウィンドウとメインウィンドウ、&#039;&#039;VT&#039;&#039; ウィンドウのフォーカスを移動したり、Tek ウィンドウを終了・非表示にするのに使います。&lt;br /&gt;
&lt;br /&gt;
=== コピーアンドペースト ===&lt;br /&gt;
まず、xterm（または他のアプリケーション）でマウスを使ってテキストをハイライトすると、コピーするテキストが選択され、マウスの中ボタンをクリックすると、ハイライトされたテキストがペーストされます。また、キーの組み合わせ {{ic|Shift+Insert}} でも貼り付けられますが、これは xterm 内に限られます。&lt;br /&gt;
&lt;br /&gt;
==== PRIMARY または CLIPBOARD ====&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、X で動作する xterm などのアプリケーションは、選択されたテキストを PRIMARY セレクションと呼ばれるバッファにコピーします。PRIMARY セレクションは短命です。他のテキストが選択されるとすぐに新しい PRIMARY セレクションによってテキストは置き換えられます。アプリケーションによっては ({{ic|Shift+Insert}} ではなく) 中マウスで PRIMARY セレクションを貼り付けることができますが、PRIMARY を全く貼り付けることができないアプリケーションも存在します。&lt;br /&gt;
&lt;br /&gt;
テキストをコピーするときは CLIPBOARD セレクションと呼ばれるバッファも使われます。CLIPBOARD のテキストは長命で、ユーザーによって上書きされるまで保存されます。{{ic|Ctrl+c}}, {{ic|Ctrl+x}}, {{ic|Ctrl+v}} を使ってテキストのコピー・切り取り・貼り付けをするアプリケーションはこの CLIPBOARD を使っています。&lt;br /&gt;
&lt;br /&gt;
他のセレクションを選択するとすぐコピーしたテキストが消失してしまう PRIMARY セレクションの儚さが鬱陶しいと感じられるかもしれません。Xterm では [[#VT オプションメニュー]] の {{ic|Select to Clipboard}} や {{ic|selectToClipboard}} リソースを使うことで PRIMARY と CLIPBOARD の使用を切り替えることができます。&lt;br /&gt;
&lt;br /&gt;
==== PRIMARY と CLIPBOARD ====&lt;br /&gt;
&lt;br /&gt;
上記の設定では PRIMARY または CLIPBOARD どちらかを使うことを選択できますが、両方使いたい場合、{{ic|.Xresources}} に以下のように記述する必要があります:&lt;br /&gt;
&lt;br /&gt;
 XTerm*VT100.translations: #override &amp;lt;Btn1Up&amp;gt;: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)&lt;br /&gt;
&lt;br /&gt;
==== テキストの選択 ====&lt;br /&gt;
&lt;br /&gt;
初めて使う人は、マウスの左ボタンで &#039;&#039;クリック＆ドラッグ&#039;&#039; することでテキストを選択できます。 ダブルクリックすると、単語が選択されます。単語は、連続したアルファベット文字とアンダースコア、または基本正規表現（BRE）{{ic|[A-Za-z_]}} で定義されます。 トリプルクリックは行を選択し、&#039;&#039;タブ&#039;&#039; 文字は通常複数の &#039;&#039;スペース&#039;&#039; 文字としてコピーされます。&lt;br /&gt;
&lt;br /&gt;
もう一つのテキスト選択の方法は、特に複数の全画面をコピーするときに便利です。&lt;br /&gt;
#選択したい部分の始点で左クリックします。&lt;br /&gt;
#選択範囲の終端が見える位置までスクロールする。&lt;br /&gt;
#選択範囲の終点で右クリック。&lt;br /&gt;
ハイライトされた選択範囲は、右クリックによって拡大・縮小することができます。&lt;br /&gt;
&lt;br /&gt;
xterm ウィンドウ内の任意の場所で左クリックすると、選択したテキストを消去することができます。&lt;br /&gt;
&lt;br /&gt;
== カラー ==&lt;br /&gt;
&lt;br /&gt;
xtermのデフォルトは、白の &#039;&#039;背景色&#039;&#039; に黒の &#039;&#039;前景色&#039;&#039; です。 前景色と背景色を逆にするには、リソースを設定することで逆転できます。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.reverseVideo: true&lt;br /&gt;
&lt;br /&gt;
あるいは、リソースを使用して、前景色と背景色 (および最初の 16 個の端子色) を直接変更することもできます。&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.foreground: white&lt;br /&gt;
 XTerm.vt100.background: black&lt;br /&gt;
 XTerm.vt100.color0: rgb:28/28/28&lt;br /&gt;
 ! ...&lt;br /&gt;
 XTerm.vt100.color15: rgb:e4/e4/e4&lt;br /&gt;
&lt;br /&gt;
{{Note|X ライブラリを使用するアプリケーションの色は、さまざまな方法で指定することができます。いくつかの色は、割り当てられた名前で指定することができます。 {{Pkg|emacs}} または {{Pkg|vim}} がインストールされていれば、 {{ic|/usr/share/emacs/*/etc/rgb.txt}} または {{ic|/usr/share/vim/*/rgb.txt}} で色名のリストとその 10 進数の RGB 値を確認することができます。 色は 16 進数の RGB 値で {{ic|rgb:RR/GG/BB}} というフォーマットで指定することもできますし、古い構文で推奨されていない {{ic|#RRGGBB}} という構文で指定することもできます。{{ic|PapayaWhip}} の色は {{ic|rgb:ff/ef/d5}} と同じで、これは {{ic|#ffefd5}} と同じです。色の構文についてのより完全な説明は {{Pkg|xorg-docs}} の {{man|7|X}} を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
カラースキームについては [https://bbs.archlinux.org/viewtopic.php?id=51818&amp;amp;p=1 Terminal Colour Scheme Screenshots] のフォーラムスレッドに様々な設定例が載っています。&lt;br /&gt;
&lt;br /&gt;
{{Tip|多くの人は、アプリケーションクラスやアプリケーションインスタンスを指定せずに、X リソースファイルで色を指定します&lt;br /&gt;
&lt;br /&gt;
 *foreground: rgb:b2/b2/b2&lt;br /&gt;
 *background: rgb:08/08/08&lt;br /&gt;
&lt;br /&gt;
上記の例では、これらのリソースを使用するすべての&#039;&#039;Xlib&#039;&#039; アプリケーション (xclock、xfontsel など) の前景色と背景色の値を設定しています。これは、統一された配色を実現するための優れた簡単な方法です。}}&lt;br /&gt;
&lt;br /&gt;
== フォント ==&lt;br /&gt;
&lt;br /&gt;
=== デフォルトフォント ===&lt;br /&gt;
&lt;br /&gt;
Xterm のデフォルトフォントは [[X Logical Font Description]] エイリアスで {{ic|fixed}} という名前のビットマップフォントです。大抵は以下のフォントになります:&lt;br /&gt;
&lt;br /&gt;
 -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-?&lt;br /&gt;
&lt;br /&gt;
このフォントは {{ic|6x13}} という名前でもエイリアスされていて、ユニコードのグリフに対して驚くほど広いカバー範囲を持っています。 デフォルトの &amp;quot;TrueType&amp;quot; フォントは {{ic|mono}} という名前の 14-point フォントになります。使用される &#039;&#039;FreeType&#039;&#039; フォントは、このコマンドで見つけることができます。&lt;br /&gt;
&lt;br /&gt;
 $ fc-match mono&lt;br /&gt;
&lt;br /&gt;
フォントが TrueType であるかどうかに応じて、リソースでフォントを指定できます:&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.faceName: Liberation Mono:size=10:antialias=false&lt;br /&gt;
 XTerm.vt100.font: 7x13&lt;br /&gt;
&lt;br /&gt;
テストするには、コマンドラインでフォントを設定することもできます: {{ic|faceName}} の場合は {{ic|-fa}}、{{ic|font}} の場合は {{ic|-fn}}。両方の種類のフォントを設定した場合は、[[Xterm#VT フォントメニュー|VT フォントメニュー]] から {{ic|TrueType フォント}} を切り替えることで、2 つのフォントを切り替えることができます。次のリソースを使用してデフォルトを選択することもできます&lt;br /&gt;
&lt;br /&gt;
 ! start with TrueType fonts disabled&lt;br /&gt;
 XTerm.vt100.renderFont: false&lt;br /&gt;
&lt;br /&gt;
=== 太字フォントと下線フォント ===&lt;br /&gt;
&lt;br /&gt;
xterm で XLFD 名を使用する場合、イタリック体のフォントは下線文字として表示されます。 TrueType フォントは斜体の書体を使用する必要があります。&lt;br /&gt;
&lt;br /&gt;
コマンドライン、{{ic|-fb}}、または {{ic|XTerm.vt100.boldFont}} リソースで太字フォントを指定しない場合、xterm は通常のフォントに一致する太字フォントを探そうとします。 一致するフォントが見つからない場合、太字フォントは通常フォントを &#039;&#039;overstriking&#039;&#039; することによって作成されます。&lt;br /&gt;
&lt;br /&gt;
=== CJK フォント ===&lt;br /&gt;
&lt;br /&gt;
中国語や日本語、韓国語で使われる全角文字が含まれているフォントは多くありません。これらの言語を使う場合は [[urxvt]] など別のターミナルエミュレータを使うほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
xterm における CJK のビットマップの XLFD フォントの使用は落とし穴がたくさんあります。CJK を表示するときは {{ic|faceNameDoublesize}} リソースを利用して TrueType フォントを使うほうがずっと楽です。以下の例では通常フォントとして &#039;&#039;DejaVu Sans Mono&#039;&#039; を全角フォントとして &#039;&#039;WenQuanYi Bitmap Song&#039;&#039; を使用します:&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.faceName: DejaVu Sans Mono:style=Book:antialias=false&lt;br /&gt;
 XTerm.vt100.faceNameDoublesize: WenQuanYi WenQuanYi Bitmap Song&lt;br /&gt;
 XTerm.vt100.faceSize: 8&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== 自動透過 ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|transset-df}} パッケージと [[Xcompmgr]] などの[[Wikipedia:Compositing window manager|コンポジットマネージャ]]をインストールして、以下の行を {{ic|~/.bashrc}} に追加します:&lt;br /&gt;
 [ -n &amp;quot;$XTERM_VERSION&amp;quot; ] &amp;amp;&amp;amp; transset-df -a &amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
これで、xterm でシェルを起動し、コンポジットマネージャーが起動している場合は、毎回、xterm ウィンドウが透明になります。&lt;br /&gt;
{{ic|transset-df}} の前にあるテストは {{ic|XTERM_VERSION}} が定義されていない場合に transet が実行されないようにするものです。この方法でシェル以外のプログラムを起動した場合、ターミナルが透明にならないことに注意してください。この機能が必要であれば、これを回避できる可能性があります。&lt;br /&gt;
&lt;br /&gt;
[[en2:Per Application Transparency|アプリケーションごとの透過設定]] も参照。&lt;br /&gt;
&lt;br /&gt;
=== 緊急ベルの有効化 ===&lt;br /&gt;
&lt;br /&gt;
ベルの文字がウィンドウマネージャーに緊急事態を知らせるようにするには、次のように設定します:&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.bellIsUrgent: true&lt;br /&gt;
&lt;br /&gt;
=== フォントのヒント ===&lt;br /&gt;
&lt;br /&gt;
==== 太字や斜体の代わりに色を使う ====&lt;br /&gt;
&lt;br /&gt;
フォントサイズを小さくしている場合、太字や斜体の文字を読むのは困難です。太字や斜体、下線を無効にして代わりにテキストに色を付けることができます。例:&lt;br /&gt;
&lt;br /&gt;
 ! disable bold font faces, instead make text light blue.&lt;br /&gt;
 XTerm.vt100.colorBDMode: true&lt;br /&gt;
 XTerm.vt100.colorBD: rgb:82/a4/d3&lt;br /&gt;
 ! disable underlined text, instead make it white.&lt;br /&gt;
 XTerm.vt100.colorULMode: true&lt;br /&gt;
 XTerm.vt100.colorUL: rgb:e4/e4/e4&lt;br /&gt;
 ! similarly use colorIT for italics&lt;br /&gt;
&lt;br /&gt;
書式設定の情報については、[[Xterm#カラー|カラー]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 行間の調整 ====&lt;br /&gt;
&lt;br /&gt;
テキストの行が近すぎたり、間隔が広すぎたりすることがあります。一例として、&#039;&#039;DejaVu Sans Mono&#039;&#039; を使用すると、アンダーバー記号が CJK グリフまたは下の行のカーソルブロックに突き当たる可能性があります。タイポグラフによって &#039;&#039;leading &#039;&#039; と呼ばれる行間隔は、たとえば間隔を広げるために、次のリソースを使用して調整できます:&lt;br /&gt;
&lt;br /&gt;
 XTerm.vt100.scaleHeight: 1.01&lt;br /&gt;
&lt;br /&gt;
{{ic|scaleHeight}} に設定できる値は {{ic|0.9}} から {{ic|1.5}} までの間の数値で、デフォルトは {{ic|1.0}} です。&lt;br /&gt;
&lt;br /&gt;
=== Tek 4014 デモンストレーション ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|plotutils}} をインストールしている場合、xterm の Tektronix 4014 エミュレーションを使って plotutils パッケージのテストファイルを表示することができます。[[#VT オプションメニュー]] のメニューアイテム {{ic|Switch to Tek Mode}} を使うか次のコマンドで xterm を起動することで Tek ウィンドウを開いて下さい:&lt;br /&gt;
 $ xterm -t -tn tek4014&lt;br /&gt;
完全に表示されると、PS1 は正しく表示されなくなります。新しいウィンドウで、次のコマンドを入力してください:&lt;br /&gt;
 cat /usr/share/tek2plot/dmerc.tek&lt;br /&gt;
Tek ウィンドウに世界地図が表示されます。同じディレクトリにある他の {{ic|*.tek}} ファイルを表示することもできます。Tek ウィンドウを終了するには、xterm メニューを使います。&lt;br /&gt;
&lt;br /&gt;
=== X11 の入力スヌーピングからの保護 ===&lt;br /&gt;
&lt;br /&gt;
[[Xterm#メインのオプションメニュー|メインのオプションメニュー]] から &amp;quot;Secure Keyboard&amp;quot; モードを有効にするのは不便な場合があります。代わりに、[[Xterm#キーバインド|キーバインド]] を使用して {{ic|secure()}} アクションを呼び出すことができます:&lt;br /&gt;
&lt;br /&gt;
 Ctrl Alt &amp;lt;Key&amp;gt;S: secure()&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== スクロールでチラつきが発生する ===&lt;br /&gt;
&lt;br /&gt;
{{Note|ダブルバッファを使用すると非ビットマップフォントが正しく表示されなくなることがあります。}}&lt;br /&gt;
&lt;br /&gt;
[[ABS]] を使って {{ic|--enable-double-buffer}} フラグを指定して xterm をリビルドしてください:&lt;br /&gt;
&lt;br /&gt;
 ./configure --prefix=/usr \&lt;br /&gt;
      ...&lt;br /&gt;
      --with-utempter \&lt;br /&gt;
      --enable-double-buffer&lt;br /&gt;
&lt;br /&gt;
詳しくは [https://bbs.archlinux.org/viewtopic.php?id=146023 Xterm modifications] を参照。&lt;br /&gt;
&lt;br /&gt;
=== 設定が適用されない ===&lt;br /&gt;
&lt;br /&gt;
[[i3]] などの一部のアプリケーションでは、{{ic|xterm}} の代わりに {{ic|uxterm}} のラッパーを呼び出すことがあります。このような場合は、{{ic|uxterm}} と同じ設定を追加することで解決することができます。&lt;br /&gt;
 UXTerm.vt100.reverseVideo: true&lt;br /&gt;
&lt;br /&gt;
設定ファイルに重複した項目を書かない方が良い場合は、ワイルドカードによるマッチングを使用することができます。&lt;br /&gt;
 *.vt100.reverseVideo: true&lt;br /&gt;
&lt;br /&gt;
=== フォントサイズメニューでフォントサイズが変更されない ===&lt;br /&gt;
&lt;br /&gt;
フォントサイズの変更で問題が発生した場合は、{{Pkg|xorg-mkfontscale}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://lukas.zapletalovi.com/2013/07/hidden-gems-of-xterm.html Hidden gems of Xterm]&lt;br /&gt;
* [http://www.in-ulm.de/~mascheck/X11/XTerm Commented XTerm resources]&lt;/div&gt;</summary>
		<author><name>Mycelithyl</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Nnn&amp;diff=41262</id>
		<title>Nnn</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Nnn&amp;diff=41262"/>
		<updated>2025-12-22T05:06:23Z</updated>

		<summary type="html">&lt;p&gt;Mycelithyl: /* 終了時に cd (Ctrl-G) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:nnn}}&lt;br /&gt;
[[Category:ファイルマネージャ]]&lt;br /&gt;
[[Category:コンソールアプリケーション]]&lt;br /&gt;
[[en:nnn]]&lt;br /&gt;
[[ru:Nnn]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ファイルマネージャの機能}}&lt;br /&gt;
{{Related|Midnight Commander}}&lt;br /&gt;
{{Related|ranger}}&lt;br /&gt;
{{Related|vifm}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jarun/nnn nnn] (n³ とも表記されます) は C 言語で書かれた携帯端末用ファイルマネージャです。 フラットテキストプラグインシステムにより簡単に拡張でき、[https://github.com/mcchrish/nnn.vim (neo)vim] プラグインを含む、すでに利用できるプラグインに加えて独自の言語依存スクリプトを追加することができ ます。 &#039;&#039;xz&#039;&#039; のような一般的にインストールされるフォーマットへのアーカイブ/解凍、ディスク使用量の分析、ファジーアプリランチャー、バッチファイルリネーマー、ファイルピッカーがプラグインアーキテクチャによりネイティブに機能します。&#039;&#039;nnn&#039;&#039; は、正規表現 (または単純な文字列) フィルタによる即時の &#039;&#039;search-as-you-type&#039;&#039; と、ディレクトリ自動選択によるフィルタモードで連続的にナビゲーションする &#039;&#039;navigate-as-you-type&#039;&#039; モードをサポートします。また、コンテキスト、ブックマーク、複数のソートオプション、SSHFS、選択範囲（選択されたファイルのグループ）に対するバッチ操作など、さまざまな機能がサポートされています。&lt;br /&gt;
&lt;br /&gt;
その豊富な機能にもかかわらず、&#039;&#039;nnn&#039;&#039; は使いやすいように設計されており、設定ファイルを使用せずに [[環境変数]] によって設定されるようになっています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
nnn は {{Pkg|nnn}} パッケージで[[インストール]]できます。&lt;br /&gt;
&lt;br /&gt;
=== 使用方法 ===&lt;br /&gt;
&lt;br /&gt;
nnn は vim ライクな {{ic|hjkl}} の文字、あるいは方向キーで制御できます。キーを覚える必要はありません。方向キーと {{ic|/}} と {{ic|q}} で十分です。{{ic|?}} を押すことでキーボードショートカットのヘルプをいつでも表示できます。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
nnn は[[環境変数]]で設定します。{{ic|~/.bashrc}} を編集してください。設定について詳しくはマニュアルページの {{man|1|nnn}} や nnn wiki の [https://github.com/jarun/nnn/wiki 設定ページ] に詳しく書かれています。&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.bashrc|output=&lt;br /&gt;
export NNN_BMS=&#039;d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/&#039;&lt;br /&gt;
export NNN_SSHFS=&amp;quot;sshfs -o follow_symlinks&amp;quot;        # make sshfs follow symlinks on the remote&lt;br /&gt;
export NNN_COLORS=&amp;quot;2136&amp;quot;                           # use a different color for each context&lt;br /&gt;
export NNN_TRASH=1                                 # trash (needs trash-cli) instead of delete&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|ディスプレイマネージャを使っている場合、nnn を {{ic|nnn.desktop}} から起動させるときに {{ic|.bashrc}} が読み込まれないことがあります。[https://github.com/jarun/nnn/wiki/Advanced-use-cases#desktop-integration Desktop Integration] にしたがって設定してください。}}&lt;br /&gt;
{{ic|NNN_BMS}} 変数で、ブックマークしたディレクトリに簡単にジャンプするショートカットを選択します。デフォルトでは {{ic|b}} に設定されている {{ic|&amp;lt;leader-key&amp;gt;}} で呼び出せます。上記の例の場合 {{ic|bD}} とキーを押すことで nnn は {{ic|~/Downloads}} に移動します。ただし、これらはすべてオプションです。&#039;&#039;nnn&#039;&#039; は、すべてのマシンで一貫して同じように動作します。&lt;br /&gt;
&lt;br /&gt;
==== ターミナルでファイルを選択 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|nnn}} で選択したファイルのリストを取得するには以下のエイリアスを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.bashrc|output=&lt;br /&gt;
&amp;lt;nowiki&amp;gt;alias ncp=&amp;quot;cat ${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} | tr &#039;\0&#039; &#039;\n&#039;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他のツールに選択したファイルをパイプで渡すことができます。&lt;br /&gt;
&lt;br /&gt;
==== nnn シェルで深度レベルを指定 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|!}} を使ってカレントディレクトリでシェルを開く場合、以下を追加すると良いでしょう:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/.bashrc|output=&lt;br /&gt;
[ -n &amp;quot;$NNNLVL&amp;quot; ] &amp;amp;&amp;amp; PS1=&amp;quot;N$NNNLVL $PS1&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
シェル内にいる状態を維持しながら終了時に nnn に戻るプロンプトに示させるには、次のようにします。&lt;br /&gt;
&lt;br /&gt;
[[#終了時に cd (CTRL-G)]] と組み合わせることで強力なコンビになります。&lt;br /&gt;
&lt;br /&gt;
==== 終了時に cd (Ctrl-G) ====&lt;br /&gt;
&lt;br /&gt;
以下を {{ic|.bashrc}}/{{ic|.zshrc}} に追加してください。&lt;br /&gt;
{{hc|~/.bashrc or ~/.zshrc|output=&lt;br /&gt;
if [ -f /usr/share/nnn/quitcd/quitcd.bash_sh_zsh ]; then&lt;br /&gt;
    source /usr/share/nnn/quitcd/quitcd.bash_sh_zsh&lt;br /&gt;
fi&lt;br /&gt;
}}&lt;br /&gt;
そして、{{ic|nnn}} の代わりに {{ic|n}} コマンドを実行します(正確には n の bash 関数です)&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jarun/nnn/wiki/Basic-use-cases#configure-cd-on-quit nnn wiki] も参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 自分のプラグインを追加 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins}} に追加することでプラグインを実行できます。例えば実行シェルスクリプトを作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/git-changes|output=&lt;br /&gt;
#!/usr/bin/env sh&lt;br /&gt;
git log -p -- &amp;quot;$@&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|R}} を押してから {{ic|git-changes}} を選択することで起動でき、特定のファイルの git ログとコードが表示されます。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/jarun/nnn nnn の公式リポジトリ]&lt;br /&gt;
* [https://github.com/jarun/nnn/wiki/Basic-use-cases Guides for additional configuration of nnn]&lt;br /&gt;
* [https://www.youtube.com/watch?v=U2n5aGqou9E Introduction to nnn video]&lt;/div&gt;</summary>
		<author><name>Mycelithyl</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3&amp;diff=41255</id>
		<title>ネットワークタイムプロトコルデーモン</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3&amp;diff=41255"/>
		<updated>2025-12-18T04:50:11Z</updated>

		<summary type="html">&lt;p&gt;Mycelithyl: /* NetworkManager */ リンク先の修正・AURパッケージに対する「公式リポジトリ」の言及を削除&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ネットワークタイムプロトコル]]&lt;br /&gt;
[[en:Network Time Protocol daemon]]&lt;br /&gt;
[[es:Network Time Protocol daemon]]&lt;br /&gt;
[[fr:ntp]]&lt;br /&gt;
[[it:Network Time Protocol daemon]]&lt;br /&gt;
[[ru:Network Time Protocol daemon]]&lt;br /&gt;
[[zh-hans:Network Time Protocol daemon]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|NTPsec}}&lt;br /&gt;
{{Related|Chrony}}&lt;br /&gt;
{{Related|時刻同期}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Wikipedia:ja:Network Time Protocol|ネットワークタイムプロトコル(NTP)]] は GNU/Linux の[[時刻|ソフトウェアクロック]]をインターネット上の時刻サーバーと同期するのに使われる最も一般的な方法です。変動的なネットワークの遅延を軽減し、インターネットを使って数十ミリ秒の範囲で時刻を維持できるように設計されています。ローカルエリアネットワークの場合、一ミリ秒まで正確性を保てます。&lt;br /&gt;
&lt;br /&gt;
[http://support.ntp.org/bin/view/Main/WebHome#The_NTP_Project NTP プロジェクト] は NTP という名前のプロトコルのリファレンス実装を提供しています。NTP の代わりになるものとして、ダイアルアップフレンドリで常時オンラインではない環境用に設計されている [[Chrony]] と、OpenBSD プロジェクトの [[OpenNTPD]] があります。&lt;br /&gt;
&lt;br /&gt;
この記事ではクライアント・サーバー両方で NTP デーモンを設定・起動する方法を説明しています。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]にある {{pkg|ntp}} を[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
==設定==&lt;br /&gt;
&lt;br /&gt;
メインのデーモンは &#039;&#039;ntpd&#039;&#039; で、{{ic|/etc/ntp.conf}} から設定を行います。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntp&#039;&#039; パッケージのデフォルトの設定ファイルでは、設定のカスタマイズを行わなくてもクライアントモードで &#039;&#039;ntpd&#039;&#039; が動作するようになっています。デフォルト設定を使って起動したい場合は、[[#使用方法]] までスキップできます。&lt;br /&gt;
&lt;br /&gt;
以下ではメイン設定のアイテムのカスタマイズについて説明しています。マニュアルページも参照してください: {{man|5|ntp.conf}} や関連する {{ic|man &amp;lt;nowiki&amp;gt;{ntpd|ntp_auth|ntp_mon|ntp_acc|ntp_clock|ntp_misc}&amp;lt;/nowiki&amp;gt;}}。&lt;br /&gt;
&lt;br /&gt;
===NTP サーバーへの接続の設定===&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/ntp.conf}} を手動で設定したい場合は、まずマシンが同期するサーバを設定してください。&lt;br /&gt;
&lt;br /&gt;
NTP サーバは階層的なシステムによって &#039;&#039;strata&#039;&#039; と呼ばれるたくさんのレベルにクラス分けされています。その定義は、独立したタイムソースとされるデバイスは &#039;&#039;stratum 0&#039;&#039; ソース、&#039;&#039;stratum 0&#039;&#039; のデバイスに直接接続しているサーバーを &#039;&#039;stratum 1&#039;&#039; ソース、&#039;&#039;stratum 1&#039;&#039; ソースに接続しているサーバーを &#039;&#039;stratum 2&#039;&#039; ソース、と続きます。&lt;br /&gt;
&lt;br /&gt;
サーバーの stratum は正確性や信頼性を表しているわけではないことを理解する必要があります。一般的に、stratum 2 のサーバーが時刻同期に使われます: どのサーバーに接続するのかまだ決めてない場合、[http://www.pool.ntp.org/ pool.ntp.org] サーバー ([http://support.ntp.org/bin/view/Servers/NTPPoolServers alternative link]) を使って一番地理的に近いサーバープールを選んで下さい。&lt;br /&gt;
&lt;br /&gt;
サンプル:&lt;br /&gt;
{{hc|/etc/ntp.conf|&lt;br /&gt;
server 0.jp.pool.ntp.org iburst&lt;br /&gt;
server 1.jp.pool.ntp.org iburst&lt;br /&gt;
server 2.jp.pool.ntp.org iburst&lt;br /&gt;
server 3.jp.pool.ntp.org iburst&lt;br /&gt;
}}&lt;br /&gt;
{{ic|iburst}} オプションは推奨です。最初に試行した時に接続できなかったときだけパケットのバーストを送信するようになります。{{ic|burst}} オプションは常時バーストを送信するので、許可を得ているときにだけ使って下さい。さもないとブラックリストに入れられてしまう可能性があります。&lt;br /&gt;
&lt;br /&gt;
===あなた自身の NTP サーバーの設定===&lt;br /&gt;
NTP サーバーを設定する場合、サーバーとして [http://www.ntp.org/ntpfaq/NTP-s-refclk.htm#Q-LOCAL-CLOCK &#039;&#039;local clock&#039;&#039;] を追加する必要があります。これによりインターネットアクセスを失った時でも、ネットワークへの時刻の提供を続行することができます。(&#039;&#039;fudge&#039;&#039; コマンドを使って) stratum 12 サーバーとして &#039;&#039;local clock&#039;&#039; を追加すればインターネットアクセスが失われない限り使用されません ([http://www.ntp.org/ntpfaq/NTP-s-algo.htm#Q-ALGO-BASIC-STRATUM stratum 15] まで設定することができます):&lt;br /&gt;
&lt;br /&gt;
 server 127.127.1.1&lt;br /&gt;
 fudge  127.127.1.1 stratum 12&lt;br /&gt;
&lt;br /&gt;
次に、&#039;&#039;restrict&#039;&#039; コマンドを使ってあなたのサービスに接続できるクライアント (&#039;&#039;localhost&#039;&#039; もクライアントとして見なされます) を制限するルールを定義します。あなたのファイルには次のような行がすでに存在するはずです:&lt;br /&gt;
&lt;br /&gt;
 restrict default nomodify nopeer noquery&lt;br /&gt;
&lt;br /&gt;
これで誰も何も変更できなくなり時刻サーバーの状態の問い合わせも制止されます: {{ic|nomodify}} は &#039;&#039;ntpd&#039;&#039; (と &#039;&#039;ntpq&#039;&#039; または &#039;&#039;ntpdc&#039;&#039;) の再設定を無視し、{{ic|noquery}} は &#039;&#039;ntpd&#039;&#039; (と &#039;&#039;ntpq&#039;&#039; または &#039;&#039;ntpdc&#039;&#039;) の状態データのダンプを[https://mailman.archlinux.org/pipermail/arch-dev-public/2014-February/025872.html 防ぎます]。&lt;br /&gt;
&lt;br /&gt;
また、他のオプションを加えることも可能です:&lt;br /&gt;
&lt;br /&gt;
 restrict default kod nomodify notrap nopeer noquery&lt;br /&gt;
&lt;br /&gt;
{{Note|これは他の人々があなたの時刻サーバーに問い合わせるのを許可します。{{ic|noserve}} を追加して時刻の提供を止めて下さい。また ntpq と ntpdc クエリ以外の全てのパケットをブロックするので時刻同期もブロックされます。}}&lt;br /&gt;
&lt;br /&gt;
&amp;quot;restrict&amp;quot; オプションの完全なドキュメントは {{ic|man ntp_acc}} にあります。詳しい説明は https://support.ntp.org/bin/view/Support/AccessRestrictions を参照してください。&lt;br /&gt;
&lt;br /&gt;
次の行のように、サーバーへの接続を許可する IP を &#039;&#039;ntpd&#039;&#039; に伝える必要があります; NTP サーバーを設定しない場合はこのままで問題ありません:&lt;br /&gt;
&lt;br /&gt;
 restrict 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
DNS 解決を IPv6 ネームスペースに強制したい時は、IP アドレスやホストネームの前に {{ic|-6}} を書いて下さい ({{ic|-4}} は IPv4 を強制します)。例:&lt;br /&gt;
&lt;br /&gt;
 restrict -6 default kod nomodify notrap nopeer noquery&lt;br /&gt;
 restrict -6 ::1    # ::1 is the IPv6 equivalent for 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
最後に、ドリフトファイル (時計の時刻のズレを記録します) と任意でログファイルの場所を指定してください:&lt;br /&gt;
&lt;br /&gt;
 driftfile /var/lib/ntp/ntp.drift&lt;br /&gt;
 logfile /var/log/ntp.log&lt;br /&gt;
&lt;br /&gt;
基本的な設定ファイルは以下のようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ntp.conf|&lt;br /&gt;
server 0.pool.ntp.org iburst&lt;br /&gt;
server 1.pool.ntp.org iburst&lt;br /&gt;
server 2.pool.ntp.org iburst&lt;br /&gt;
server 3.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
restrict default kod nomodify notrap nopeer noquery&lt;br /&gt;
restrict -6 default kod nomodify notrap nopeer noquery&lt;br /&gt;
&lt;br /&gt;
restrict 127.0.0.1&lt;br /&gt;
restrict -6 ::1  &lt;br /&gt;
&lt;br /&gt;
driftfile /var/lib/ntp/ntp.drift&lt;br /&gt;
logfile /var/log/ntp.log&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|ログファイルの定義は必須ではありませんが、&#039;&#039;ntpd&#039;&#039; の操作のフィードバックを得るのはどんなときでも良い考えです。}}&lt;br /&gt;
&lt;br /&gt;
==使用方法==&lt;br /&gt;
&lt;br /&gt;
このセクションでは ntpd やその他の ntp パッケージに入っているコマンドの使い方を扱います。&lt;br /&gt;
&lt;br /&gt;
===デーモンとして使う===&lt;br /&gt;
&lt;br /&gt;
NTP デーモンを起動する基本コマンドは:&lt;br /&gt;
&lt;br /&gt;
 # ntpd&lt;br /&gt;
&lt;br /&gt;
ただし、これだと &#039;&#039;root&#039;&#039; としてバックグラウンドで動作します。このため、user オプションを毎回指定するべきです:&lt;br /&gt;
 # ntpd -u ntp:ntp &lt;br /&gt;
&lt;br /&gt;
[[#systemd サービス]] も見て下さい。&lt;br /&gt;
&lt;br /&gt;
====デーモンが正しく同期を実行しているか確認する====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntpq&#039;&#039; を使って設定されたピアの一覧を見て下さい:&lt;br /&gt;
 $ ntpq -p&lt;br /&gt;
delay, offset, jitter のカラムがゼロではないはずです。&#039;&#039;ntpd&#039;&#039; が同期しているサーバーにはアスタリスクが前に付けられます。&#039;&#039;ntpd&#039;&#039; が同期するサーバーを選ぶまで数分間かかることがあります。17分 (1024秒) 後に確認してみてください。&lt;br /&gt;
&lt;br /&gt;
===デーモンを使わない===&lt;br /&gt;
&lt;br /&gt;
デーモンを使わずにシステム時刻を同期させることも可能です。ただし、この方法は数日以上再起動を行わないようなマシンには相応しくありません。システム時刻を一度だけ同期するには、&#039;&#039;ntpd&#039;&#039; を起動する代わりに、次を実行してください:&lt;br /&gt;
 # ntpd -q&lt;br /&gt;
&lt;br /&gt;
{{ic|-q}} フラグは &#039;&#039;ntpd&#039;&#039; で時刻を一度だけ設定して終了します。つまりデーモンは起動しません。この操作が失敗した場合、システムクロックは同期されません。&lt;br /&gt;
&lt;br /&gt;
{{Note|上のコマンドは[http://support.ntp.org/bin/view/Dev/DeprecatingNtpdate 今はもう廃止された] {{ic|ntpdate}} コマンドと同じ働きをします。}}&lt;br /&gt;
&lt;br /&gt;
また、システムプロセスの実行を保護するために、システム時刻と ntp サーバーの時刻が所与の閾値以上に食い違っている場合はシステム時刻は同期されません (いわゆる &#039;&#039;panic-gate&#039;&#039;)。ただし、{{ic|-g}} オプションを使うことでこの閾値は無効にすることができ制限を越えることができます (時刻を初めて設定するときやハードウェアクロックが誤っている場合など)。&lt;br /&gt;
&lt;br /&gt;
== 自動起動 ==&lt;br /&gt;
&lt;br /&gt;
=== systemd サービス ===&lt;br /&gt;
&lt;br /&gt;
ブート時に systemd によって &#039;&#039;ntpd&#039;&#039; を自動起動することが可能です。&lt;br /&gt;
&lt;br /&gt;
====ブート時にデーモンを起動する====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntp&#039;&#039; パッケージには systemd 用に {{ic|ntpd.service}} が入っています。このサービスを [[Systemd#ユニットを使う|systemctl]] を使ってブート時にデーモンを起動してください。&lt;br /&gt;
&lt;br /&gt;
もしくは次のコマンドを使って下さい:&lt;br /&gt;
&lt;br /&gt;
====起動毎に同期する====&lt;br /&gt;
&lt;br /&gt;
{{Warning|サーバーや、数日間電源を落とさないようなマシンではこの方法は非推奨です。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntp&#039;&#039; パッケージには {{ic|ntpdate.service}} が入っています。このサービスを [[Systemd#ユニットを使う|systemd]] によって有効化して起動毎に時刻を同期するようにできます。この &#039;&#039;oneshot&#039;&#039; サービスは、一度時刻同期が完了したらもうデーモンを起動し続ける必要がない場合に助けになる選択肢になります。&lt;br /&gt;
&lt;br /&gt;
同期した時刻をハードウェアクロックにも書き込む必要があるときは、[[systemd#ユニットファイルの編集]] に書かれているように既存のユニットを設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/ntpdate.service.d/hwclock.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=/usr/bin/hwclock -w&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
それから起動してください。&lt;br /&gt;
&lt;br /&gt;
=== ネットワーク接続時 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntpd&#039;&#039; をネットワークマネージャによって起動させることも可能です。こうすることでコンピュータがオンラインのときだけデーモンが動くようになります。&lt;br /&gt;
&lt;br /&gt;
====Netctl====&lt;br /&gt;
&lt;br /&gt;
以下の行をあなたの [[netctl]] プロファイルに追加してください:&lt;br /&gt;
 ExecUpPost=&#039;/usr/bin/ntpd || true&#039;&lt;br /&gt;
 ExecDownPre=&#039;killall ntpd || true&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|[[#使用方法]] で説明されているように &#039;&#039;ntpd&#039;&#039; コマンドのオプションをカスタマイズすることを推奨します。}}&lt;br /&gt;
&lt;br /&gt;
====NetworkManager====&lt;br /&gt;
&lt;br /&gt;
[[NetworkManager#ネットワークサービスで NetworkManager dispatcher を使用する|NetworkManager の dispatcher スクリプト]]を使ってネットワーク接続にあわせて &#039;&#039;ntpd&#039;&#039; デーモンを立ち上げたり終了することができます。{{AUR|networkmanager-dispatcher-ntpd}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
==== Wicd ====&lt;br /&gt;
&lt;br /&gt;
[[Wicd]] の場合、{{ic|postconnect}} に起動スクリプトを、{{ic|predisconnect}} ディレクトリに停止スクリプトを作成してください。スクリプトは忘れずに実行可能にしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/wicd/scripts/postconnect/ntpd|&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
/usr/bin/ntpd &amp;amp;&lt;br /&gt;
-or-&lt;br /&gt;
systemctl start ntpd &amp;amp;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/wicd/scripts/predisconnect/ntpd|&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
killall ntpd &amp;amp;&lt;br /&gt;
-or-&lt;br /&gt;
systemctl stop ntpd &amp;amp;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|[[#使用方法]] で説明されているように &#039;&#039;ntpd&#039;&#039; コマンドのオプションをカスタマイズすることを推奨します。}}&lt;br /&gt;
&lt;br /&gt;
[[Wicd#スクリプト]] も参照。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== GPS で ntpd を使う ===&lt;br /&gt;
&lt;br /&gt;
GPS から時刻を取得するように &#039;&#039;ntpd&#039;&#039; を設定する方法が書かれたネット上の記事は大抵 SHM (共有メモリ) を使うことを推奨しています。しかしながら、&#039;&#039;ntpd&#039;&#039; バージョン 4.2.8 からはさらに良い方法が存在します。直接 &#039;&#039;gpsd&#039;&#039; に接続するため、{{Pkg|gpsd}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
以下の行を {{ic|/etc/ntp.conf}} に追加:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=/etc/ntp.conf|output=&lt;br /&gt;
#=========================================================&lt;br /&gt;
#  GPSD native ntpd driver&lt;br /&gt;
#=========================================================&lt;br /&gt;
# This driver exists from at least ntp version 4.2.8&lt;br /&gt;
# Details at&lt;br /&gt;
#   https://www.eecis.udel.edu/~mills/ntp/html/drivers/driver46.html&lt;br /&gt;
server 127.127.46.0 &lt;br /&gt;
fudge 127.127.46.0 time1 0.0 time2 0.0 refid GPS &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;gpsd&#039;&#039; が動作していれば上記で問題なく動作します。ローカルソケットを使って &#039;&#039;gpsd&#039;&#039; に接続し、返ってきた &amp;quot;gpsd_json&amp;quot; オブジェクトを問い合わせます。&lt;br /&gt;
&lt;br /&gt;
セットアップをテストするには、まず以下を実行して &#039;&#039;gpsd&#039;&#039; が動作していることを確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ cgps -s &lt;br /&gt;
&lt;br /&gt;
それから数分待ってから {{ic|ntpq -p}} を実行します。&#039;&#039;ntpd&#039;&#039; が &#039;&#039;gpsd&#039;&#039; と対話できていれば以下のように表示されます:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ ntpq -p|output=&lt;br /&gt;
     remote           refid            st t when poll reach   delay   offset  jitter&lt;br /&gt;
 ==================================================================================&lt;br /&gt;
*GPSD_JSON(0)    .GPS.            0 l   55   64  377    0.000    2.556  14.109&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&#039;&#039;reach&#039;&#039; カラムが 0 の場合、&#039;&#039;ntpd&#039;&#039; は &#039;&#039;gpsd&#039;&#039; と通信できていません。さらに数分間待ってから再度実行してみてください。しばらく時間がかかることがあります。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;ntpd&#039;&#039; は GPS デバイスの名前が {{ic|/dev/gps0}} などとなっていることを前提としています。USB で GPS デバイスを接続している場合、{{ic|/dev/ttyUSB0}} という名前になるため、シンボリックリンクを作成 ({{ic|ln -s /dev/ttyUSB0 /dev/gps0}}) してリンクを張った {{ic|/dev/gps0}} に対して &#039;&#039;gpsd&#039;&#039; を実行しないと {{ic|GPSD_JSON}} 行が正しく機能しません。}}&lt;br /&gt;
&lt;br /&gt;
===chroot で実行する===&lt;br /&gt;
&lt;br /&gt;
{{Note|&#039;&#039;ntpd&#039;&#039; should be started as non-root (default in the Arch Linux package) before attempting to jail it in a chroot, since chroots are relatively useless at securing processes running as root.}}&lt;br /&gt;
&lt;br /&gt;
新しいディレクトリ {{ic|/etc/systemd/system/ntpd.service.d/}} を作成してその中に {{ic|customexec.conf}} という名前のファイルを以下の内容で追加してください:&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=&lt;br /&gt;
 ExecStart=/usr/bin/ntpd -g -u ntp:ntp &#039;&#039;&#039;-i /var/lib/ntp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
そして {{ic|/etc/ntp.conf}} を編集して driftfile のパスを実際の root ではなく chroot ディレクトリの相対パスに変えて下さい:&lt;br /&gt;
 driftfile       /var/lib/ntp/ntp.drift&lt;br /&gt;
&lt;br /&gt;
を&lt;br /&gt;
 driftfile       /ntp.drift&lt;br /&gt;
&lt;br /&gt;
に変えて下さい。適切な chroot 環境を作成してください。getaddrinfo() を動作させるために適切なディレクトリとファイルを (root で) 作成し:&lt;br /&gt;
 # mkdir /var/lib/ntp/etc /var/lib/ntp/lib /var/lib/ntp/proc&lt;br /&gt;
 # mkdir /var/lib/ntp/usr /var/lib/ntp/usr/lib&lt;br /&gt;
 # touch /var/lib/ntp/etc/resolv.conf /var/lib/ntp/etc/services&lt;br /&gt;
&lt;br /&gt;
そして上記のファイルをバインドマウントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/fstab|&lt;br /&gt;
...&lt;br /&gt;
#ntpd chroot mounts&lt;br /&gt;
/etc/resolv.conf  /var/lib/ntp/etc/resolv.conf none bind 0 0&lt;br /&gt;
/etc/services	  /var/lib/ntp/etc/services none bind 0 0&lt;br /&gt;
/lib		  /var/lib/ntp/lib none bind 0 0&lt;br /&gt;
/usr/lib	  /var/lib/ntp/usr/lib none bind 0 0&lt;br /&gt;
/proc		  /var/lib/ntp/proc none bind 0 0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 # mount -a&lt;br /&gt;
&lt;br /&gt;
最後に、デーモンを再起動してください。再起動したら {{ic|/proc/{PID}/root}} のシンボリックリンク先をチェックすることでデーモンプロセスが chroot されてることを確認できます:&lt;br /&gt;
 # ps -C ntpd | awk &#039;{print $1}&#039; | sed 1d | while read -r PID; do ls -l /proc/$PID/root; done&lt;br /&gt;
{{ic|/}} ではなく {{ic|/var/lib/ntp}} にリンクしているはずです。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntpd&#039;&#039; は読み書きをあまり頻繁に行わないため、driftfile の設定が実際に機能しているか確認するには少し待つしかありません。何か問題が起こったら、エラーをログ出力します。問題がない場合、タイムスタンプが更新されます。一日中動かして何もエラーが表示されない、そしてタイムスタンプが更新されていれば大丈夫だと思われます。&lt;br /&gt;
&lt;br /&gt;
=== 受信ソケットを制限する ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ntpd&#039;&#039; が listen するソケットを制限するには &#039;&#039;interface&#039;&#039; オプションを使います:&lt;br /&gt;
 interface [listen | ignore | drop] [all | ipv4 | ipv6 | wildcard | name | address[/prefixlen]]&lt;br /&gt;
&lt;br /&gt;
設定例:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=/etc/ntp.conf|output=&lt;br /&gt;
interface listen lo&lt;br /&gt;
interface listen enp3s0&lt;br /&gt;
interface ignore enp5s0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Cannot assign requested address ===&lt;br /&gt;
&lt;br /&gt;
以下のように &#039;&#039;Cannot assign requested address&#039;&#039; メッセージが表示される場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ journalctl -u ntpd|2=&lt;br /&gt;
ntpd[2130]: bind(21) AF_INET6 fe80::6ef0:49ff:fe51:4946%2#123 flags 0x11 failed: Cannot assign requested address&lt;br /&gt;
ntpd[2130]: unable to create socket on eth0 (5) for fe80::6ef0:49ff:fe51:4946%2#123&lt;br /&gt;
ntpd[2130]: failed to init interface for address fe80::6ef0:49ff:fe51:4946%2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
IPv6 を無効化することでメッセージを消すことができます。{{ic|ntpd.service}} を[[systemd#ユニットファイルの編集|編集]]して {{ic|-4}} を追加:&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 ExecStart=&lt;br /&gt;
 ExecStart=/usr/bin/ntpd -g -u ntp:ntp &#039;&#039;&#039;-4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==参照==&lt;br /&gt;
&lt;br /&gt;
* http://www.ntp.org/&lt;br /&gt;
* https://support.ntp.org/&lt;br /&gt;
* http://www.pool.ntp.org/&lt;br /&gt;
* https://www.eecis.udel.edu/~mills/ntp/html/index.html&lt;br /&gt;
* http://www.akadia.com/services/ntp_synchronize.html&lt;/div&gt;</summary>
		<author><name>Mycelithyl</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Systemd-boot&amp;diff=41217</id>
		<title>Systemd-boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Systemd-boot&amp;diff=41217"/>
		<updated>2025-12-07T20:55:51Z</updated>

		<summary type="html">&lt;p&gt;Mycelithyl: /* EFI ブートマネージャのインストール */ 斜体のマークアップ位置を修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase title}}&lt;br /&gt;
[[Category:ブートローダー]]&lt;br /&gt;
[[de:Gummiboot]]&lt;br /&gt;
[[en:Systemd-boot]]&lt;br /&gt;
[[es:Systemd-boot]]&lt;br /&gt;
[[pt:Systemd-boot]]&lt;br /&gt;
[[ru:Systemd-boot]]&lt;br /&gt;
[[zh-hans:Systemd-boot]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Arch ブートプロセス}}&lt;br /&gt;
{{Related|ブートローダー}}&lt;br /&gt;
{{Related|セキュアブート}}&lt;br /&gt;
{{Related|Unified Extensible Firmware Interface}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&#039;&#039;&#039;systemd-boot&#039;&#039;&#039; (旧名 &#039;&#039;&#039;gummiboot&#039;&#039;&#039;。ドイツ語で「ゴムボート」)は、 設定された EFI イメージを実行するシンプルな [[UEFI]] [[ブートマネージャー]]です。デフォルトのエントリは設定されたパターン (glob) または矢印キーで操作する画面上のメニューによって選択されます。{{Pkg|systemd}} に含まれており、Arch システムにデフォルトでインストールされます。&lt;br /&gt;
&lt;br /&gt;
systemd-boot は EFI 実行可能ファイル ([[EFISTUB]]、[[UEFI シェル]]、[[GRUB]]、[https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/boot-and-uefi#understanding-the-windows-boot-manager Windows ブートマネージャ]) のみを起動できることに注意してください。&lt;br /&gt;
&lt;br /&gt;
== サポートされているファイルシステム ==&lt;br /&gt;
&lt;br /&gt;
systemd-boot はファイルシステムのサポートを [[Arch ブートプロセス#UEFI|ファームウェア]] から引き継ぎます (少なくとも FAT12、FAT16、FAT32) さらに、{{ic|&#039;&#039;esp&#039;&#039;/EFI/systemd/drivers/}} にある [[Unified Extensible Firmware Interface#UEFI ドライバ|UEFI ドライバ]] を全てロードします。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-boot&#039;&#039; は、{{Pkg|base}} メタパッケージの依存関係である {{Pkg|systemd}} パッケージとともに出荷されるため、追加のパッケージを手動でインストールする必要はありません。&lt;br /&gt;
&lt;br /&gt;
== EFI ブートマネージャのインストール ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-boot&#039;&#039; の EFI ブートマネージャをインストールする場合、まず UEFI モードでシステムが起動しているかどうか、[[Unified Extensible Firmware Interface#UEFI 変数|UEFI 変数]] が利用できるかどうか確かめてください。{{ic|efivar --list}} コマンドを実行することでチェックできます。または、efivar がインストールされていない場合は、{{ic|ls /sys/firmware/efi/efivars}} を実行してください (ディレクトリが存在する場合、システムは UEFI モードにブートされます)&lt;br /&gt;
&lt;br /&gt;
このページでは ESP のマウントポイントを {{ic|&#039;&#039;esp&#039;&#039;}} として表します (大抵の場合は {{ic|/efi}} か {{ic|/boot}} です) これは、システムのマウントポイントに [[chroot]] していることを前提としています。&lt;br /&gt;
&lt;br /&gt;
{{man|1|bootctl}} を使用して EFI システムパーティションに &#039;&#039;systemd-boot&#039;&#039; をインストールします:&lt;br /&gt;
&lt;br /&gt;
 # bootctl install&lt;br /&gt;
&lt;br /&gt;
これにより、&#039;&#039;systemd-boot&#039;&#039; UEFI ブートマネージャーが ESP にコピーされ、その UEFI ブートエントリが作成され、UEFI ブート順序の最初に設定されます。&lt;br /&gt;
&lt;br /&gt;
* x64 UEFI では、{{ic|/usr/lib/systemd/boot/efi/systemd-bootx64.efi}} は {{ic|&#039;&#039;esp&#039;&#039;/EFI/systemd/systemd-bootx64.efi}} と {{ic|&#039;&#039;esp&#039;&#039;/EFI/BOOT/BOOTX64.EFI}} にコピーされます。&lt;br /&gt;
* IA32 UEFI では、{{ic|/usr/lib/systemd/boot/efi/systemd-bootia32.efi}} は {{ic|&#039;&#039;esp&#039;&#039;/EFI/systemd/systemd-bootia32.efi}} と {{ic|&#039;&#039;esp&#039;&#039;/EFI/BOOT/BOOTIA32.EFI}} にコピーされます。&lt;br /&gt;
&lt;br /&gt;
UEFI ブートエントリは &amp;quot;Linux Boot Manager&amp;quot; と呼ばれ、UEFI のビット数によって、ESP 上の {{ic|EFI}systemd-bootx64.efi}} か {{ic|EFI}systemd-bootia32.efi}} を指します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|bootctl install}} を実行すると、&#039;&#039;systemd-boot&#039;&#039; は ESP を {{ic|/efi}},{{ic|/boot}},{{ic|/boot/efi}} に配置しようとします。{{ic|&#039;&#039;esp&#039;&#039;}} を別の場所に設定するには、{{ic|1=--esp-path=&#039;&#039;esp&#039;&#039;}} オプションを渡す必要があります。(詳細は {{man|1|bootctl|OPTIONS}} を参照)&lt;br /&gt;
* &#039;&#039;systemd-boot&#039;&#039; をインストールすると既存の {{ic|&#039;&#039;esp&#039;&#039;/EFI/BOOT/BOOTX64.EFI}} は上書きされます。(または、{{ic|&#039;&#039;esp&#039;&#039;/EFI/BOOT/BOOTIA32.EFI}} の IA32 UEFI)、例えば Microsoft 版のファイルなどです。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
インストールを完了するには、&#039;&#039;systemd-boot&#039;&#039; を[[systemd-boot#設定|設定]]します。&lt;br /&gt;
&lt;br /&gt;
=== XBOOTLDR を使用したインストール ===&lt;br /&gt;
&lt;br /&gt;
カーネルと initramfs を ESP から分離するために、&amp;quot;Linux extended boot&amp;quot; タイプ (XBOOTLDR) の別の [[パーティショニング#/boot|/boot パーティション]]を作成することができます。これは、既存の [[EFI システムパーティション|ESP]] が小さすぎる [[Windows と Arch のデュアルブート]] 時に特に役立ちます。 &lt;br /&gt;
&lt;br /&gt;
通常どおり ESP を作成し、同じ物理ドライブに XBOOTLDR 用の別のパーティションを作成します。XBOOTLDR のパーティションタイプ GUID は {{ic|&amp;quot;bc13c2ff-59e6-4262-a352-b275fd6f7172}} である必要があります。XBOOTLDR パーティションのサイズは、インストールする全てのカーネルを収納できる 十分な大きさが必要です。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* systemd-boot は、 ESP の場合のようにファイルシステムチェックを行いません。 したがって、他のファイルシステムを使用することは可能ですが、 UEFI 実装が起動中にそれを読み取ることができる場合に限ります。&lt;br /&gt;
* &amp;quot;fast boot&amp;quot; モードが有効の場合、UEFI ファームウェアは ESP 以外のパーティションのロードをスキップすることがあります。これにより、&#039;&#039;システム起動&#039;&#039; が XBOOTLDR パーティション上のエントリを見つけられなくなる可能性があります。XBOOTLDRを使用するには、&amp;quot;fast boot&amp;quot; を無効にする必要があります。&lt;br /&gt;
* XBOOTLDR パーティションは、system-boot が認識できるように ESP と同じ物理ディスク上になければならない場合があります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
インストール中に、ESP を {{ic|/mnt/efi}} にマウントし、 {{ic|&#039;&#039;boot&#039;&#039;}} を {{ic|/mnt/boot}} にマウントします。&lt;br /&gt;
&lt;br /&gt;
chroot になったら、次のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 # bootctl --esp-path=/efi --boot-path=/boot install&lt;br /&gt;
&lt;br /&gt;
インストールを完了するには &#039;&#039;systemd-boot&#039;&#039; を[[#設定|設定]]します。&lt;br /&gt;
&lt;br /&gt;
=== UEFI ブートマネージャの更新 ===&lt;br /&gt;
&lt;br /&gt;
新しいバージョンの &#039;&#039;systemd-boot&#039;&#039; がリリースされるたびに、UEFI ブートマネージャはオプションでユーザーによって再インストールできます。これは手動または自動で行うことができ、以下にその2つの方法を説明します。&lt;br /&gt;
&lt;br /&gt;
{{Note|UEFI ブートマネージャは独立した EFI 実行可能ファイルであり、任意のバージョンを使用してシステムをブートできます(部分的な更新は適用されません。pacman は &#039;&#039;systemd-boot&#039;&#039; インストーラーのみをインストールし、&#039;&#039;systemd-boot&#039;&#039; 本体はインストールしません)ただし、新しいバージョンは新機能を追加したり、バグを修正したりする可能性があるため、&#039;&#039;systemd-boot&#039;&#039; の更新はおそらく良いアイデアです。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|[[セキュアブート]] が有効な場合、ブートローダーの更新に署名する必要があります。詳細は [[#セキュアブートのための署名]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
==== 手動で更新 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;bootctl&#039;&#039; を使用して &#039;&#039;systemd-boot&#039;&#039; を更新:&lt;br /&gt;
&lt;br /&gt;
 # bootctl update&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|bootctl install}} と同様に、&#039;&#039;systemd-boot&#039;&#039;は ESP を {{ic|/efi}}、{{ic|/boot}}、{{ic|/boot/efi}} に配置しようとします。{{ic|&#039;&#039;esp&#039;&#039;}} を別の場所に設定するには、{{ic|1=--esp-path=&#039;&#039;esp&#039;&#039;}} オプションを渡す必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== 自動で更新 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-boot&#039;&#039; を自動的に更新するには、[[systemd#ユニットを使う|systemd サービス]] または [[pacman フック]] を使用してください。これらの2つの方法については、以下に説明します。&lt;br /&gt;
&lt;br /&gt;
===== systemd サービス =====&lt;br /&gt;
&lt;br /&gt;
バージョン 250 以降、{{Pkg|systemd}} には {{ic|systemd-boot-update.service}} が同梱されています。このサービスを [[有効化]] すると、次回の起動時にブートローダーが更新されます。&lt;br /&gt;
&lt;br /&gt;
===== Pacman フック =====&lt;br /&gt;
&lt;br /&gt;
{{AUR|systemd-boot-pacman-hook}} パッケージは {{Pkg|systemd}} がアップグレードされる度に実行される pacman フックを追加します。&lt;br /&gt;
&lt;br /&gt;
systemd-boot-pacman-hook をインストールするのではなく、次のファイルを {{ic|/etc/pacman.d/hooks/}} に手動で配置することをお勧めします:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pacman.d/hooks/95-systemd-boot.hook|2=&lt;br /&gt;
[Trigger]&lt;br /&gt;
Type = Package&lt;br /&gt;
Operation = Upgrade&lt;br /&gt;
Target = systemd&lt;br /&gt;
&lt;br /&gt;
[Action]&lt;br /&gt;
Description = Gracefully upgrading systemd-boot...&lt;br /&gt;
When = PostTransaction&lt;br /&gt;
Exec = /usr/bin/systemctl restart systemd-boot-update.service&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== セキュアブートのための署名 ===&lt;br /&gt;
&lt;br /&gt;
[[セキュアブート]] が有効な場合、パッケージのアップグレード時にブートマネージャを自動的に署名するために、pacmanフックを追加したい場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pacman.d/hooks/80-secureboot.hook|2=&lt;br /&gt;
[Trigger]&lt;br /&gt;
Operation = Install&lt;br /&gt;
Operation = Upgrade&lt;br /&gt;
Type = Path&lt;br /&gt;
Target = usr/lib/systemd/boot/efi/systemd-boot*.efi&lt;br /&gt;
&lt;br /&gt;
[Action]&lt;br /&gt;
Description = Signing systemd-boot EFI binary for Secure Boot&lt;br /&gt;
When = PostTransaction&lt;br /&gt;
Exec = /bin/sh -c &#039;while read -r i; do sbsign --key &#039;&#039;/path/to/keyfile.key&#039;&#039; --cert &#039;&#039;/path/to/certificate.crt&#039;&#039; &amp;quot;$i&amp;quot;; done;&#039;&lt;br /&gt;
Depends = sh&lt;br /&gt;
Depends = sbsigntools&lt;br /&gt;
NeedsTargets&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;/path/to/keyfile.key&#039;&#039;}} と {{ic|&#039;&#039;/path/to/certificate.crt&#039;&#039;}} をそれぞれ署名鍵と証明書に置き換えてください。このフックの詳細な理解には、{{man|1|sbsign}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
作成された {{ic|/usr/lib/systemd/boot/efi/systemd-boot*.efi.signed}} は、{{ic|bootctl install}} または {{ic|bootctl update}} によって自動的に認識されます。詳細は {{man|1|bootctl|SIGNED .EFI FILES}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
別の方法としてこちらも参照、[[Unified Extensible Firmware Interface/セキュアブート#pacman フックを使って自動的に署名する|sbctl]]&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
=== ローダー設定 ===&lt;br /&gt;
&lt;br /&gt;
ローダーの設定は {{ic|&#039;&#039;esp&#039;&#039;/loader/loader.conf}} ファイルに保存されます。詳細は、{{man|5|loader.conf|OPTIONS}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
ローダーの設定例を以下に示します:&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/loader.conf|&lt;br /&gt;
default  arch.conf&lt;br /&gt;
timeout  4&lt;br /&gt;
console-mode max&lt;br /&gt;
editor   no&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* systemd-boot はインデント用のタブを受け入れません。代わりにスペースを使用してください。&lt;br /&gt;
* {{ic|default}} と {{ic|timeout}} はブートメニューで変更することができ、変更した場合は EFI 変数として保存されます。上記のオプションよりも優先して設定されます。&lt;br /&gt;
* ​{{ic|bootctl set-default &amp;quot;&amp;quot;}} を使用すると、 {{ic|default}} オプションに優先して EFI 変数をクリアできます。&lt;br /&gt;
* 基本的なローダーの設定ファイルは {{ic|/usr/share/systemd/bootctl/loader.conf}} に存在します。&lt;br /&gt;
* {{ic|timeout 0}} を設定している場合、{{ic|Space}} を押すことでブートメニューにアクセスできます。&lt;br /&gt;
* ブートローダー(エントリ選択中)が歪んで表示される場合や、誤った解像度が使用されている場合は、{{ic|console-mode}} を {{ic|auto}}(最適な解像度を選択するためのヒューリスティックスを使用)、{{ic|keep}}(ファームウェアが提供する解像度を維持)、または {{ic|2}}(最初の非 UEFI 標準解像度を選択しようと試みる)に設定してみることができます。}}&lt;br /&gt;
&lt;br /&gt;
=== ローダーの追加 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;bootctl&#039;&#039; は {{ic|&#039;&#039;esp&#039;&#039;/loader/entries/*.conf}} からブートメニューのアイテムを検索します – 各ファイルにそれぞれひとつだけローダーを記述してください。利用可能なオプション:&lt;br /&gt;
&lt;br /&gt;
* {{ic|title}} – オペレーティングシステムの名前。&#039;&#039;&#039;必須。&#039;&#039;&#039;&lt;br /&gt;
* {{ic|version}} – カーネルバージョン、同じ title のエントリが複数存在する場合にのみ表示されます。任意。&lt;br /&gt;
* {{ic|machine-id}} – {{ic|/etc/machine-id}} のマシン識別子、title と version が同じエントリが複数存在する場合にのみ表示されます。任意。&lt;br /&gt;
* {{ic|efi}} – 起動する EFI プログラム、ESP ({{ic|/boot}}) からの相対パス。例: {{ic|/vmlinuz-linux}}。このオプションか {{ic|linux}} (下を参照) のどちらか一方が&#039;&#039;&#039;必須&#039;&#039;&#039;です。&lt;br /&gt;
* {{ic|options}} – EFI プログラムに渡すコマンドラインオプションまたは[[カーネルパラメータ]]。任意ですが、Linux を起動する場合 {{ic|1=initrd=&#039;&#039;efipath&#039;&#039;}} と {{ic|1=root=&#039;&#039;dev&#039;&#039;}} が最低限必要になります。&lt;br /&gt;
&lt;br /&gt;
Linux を起動する場合、{{ic|efi}} と {{ic|options}} を使う代わりに以下のオプションが使用できます:&lt;br /&gt;
* {{ic|linux}} と {{ic|initrd}} で ESP の適切なファイルの相対パスを指定します。例: {{ic|/vmlinuz-linux}}。この値は自動で {{ic|efi &#039;&#039;path&#039;&#039;}} と {{ic|1=options initrd=&#039;&#039;path&#039;&#039;}} に翻訳されます – この文法は利便性のためにサポートされており機能に違いはありません。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;arch_os&#039;&#039; というラベルが付いたパーティションから Arch を起動して Intel CPU の[[マイクロコード]]をロードするローダーファイルの例:&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/arch.conf|2=&lt;br /&gt;
title   Arch Linux&lt;br /&gt;
linux   /vmlinuz-linux&lt;br /&gt;
initrd  /initramfs-linux.img&lt;br /&gt;
options root=UUID=&#039;&#039;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/arch-fallback.conf|2=&lt;br /&gt;
title   Arch Linux (fallback initramfs)&lt;br /&gt;
linux   /vmlinuz-linux&lt;br /&gt;
initrd  /initramfs-linux-fallback.img&lt;br /&gt;
options root=UUID=&#039;&#039;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&#039;&#039; rw&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;bootctl&#039;&#039; は自動的に &amp;quot;Windows Boot Manager&amp;quot; ({{ic|/EFI/Microsoft/Boot/Bootmgfw.efi}}), &amp;quot;EFI Shell&amp;quot; ({{ic|/shellx64.efi}}), &amp;quot;EFI Default Loader&amp;quot; ({{ic|/EFI/BOOT/bootx64.efi}}) をチェックします。また、{{ic|/EFI/Linux}} にカーネルファイルが存在しないかもチェックされます。これらが検出された場合、自動的に適切なエントリが生成されます ({{ic|auto-windows}}, {{ic|auto-efi-shell}}, {{ic|auto-efi-default}})。これらのエントリを手動でローダー設定する必要はありません。ただし、([[rEFInd]] など) 他の EFI アプリケーションは自動検出されないため、Linux カーネルを起動するには、手動で設定してエントリを作成する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* Windows とデュアルブートする場合、Windows のデフォルトオプションである[[Windows と Arch のデュアルブート#高速スタートアップ|高速スタートアップ]]を無効にすることを強く推奨します。&lt;br /&gt;
* 必要な場合は {{ic|initrd}} で Intel のマイクロコードをロードしてください。例は[[マイクロコード#systemd-boot]] を参照。&lt;br /&gt;
* {{ic|1=blkid -s PARTUUID -o value /dev/sd&#039;&#039;xY&#039;&#039;}} コマンドを使うことで root パーティションの PARTUUID を確認できます。{{ic|&#039;&#039;x&#039;&#039;}} はデバイス文字、{{ic|&#039;&#039;Y&#039;&#039;}} はパーティション番号に置き換えて下さい。確認するのは root パーティションだけで大丈夫です。{{ic|&#039;&#039;esp&#039;&#039;}} は確認する必要がありません。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 設定済みのブートエントリは {{ic|bootctl list}} コマンドで確認できます。&lt;br /&gt;
* サンプルエントリファイルが {{ic|/usr/share/systemd/bootctl/arch.conf}} に存在します。&lt;br /&gt;
* [[LVM]], [[LUKS]], [[dm-crypt]] などで必要な[[カーネルパラメータ]]についてはそれぞれのページを確認してください。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== EFI シェルや他の EFI アプリ ====&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface#UEFI シェル|UEFI シェル]] を {{Pkg|edk2-shell}} パッケージとともにインストールした場合、&amp;quot;systemd-boot&amp;quot; は EFI ファイルが {{ic|&#039;&#039;esp&#039;&#039;/shellx64.efi}} に配置されると自動的に検出して新しいエントリを作成します。&lt;br /&gt;
これを実行するには、パッケージをインストールした後に以下のようなコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 # cp /usr/share/edk2-shell/x64/Shell.efi /boot/shellx64.efi&lt;br /&gt;
&lt;br /&gt;
それ以外の場合は、[[rEFInd#ツール|その他の EFI アプリケーション]] を ESP にインストールした場合、次のスニペットを使用できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|efi}} 行のファイルパスパラメータは、[[EFI システムパーティション]] のルートに対して相対的です。もし EFI システムパーティションが {{ic|/boot}} にマウントされていて、EFI バイナリが {{ic|/boot/EFI/xx.efi}} と {{ic|/boot/yy.efi}} に存在する場合、それぞれのパラメータは {{ic|efi /EFI/xx.efi}} と {{ic|efi /yy.efi}} のように指定します。}}&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/fwupd.conf|&lt;br /&gt;
title  Firmware updater&lt;br /&gt;
efi     /EFI/tools/fwupdx64.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/gdisk.conf|&lt;br /&gt;
title  GPT fdisk (gdisk)&lt;br /&gt;
efi     /EFI/tools/gdisk_x64.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Memtest86+ =====&lt;br /&gt;
&lt;br /&gt;
これを機能させるには、{{pkg|memtest86+-efi}} をインストールする必要があります。また、セキュアブートを使用するときに EFI バイナリに署名する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/memtest.conf|&lt;br /&gt;
title Memtest86+&lt;br /&gt;
efi /memtest86+/memtest.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Netboot =====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;systemd-boot&amp;quot; は [[Netboot]] をチェーンロードできます。{{ic|ipxe-arch.efi}}  EFI バイナリとその署名をダウンロードし、それを検証した後、提案された場所に {{ic|&#039;&#039;esp&#039;&#039;/EFI/arch_netboot/arch_netboot.efi}} として配置します。&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/arch_netboot.conf|&lt;br /&gt;
title Arch Linux Netboot&lt;br /&gt;
efi /EFI/arch_netboot/arch_netboot.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== GRUB =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-boot&#039;&#039; は [[GRUB]] をチェーンロードできます。{{ic|grubx64.efi}} バイナリの場所は、GRUB が ESP にインストールされた際に使用された {{ic|1=--bootloader-id=}} と一致します。&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/grub.conf|&lt;br /&gt;
title GRUB&lt;br /&gt;
efi /EFI/GRUB/grubx64.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 別のディスクから起動 ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;systemd-boot&amp;quot; は起動元の ESP や同一ディスク上のXBOOTLDRパーティション以外のパーティションからEFIバイナリを起動 [https://github.com/systemd/systemd/issues/3252 できませんが、] [[UEFI シェル]] を使ってそれを行うことができます。&lt;br /&gt;
&lt;br /&gt;
まず、上記の [[#EFI シェルや他の EFI アプリ]] のセクションに従って、{{Pkg|edk2-shell}} パッケージをインストールします。UEFI シェルで &amp;quot;map&amp;quot; コマンドを使用して、対応する PARTUUID を持つパーティションの &#039;&#039;&#039;FS エイリアス&#039;&#039;&#039; (例:HD0a66666a2、HD0b、FS1、BLK7) を確認します。&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|exit}} コマンドを使用して Linux に戻り、UEFI シェルを通じてターゲット EFI プログラムを実行するための新しいローダーエントリを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/windows.conf|&lt;br /&gt;
title   Windows&lt;br /&gt;
efi     /shellx64.efi&lt;br /&gt;
options -nointerrupt -nomap -noversion HD0b:EFI\Microsoft\Boot\Bootmgfw.efi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|efi}} パスは、 {{ic|shellx64.efi}} がコピーされた &amp;quot;esp&amp;quot; パーティション内の場所と一致していることを確認してください。また、{{ic|shellx64.efi}} EFI ファイルは、&amp;quot;systemd-boot&amp;quot; による自動エントリ作成を避けるために他の場所に移動することもできます。&lt;br /&gt;
&lt;br /&gt;
{{ic|HD0b}} は、前述の &amp;quot;FS エイリアス&amp;quot; に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
* {{ic|-nointerrupt}} オプションは、{{ic|Ctrl+c}} でターゲット EFI プログラムを中断しないようにします。&lt;br /&gt;
* {{ic|-nomap -noversion}} オプションは、デフォルトの UEFI シェルの挨拶を非表示にします。&lt;br /&gt;
* ターゲットEFIプログラムが終了した場合(例えばエラーで)にUEFIシェルが自動的にブートローダーに戻るようにするには、{{ic|-exit}}  オプションを追加します。&lt;br /&gt;
* もし UEFI シェル内にまだ不要な出力がある場合、{{ic|-noconsoleout}}  オプションを追加できます。&lt;br /&gt;
&lt;br /&gt;
=== UEFI ファームウェアセットアップの起動 ===&lt;br /&gt;
&lt;br /&gt;
systemd-boot は、デバイスのファームウェアが OS からセットアップに再起動することをサポートしている場合、UEFI ファームウェアセットアップに起動するエントリを自動的に追加します。&lt;br /&gt;
&lt;br /&gt;
=== ハイバネーション ===&lt;br /&gt;
&lt;br /&gt;
[[サスペンドとハイバネート]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== パスワードで保護されたカーネルパラメータエディタ ===&lt;br /&gt;
&lt;br /&gt;
{{ic|password}} 設定オプションをサポートしている {{AUR|systemd-boot-password}} をインストールすることもできます。{{ic|sbpctl generate}} を使ってオプションで指定する値を生成できます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;systemd-boot-password&#039;&#039; は以下のコマンドでインストールしてください:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=# sbpctl install &#039;&#039;esp&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
カーネルパラメータを編集する前にパスワードの入力が求められるようになります。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== ブートメニューで使用できるキー ===&lt;br /&gt;
&lt;br /&gt;
ブートメニューで使用できるキー割り当てについては、{{man|7|systemd-boot|KEY BINDINGS}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 再起動後の起動対象を選択する ===&lt;br /&gt;
&lt;br /&gt;
ブートマネージャーは systemctl コマンドに統合されており、再起動後に起動させるオプションを選択できます。例えば、カスタムカーネルのエントリファイルが {{ic|&#039;&#039;esp&#039;&#039;/loader/entries/arch-custom.conf}} にあるとき、次のようにするとデフォルト設定はそのままにカスタムカーネルが起動します:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl reboot --boot-loader-entry=arch-custom&lt;br /&gt;
&amp;lt;!-- To see a list of possible entries pass the {{ic|--help}} option. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
マザーボードのファームウェアを起動させるときは次のようにします:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl reboot --firmware-setup&lt;br /&gt;
&lt;br /&gt;
=== ユニファイドカーネルイメージ を使う ===&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;esp&#039;&#039;/EFI/Linux/}} にある [[ユニファイドカーネルイメージ|Unified kernel image]] (UKI)は、systemd-boot によって自動的に読み込まれ、{{ic|&#039;&#039;esp&#039;&#039;/loader/entries}} にエントリを追加する必要はありません。(Unified kernel image は、systemd-boot によって識別されるためには、{{ic|.efi}} 拡張子を持っている必要があります。)&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|&#039;&#039;esp&#039;&#039;/loader/entries/}} 内のファイルは、{{ic|&#039;&#039;esp&#039;&#039;/loader/loader.conf}} に {{ic|default}} が設定されていない場合、最初に起動されます。それらのエントリを削除するか、フルファイル名でデフォルトを設定してください。例:{{ic|1=default arch-linux.efi}}}}&lt;br /&gt;
&lt;br /&gt;
=== ESP 上の Grml ===&lt;br /&gt;
&lt;br /&gt;
{{Note|以下の手順は、Grml 専用ではありません。​若干の調整で他のソフト (例: [http://www.system-rescue-cd.org/ SystemRescueCD]) のインストールも可能です。}}&lt;br /&gt;
{{Tip|{{ic|PKGBUILD}} が利用可能です: {{AUR|archiso-systemd-boot}}}}&lt;br /&gt;
&lt;br /&gt;
[https://grml.org/ Grml] ​は、システム管理とレスキュー用のソフトウェアを集めた小さなライブシステムです。&lt;br /&gt;
&lt;br /&gt;
​Grml を ESP にインストールするには、カーネル {{ic|vmlinuz}}、 initramfs {{ic|initrd.img}}、 圧縮イメージ {{ic|grml64-small.squashfs}} を iso ファイルから ESP にコピーするだけです。そのためには、まず [https://grml.org/ grml64-small.iso] ファイルをダウンロードして(マウントポイントは以降 &#039;&#039;mnt&#039;&#039; と表記される) ファイルをマウントします。​カーネルと initramfs は {{ic|&#039;&#039;mnt&#039;&#039;/boot/grml6 small/}} にあり、圧縮されたイメージは {{ic|&#039;&#039;mnt&#039;&#039;/live/grml64-small/}} にあります。&lt;br /&gt;
&lt;br /&gt;
​次に、Grml 用のディレクトリを ESP に作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p &#039;&#039;esp&#039;&#039;/grml&lt;br /&gt;
&lt;br /&gt;
​上記のファイルをコピーします:&lt;br /&gt;
&lt;br /&gt;
 # cp &#039;&#039;mnt&#039;&#039;/boot/grml64small/vmlinuz &#039;&#039;esp&#039;&#039;/grml&lt;br /&gt;
 # cp &#039;&#039;mnt&#039;&#039;/boot/grml64small/initrd.img &#039;&#039;esp&#039;&#039;/grml&lt;br /&gt;
 # cp &#039;&#039;mnt&#039;&#039;/live/grml64-small/grml64-small.squashfs &#039;&#039;esp&#039;&#039;/grml&lt;br /&gt;
&lt;br /&gt;
​最後のステップで、システムブートローダー用のエントリを作成します。 {{ic|&#039;&#039;esp&#039;&#039;/loader/entries}} 次の内容の {{ic|grml.conf}} ファイルを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/grml.conf|2=&lt;br /&gt;
title   Grml Live Linux&lt;br /&gt;
linux   /grml/vmlinuz&lt;br /&gt;
initrd  /grml/initrd.img&lt;br /&gt;
options apm=power-off boot=live live-media-path=/grml/ nomce net.ifnames=0}}&lt;br /&gt;
&lt;br /&gt;
​使用可能なブートオプションの概要については、 [http://git.grml.org/?p=grml-live.git;a=blob_plain;f=templates/GRML/grml-cheatcodes.txt;hb=HEAD cheatcode for Grml]&lt;br /&gt;
&lt;br /&gt;
=== ESP 上の Archiso ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{ic|PKGBUILD}} が利用可能です: {{AUR|archiso-systemd-boot}}}}&lt;br /&gt;
&lt;br /&gt;
Grml と同様に、Arch Linux の ISO を使用することができます。そのためには、ISO ファイルからカーネル {{ic|vmlinuz-linux}}、initramfs {{ic|initramfs-linux.img}}、および squashfs イメージ {{ic|airootfs.sfs}} を EFI システムパーティションにコピーする必要があります。&lt;br /&gt;
&lt;br /&gt;
最初に [https://archlinux.org/download/ archlinux-yyy.mm.dd-x86_64.iso] をダウンロードします。&lt;br /&gt;
&lt;br /&gt;
次に、ESP に Archiso のディレクトリを作成します:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p &#039;&#039;esp&#039;&#039;/EFI/archiso&lt;br /&gt;
&lt;br /&gt;
そこに {{ic|arch}} ディレクトリの内容を抽出します:&lt;br /&gt;
&lt;br /&gt;
 # bsdtar -v -x --no-same-permissions --strip-components 1 -f archlinux-&#039;&#039;YYYY&#039;&#039;.&#039;&#039;MM&#039;&#039;.&#039;&#039;DD&#039;&#039;-x86_64.iso -C &#039;&#039;esp&#039;&#039;/EFI/archiso arch&lt;br /&gt;
&lt;br /&gt;
最後のステップでは、systemd-boot Loader のブートエントリを作成します:{{ic|&#039;&#039;esp&#039;&#039;/roader/entries}}:&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/entries/arch-rescue.conf|2=&lt;br /&gt;
title   Arch Linux (rescue system)&lt;br /&gt;
linux   /EFI/archiso/boot/x86_64/vmlinuz-linux&lt;br /&gt;
initrd  /EFI/archiso/boot/x86_64/initramfs-linux.img&lt;br /&gt;
options archisobasedir=/EFI/archiso archisosearchfilename=/EFI/archiso/boot/x86_64/vmlinuz-linux&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
利用可能なブートオプションの概要については、[https://gitlab.archlinux.org/archlinux/mkinitcpio/mkinitcpio-archiso/-/blob/master/docs/README.bootparams README.bootparams for mkinitcpio-archiso] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== BIOS システムでの systemd-boot ===&lt;br /&gt;
&lt;br /&gt;
[https://systemd.io/BOOT_LOADER_SPECIFICATION/ ブートローダーの仕様] に従う BIOS システム用のブートローダーが必要な場合は、 BIOS システムで systemd-boot を押してサービスを開始できます。 [[Clover]] ブートローダーは BIOS システムからの起動をサポートし、シミュレートされた EFI 環境を提供します。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== systemd-boot がブートエントリを表示しない ===&lt;br /&gt;
&lt;br /&gt;
これは、カーネルへのパスが間違って指定されているなど、設定ファイルに関するさまざまな問題が原因である可能性があります。確認するには、次のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # bootctl&lt;br /&gt;
&lt;br /&gt;
=== BIOS モードで起動後にインストール ===&lt;br /&gt;
&lt;br /&gt;
{{Note|こちらの起動方法は推奨されません。}}&lt;br /&gt;
&lt;br /&gt;
BIOS モードで OS を起動したいときも &#039;&#039;systemd-boot&#039;&#039; をインストールすることは可能です。ただし、起動時に &#039;&#039;systemd-boot&#039;&#039; の EFI ファイルを実行するようにファームウェアを設定する必要があります:&lt;br /&gt;
&lt;br /&gt;
* 他の場所に機能する UEFI Shell がある場合。&lt;br /&gt;
* ファームウェアのインターフェイスから起動時にロードされる EFI ファイルを設定する。&lt;br /&gt;
* 一部のファームウェアは、UEFI に他のエントリが設定されていない場合、デフォルトで {{ic|&#039;&#039;esp&#039;&#039;/EFI/BOOT/BOOTX64.EFI}} を使用することがあります。&lt;br /&gt;
&lt;br /&gt;
設定できる場合、インストールは簡単です: EFI シェルやファームウェアの設定インターフェイスを開いて、マシンのデフォルトの EFI ファイルを {{ic|&#039;&#039;esp&#039;&#039;/EFI/systemd/systemd-bootx64.efi}} (32ビット環境の場合 {{ic|systemd-bootia32.efi}}) に変更してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Dell Latitude シリーズのファームウェアインターフェースは、UEFI ブートの設定に必要なすべてを提供しますが、UEFI シェルはコンピュータの ROM に書き込むことができません。}}&lt;br /&gt;
&lt;br /&gt;
=== efibootmgr を使って手動エントリを追加する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|bootctl install}} コマンドが失敗した場合、{{Pkg|efibootmgr}} ユーティリティを使って EFI ブートエントリを手動で作成することができます:&lt;br /&gt;
&lt;br /&gt;
 # efibootmgr --create --disk /dev/sd&#039;&#039;X&#039;&#039; --part &#039;&#039;Y&#039;&#039; --loader &#039;\EFI\systemd\systemd-bootx64.efi&#039; --label &amp;quot;Linux Boot Manager&amp;quot; --unicode&lt;br /&gt;
&lt;br /&gt;
{{ic|/dev/sdXY}} は [[EFI システムパーティション]]に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|EFI イメージのパスでは区切り文字としてバックスラッシュ ({{ic|\}}) を使用します。}}&lt;br /&gt;
&lt;br /&gt;
=== Windows の bcdedit を使用した手動入力 ===&lt;br /&gt;
&lt;br /&gt;
何らかの理由で Windows から EFI ブートエントリを作成する必要がある場合は、管理者プロンプトから次のコマンドを使用してください。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; bcdedit /copy {bootmgr} /d &amp;quot;Linux Boot Manager&amp;quot;&lt;br /&gt;
 &amp;gt; bcdedit /set {&#039;&#039;guid&#039;&#039;} path \EFI\systemd\systemd-bootx64.efi&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;guid&#039;&#039;}} を最初のコマンドによってリターンされた ID に置き換えます。これをデフォルトのエントリとして設定するには:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; bcdedit /default {&#039;&#039;guid&#039;&#039;}&lt;br /&gt;
&lt;br /&gt;
=== Windows をアップグレードした後にメニューが表示されない ===&lt;br /&gt;
&lt;br /&gt;
[[Unified Extensible Firmware Interface#Windows によってブート順序が変わってしまう]]を見てください。&lt;br /&gt;
&lt;br /&gt;
=== Windows BitLocker TPM ロック解除のサポートを追加 ===&lt;br /&gt;
&lt;br /&gt;
BitLocker による回復キーの要求を停止するには、次の行を &#039;&#039;loader.conf&#039;&#039; に追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|&#039;&#039;esp&#039;&#039;/loader/loader.conf|&lt;br /&gt;
reboot-for-bitlocker yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これにより、&#039;&#039;BootNext&#039;&#039; UEFI 変数が設定され、BitLocker が回復キーを必要とせずに &#039;&#039;Windows ブートマネージャー&#039;&#039; がロードされます。これは 1 回限りの変更であり、&#039;&#039;systemd-boot&#039;&#039; がデフォルトのブートローダーのままです。Windows が自動検出された場合は、エントリとして指定する必要はありません。&lt;br /&gt;
&lt;br /&gt;
これは実験的な機能なので、必ず {{man|5|loader.conf}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* https://systemd.io/BOOT/&lt;br /&gt;
* https://bbs.archlinux.org/viewtopic.php?id=254374&lt;br /&gt;
* https://uapi-group.org/specifications/specs/boot_loader_specification/&lt;/div&gt;</summary>
		<author><name>Mycelithyl</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Sway&amp;diff=41006</id>
		<title>Sway</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Sway&amp;diff=41006"/>
		<updated>2025-10-18T17:31:10Z</updated>

		<summary type="html">&lt;p&gt;Mycelithyl: /* カスタムキーバインド */ パッケージwevをAURから公式リポジトリへ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Wayland コンポジタ]]&lt;br /&gt;
[[es:Sway]]&lt;br /&gt;
[[en:Sway]]&lt;br /&gt;
[[it:Sway]]&lt;br /&gt;
[[pt:Sway]]&lt;br /&gt;
[[zh-hans:Sway]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
sway (&#039;&#039;&#039;S&#039;&#039;&#039;irCmpwn&#039;s &#039;&#039;&#039;Way&#039;&#039;&#039;land compositor [https://github.com/swaywm/sway/blob/f0ddf6d74c98ba6c502783b8f41be859c56712c9/README.md] から派生) は [[i3]] と互換性を持つように設計された [[Wayland]] コンポジタです。[http://swaywm.org 公式ウェブサイト] より:&lt;br /&gt;
:Sway はタイリング Wayland コンポジタであり、X11 の i3 ウィンドウマネージャの代替品です。既存の i3 設定で動作し、i3 の機能に加えて、いくつかの追加機能をサポートしています。&lt;br /&gt;
&lt;br /&gt;
見た目に興味がある場合は、Sway のフォークとして {{AUR|swayfx}} が存在します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
sway は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|sway-git}} でインストールできます。&#039;&#039;sway&#039;&#039; は &#039;&#039;wlroots&#039;&#039; に緻密に依存しているので、&#039;&#039;sway&#039;&#039; 更新時には &#039;&#039;wlroots&#039;&#039; も更新するのが望ましいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[NVIDIA]] を含む、すべてのプロプライエタリなグラフィックスドライバは [https://github.com/swaywm/sway/wiki#nvidia-users サポートされていません]。NVIDIA ドライババージョン 495 以降より、[[NVIDIA#DRM カーネルモード設定|カーネルモード設定]] を有効化して sway を {{ic|1=--unsupported-gpu}} 付きで実行すれば、sway は機能します。}}&lt;br /&gt;
&lt;br /&gt;
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。&lt;br /&gt;
&lt;br /&gt;
デフォルトのアプリケーションランチャーは {{Pkg|wmenu}} です。(ただし、デフォルトの設定はまだ {{Pkg|dmenu}} が提供する &#039;&#039;dmenu_path&#039;&#039; に依存しています)、デフォルトの[[ターミナルエミュレータ]] は {{Pkg|foot}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。i3 パッケージの Wayland 対応版については、sway wiki の [https://github.com/swaywm/sway/wiki/i3-Migration-Guide migration guide] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== sway の起動 ==&lt;br /&gt;
&lt;br /&gt;
Sway を起動する前に、キーボード、マウス、グラフィックカードなどのハードウェアデバイスにアクセスする必要があります。 {{man|3|sd-login}} で説明されているように、これらのハードウェアデバイスのコレクションはシートと呼ばれます。&lt;br /&gt;
&lt;br /&gt;
Arch Linux では、Sway は次のどちらかを使ってシートにアクセスすることができます。&lt;br /&gt;
&lt;br /&gt;
* {{man|8|systemd-logind}} と {{Pkg|polkit}} または&lt;br /&gt;
* {{Pkg|seatd}} これは、{{Pkg|wlroots}} の依存関係として Sway と一緒にインストールされます。&lt;br /&gt;
&lt;br /&gt;
{{ic|polkit}} がすでにシステムにインストールされている場合、Sway は自動的にあなたのシートにアクセスできるはずです。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|polkit}} がシステムにインストールされておらず、代わりに seatd を使用したい場合は、seat ユーザーグループに自分を追加し、{{ic|seatd.service}} を [[起動/有効化]]し、再ログインして、以下の方法のいずれかを選択して Sway を起動することができます。&lt;br /&gt;
&lt;br /&gt;
=== 手動 ===&lt;br /&gt;
&lt;br /&gt;
Linux コンソールで {{ic|sway}} と入力すれば sway が起動します。&lt;br /&gt;
&lt;br /&gt;
=== TTY ログイン時に自動起動 ===&lt;br /&gt;
&lt;br /&gt;
X と同様に、Sway はシェル初期化ファイルに以下を追加することで開始できます。([[コマンドシェル#ログインシェル]]を参照):&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
if [ -z &amp;quot;${WAYLAND_DISPLAY}&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;${XDG_VTNR}&amp;quot; -eq 1 ]; then&lt;br /&gt;
  exec sway&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
詳細については、[[xinitrc#ログイン時に X を自動起動]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイマネージャを使う ===&lt;br /&gt;
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}&lt;br /&gt;
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。&lt;br /&gt;
&lt;br /&gt;
ディスプレイマネージャを通して、[https://github.com/swaywm/sway/wiki/Systemd-integration#running-sway-itself-as-a---user-service systemd ユーザーサービス] として sway を開始することも可能です。&lt;br /&gt;
&lt;br /&gt;
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。&lt;br /&gt;
&lt;br /&gt;
{{Note|ドロップインファイルの設定スニペットを適用するために、ユーザの設定には {{ic|include /etc/sway/config.d/*}} が含まれていることが期待されます。{{Pkg|sway}} パッケージは、いくつかの環境変数を systemd ユーザセッションと dbus にインポートする {{ic|50-systemd-user.conf}} ドロップインファイルを提供しています。このドロップインファイルは、{{Pkg|xdg-desktop-portal-wlr}} などのいくつかのアプリケーションで必要です。}}&lt;br /&gt;
&lt;br /&gt;
=== キーマップ ===&lt;br /&gt;
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input * {&lt;br /&gt;
    xkb_layout &amp;quot;us,de,ru&amp;quot;&lt;br /&gt;
    xkb_variant &amp;quot;colemak,,typewriter&amp;quot;&lt;br /&gt;
    xkb_options &amp;quot;grp:win_space_toggle&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input &amp;lt;identifier&amp;gt; xkb_model &amp;quot;pc101&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。&lt;br /&gt;
&lt;br /&gt;
=== キーのオートリピート設定 ===&lt;br /&gt;
Typematic Delay (オートリピート開始までの時間) と Typematic Rate (1秒間のリピート回数) は、{{ic|input}} セクションに以下の行を加えると変更できます。設定項目について詳しくは[[コンソールでのキーボード設定#typematic delay と rate の調整]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input &amp;lt;identifier&amp;gt; repeat_delay 300&lt;br /&gt;
input &amp;lt;identifier&amp;gt; repeat_rate 30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ステータスバー ===&lt;br /&gt;
&lt;br /&gt;
sway には pure Wayland 環境で動作する &#039;&#039;swaybar&#039;&#039; がデフォルトのステータスバーとして同梱されています。&#039;&#039;swaybar&#039;&#039; はシェルスクリプトや他のプログラムを呼び出して、ステータスバーに情報を表示することができます。詳細については、{{man|5|sway-bar}} や {{man|7|swaybar-protocol}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{Pkg|waybar}} は sway に含まれているバー (swaybar) の代替になります。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3status}} のインストールは、 Wayland で実用的なデフォルトのステータスバーを取得するためのオプションです。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:&lt;br /&gt;
{{hc|~/.config/sway/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
bar {&lt;br /&gt;
  status_command i3status&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:&lt;br /&gt;
{{hc|~/.config/i3status/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
general {&lt;br /&gt;
        colors = true&lt;br /&gt;
        interval = 5&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。&lt;br /&gt;
&lt;br /&gt;
=== 壁紙 ===&lt;br /&gt;
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。&lt;br /&gt;
&lt;br /&gt;
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|&amp;quot;*&amp;quot;}} という名前にマッチする画面) で背景画像を設定できます:&lt;br /&gt;
{{hc|~/.config/sway/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
output &amp;quot;*&amp;quot; background /path/to/image.jpg fill&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
ファイルの名前やパスは適当に置き換えて下さい。&lt;br /&gt;
&lt;br /&gt;
また、背景は単一色にもできます:&lt;br /&gt;
{{bc|output * bg #000000 solid_color}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|swaybg}} コマンドの GTK3 フロントエンドとして {{AUR|azote}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 入力デバイス ===&lt;br /&gt;
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:&lt;br /&gt;
{{hc|~/.config/sway/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
input type:touchpad {&lt;br /&gt;
    tap enabled&lt;br /&gt;
    natural_scroll enabled&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
特定のタッチパッドの設定をセットするには、{{ic|swaymsg -t get_inputs}} を使用して、デバイスの Identifier を取得し、{{ic|type:touchpad}} の代わりにそれを使用します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
上記のコマンドの出力には、&amp;quot;/&amp;quot; などの記号をエスケープするために &amp;quot;\&amp;quot; が付いていることがあります (例: {{ic|&amp;quot;2:14:ETPS\/2_Elantech_Touchpad&amp;quot;}})。設定に追加するときはエスケープを取り除いてください。}}&lt;br /&gt;
&lt;br /&gt;
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。&lt;br /&gt;
&lt;br /&gt;
グラフィックタブレットをお使いの方は、[[ペンタブレット#Sway]]をご覧ください。&lt;br /&gt;
&lt;br /&gt;
==== タッチディスプレイのマッピング ====&lt;br /&gt;
&lt;br /&gt;
マルチディスプレイ環境で使用されるタッチディスプレイのタッチ入力ターゲットは、そのタッチディスプレイにのみマッピングできます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
set $display1       &amp;quot;Dell Inc. DELL P2414H VHVTW542165L&amp;quot;&lt;br /&gt;
set $display2       &amp;quot;Dell Inc. DELL P2418HT MYDM775F152L&amp;quot;&lt;br /&gt;
set $display2-touch &amp;quot;8146:24835:Melfas_LGD_AIT_Touch_Controller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
input $display2-touch map_to_output $display2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== HiDPI ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
output &amp;lt;name&amp;gt; scale &amp;lt;factor&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ディスプレイの名前は以下のコマンドで確認できます:&lt;br /&gt;
 $ swaymsg -t get_outputs&lt;br /&gt;
&lt;br /&gt;
=== タッチディスプレイのマッピング ===&lt;br /&gt;
&lt;br /&gt;
マルチディスプレイ環境で使用するタッチディスプレイのタッチ入力のターゲットを、そのタッチディスプレイのみにマッピングすることができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
set $display1       &amp;quot;Dell Inc. DELL P2414H VHVTW542165L&amp;quot;&lt;br /&gt;
set $display2       &amp;quot;Dell Inc. DELL P2418HT MYDM775F152L&amp;quot;&lt;br /&gt;
set $display2-touch &amp;quot;8146:24835:Melfas_LGD_AIT_Touch_Controller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
input $display2-touch map_to_output $display2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== カスタムキーバインド ===&lt;br /&gt;
キーボードの[[キーボード入力|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%&lt;br /&gt;
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%&lt;br /&gt;
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle&lt;br /&gt;
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle&lt;br /&gt;
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-&lt;br /&gt;
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+&lt;br /&gt;
bindsym XF86AudioPlay exec playerctl play-pause&lt;br /&gt;
bindsym XF86AudioNext exec playerctl next&lt;br /&gt;
bindsym XF86AudioPrev exec playerctl previous&lt;br /&gt;
bindsym XF86Search exec $menu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳細や代替ユーティリティについては、[[PulseAudio#キーボードのボリュームコントロール]]、[[Advanced Linux Sound Architecture#キーボードのボリュームコントロール]]、[[バックライト#バックライトユーティリティ]]、[[MPRIS]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
ロック画面がアクティブなときにキーバインドを実行できるようにするには、{{ic|--locked}} パラメーターを bindsym に追加します。&lt;br /&gt;
&lt;br /&gt;
 bindsym --locked XF86AudioPlay exec playerctl play-pause&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{Pkg|wev}} は、Wayland の {{Pkg|xorg-xev}} と同様の機能を提供するツールです。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|systemd は、電源キーやふたの開閉などの特別なキーや、閉じるイベントを処理します。これらは、sway で設定されたものと干渉する可能性があります。[[systemd]] での設定方法の詳細については、{{man|1|loginctl}} および {{man|5|logind.conf}}} を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
==== グラフィカルインジケーターバー ====&lt;br /&gt;
&lt;br /&gt;
明るさや音量などのパーセント値設定の現在のレベルを、調整時にグラフィカルなバーで表示することが望ましい場合があります。Sway でこの機能を提供する良い選択肢は {{Pkg|wob}} (あるいは {{AUR|wob-git}}) です。これは、人気な X ツール {{AUR|xob}} の機能の一部を提供し、layer-shell プロトコルを実装している Wayland ネイティブなユーティリティです。使用例は[https://github.com/francma/wob プロジェクトのウェブサイト]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== ワークスペースの概要 ====&lt;br /&gt;
&lt;br /&gt;
たくさんのワークスペースをたくさんのウィンドウで使っていて、何がどこにあるかわからなくなったら、{{AUR|sov}} が便利です。これはすべてのワークスペースのスキーマを表示するオーバーレイで、sway のナビゲーションを容易にします。プログラム名、ウィンドウのタイトルを表示し、マルチ出力のセットアップをサポートします。詳しくは [https://github.com/milgra/sov プロジェクトページ]をご覧ください。&lt;br /&gt;
&lt;br /&gt;
=== アイドリング ===&lt;br /&gt;
&lt;br /&gt;
Sway には、アイドルセッションを処理するための専用のアイドル管理デーモン {{pkg|swayidle}} があります。デーモンを起動してパラメータ化する方法はいくつかあります。最も簡単な方法は、sway 自体の設定を使用することです。{{ic|swayidle}} は、{{ic|timeout}} (別名 idling)、{{ic|resume}} (resume from sleep) 、{{ic|before-sleep}} などのイベントを構成するための多数の引数を受け取ります。イベントの詳細と詳細については、{{man|1|swayidle}} を参照してください。その後、各イベントにアクションを割り当てることができます。イベントに複数のアクションを割り当てるには、トリガーを繰り返すだけです。&lt;br /&gt;
&lt;br /&gt;
次の例では、{{ic|swayidle}} 30分後に画面をロックし、5 秒後に画面をオフにします。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
exec swayidle -w \&lt;br /&gt;
	timeout 1800 &#039;swaylock -f&#039; \&lt;br /&gt;
	timeout 1805 &#039;swaymsg &amp;quot;output * power off&amp;quot;&#039; \&lt;br /&gt;
	resume &#039;swaymsg &amp;quot;output * power on&amp;quot;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロックされたスクリーンをもっと早く、例えば10秒後にオフにするには、ロックマネージャのプロセスリストを grep し、以下のように {{ic|swaymsg &amp;quot;output * power off&amp;quot;}} を実行します。&lt;br /&gt;
&lt;br /&gt;
 timeout 10 &#039;if pgrep -x swaylock; then swaymsg &amp;quot;output * dpms off&amp;quot;; fi&#039;&lt;br /&gt;
&lt;br /&gt;
再生中のメディアを一時停止または一時停止する前に画面をロックするには、swayidle コマンドの次の手順を修正します。&lt;br /&gt;
&lt;br /&gt;
 before-sleep &#039;playerctl pause&#039;&lt;br /&gt;
 before-sleep &#039;swaylock&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|systemd も sway で設定されたイベントと競合する可能性のあるアイドルイベントを処理します。構成方法の詳細については、{{man|1|loginctl}} および {{man|5|logind.conf}} を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== フローティングウィンドウ ===&lt;br /&gt;
&lt;br /&gt;
フローティングウィンドウまたはウィンドウの割り当てを有効にするには、アプリケーションを開き、{{ic|app_id}}、{{ic|class}}、{{ic|instance}}、および {{ic|title}} 属性を使用して、フローティングウィンドウの割り当てを有効にします。次のコマンドは、開いているすべてのウィンドウのプロパティを一覧表示します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_tree&lt;br /&gt;
&lt;br /&gt;
開いているすべてのウィンドウの {{ic|app_id}} のみを取得するには、次を使用します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_tree | grep &amp;quot;app_id&amp;quot;&lt;br /&gt;
&lt;br /&gt;
フォーカスのあるウィンドウの {{ic|app_id}} を取得するには、次を使用します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_tree | jq -r &#039;..|try select(.focused == true)&#039;&lt;br /&gt;
&lt;br /&gt;
一部のウィンドウで {{ic|app_id}} が null になる場合は、{{ic|class}} 属性または {{ic|instance}} 属性 (あるいはその両方) を使用して、フローティングモード/ウィンドウの割り当てを有効にする必要があります。出力を検索して、ウィンドウの細かいルールを作成できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|2=&lt;br /&gt;
for_window [app_id=&amp;quot;galculator&amp;quot;] floating enable&lt;br /&gt;
assign [class=&amp;quot;firefox&amp;quot;] -&amp;gt; 3&lt;br /&gt;
assign [class=&amp;quot;^Urxvt$&amp;quot; instance=&amp;quot;^htop$&amp;quot;] -&amp;gt; 9&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは、{{Pkg|xorg-xprop}} を使用して [[X11]] の {{ic|class}} または {{ic|wm_name}} 属性を検索するのと似ています。&lt;br /&gt;
&lt;br /&gt;
複数のモニターを使用する場合、フローティングスクラッチパッドウィンドウが大きくなりすぎて、複数のモニターをカバーする可能性があります。このコマンドはフローティングウィンドウを中央に配置し、現在のモニターのサイズの 80% のサイズに変更します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg move position center; swaymsg resize set 80ppt 80ppt&lt;br /&gt;
&lt;br /&gt;
=== クリップボード ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、ウィンドウを閉じるとクリップボードは空になります。これは意外なことにデフォルトの動作だったりします。&lt;br /&gt;
&lt;br /&gt;
クリップボードの内容をウィンドウ間で共有するには、 &amp;quot;クリップボードマネージャ&amp;quot; をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
Wayland 用に設計されたクリップボードマネージャの一例は、{{AUR|clipman}} または {{AUR|clipman-git}} からインストールできる [https://github.com/chmouel/clipman clipman] です。&lt;br /&gt;
&lt;br /&gt;
Sway で clipman を起動するには、設定ファイルに次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|2=&lt;br /&gt;
exec wl-paste -t text --watch clipman store --no-persist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Xresources ===&lt;br /&gt;
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
=== XWayland ===&lt;br /&gt;
&lt;br /&gt;
詳細と利用可能なパッケージの概要については、[[Wayland#Xwayland]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
XWayland の使用はデフォルトで有効になっています。&lt;br /&gt;
&lt;br /&gt;
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
xwayland disable&lt;br /&gt;
}}&lt;br /&gt;
{{Note|プログラムによっては Wayland でネイティブに動作させるために [[Wayland#GUI ライブラリ|特殊な環境変数や設定オプション]] を必要とするものもありますし、Wayland を全くサポートしていないプログラム(ほとんどの独自アプリケーションを含む)もあります。現在のところ、レガシーアプリケーションが使えるようにXWaylandをオンにしておくことが推奨されています。}}&lt;br /&gt;
&lt;br /&gt;
=== 別の wlroots レンダラーを使用する ===&lt;br /&gt;
&lt;br /&gt;
環境変数 {{ic|WLR_RENDERER}} を指定することにより、別の [https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/render wlroots レンダラー]を使用することができます。利用可能なレンダラーの一覧は、[https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/docs/env_vars.md wlroots のドキュメント]にあります。&lt;br /&gt;
&lt;br /&gt;
=== 自動起動 ===&lt;br /&gt;
&lt;br /&gt;
[[i3#自動起動]] を参照して、sway の設定ファイル名を調整してください。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== 最初に CapsLock/NumLock を有効にする ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、sway は起動時に最初に {{ic|CapsLock}} と {{ic|NumLock}} キーを無効にします。代わりに、起動時にこれらを有効にするには、キーボード入力設定の {{ic|xkb_capslock}} または {{ic|xkb_numlock}} あるいはその両方を {{ic|enable}}に設定します。例えば、すべてのキーボードで有効にするには、sway 設定に次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input type:keyboard xkb_capslock enabled&lt;br /&gt;
input type:keyboard xkb_numlock enabled&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
いずれの場合も、キーボードの該当するキーを押すことで {{ic|CapsLock}} と {{ic|NumLock}} を切り替えることができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|1=これらのオプションを有効にすると、sway 設定ファイル [https://bugzilla.mozilla.org/show_bug.cgi?id=1652820 Bugzilla 1652820] をリロードしたときに Firefox がクラッシュする可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
=== 現在のキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
現在のキーボードレイアウトは、次のようにして取得できます。{{ic|&#039;&#039;kbd_identifier&#039;&#039;}} は、キーボードの識別子で置き換える必要があります。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_inputs {{!}} jq -r &#039;.[] {{!}} select(.identifier == &amp;quot;&#039;&#039;kbd_identifier&#039;&#039;&amp;quot;) {{!}} .xkb_active_layout_name&#039;&lt;br /&gt;
&lt;br /&gt;
=== コンポーズキー ===&lt;br /&gt;
&lt;br /&gt;
{{ic|PrintScreen}} を[[Xorg でのキーボード設定#コンポーズキーの設定|コンポーズキー]]として設定するには、&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg &#039;input * xkb_options compose:prsc&#039;&lt;br /&gt;
&lt;br /&gt;
コンポーズキーの組み合わせは、[[Xorg でのキーボード設定#キーの組み合わせ|XCompose ファイル]]で設定することもできます。この変更を有効にするには、アプリケーションを再起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/include/X11/keysymdef.h}} でキーの名前を調べたり、{{man|1|xev}} のようなデバッガ {{man|1|xkbcli-interactive-wayland}} ({{ic|/usr/lib/xkbcommon/}}フォルダ中) を使ったりすることができます。&lt;br /&gt;
&lt;br /&gt;
=== バックライト切り替え ===&lt;br /&gt;
&lt;br /&gt;
ディスプレイの電源をオフ (またはオン) にするには (例:{{ic|Pause}})、次のスクリプトを Sway {{ic|config}} でバインドします。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
read lcd &amp;lt; /tmp/lcd&lt;br /&gt;
    if [ &amp;quot;$lcd&amp;quot; -eq &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
        swaymsg &amp;quot;output * power on&amp;quot;&lt;br /&gt;
        echo 1 &amp;gt; /tmp/lcd&lt;br /&gt;
    else&lt;br /&gt;
        swaymsg &amp;quot;output * power off&amp;quot;&lt;br /&gt;
        echo 0 &amp;gt; /tmp/lcd&lt;br /&gt;
    fi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または、[https://github.com/swaywm/sway/pull/6099 toggle] オプションを直接使用することもできますが、複数のモニターがある場合は出力を明示的に指定する必要があります。&lt;br /&gt;
	&lt;br /&gt;
 $ swaymsg &amp;quot;output &#039;&#039;output_name&#039;&#039; power toggle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 画面キャプチャと画面共有 ===&lt;br /&gt;
&lt;br /&gt;
こちらを参照 [[スクリーンショットの取得#Wayland]]&lt;br /&gt;
&lt;br /&gt;
=== 色温度調整 ===&lt;br /&gt;
&lt;br /&gt;
こちらを参照 [[バックライト#Wayland]].&lt;br /&gt;
&lt;br /&gt;
=== キーボードを使用して swaynag を制御する ===&lt;br /&gt;
&lt;br /&gt;
既定の警告/プロンプトプログラムである Swaynag は、sway に付属しており、ユーザーによるマウス操作のみをサポートしています。キーボードショートカットによる対話を有効にするには、{{AUR|swaynagmode}} などのヘルパープログラムを使用します。&lt;br /&gt;
&lt;br /&gt;
Swaynag モードは、まず swaynag を起動し、次のボタンの選択、プロンプトの削除、選択したボタンの受け入れなどのアクションをトリガーするシグナルを待機します。これらのシグナルは、制御引数 ({{ic|swaynagmode--select right}} や {{ic|swaynagmode--confirm}}など) を指定して swaynagmode スクリプト自体の別のインスタンスを起動することで送信されます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、Swaynagmode は初期化時にスウェイモード {{ic|nag}} をトリガーし、終了時に {{ic|default}} をトリガーします。これにより、sway 構成でキーバインディングを簡単に定義できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
set $nag exec swaynagmode&lt;br /&gt;
mode &amp;quot;nag&amp;quot; {&lt;br /&gt;
  bindsym {&lt;br /&gt;
    Ctrl+d    mode &amp;quot;default&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    Ctrl+c    $nag --exit&lt;br /&gt;
    q         $nag --exit&lt;br /&gt;
    Escape    $nag --exit&lt;br /&gt;
&lt;br /&gt;
    Return    $nag --confirm&lt;br /&gt;
&lt;br /&gt;
    Tab       $nag --select prev&lt;br /&gt;
    Shift+Tab $nag --select next&lt;br /&gt;
&lt;br /&gt;
    Left      $nag --select next&lt;br /&gt;
    Right     $nag --select prev&lt;br /&gt;
&lt;br /&gt;
    Up        $nag --select next&lt;br /&gt;
    Down      $nag --select prev&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
sway バージョン1.2以降では、モード名で大文字と小文字が区別されることに注意してください。&lt;br /&gt;
&lt;br /&gt;
swaynagmode を使用するように sway を設定するには、設定コマンド {{ic|swaynag_command swaynagmode}} を使用します。&lt;br /&gt;
&lt;br /&gt;
=== カーソルテーマとカーソルの大きさ ===&lt;br /&gt;
[[カーソルテーマ]] やカーソルの大きさを変更するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
seat seat0 xcursor_theme &#039;&#039;my_cursor_theme&#039;&#039; &#039;&#039;my_cursor_size&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;my_cursor_theme&#039;&#039;}} は {{ic|Default}}, {{ic|Adwaita}}, {{ic|Simple-and-Soft}} などに置きかえ、{{ic|&#039;&#039;my_cursor_size&#039;&#039;}} は {{ic|48}} などに置きかえます。&lt;br /&gt;
&lt;br /&gt;
{{ic|echo $XCURSOR_SIZE}} と {{ic|echo $XCURSOR_THEME}} でこれらの値を調べることができます。&lt;br /&gt;
&lt;br /&gt;
変更を反映させるにはアプリケーションを再起動してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Wayland ではクライアント側でカーソルテーマが決定されます。アプリケーションが{{ic|$XCURSOR_SIZE}}, {{ic|$XCURSOR_THEME}} 環境変数を参照しないこともありえます。}}&lt;br /&gt;
&lt;br /&gt;
=== systemd で sway 固有のデーモンを管理する ===&lt;br /&gt;
&lt;br /&gt;
一部のサービス/デーモン ({{Pkg|swayidle}} や {{Pkg|kanshi}}など) は、現在のウィンドウマネージャが Sway の場合にのみ開始し、Sway が停止したときにこれらのサービスを停止したい場合があります。これを行うには、{{ic|sway-session.target}} を作成し、{{ic|sway-session.target}} が必要とするデーモン/サービスを作成します。この systemd ターゲットは、ユーザーターゲットである必要があります ([[systemd/ユーザー]] を参照) 例:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/systemd/user/sway-session.target|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Sway compositor session&lt;br /&gt;
Documentation=man:systemd.special&lt;br /&gt;
BindsTo=graphical-session.target&lt;br /&gt;
Wants=graphical-session-pre.target&lt;br /&gt;
After=graphical-session-pre.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、Sway の設定ファイル(たとえば、{{ic|~/.config/sway/config}} に行を追加するか、{{ic|/etc/sway/config.d/}} に新しいファイルを追加して) 次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/sway/config|2=&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
exec_always &amp;quot;systemctl --user start sway-session.target&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
設定ファイルの上記の行追加で、Sway が起動するたびに {{ic|sway-session.target}} もアクティブになります。&lt;br /&gt;
&lt;br /&gt;
最後に、目的のサービスを {{ic|sway-session.target}} にリンクします。たとえば、{{Pkg|kanshi}} (または {{AUR|kanshi-git}}) サービスを追加するには、次のように入力します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/systemd/user/kanshi.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Dynamic output configuration for Wayland compositors&lt;br /&gt;
Documentation=https://sr.ht/~emersion/kanshi&lt;br /&gt;
BindsTo=sway-session.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/kanshi&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sway-session.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この[[ユーザーユニット]]を[[有効化]]は、Sway が動作している時のみ有効で、Sway が停止すると無効になります。&lt;br /&gt;
&lt;br /&gt;
{{ic|sway-session.target}} ファイルの作成と環境のインポートは、{{AUR|sway-systemd-git}} をインストールすることでも行うことができます。sway-systemd はサービスを cgroup に分けるだけでなく、各 GUI アプリケーションを独自の cgroup に配置します。これにより、個々のアプリケーションに対して cgroup 単位のリソース制約を課すことができます。[https://github.com/alebastr/sway-systemd sway-systemd README] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動後の画面解像度の変更 ===&lt;br /&gt;
&lt;br /&gt;
グラフィカルプログラム {{AUR|wdisplays}} またはターミナルプログラム {{AUR|wlr-randr}}&lt;br /&gt;
を使って、回転、解像度を変更し、ディスプレイを配置します。&lt;br /&gt;
&lt;br /&gt;
=== ヘッドレス出力の作成 ===&lt;br /&gt;
&lt;br /&gt;
物理的なビデオインターフェイスに関連しない出力を作成する、 HEADLESS-1、HEADLESS-2 など。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg create_output&lt;br /&gt;
&lt;br /&gt;
新しい出力の説明を表示します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -pt get_outputs | grep -A 10 HEADLESS&lt;br /&gt;
&lt;br /&gt;
新しい出力を、たとえば {{ic|output}} コマンドで設定します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/sway/config|2=&lt;br /&gt;
output HEADLESS-1 {&lt;br /&gt;
pos 1920,0&lt;br /&gt;
mode 1280x720@75Hz&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 既知の問題 ==&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|Sway の wiki には [https://github.com/swaywm/sway/wiki#program-launchers 既知のアプリケーションランチャーのリスト] もあります。}} &lt;br /&gt;
&lt;br /&gt;
i3-dmenu-desktop {{Pkg|dmenu}}、および {{Pkg|rofi}} はすべて Sway では比較的うまく機能しますが、すべて XWayland で実行されており、カーソルをネイティブの Wayland ウィンドウに移動すると応答しなくなるという同じ問題があります。この問題の理由は、Wayland のクライアント/ウィンドウが画面のフォーカスを持っていない限り、入力デバイスにアクセスできないためです。XWayland サーバ自体が Wayland コンポジタのクライアントであるためで、XWayland クライアントの1つは、ユーザ入力にアクセスするためのフォーカスを持っている必要があります。しかし、クライアントの1つがフォーカスを取得すると、入力を収集し、X11 プロトコルを介してすべての XWayland クライアントが利用できるようにします。そのため、XWayland のウィンドウにカーソルを移動して Esc キーを押すと問題が解決し、{{ic|pkill}} を実行しても問題が解決する場合があります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bemenu}} は Wayland の dmenu をネイティブに置き換えたものです。どちらもオプションで {{Pkg|j4-dmenu-desktop}} と組み合わせることで、デスクトップファイルを起動するための Wayland ネイティブな組み合わせを提供できます (i3-dmenu-desktop がそうであるように)。例えば&lt;br /&gt;
&lt;br /&gt;
 j4-dmenu-desktop --dmenu=&#039;bemenu -i --nb &amp;quot;#3f3f3f&amp;quot; --nf &amp;quot;#dcdccc&amp;quot; --fn &amp;quot;pango:DejaVu Sans Mono 12&amp;quot;&#039; --term=&#039;termite&#039;&lt;br /&gt;
&lt;br /&gt;
XWayland を無効にしない場合は、{{ic|BEMENU_BACKEND}} 環境変数を &amp;quot;wayland&amp;quot; に設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
フローティングターミナルと fzf を使用して独自のビルドを行うこともできます ([https://github.com/swaywm/sway/issues/1367 GitHub の問題] を参照)&lt;br /&gt;
&lt;br /&gt;
また、{{Pkg|plasma-workspace}} パッケージが提供する {{ic|krunner}} バイナリもランチャーとして機能し、XWayland とネイティブ Wayland の両方をサポートします。&lt;br /&gt;
&lt;br /&gt;
{{AUR|rofi-lbonn-wayland-git}} は {{Pkg|rofi}} の派生形で、Wayland で動作します。また、X11 セッションで起動する必要がある場合は {{ic|-x11}} フラグがあります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|wofi}} はコマンド・ランチャーで、rofi と同じ機能の一部を提供します、wofi には、SSH モードやウィンドウ切り替えモードなど、rofi の機能の一部が欠けています。これは {{Pkg|wlroutes}} ライブラリに基づいており、レンダリングには GTK3 を使用していて、sway にはとてもよく効きます。&lt;br /&gt;
&lt;br /&gt;
=== 仮想環境で使う ===&lt;br /&gt;
&lt;br /&gt;
Sway は [[VirtualBox]] や [[VMware]] ESXi の両方で動作します。&lt;br /&gt;
&lt;br /&gt;
[[QEMU]] で Sway を機能させるには、{{ic|-vga qxl}} で QEMU を開始する必要があります。 [[QEMU#qxl]]も参照してください。&lt;br /&gt;
&lt;br /&gt;
==== Sway を tty から起動できない ====&lt;br /&gt;
&lt;br /&gt;
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== マウスカーソルが表示されない ====&lt;br /&gt;
&lt;br /&gt;
特定のグラフィックスドライバー(VMSVGA グラフィックコントローラーやのプロプライエタリ NVIDIA ドライバーなど)を使うとカーソルが表示されません。これは、[https://github.com/swaywm/sway/issues/3814] で説明されているようにソフトウェアカーソルを使用して修正できます。&lt;br /&gt;
&lt;br /&gt;
 $ export WLR_NO_HARDWARE_CURSORS=1&lt;br /&gt;
&lt;br /&gt;
=== Sway Socket Not Detected ===&lt;br /&gt;
&lt;br /&gt;
{{ic|swaymsg -t get_outputs}} などの {{ic|swaymsg}} 引数を使用すると、次のメッセージが返されることがあります。&lt;br /&gt;
&lt;br /&gt;
 sway socket not detected.&lt;br /&gt;
 ERROR: Unable to connect to&lt;br /&gt;
&lt;br /&gt;
ターミナルマルチプレクサ ([[GNU Screen]] や [[tmux]] など) 内で実行される場合。これは、{{ic|swaymsg}} が {{ic|SWAYSOCK}} で提供されたソケットに接続できなかったことを意味します。&lt;br /&gt;
&lt;br /&gt;
{{ic|SWAYSOCK}} の現在の値を確認するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ env {{!}} grep -F &amp;quot;SWAYSOCK&amp;quot;|2=&lt;br /&gt;
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この問題を回避するには、実行中の sway プロセスに基づいてソケットにアタッチしてみてください。&lt;br /&gt;
&lt;br /&gt;
 $ export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock&lt;br /&gt;
&lt;br /&gt;
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== Wayland サーバーへの接続に失敗する ===&lt;br /&gt;
&lt;br /&gt;
Tmux はセッションごとにローカルな環境変数を作成します (確認するには {{ic|tmux show-environment}} と入力) そのため、[https://github.com/tmux-plugins/tmux-resurrect tmux-resurrect] や [https://github.com/tmux-plugins/tmux-continuum tmux-continuum] で以前の tmux セッションに再アタッチしたり、sway の起動前に tmux サーバを起動すると、環境変数は、古くなっています。&lt;br /&gt;
&lt;br /&gt;
{{ic|update-environment}} を使って、セッションにアタッチするたびにそれらを更新するように tmux に指示するには、以下を {{ic|.tmux.conf}} に追加してください。&lt;br /&gt;
&lt;br /&gt;
 set-option -g update-environment &amp;quot;DISPLAY WAYLAND_DISPLAY SWAYSOCK SSH_AUTH_SOCK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Unable to retrieve socket path ===&lt;br /&gt;
&lt;br /&gt;
tty から {{ic|swaymsg -t}} を実行すると、&lt;br /&gt;
 Unable to retrieve socket path&lt;br /&gt;
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。&lt;br /&gt;
&lt;br /&gt;
=== キー割り当てとキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、複数のキーボードレイアウト {{ic|&amp;lt;nowiki&amp;gt;input * xkb_layout &amp;quot;us,ru&amp;quot;&amp;lt;/nowiki&amp;gt;}} を使用している場合、セカンダリレイアウトを切り替えたときにバインディングが壊れることがあります。&lt;br /&gt;
&lt;br /&gt;
https://github.com/swaywm/sway/pull/3058, のおかげで、以下のように {{ic|--to-code}} 行に {{ic|--to-code}}キーを追加するだけで済みます。&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
bindsym --to-code {&lt;br /&gt;
  $mod+$left focus left&lt;br /&gt;
  $mod+$down focus down&lt;br /&gt;
  $mod+$up focus up&lt;br /&gt;
  $mod+$right focus right&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または、変数 {{ic|set$mybind bindsym--to-code}} を作成し、{{ic|bindsym}} のすべてのインスタンスを {{ic|$mybind}} で置き換えることもできます。{{ic|$mybind$mod+w thing}}&lt;br /&gt;
&lt;br /&gt;
=== Java アプリケーション ===&lt;br /&gt;
&lt;br /&gt;
一部の Java ベースのアプリケーション (IntelliJ、CLion、PyCharm などの JetBrains エディタ) を開くと、空白の画面が表示されます。これを軽減するには、{{ic|_JAVA_AWT_WM_NONREPARENTING}} 環境変数を1に設定してアプリケーションを起動します。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|rofi}} や {{Pkg|dmenu}} などのランチャーからアプリケーションを起動する場合は、 [[デスクトップエントリ#環境変数の修正]] に示すように、アプリケーションのデスクトップエントリを変更してください。&lt;br /&gt;
&lt;br /&gt;
Java アプリケーションに関するいくつかの問題は、OpenJDK11 および Sway 1.5 で修正されました。ただし、一部のアプリケーションでは、新しいバージョンの OpenJDK を使用するために追加の構成が必要です。Android Studio の場合は、{{ic|1=STUDIO_JDK=/usr/lib/jvm/java-11-openjdk/}} を設定する必要があります。 [https://github.com/swaywm/sway/issues/5414]&lt;br /&gt;
&lt;br /&gt;
=== ボーダーでスクロール ===&lt;br /&gt;
&lt;br /&gt;
アプリケーションのボーダー上でマウスのスクロールホイールを使用するとクラッシュする場合は、{{ic|app_id}} (例:Firefox) に {{ic|border none}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== Program cannot open display ===&lt;br /&gt;
&lt;br /&gt;
起動時に &#039;&#039;Program cannot open display&#039;&#039; というエラーメッセージが表示されてプログラムがクラッシュする場合は、使用しているプログラムが X11 プログラムである可能性があります。XWayland 互換性レイヤを使って Wayland で X11 プログラムを実行することができます。詳細は [[Sway#Xwayland]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Unable to open wayland socket ===&lt;br /&gt;
&lt;br /&gt;
sway が起動せず、&amp;quot;Unable to open wayland socket&amp;quot; というエラーメッセージが出力される場合は、`$XDG_RUNTIME_DIR` 環境変数が設定されているが、指定したディレクトリがないことを意味する場合があります。&lt;br /&gt;
&lt;br /&gt;
=== WINE アプリケーションでマウスが動作しない ===&lt;br /&gt;
&lt;br /&gt;
プログラムを実行するとき、WINE はプライマリーモニターが設定されていることを期待しますが、Wayland にはプライマリーモニターの概念がないため、(クリックが認識されないなど) 問題を引き起こす可能性があります。代わりに、Sway の設定にこの行を追加することで、[[xrandr]] を介して XWayland が使用するプライマリモニタを指定することができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|2=&lt;br /&gt;
...&lt;br /&gt;
exec_always xrandr --output XWAYLAND0 --primary&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For this to work your display position offset needs to be 0,0 because of a bug [https://github.com/swaywm/sway/issues/6651] in sway.&lt;br /&gt;
XWAYLAND0 (または任意の XWAYLAND ディスプレイ名) はあなたのモニターを表していない可能性があり、異なるセッションで変更される可能性があります。代わりに、次の行を使用して最初の XWAYLAND ディスプレイを指定することができます。:&lt;br /&gt;
&lt;br /&gt;
 exec_always xrandr --output $(xrandr | grep -m 1 XWAYLAND | awk &#039;{print $1;}&#039;) --primary&lt;br /&gt;
&lt;br /&gt;
これらの行は、あなたのニーズに合わせて調整する必要があるかもしれません。どのディスプレイがどの名前にマッピングされているかは、引数なしで {{ic|xrandr}} コマンドを使用することで確認できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|XWayland は、新しく接続されたモニターを(電源を切って再び入れたものも含めて)まったく新しいディスプレイとして認識します。もしこれが &amp;quot;プライマリーモニター&amp;quot; に起こった場合、それはもはやプライマリーとはみなされていません。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/SirCmpwn/sway Github プロジェクト]&lt;br /&gt;
* [https://github.com/swaywm/sway/wiki Sway user-maintained wiki]&lt;br /&gt;
* [http://swaywm.org ウェブサイト]&lt;br /&gt;
* [https://drewdevault.com/2019/03/11/Sway-1.0-released.html Announcing the release of sway 1.0]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Sway|2023/4/11|775342}}&lt;/div&gt;</summary>
		<author><name>Mycelithyl</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Sway&amp;diff=41001</id>
		<title>Sway</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Sway&amp;diff=41001"/>
		<updated>2025-10-17T19:56:53Z</updated>

		<summary type="html">&lt;p&gt;Mycelithyl: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Wayland コンポジタ]]&lt;br /&gt;
[[es:Sway]]&lt;br /&gt;
[[en:Sway]]&lt;br /&gt;
[[it:Sway]]&lt;br /&gt;
[[pt:Sway]]&lt;br /&gt;
[[zh-hans:Sway]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
sway (&#039;&#039;&#039;S&#039;&#039;&#039;irCmpwn&#039;s &#039;&#039;&#039;Way&#039;&#039;&#039;land compositor [https://github.com/swaywm/sway/blob/f0ddf6d74c98ba6c502783b8f41be859c56712c9/README.md] から派生) は [[i3]] と互換性を持つように設計された [[Wayland]] コンポジタです。[http://swaywm.org 公式ウェブサイト] より:&lt;br /&gt;
:Sway はタイリング Wayland コンポジタであり、X11 の i3 ウィンドウマネージャの代替品です。既存の i3 設定で動作し、i3 の機能に加えて、いくつかの追加機能をサポートしています。&lt;br /&gt;
&lt;br /&gt;
見た目に興味がある場合は、Sway のフォークとして {{AUR|swayfx}} が存在します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
sway は {{Pkg|sway}} パッケージで[[インストール]]できます。最新の開発版は {{AUR|sway-git}} でインストールできます。&#039;&#039;sway&#039;&#039; は &#039;&#039;wlroots&#039;&#039; に緻密に依存しているので、&#039;&#039;sway&#039;&#039; 更新時には &#039;&#039;wlroots&#039;&#039; も更新するのが望ましいです。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[NVIDIA]] を含む、すべてのプロプライエタリなグラフィックスドライバは [https://github.com/swaywm/sway/wiki#nvidia-users サポートされていません]。NVIDIA ドライババージョン 495 以降より、[[NVIDIA#DRM カーネルモード設定|カーネルモード設定]] を有効化して sway を {{ic|1=--unsupported-gpu}} 付きで実行すれば、sway は機能します。}}&lt;br /&gt;
&lt;br /&gt;
また、画面をロックする {{Pkg|swaylock}} や、アイドル時間管理デーモンの {{Pkg|swayidle}} もインストールできます。&lt;br /&gt;
&lt;br /&gt;
デフォルトのアプリケーションランチャーは {{Pkg|wmenu}} です。(ただし、デフォルトの設定はまだ {{Pkg|dmenu}} が提供する &#039;&#039;dmenu_path&#039;&#039; に依存しています)、デフォルトの[[ターミナルエミュレータ]] は {{Pkg|foot}} です。インストールするか、あるいは設定ファイルで別のアプリケーションに変更するかを、初回起動の前に行なうことが望ましいです。i3 パッケージの Wayland 対応版については、sway wiki の [https://github.com/swaywm/sway/wiki/i3-Migration-Guide migration guide] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== sway の起動 ==&lt;br /&gt;
&lt;br /&gt;
Sway を起動する前に、キーボード、マウス、グラフィックカードなどのハードウェアデバイスにアクセスする必要があります。 {{man|3|sd-login}} で説明されているように、これらのハードウェアデバイスのコレクションはシートと呼ばれます。&lt;br /&gt;
&lt;br /&gt;
Arch Linux では、Sway は次のどちらかを使ってシートにアクセスすることができます。&lt;br /&gt;
&lt;br /&gt;
* {{man|8|systemd-logind}} と {{Pkg|polkit}} または&lt;br /&gt;
* {{Pkg|seatd}} これは、{{Pkg|wlroots}} の依存関係として Sway と一緒にインストールされます。&lt;br /&gt;
&lt;br /&gt;
{{ic|polkit}} がすでにシステムにインストールされている場合、Sway は自動的にあなたのシートにアクセスできるはずです。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|polkit}} がシステムにインストールされておらず、代わりに seatd を使用したい場合は、seat ユーザーグループに自分を追加し、{{ic|seatd.service}} を [[起動/有効化]]し、再ログインして、以下の方法のいずれかを選択して Sway を起動することができます。&lt;br /&gt;
&lt;br /&gt;
=== 手動 ===&lt;br /&gt;
&lt;br /&gt;
Linux コンソールで {{ic|sway}} と入力すれば sway が起動します。&lt;br /&gt;
&lt;br /&gt;
=== TTY ログイン時に自動起動 ===&lt;br /&gt;
&lt;br /&gt;
X と同様に、Sway はシェル初期化ファイルに以下を追加することで開始できます。([[コマンドシェル#ログインシェル]]を参照):&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
if [ -z &amp;quot;${WAYLAND_DISPLAY}&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;${XDG_VTNR}&amp;quot; -eq 1 ]; then&lt;br /&gt;
  exec sway&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
詳細については、[[xinitrc#ログイン時に X を自動起動]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイマネージャを使う ===&lt;br /&gt;
{{Note|Sway は公式にはディスプレイマネージャをサポートしていません。}}&lt;br /&gt;
sway のセッションは {{ic|/usr/share/wayland-sessions/sway.desktop}} にあります。[[GDM]] や [[SDDM]] などのディスプレイマネージャは自動的にセッションを認識します。&lt;br /&gt;
&lt;br /&gt;
ディスプレイマネージャを通して、[https://github.com/swaywm/sway/wiki/Systemd-integration#running-sway-itself-as-a---user-service systemd ユーザーサービス] として sway を開始することも可能です。&lt;br /&gt;
&lt;br /&gt;
あるいは、テキストベースのセッションマネージャを使うこともできます。[[ディスプレイマネージャ#コンソール]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
i3 を既に使っている場合、i3 の設定を {{ic|~/.config/sway/config}} にコピーすればそのまま動作します。i3 を使ったことがない場合は、サンプル設定ファイルを {{ic|~/.config/sway/config}} にコピーしてください。サンプル設定ファイルは {{ic|/etc/sway/config}} にあります。ただし {{ic|DFALLBACK_CONFIG_DIR}} フラグが設定されている場合は存在しません。設定方法は {{man|5|sway}} を見てください。&lt;br /&gt;
&lt;br /&gt;
{{Note|ドロップインファイルの設定スニペットを適用するために、ユーザの設定には {{ic|include /etc/sway/config.d/*}} が含まれていることが期待されます。{{Pkg|sway}} パッケージは、いくつかの環境変数を systemd ユーザセッションと dbus にインポートする {{ic|50-systemd-user.conf}} ドロップインファイルを提供しています。このドロップインファイルは、{{Pkg|xdg-desktop-portal-wlr}} などのいくつかのアプリケーションで必要です。}}&lt;br /&gt;
&lt;br /&gt;
=== キーマップ ===&lt;br /&gt;
デフォルトでは、sway は US QWERTY キーマップで起動します。キーマップを書き換えるには:&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input * {&lt;br /&gt;
    xkb_layout &amp;quot;us,de,ru&amp;quot;&lt;br /&gt;
    xkb_variant &amp;quot;colemak,,typewriter&amp;quot;&lt;br /&gt;
    xkb_options &amp;quot;grp:win_space_toggle&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
input &amp;lt;identifier&amp;gt; xkb_model &amp;quot;pc101&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳細は {{man|5|sway-input}} および {{man|7|xkeyboard-config}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
なお、Sway は起動時に {{ic|XKB_DEFAULT_LAYOUT}} や {{ic|XKB_DEFAULT_VARIANT}} などの[[環境変数]]を読み込みますが、環境変数よりも設定ファイルの内容が優先されます。&lt;br /&gt;
&lt;br /&gt;
=== キーのオートリピート設定 ===&lt;br /&gt;
Typematic Delay (オートリピート開始までの時間) と Typematic Rate (1秒間のリピート回数) は、{{ic|input}} セクションに以下の行を加えると変更できます。設定項目について詳しくは[[コンソールでのキーボード設定#typematic delay と rate の調整]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input &amp;lt;identifier&amp;gt; repeat_delay 300&lt;br /&gt;
input &amp;lt;identifier&amp;gt; repeat_rate 30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ステータスバー ===&lt;br /&gt;
&lt;br /&gt;
sway には pure Wayland 環境で動作する &#039;&#039;swaybar&#039;&#039; がデフォルトのステータスバーとして同梱されています。&#039;&#039;swaybar&#039;&#039; はシェルスクリプトや他のプログラムを呼び出して、ステータスバーに情報を表示することができます。詳細については、{{man|5|sway-bar}} や {{man|7|swaybar-protocol}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{Pkg|waybar}} は sway に含まれているバー (swaybar) の代替になります。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3status}} のインストールは、 Wayland で実用的なデフォルトのステータスバーを取得するためのオプションです。sway の設定の末尾に以下のスニペットを追加するだけで表示できます:&lt;br /&gt;
{{hc|~/.config/sway/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
bar {&lt;br /&gt;
  status_command i3status&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
i3status をカラー出力させたい場合、i3status の設定の以下の部分を調整してください:&lt;br /&gt;
{{hc|~/.config/i3status/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
general {&lt;br /&gt;
        colors = true&lt;br /&gt;
        interval = 5&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
どちらの例でも、システム全体にインストールされた設定ファイルはユーザーディレクトリにコピーされるので、それを修正してください。&lt;br /&gt;
&lt;br /&gt;
=== 壁紙 ===&lt;br /&gt;
Sway 1.1 以降、壁紙機能は {{Pkg|swaybg}} に分割され、{{ic|output}} コマンドを動作させるのに必要です。&lt;br /&gt;
&lt;br /&gt;
以下の行を sway の設定の最後に追加することで、全ての画面 ({{ic|&amp;quot;*&amp;quot;}} という名前にマッチする画面) で背景画像を設定できます:&lt;br /&gt;
{{hc|~/.config/sway/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
output &amp;quot;*&amp;quot; background /path/to/image.jpg fill&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
ファイルの名前やパスは適当に置き換えて下さい。&lt;br /&gt;
&lt;br /&gt;
また、背景は単一色にもできます:&lt;br /&gt;
{{bc|output * bg #000000 solid_color}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|swaybg}} コマンドの GTK3 フロントエンドとして {{AUR|azote}} を使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== 入力デバイス ===&lt;br /&gt;
特定の入力デバイスの設定を調整することができます。例えば、タッチパッドの tap-to-click とナチュナルスクロールを有効にするには、以下の input ブロックを追加:&lt;br /&gt;
{{hc|~/.config/sway/config|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
input type:touchpad {&lt;br /&gt;
    tap enabled&lt;br /&gt;
    natural_scroll enabled&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
特定のタッチパッドの設定をセットするには、{{ic|swaymsg -t get_inputs}} を使用して、デバイスの Identifier を取得し、{{ic|type:touchpad}} の代わりにそれを使用します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
上記のコマンドの出力には、&amp;quot;/&amp;quot; などの記号をエスケープするために &amp;quot;\&amp;quot; が付いていることがあります (例: {{ic|&amp;quot;2:14:ETPS\/2_Elantech_Touchpad&amp;quot;}})。設定に追加するときはエスケープを取り除いてください。}}&lt;br /&gt;
&lt;br /&gt;
アクセラレーションなど他のオプションについては {{man|5|sway-input}} で詳細を確認できます。&lt;br /&gt;
&lt;br /&gt;
グラフィックタブレットをお使いの方は、[[ペンタブレット#Sway]]をご覧ください。&lt;br /&gt;
&lt;br /&gt;
==== タッチディスプレイのマッピング ====&lt;br /&gt;
&lt;br /&gt;
マルチディスプレイ環境で使用されるタッチディスプレイのタッチ入力ターゲットは、そのタッチディスプレイにのみマッピングできます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
set $display1       &amp;quot;Dell Inc. DELL P2414H VHVTW542165L&amp;quot;&lt;br /&gt;
set $display2       &amp;quot;Dell Inc. DELL P2418HT MYDM775F152L&amp;quot;&lt;br /&gt;
set $display2-touch &amp;quot;8146:24835:Melfas_LGD_AIT_Touch_Controller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
input $display2-touch map_to_output $display2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== HiDPI ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルの {{ic|output}} コマンドでディスプレイのスケールファクタを設定してください。スケールファクタは小数でも指定できます。HiDPI ディスプレイの場合は 2 などに設定してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
output &amp;lt;name&amp;gt; scale &amp;lt;factor&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ディスプレイの名前は以下のコマンドで確認できます:&lt;br /&gt;
 $ swaymsg -t get_outputs&lt;br /&gt;
&lt;br /&gt;
=== タッチディスプレイのマッピング ===&lt;br /&gt;
&lt;br /&gt;
マルチディスプレイ環境で使用するタッチディスプレイのタッチ入力のターゲットを、そのタッチディスプレイのみにマッピングすることができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
set $display1       &amp;quot;Dell Inc. DELL P2414H VHVTW542165L&amp;quot;&lt;br /&gt;
set $display2       &amp;quot;Dell Inc. DELL P2418HT MYDM775F152L&amp;quot;&lt;br /&gt;
set $display2-touch &amp;quot;8146:24835:Melfas_LGD_AIT_Touch_Controller&amp;quot;&lt;br /&gt;
&lt;br /&gt;
input $display2-touch map_to_output $display2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== カスタムキーバインド ===&lt;br /&gt;
キーボードの[[キーボード入力|特殊なキー]]を使ってコマンドを実行することができます。例えば、ボリュームや画面の明るさを制御するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%&lt;br /&gt;
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%&lt;br /&gt;
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle&lt;br /&gt;
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle&lt;br /&gt;
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-&lt;br /&gt;
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+&lt;br /&gt;
bindsym XF86AudioPlay exec playerctl play-pause&lt;br /&gt;
bindsym XF86AudioNext exec playerctl next&lt;br /&gt;
bindsym XF86AudioPrev exec playerctl previous&lt;br /&gt;
bindsym XF86Search exec $menu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳細や代替ユーティリティについては、[[PulseAudio#キーボードのボリュームコントロール]]、[[Advanced Linux Sound Architecture#キーボードのボリュームコントロール]]、[[バックライト#バックライトユーティリティ]]、[[MPRIS]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
ロック画面がアクティブなときにキーバインドを実行できるようにするには、{{ic|--locked}} パラメーターを bindsym に追加します。&lt;br /&gt;
&lt;br /&gt;
 bindsym --locked XF86AudioPlay exec playerctl play-pause&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{AUR|wev}} は、Wayland の {{Pkg|xorg-xev}} と同様の機能を提供するツールです。}}&lt;br /&gt;
&lt;br /&gt;
{{Note|systemd は、電源キーやふたの開閉などの特別なキーや、閉じるイベントを処理します。これらは、sway で設定されたものと干渉する可能性があります。[[systemd]] での設定方法の詳細については、{{man|1|loginctl}} および {{man|5|logind.conf}}} を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
==== グラフィカルインジケーターバー ====&lt;br /&gt;
&lt;br /&gt;
明るさや音量などのパーセント値設定の現在のレベルを、調整時にグラフィカルなバーで表示することが望ましい場合があります。Sway でこの機能を提供する良い選択肢は {{Pkg|wob}} (あるいは {{AUR|wob-git}}) です。これは、人気な X ツール {{AUR|xob}} の機能の一部を提供し、layer-shell プロトコルを実装している Wayland ネイティブなユーティリティです。使用例は[https://github.com/francma/wob プロジェクトのウェブサイト]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== ワークスペースの概要 ====&lt;br /&gt;
&lt;br /&gt;
たくさんのワークスペースをたくさんのウィンドウで使っていて、何がどこにあるかわからなくなったら、{{AUR|sov}} が便利です。これはすべてのワークスペースのスキーマを表示するオーバーレイで、sway のナビゲーションを容易にします。プログラム名、ウィンドウのタイトルを表示し、マルチ出力のセットアップをサポートします。詳しくは [https://github.com/milgra/sov プロジェクトページ]をご覧ください。&lt;br /&gt;
&lt;br /&gt;
=== アイドリング ===&lt;br /&gt;
&lt;br /&gt;
Sway には、アイドルセッションを処理するための専用のアイドル管理デーモン {{pkg|swayidle}} があります。デーモンを起動してパラメータ化する方法はいくつかあります。最も簡単な方法は、sway 自体の設定を使用することです。{{ic|swayidle}} は、{{ic|timeout}} (別名 idling)、{{ic|resume}} (resume from sleep) 、{{ic|before-sleep}} などのイベントを構成するための多数の引数を受け取ります。イベントの詳細と詳細については、{{man|1|swayidle}} を参照してください。その後、各イベントにアクションを割り当てることができます。イベントに複数のアクションを割り当てるには、トリガーを繰り返すだけです。&lt;br /&gt;
&lt;br /&gt;
次の例では、{{ic|swayidle}} 30分後に画面をロックし、5 秒後に画面をオフにします。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
exec swayidle -w \&lt;br /&gt;
	timeout 1800 &#039;swaylock -f&#039; \&lt;br /&gt;
	timeout 1805 &#039;swaymsg &amp;quot;output * power off&amp;quot;&#039; \&lt;br /&gt;
	resume &#039;swaymsg &amp;quot;output * power on&amp;quot;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ロックされたスクリーンをもっと早く、例えば10秒後にオフにするには、ロックマネージャのプロセスリストを grep し、以下のように {{ic|swaymsg &amp;quot;output * power off&amp;quot;}} を実行します。&lt;br /&gt;
&lt;br /&gt;
 timeout 10 &#039;if pgrep -x swaylock; then swaymsg &amp;quot;output * dpms off&amp;quot;; fi&#039;&lt;br /&gt;
&lt;br /&gt;
再生中のメディアを一時停止または一時停止する前に画面をロックするには、swayidle コマンドの次の手順を修正します。&lt;br /&gt;
&lt;br /&gt;
 before-sleep &#039;playerctl pause&#039;&lt;br /&gt;
 before-sleep &#039;swaylock&#039;&lt;br /&gt;
&lt;br /&gt;
{{note|systemd も sway で設定されたイベントと競合する可能性のあるアイドルイベントを処理します。構成方法の詳細については、{{man|1|loginctl}} および {{man|5|logind.conf}} を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
=== フローティングウィンドウ ===&lt;br /&gt;
&lt;br /&gt;
フローティングウィンドウまたはウィンドウの割り当てを有効にするには、アプリケーションを開き、{{ic|app_id}}、{{ic|class}}、{{ic|instance}}、および {{ic|title}} 属性を使用して、フローティングウィンドウの割り当てを有効にします。次のコマンドは、開いているすべてのウィンドウのプロパティを一覧表示します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_tree&lt;br /&gt;
&lt;br /&gt;
開いているすべてのウィンドウの {{ic|app_id}} のみを取得するには、次を使用します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_tree | grep &amp;quot;app_id&amp;quot;&lt;br /&gt;
&lt;br /&gt;
フォーカスのあるウィンドウの {{ic|app_id}} を取得するには、次を使用します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_tree | jq -r &#039;..|try select(.focused == true)&#039;&lt;br /&gt;
&lt;br /&gt;
一部のウィンドウで {{ic|app_id}} が null になる場合は、{{ic|class}} 属性または {{ic|instance}} 属性 (あるいはその両方) を使用して、フローティングモード/ウィンドウの割り当てを有効にする必要があります。出力を検索して、ウィンドウの細かいルールを作成できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|2=&lt;br /&gt;
for_window [app_id=&amp;quot;galculator&amp;quot;] floating enable&lt;br /&gt;
assign [class=&amp;quot;firefox&amp;quot;] -&amp;gt; 3&lt;br /&gt;
assign [class=&amp;quot;^Urxvt$&amp;quot; instance=&amp;quot;^htop$&amp;quot;] -&amp;gt; 9&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは、{{Pkg|xorg-xprop}} を使用して [[X11]] の {{ic|class}} または {{ic|wm_name}} 属性を検索するのと似ています。&lt;br /&gt;
&lt;br /&gt;
複数のモニターを使用する場合、フローティングスクラッチパッドウィンドウが大きくなりすぎて、複数のモニターをカバーする可能性があります。このコマンドはフローティングウィンドウを中央に配置し、現在のモニターのサイズの 80% のサイズに変更します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg move position center; swaymsg resize set 80ppt 80ppt&lt;br /&gt;
&lt;br /&gt;
=== クリップボード ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、ウィンドウを閉じるとクリップボードは空になります。これは意外なことにデフォルトの動作だったりします。&lt;br /&gt;
&lt;br /&gt;
クリップボードの内容をウィンドウ間で共有するには、 &amp;quot;クリップボードマネージャ&amp;quot; をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
Wayland 用に設計されたクリップボードマネージャの一例は、{{AUR|clipman}} または {{AUR|clipman-git}} からインストールできる [https://github.com/chmouel/clipman clipman] です。&lt;br /&gt;
&lt;br /&gt;
Sway で clipman を起動するには、設定ファイルに次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|2=&lt;br /&gt;
exec wl-paste -t text --watch clipman store --no-persist&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Xresources ===&lt;br /&gt;
sway で使用するには {{ic|.Xresources}} を {{ic|.Xdefaults}} にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
=== XWayland ===&lt;br /&gt;
&lt;br /&gt;
詳細と利用可能なパッケージの概要については、[[Wayland#Xwayland]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
XWayland の使用はデフォルトで有効になっています。&lt;br /&gt;
&lt;br /&gt;
一方、XWayland を無効化し、Sway の純粋な Wayland セッションを使うには次のようにします:&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
xwayland disable&lt;br /&gt;
}}&lt;br /&gt;
{{Note|プログラムによっては Wayland でネイティブに動作させるために [[Wayland#GUI ライブラリ|特殊な環境変数や設定オプション]] を必要とするものもありますし、Wayland を全くサポートしていないプログラム(ほとんどの独自アプリケーションを含む)もあります。現在のところ、レガシーアプリケーションが使えるようにXWaylandをオンにしておくことが推奨されています。}}&lt;br /&gt;
&lt;br /&gt;
=== 別の wlroots レンダラーを使用する ===&lt;br /&gt;
&lt;br /&gt;
環境変数 {{ic|WLR_RENDERER}} を指定することにより、別の [https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/render wlroots レンダラー]を使用することができます。利用可能なレンダラーの一覧は、[https://gitlab.freedesktop.org/wlroots/wlroots/-/blob/master/docs/env_vars.md wlroots のドキュメント]にあります。&lt;br /&gt;
&lt;br /&gt;
=== 自動起動 ===&lt;br /&gt;
&lt;br /&gt;
[[i3#自動起動]] を参照して、sway の設定ファイル名を調整してください。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== 最初に CapsLock/NumLock を有効にする ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、sway は起動時に最初に {{ic|CapsLock}} と {{ic|NumLock}} キーを無効にします。代わりに、起動時にこれらを有効にするには、キーボード入力設定の {{ic|xkb_capslock}} または {{ic|xkb_numlock}} あるいはその両方を {{ic|enable}}に設定します。例えば、すべてのキーボードで有効にするには、sway 設定に次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
input type:keyboard xkb_capslock enabled&lt;br /&gt;
input type:keyboard xkb_numlock enabled&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
いずれの場合も、キーボードの該当するキーを押すことで {{ic|CapsLock}} と {{ic|NumLock}} を切り替えることができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|1=これらのオプションを有効にすると、sway 設定ファイル [https://bugzilla.mozilla.org/show_bug.cgi?id=1652820 Bugzilla 1652820] をリロードしたときに Firefox がクラッシュする可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
=== 現在のキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
現在のキーボードレイアウトは、次のようにして取得できます。{{ic|&#039;&#039;kbd_identifier&#039;&#039;}} は、キーボードの識別子で置き換える必要があります。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -t get_inputs {{!}} jq -r &#039;.[] {{!}} select(.identifier == &amp;quot;&#039;&#039;kbd_identifier&#039;&#039;&amp;quot;) {{!}} .xkb_active_layout_name&#039;&lt;br /&gt;
&lt;br /&gt;
=== コンポーズキー ===&lt;br /&gt;
&lt;br /&gt;
{{ic|PrintScreen}} を[[Xorg でのキーボード設定#コンポーズキーの設定|コンポーズキー]]として設定するには、&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg &#039;input * xkb_options compose:prsc&#039;&lt;br /&gt;
&lt;br /&gt;
コンポーズキーの組み合わせは、[[Xorg でのキーボード設定#キーの組み合わせ|XCompose ファイル]]で設定することもできます。この変更を有効にするには、アプリケーションを再起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/include/X11/keysymdef.h}} でキーの名前を調べたり、{{man|1|xev}} のようなデバッガ {{man|1|xkbcli-interactive-wayland}} ({{ic|/usr/lib/xkbcommon/}}フォルダ中) を使ったりすることができます。&lt;br /&gt;
&lt;br /&gt;
=== バックライト切り替え ===&lt;br /&gt;
&lt;br /&gt;
ディスプレイの電源をオフ (またはオン) にするには (例:{{ic|Pause}})、次のスクリプトを Sway {{ic|config}} でバインドします。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
read lcd &amp;lt; /tmp/lcd&lt;br /&gt;
    if [ &amp;quot;$lcd&amp;quot; -eq &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
        swaymsg &amp;quot;output * power on&amp;quot;&lt;br /&gt;
        echo 1 &amp;gt; /tmp/lcd&lt;br /&gt;
    else&lt;br /&gt;
        swaymsg &amp;quot;output * power off&amp;quot;&lt;br /&gt;
        echo 0 &amp;gt; /tmp/lcd&lt;br /&gt;
    fi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または、[https://github.com/swaywm/sway/pull/6099 toggle] オプションを直接使用することもできますが、複数のモニターがある場合は出力を明示的に指定する必要があります。&lt;br /&gt;
	&lt;br /&gt;
 $ swaymsg &amp;quot;output &#039;&#039;output_name&#039;&#039; power toggle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 画面キャプチャと画面共有 ===&lt;br /&gt;
&lt;br /&gt;
こちらを参照 [[スクリーンショットの取得#Wayland]]&lt;br /&gt;
&lt;br /&gt;
=== 色温度調整 ===&lt;br /&gt;
&lt;br /&gt;
こちらを参照 [[バックライト#Wayland]].&lt;br /&gt;
&lt;br /&gt;
=== キーボードを使用して swaynag を制御する ===&lt;br /&gt;
&lt;br /&gt;
既定の警告/プロンプトプログラムである Swaynag は、sway に付属しており、ユーザーによるマウス操作のみをサポートしています。キーボードショートカットによる対話を有効にするには、{{AUR|swaynagmode}} などのヘルパープログラムを使用します。&lt;br /&gt;
&lt;br /&gt;
Swaynag モードは、まず swaynag を起動し、次のボタンの選択、プロンプトの削除、選択したボタンの受け入れなどのアクションをトリガーするシグナルを待機します。これらのシグナルは、制御引数 ({{ic|swaynagmode--select right}} や {{ic|swaynagmode--confirm}}など) を指定して swaynagmode スクリプト自体の別のインスタンスを起動することで送信されます。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、Swaynagmode は初期化時にスウェイモード {{ic|nag}} をトリガーし、終了時に {{ic|default}} をトリガーします。これにより、sway 構成でキーバインディングを簡単に定義できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
set $nag exec swaynagmode&lt;br /&gt;
mode &amp;quot;nag&amp;quot; {&lt;br /&gt;
  bindsym {&lt;br /&gt;
    Ctrl+d    mode &amp;quot;default&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    Ctrl+c    $nag --exit&lt;br /&gt;
    q         $nag --exit&lt;br /&gt;
    Escape    $nag --exit&lt;br /&gt;
&lt;br /&gt;
    Return    $nag --confirm&lt;br /&gt;
&lt;br /&gt;
    Tab       $nag --select prev&lt;br /&gt;
    Shift+Tab $nag --select next&lt;br /&gt;
&lt;br /&gt;
    Left      $nag --select next&lt;br /&gt;
    Right     $nag --select prev&lt;br /&gt;
&lt;br /&gt;
    Up        $nag --select next&lt;br /&gt;
    Down      $nag --select prev&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
sway バージョン1.2以降では、モード名で大文字と小文字が区別されることに注意してください。&lt;br /&gt;
&lt;br /&gt;
swaynagmode を使用するように sway を設定するには、設定コマンド {{ic|swaynag_command swaynagmode}} を使用します。&lt;br /&gt;
&lt;br /&gt;
=== カーソルテーマとカーソルの大きさ ===&lt;br /&gt;
[[カーソルテーマ]] やカーソルの大きさを変更するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|&lt;br /&gt;
seat seat0 xcursor_theme &#039;&#039;my_cursor_theme&#039;&#039; &#039;&#039;my_cursor_size&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;my_cursor_theme&#039;&#039;}} は {{ic|Default}}, {{ic|Adwaita}}, {{ic|Simple-and-Soft}} などに置きかえ、{{ic|&#039;&#039;my_cursor_size&#039;&#039;}} は {{ic|48}} などに置きかえます。&lt;br /&gt;
&lt;br /&gt;
{{ic|echo $XCURSOR_SIZE}} と {{ic|echo $XCURSOR_THEME}} でこれらの値を調べることができます。&lt;br /&gt;
&lt;br /&gt;
変更を反映させるにはアプリケーションを再起動してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Wayland ではクライアント側でカーソルテーマが決定されます。アプリケーションが{{ic|$XCURSOR_SIZE}}, {{ic|$XCURSOR_THEME}} 環境変数を参照しないこともありえます。}}&lt;br /&gt;
&lt;br /&gt;
=== systemd で sway 固有のデーモンを管理する ===&lt;br /&gt;
&lt;br /&gt;
一部のサービス/デーモン ({{Pkg|swayidle}} や {{Pkg|kanshi}}など) は、現在のウィンドウマネージャが Sway の場合にのみ開始し、Sway が停止したときにこれらのサービスを停止したい場合があります。これを行うには、{{ic|sway-session.target}} を作成し、{{ic|sway-session.target}} が必要とするデーモン/サービスを作成します。この systemd ターゲットは、ユーザーターゲットである必要があります ([[systemd/ユーザー]] を参照) 例:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/systemd/user/sway-session.target|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Sway compositor session&lt;br /&gt;
Documentation=man:systemd.special&lt;br /&gt;
BindsTo=graphical-session.target&lt;br /&gt;
Wants=graphical-session-pre.target&lt;br /&gt;
After=graphical-session-pre.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、Sway の設定ファイル(たとえば、{{ic|~/.config/sway/config}} に行を追加するか、{{ic|/etc/sway/config.d/}} に新しいファイルを追加して) 次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/sway/config|2=&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
exec_always &amp;quot;systemctl --user start sway-session.target&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
設定ファイルの上記の行追加で、Sway が起動するたびに {{ic|sway-session.target}} もアクティブになります。&lt;br /&gt;
&lt;br /&gt;
最後に、目的のサービスを {{ic|sway-session.target}} にリンクします。たとえば、{{Pkg|kanshi}} (または {{AUR|kanshi-git}}) サービスを追加するには、次のように入力します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/systemd/user/kanshi.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Dynamic output configuration for Wayland compositors&lt;br /&gt;
Documentation=https://sr.ht/~emersion/kanshi&lt;br /&gt;
BindsTo=sway-session.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/bin/kanshi&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sway-session.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この[[ユーザーユニット]]を[[有効化]]は、Sway が動作している時のみ有効で、Sway が停止すると無効になります。&lt;br /&gt;
&lt;br /&gt;
{{ic|sway-session.target}} ファイルの作成と環境のインポートは、{{AUR|sway-systemd-git}} をインストールすることでも行うことができます。sway-systemd はサービスを cgroup に分けるだけでなく、各 GUI アプリケーションを独自の cgroup に配置します。これにより、個々のアプリケーションに対して cgroup 単位のリソース制約を課すことができます。[https://github.com/alebastr/sway-systemd sway-systemd README] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動後の画面解像度の変更 ===&lt;br /&gt;
&lt;br /&gt;
グラフィカルプログラム {{AUR|wdisplays}} またはターミナルプログラム {{AUR|wlr-randr}}&lt;br /&gt;
を使って、回転、解像度を変更し、ディスプレイを配置します。&lt;br /&gt;
&lt;br /&gt;
=== ヘッドレス出力の作成 ===&lt;br /&gt;
&lt;br /&gt;
物理的なビデオインターフェイスに関連しない出力を作成する、 HEADLESS-1、HEADLESS-2 など。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg create_output&lt;br /&gt;
&lt;br /&gt;
新しい出力の説明を表示します。&lt;br /&gt;
&lt;br /&gt;
 $ swaymsg -pt get_outputs | grep -A 10 HEADLESS&lt;br /&gt;
&lt;br /&gt;
新しい出力を、たとえば {{ic|output}} コマンドで設定します。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=~/.config/sway/config|2=&lt;br /&gt;
output HEADLESS-1 {&lt;br /&gt;
pos 1920,0&lt;br /&gt;
mode 1280x720@75Hz&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 既知の問題 ==&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
{{Tip|Sway の wiki には [https://github.com/swaywm/sway/wiki#program-launchers 既知のアプリケーションランチャーのリスト] もあります。}} &lt;br /&gt;
&lt;br /&gt;
i3-dmenu-desktop {{Pkg|dmenu}}、および {{Pkg|rofi}} はすべて Sway では比較的うまく機能しますが、すべて XWayland で実行されており、カーソルをネイティブの Wayland ウィンドウに移動すると応答しなくなるという同じ問題があります。この問題の理由は、Wayland のクライアント/ウィンドウが画面のフォーカスを持っていない限り、入力デバイスにアクセスできないためです。XWayland サーバ自体が Wayland コンポジタのクライアントであるためで、XWayland クライアントの1つは、ユーザ入力にアクセスするためのフォーカスを持っている必要があります。しかし、クライアントの1つがフォーカスを取得すると、入力を収集し、X11 プロトコルを介してすべての XWayland クライアントが利用できるようにします。そのため、XWayland のウィンドウにカーソルを移動して Esc キーを押すと問題が解決し、{{ic|pkill}} を実行しても問題が解決する場合があります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bemenu}} は Wayland の dmenu をネイティブに置き換えたものです。どちらもオプションで {{Pkg|j4-dmenu-desktop}} と組み合わせることで、デスクトップファイルを起動するための Wayland ネイティブな組み合わせを提供できます (i3-dmenu-desktop がそうであるように)。例えば&lt;br /&gt;
&lt;br /&gt;
 j4-dmenu-desktop --dmenu=&#039;bemenu -i --nb &amp;quot;#3f3f3f&amp;quot; --nf &amp;quot;#dcdccc&amp;quot; --fn &amp;quot;pango:DejaVu Sans Mono 12&amp;quot;&#039; --term=&#039;termite&#039;&lt;br /&gt;
&lt;br /&gt;
XWayland を無効にしない場合は、{{ic|BEMENU_BACKEND}} 環境変数を &amp;quot;wayland&amp;quot; に設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
フローティングターミナルと fzf を使用して独自のビルドを行うこともできます ([https://github.com/swaywm/sway/issues/1367 GitHub の問題] を参照)&lt;br /&gt;
&lt;br /&gt;
また、{{Pkg|plasma-workspace}} パッケージが提供する {{ic|krunner}} バイナリもランチャーとして機能し、XWayland とネイティブ Wayland の両方をサポートします。&lt;br /&gt;
&lt;br /&gt;
{{AUR|rofi-lbonn-wayland-git}} は {{Pkg|rofi}} の派生形で、Wayland で動作します。また、X11 セッションで起動する必要がある場合は {{ic|-x11}} フラグがあります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|wofi}} はコマンド・ランチャーで、rofi と同じ機能の一部を提供します、wofi には、SSH モードやウィンドウ切り替えモードなど、rofi の機能の一部が欠けています。これは {{Pkg|wlroutes}} ライブラリに基づいており、レンダリングには GTK3 を使用していて、sway にはとてもよく効きます。&lt;br /&gt;
&lt;br /&gt;
=== 仮想環境で使う ===&lt;br /&gt;
&lt;br /&gt;
Sway は [[VirtualBox]] や [[VMware]] ESXi の両方で動作します。&lt;br /&gt;
&lt;br /&gt;
[[QEMU]] で Sway を機能させるには、{{ic|-vga qxl}} で QEMU を開始する必要があります。 [[QEMU#qxl]]も参照してください。&lt;br /&gt;
&lt;br /&gt;
==== Sway を tty から起動できない ====&lt;br /&gt;
&lt;br /&gt;
3D アクセラレーションを有効にする必要があります。[[VMware#Intel と Optimus で 3D グラフィックを有効化]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== マウスカーソルが表示されない ====&lt;br /&gt;
&lt;br /&gt;
特定のグラフィックスドライバー(VMSVGA グラフィックコントローラーやのプロプライエタリ NVIDIA ドライバーなど)を使うとカーソルが表示されません。これは、[https://github.com/swaywm/sway/issues/3814] で説明されているようにソフトウェアカーソルを使用して修正できます。&lt;br /&gt;
&lt;br /&gt;
 $ export WLR_NO_HARDWARE_CURSORS=1&lt;br /&gt;
&lt;br /&gt;
=== Sway Socket Not Detected ===&lt;br /&gt;
&lt;br /&gt;
{{ic|swaymsg -t get_outputs}} などの {{ic|swaymsg}} 引数を使用すると、次のメッセージが返されることがあります。&lt;br /&gt;
&lt;br /&gt;
 sway socket not detected.&lt;br /&gt;
 ERROR: Unable to connect to&lt;br /&gt;
&lt;br /&gt;
ターミナルマルチプレクサ ([[GNU Screen]] や [[tmux]] など) 内で実行される場合。これは、{{ic|swaymsg}} が {{ic|SWAYSOCK}} で提供されたソケットに接続できなかったことを意味します。&lt;br /&gt;
&lt;br /&gt;
{{ic|SWAYSOCK}} の現在の値を確認するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ env {{!}} grep -F &amp;quot;SWAYSOCK&amp;quot;|2=&lt;br /&gt;
SWAYSOCK=/run/user/1000/sway-ipc.1000.4981.sock&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この問題を回避するには、実行中の sway プロセスに基づいてソケットにアタッチしてみてください。&lt;br /&gt;
&lt;br /&gt;
 $ export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock&lt;br /&gt;
&lt;br /&gt;
上記のエラーを解決するには、マルチプレクサの外でコマンドを実行する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== Wayland サーバーへの接続に失敗する ===&lt;br /&gt;
&lt;br /&gt;
Tmux はセッションごとにローカルな環境変数を作成します (確認するには {{ic|tmux show-environment}} と入力) そのため、[https://github.com/tmux-plugins/tmux-resurrect tmux-resurrect] や [https://github.com/tmux-plugins/tmux-continuum tmux-continuum] で以前の tmux セッションに再アタッチしたり、sway の起動前に tmux サーバを起動すると、環境変数は、古くなっています。&lt;br /&gt;
&lt;br /&gt;
{{ic|update-environment}} を使って、セッションにアタッチするたびにそれらを更新するように tmux に指示するには、以下を {{ic|.tmux.conf}} に追加してください。&lt;br /&gt;
&lt;br /&gt;
 set-option -g update-environment &amp;quot;DISPLAY WAYLAND_DISPLAY SWAYSOCK SSH_AUTH_SOCK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Unable to retrieve socket path ===&lt;br /&gt;
&lt;br /&gt;
tty から {{ic|swaymsg -t}} を実行すると、&lt;br /&gt;
 Unable to retrieve socket path&lt;br /&gt;
というメッセージが表示されます。これは {{ic|SWAYLOCK}} 環境変数が Sway 起動後に設定されるためで、{{ic|swaymsg}} は Sway 内のターミナルで実行してください。&lt;br /&gt;
&lt;br /&gt;
=== キー割り当てとキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、複数のキーボードレイアウト {{ic|&amp;lt;nowiki&amp;gt;input * xkb_layout &amp;quot;us,ru&amp;quot;&amp;lt;/nowiki&amp;gt;}} を使用している場合、セカンダリレイアウトを切り替えたときにバインディングが壊れることがあります。&lt;br /&gt;
&lt;br /&gt;
https://github.com/swaywm/sway/pull/3058, のおかげで、以下のように {{ic|--to-code}} 行に {{ic|--to-code}}キーを追加するだけで済みます。&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
bindsym --to-code {&lt;br /&gt;
  $mod+$left focus left&lt;br /&gt;
  $mod+$down focus down&lt;br /&gt;
  $mod+$up focus up&lt;br /&gt;
  $mod+$right focus right&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または、変数 {{ic|set$mybind bindsym--to-code}} を作成し、{{ic|bindsym}} のすべてのインスタンスを {{ic|$mybind}} で置き換えることもできます。{{ic|$mybind$mod+w thing}}&lt;br /&gt;
&lt;br /&gt;
=== Java アプリケーション ===&lt;br /&gt;
&lt;br /&gt;
一部の Java ベースのアプリケーション (IntelliJ、CLion、PyCharm などの JetBrains エディタ) を開くと、空白の画面が表示されます。これを軽減するには、{{ic|_JAVA_AWT_WM_NONREPARENTING}} 環境変数を1に設定してアプリケーションを起動します。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|rofi}} や {{Pkg|dmenu}} などのランチャーからアプリケーションを起動する場合は、 [[デスクトップエントリ#環境変数の修正]] に示すように、アプリケーションのデスクトップエントリを変更してください。&lt;br /&gt;
&lt;br /&gt;
Java アプリケーションに関するいくつかの問題は、OpenJDK11 および Sway 1.5 で修正されました。ただし、一部のアプリケーションでは、新しいバージョンの OpenJDK を使用するために追加の構成が必要です。Android Studio の場合は、{{ic|1=STUDIO_JDK=/usr/lib/jvm/java-11-openjdk/}} を設定する必要があります。 [https://github.com/swaywm/sway/issues/5414]&lt;br /&gt;
&lt;br /&gt;
=== ボーダーでスクロール ===&lt;br /&gt;
&lt;br /&gt;
アプリケーションのボーダー上でマウスのスクロールホイールを使用するとクラッシュする場合は、{{ic|app_id}} (例:Firefox) に {{ic|border none}} を設定してください。&lt;br /&gt;
&lt;br /&gt;
=== Program cannot open display ===&lt;br /&gt;
&lt;br /&gt;
起動時に &#039;&#039;Program cannot open display&#039;&#039; というエラーメッセージが表示されてプログラムがクラッシュする場合は、使用しているプログラムが X11 プログラムである可能性があります。XWayland 互換性レイヤを使って Wayland で X11 プログラムを実行することができます。詳細は [[Sway#Xwayland]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Unable to open wayland socket ===&lt;br /&gt;
&lt;br /&gt;
sway が起動せず、&amp;quot;Unable to open wayland socket&amp;quot; というエラーメッセージが出力される場合は、`$XDG_RUNTIME_DIR` 環境変数が設定されているが、指定したディレクトリがないことを意味する場合があります。&lt;br /&gt;
&lt;br /&gt;
=== WINE アプリケーションでマウスが動作しない ===&lt;br /&gt;
&lt;br /&gt;
プログラムを実行するとき、WINE はプライマリーモニターが設定されていることを期待しますが、Wayland にはプライマリーモニターの概念がないため、(クリックが認識されないなど) 問題を引き起こす可能性があります。代わりに、Sway の設定にこの行を追加することで、[[xrandr]] を介して XWayland が使用するプライマリモニタを指定することができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/sway/config|2=&lt;br /&gt;
...&lt;br /&gt;
exec_always xrandr --output XWAYLAND0 --primary&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For this to work your display position offset needs to be 0,0 because of a bug [https://github.com/swaywm/sway/issues/6651] in sway.&lt;br /&gt;
XWAYLAND0 (または任意の XWAYLAND ディスプレイ名) はあなたのモニターを表していない可能性があり、異なるセッションで変更される可能性があります。代わりに、次の行を使用して最初の XWAYLAND ディスプレイを指定することができます。:&lt;br /&gt;
&lt;br /&gt;
 exec_always xrandr --output $(xrandr | grep -m 1 XWAYLAND | awk &#039;{print $1;}&#039;) --primary&lt;br /&gt;
&lt;br /&gt;
これらの行は、あなたのニーズに合わせて調整する必要があるかもしれません。どのディスプレイがどの名前にマッピングされているかは、引数なしで {{ic|xrandr}} コマンドを使用することで確認できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|XWayland は、新しく接続されたモニターを(電源を切って再び入れたものも含めて)まったく新しいディスプレイとして認識します。もしこれが &amp;quot;プライマリーモニター&amp;quot; に起こった場合、それはもはやプライマリーとはみなされていません。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/SirCmpwn/sway Github プロジェクト]&lt;br /&gt;
* [https://github.com/swaywm/sway/wiki Sway user-maintained wiki]&lt;br /&gt;
* [http://swaywm.org ウェブサイト]&lt;br /&gt;
* [https://drewdevault.com/2019/03/11/Sway-1.0-released.html Announcing the release of sway 1.0]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Sway|2023/4/11|775342}}&lt;/div&gt;</summary>
		<author><name>Mycelithyl</name></author>
	</entry>
</feed>