<?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=Colajam93</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=Colajam93"/>
	<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/Colajam93"/>
	<updated>2026-04-13T03:56:05Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Gitea&amp;diff=7914</id>
		<title>Gitea</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Gitea&amp;diff=7914"/>
		<updated>2017-02-19T06:35:56Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 動機&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:バージョン管理システム]]&lt;br /&gt;
[[en:Gitea]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Gogs}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[https://gitea.io/ Gitea] は Go で書かれた軽量なコードホスティングサーバーである [[Gogs]] のコミュニティによるフォークです。MIT ライセンスで配布されています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|gitea}} か {{AUR|gitea-git}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
Gitea はデータベースバックエンドを必要とします。以下のデータベースがサポートされています:&lt;br /&gt;
* [[MariaDB]]&lt;br /&gt;
* [[PostgreSQL]]&lt;br /&gt;
* [[SQLite]] &lt;br /&gt;
* [https://github.com/pingcap/tidb TiDB]&lt;br /&gt;
&lt;br /&gt;
=== MariaDB ===&lt;br /&gt;
{{Note|listen アドレスとして {{ic|/var/run/mysqld/mysqld.sock}} を使用することで MySQL のソケットを利用することができます。}}&lt;br /&gt;
&lt;br /&gt;
[[MariaDB]] は以下のように設定してください:&lt;br /&gt;
{{hc|$ mysql -u root -p|2=&lt;br /&gt;
mysql&amp;gt; CREATE DATABASE `gitea` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;&lt;br /&gt;
mysql&amp;gt; CREATE USER &#039;&#039;&#039;gitea&#039;&#039;&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;&#039;&#039;&#039;password&#039;&#039;&#039;&#039;;&lt;br /&gt;
mysql&amp;gt; GRANT ALL ON `gitea`.* TO &#039;gitea&#039;@&#039;localhost&#039;;&lt;br /&gt;
mysql&amp;gt; \q&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
新しいユーザーで新しいデータベースへの接続を試行してみてください:&lt;br /&gt;
&lt;br /&gt;
 $ mysql -u &#039;&#039;&#039;gitea&#039;&#039;&#039; -p -D gitea&lt;br /&gt;
&lt;br /&gt;
最初の起動時や {{ic|app.ini}} を編集して MariaDB を設定します:&lt;br /&gt;
{{hc|/var/lib/gitea/custom/conf/app.ini|2=&lt;br /&gt;
DB_TYPE  = mysql&lt;br /&gt;
HOST     = /var/run/mysqld/mysqld.sock ; or 127.0.0.1:3306&lt;br /&gt;
NAME     = gitea&lt;br /&gt;
USER     = gitea&lt;br /&gt;
PASSWD   = &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 実行 ==&lt;br /&gt;
{{ic|gitea.service}} を[[起動]]・[[有効化]]してください。ウェブインターフェイスは {{ic|http://localhost:3000}} からアクセスできます。&lt;br /&gt;
&lt;br /&gt;
Gitea を最初に起動したときは {{ic|http://localhost:3000/install}} にリダイレクトされます。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
ユーザー設定ファイルは {{ic|/var/lib/gitea/custom/conf/app.ini}} です。メインの設定ファイルである {{ic|/var/lib/gitea/conf/app.ini}} を編集してはいけません。このファイルはバイナリに含められるため、アップデートによって上書きされてしまいます。&lt;br /&gt;
&lt;br /&gt;
Gitea のアプリケーションやリポジトリのデータは {{ic|/var/lib/gitea}} に保存されます。{{ic|/var/lib/gitea/custom/conf/app.ini}} で別の保存場所を指定することもできます。&lt;br /&gt;
&lt;br /&gt;
=== HTTP プロトコルの無効化 ===&lt;br /&gt;
Gitea ではデフォルトで HTTP プロトコルを使ってリポジトリを操作できるようになっています。{{ic|DISABLE_HTTP_GIT}} を &#039;&#039;&#039;false&#039;&#039;&#039; に設定することでサポートを無効化できます。&lt;br /&gt;
&lt;br /&gt;
== 高度な設定 ==&lt;br /&gt;
他の設定例は [https://gogs.io/docs/intro/faqs Gogs の FAQ] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== nginx をリバースプロキシとして設定 ===&lt;br /&gt;
[[nginx]] をリバースプロキシとして [[OpenSSL]] を使用する例:&lt;br /&gt;
{{hc|/etc/nginx/servers-available/git|2=&lt;br /&gt;
# redirect to ssl&lt;br /&gt;
server {&lt;br /&gt;
  listen 80;&lt;br /&gt;
  server_name git.domain.tld;&lt;br /&gt;
  return 301 https://$server_name$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
  listen 443 ssl http2;&lt;br /&gt;
  server_name git.domain.tld;&lt;br /&gt;
  ssl_certificate ssl/&#039;&#039;&#039;cert.crt&#039;&#039;&#039;;&lt;br /&gt;
  ssl_certificate_key ssl/&#039;&#039;&#039;cert.key&#039;&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
  location / {&lt;br /&gt;
    proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
    proxy_pass http://localhost:3000;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|app.ini}} の &#039;&#039;server&#039;&#039; セクションを更新してください:&lt;br /&gt;
{{hc|/var/lib/gitea/custom/conf/app.ini|2=&lt;br /&gt;
[server]&lt;br /&gt;
PROTOCOL               = http&lt;br /&gt;
DOMAIN                 = git.domain.tld&lt;br /&gt;
ROOT_URL               = https://git.domain.tld/&lt;br /&gt;
HTTP_ADDR              = 0.0.0.0&lt;br /&gt;
HTTP_PORT              = 3000&lt;br /&gt;
}}&lt;br /&gt;
{{Note|{{ic|app.ini}} で SSL 証明書のオプションを有効にする必要はありません。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
* [https://docs.gitea.io/ Gitea ドキュメント]&lt;br /&gt;
* [https://gogs.io/docs Gogs ドキュメント]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python_%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3&amp;diff=6152</id>
		<title>Python パッケージガイドライン</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python_%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3&amp;diff=6152"/>
		<updated>2016-10-20T11:50:07Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:パッケージ開発]]&lt;br /&gt;
[[en:Python package guidelines]]&lt;br /&gt;
[[it:Python Package Guidelines]]&lt;br /&gt;
{{Package Guidelines}}&lt;br /&gt;
このドキュメントでは [[Python]] ソフトウェアの [[PKGBUILD]] を書くときの決まり事とガイドラインを提供します。&lt;br /&gt;
&lt;br /&gt;
== パッケージの命名規則 ==&lt;br /&gt;
&lt;br /&gt;
Python 3 ライブラリの場合、{{Ic|python-&#039;&#039;modulename&#039;&#039;}} を使って下さい。アプリケーションの場合、プログラムの名前を使って下さい。どちらの場合でもパッケージの名前は小文字である必要があります。&lt;br /&gt;
&lt;br /&gt;
Python 2 ライブラリの場合は {{Ic|python2-&#039;&#039;modulename&#039;&#039;}} という風に名前を付けて下さい。&lt;br /&gt;
&lt;br /&gt;
===バージョン付きパッケージ===&lt;br /&gt;
&lt;br /&gt;
特定のバージョンのパッケージを追加する必要がある場合は {{Ic|python-&#039;&#039;modulename&#039;&#039;-&#039;&#039;version&#039;&#039;}} を使って下さい (例: {{Ic|python-colorama-0.2.5}})。python の依存パッケージが {{Ic|colorama&amp;amp;#61;&amp;amp;#61;0.2.5}} ならば Arch のパッケージは {{Ic|python-colorama-0.2.5}} になります。&lt;br /&gt;
&lt;br /&gt;
== ファイルの配置場所 ==&lt;br /&gt;
&lt;br /&gt;
ほとんどの Python パッケージは &#039;&#039;&#039;setup.py&#039;&#039;&#039; による [http://docs.python.org/library/distutils.html distutils] システムでインストールされます。ファイルは {{Ic|/usr/lib/python&#039;&#039;&amp;lt;python version&amp;gt;&#039;&#039;/site-packages/&#039;&#039;pkgname&#039;&#039;}} ディレクトリにインストールされます。&lt;br /&gt;
&lt;br /&gt;
* {{Ic|1=--optimize=1}} パラメータは {{Ic|.pyo}} ファイルをコンパイルして [[pacman]] から追跡することができます。&lt;br /&gt;
&lt;br /&gt;
もし [https://pip.pypa.io/en/stable/ pip] (例えば wheels のインストールのために必要であり、最近 Python コミュニティから一般に推奨されています。) を使う場合は、次のフラグを忘れずに渡してください:&lt;br /&gt;
&lt;br /&gt;
 PIP_CONFIG_FILE=/dev/null pip install --isolated --root=&amp;quot;$pkgdir&amp;quot; --ignore-installed --no-deps *.whl&lt;br /&gt;
&lt;br /&gt;
* {{ic|PIP_CONFIG_FILE&amp;amp;#61;/dev/null}} は &#039;&#039;&#039;pip&#039;&#039;&#039; にフラグを追加するかもしれない {{ic|{/etc,~/.config}/pip.conf}} を無視します。&lt;br /&gt;
* {{ic|--isolated}} は &#039;&#039;&#039;pip&#039;&#039;&#039; にフラグを追加するかもしれない環境変数 (それと {{ic|{/etc,~/.config}/pip/pip.conf}}) を無視します。&lt;br /&gt;
* {{ic|--ignore-installed}} は https://github.com/pypa/pip/issues/3063 が解決されるまで必要です (otherwise &#039;&#039;&#039;pip&#039;&#039;&#039; skips the install in the presence of an earlier {{ic|--user}} install).&lt;br /&gt;
* {{ic|--no-deps}} はメインパッケージと一緒に依存関係がパッケージされないことを保証します。&lt;br /&gt;
&lt;br /&gt;
== ノート ==&lt;br /&gt;
&lt;br /&gt;
基本的に Python パッケージはアーキテクチャに依存しないので {{Ic|arch}} には {{Ic|any}} を指定します。&lt;br /&gt;
&lt;br /&gt;
{{Ic|tests}} という名前のディレクトリをインストールしてはいけません。他の Python パッケージと衝突する可能性があります (例: {{Ic|/usr/lib/python2.7/site-packages/tests/}})。&lt;br /&gt;
&lt;br /&gt;
== サンプル ==&lt;br /&gt;
&lt;br /&gt;
サンプル PKGBUILD は [https://projects.archlinux.org/abs.git/tree/prototypes/PKGBUILD-python.proto こちら] を見るか、{{Pkg|abs}} パッケージに入っている {{Ic|/usr/share/pacman/PKGBUILD-python.proto}} ファイルを見て下さい。&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6150</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6150"/>
		<updated>2016-10-20T11:24:32Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: リンク先を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:プログラミング言語]]&lt;br /&gt;
[[de:Python]]&lt;br /&gt;
[[en:Python]]&lt;br /&gt;
[[es:Python]]&lt;br /&gt;
[[ko:Python]]&lt;br /&gt;
[[ru:Python]]&lt;br /&gt;
[[zh-CN:Python]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Python パッケージガイドライン}}&lt;br /&gt;
{{Related|Python/仮想環境}}&lt;br /&gt;
{{Related|mod_wsgi}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:Python|Wikipedia]] より:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。&#039;&#039;&lt;br /&gt;
:&#039;&#039;Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、[http://wiki.python.org/moin/Python2orPython3 Python2orPython3] や Dive into Python 3 の [http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html 章] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。&lt;br /&gt;
&lt;br /&gt;
=== Python 2 ===&lt;br /&gt;
&lt;br /&gt;
最新版の Python 2 をインストールするには、[[公式リポジトリ]]から {{Pkg|python2}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは {{ic|python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
Python 2 を必要とするプログラムでは Python 3 の {{ic|/usr/bin/python}} ではなく {{ic|/usr/bin/python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。&lt;br /&gt;
&lt;br /&gt;
一番最初の行は以下のどちらかになっています:&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
または:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。&lt;br /&gt;
&lt;br /&gt;
スクリプトを変更せずに python2 を強制的に使用させる方法として {{ic|python2}} で明示的にプログラムを呼び出すという方法もあります、例:&lt;br /&gt;
 $ python2 &#039;&#039;myScript.py&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが {{ic|#!/usr/bin/env python}} を使っている場合のみ動作し、{{ic|#!/usr/bin/python}} を使っている場合は動作しません。このトリックは {{ic|env}} が {{ic|PATH}} 変数内の最初に一致したエントリを探すことに依存しています。&lt;br /&gt;
&lt;br /&gt;
まずダミーディレクトリを作成:&lt;br /&gt;
 $ mkdir ~/bin&lt;br /&gt;
そして {{ic|python}} から &#039;&#039;python2&#039;&#039; のシンボリックリンクと、設定スクリプトをディレクトリに追加:&lt;br /&gt;
 $ ln -s /usr/bin/python2 ~/bin/python&lt;br /&gt;
 $ ln -s /usr/bin/python2-config ~/bin/python-config&lt;br /&gt;
最後にあなたの {{ic|PATH}} 変数の&#039;&#039;最初に&#039;&#039;新しいディレクトリを追加してください:&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}}&lt;br /&gt;
{{ic|env}} によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください:&lt;br /&gt;
 $ which python&lt;br /&gt;
&lt;br /&gt;
スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。&lt;br /&gt;
&lt;br /&gt;
== 昔のバージョン ==&lt;br /&gt;
&lt;br /&gt;
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます:&lt;br /&gt;
* {{AUR|python15}}: Python 1.5.2&lt;br /&gt;
* {{AUR|python24}}{{Broken package link|{{aur-mirror|python24}}}}: Python 2.4.6&lt;br /&gt;
* {{AUR|python25}}: Python 2.5.6&lt;br /&gt;
* {{AUR|python26}}: Python 2.6.9&lt;br /&gt;
* {{AUR|python30}}: Python 3.0.1&lt;br /&gt;
* {{AUR|python31}}{{Broken package link|{{aur-mirror|python31}}}}: Python 3.1.5&lt;br /&gt;
* {{AUR|python32}}: Python 3.2.5&lt;br /&gt;
* {{AUR|python33}}: Python 3.3.5&lt;br /&gt;
* {{AUR|python34}}: Python 3.4.3&lt;br /&gt;
&lt;br /&gt;
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。&lt;br /&gt;
&lt;br /&gt;
古いバージョンの Python のモジュールやライブラリは {{ic|python&amp;lt;&#039;&#039;version without period&#039;&#039;&amp;gt;}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 &amp;quot;python26&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
== ウィジェットバインディング ==&lt;br /&gt;
&lt;br /&gt;
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:&lt;br /&gt;
* {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}}&lt;br /&gt;
* {{App|pyQt|[[Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}}&lt;br /&gt;
* {{App|pySide|[[Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}}&lt;br /&gt;
* {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{Pkg|pygtk}}}}&lt;br /&gt;
* {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}}&lt;br /&gt;
* {{App|wxPython|wxWidgets バインディング|http://wxpython.org/|{{Pkg|wxpython}}}}&lt;br /&gt;
以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== IPython ===&lt;br /&gt;
[http://ipython.org/ IPython] は Python コマンドラインの強化版です。公式リポジトリでは {{Pkg|ipython}} と {{Pkg|ipython2}} で利用できます。&lt;br /&gt;
IPython notebook を利用したい場合、IPython3 notebook には {{Pkg|jupyter-notebook}} を、IPython2 notebook には {{Pkg|ipython2-notebook}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
 $ jupyter notebook&lt;br /&gt;
&lt;br /&gt;
を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。&lt;br /&gt;
&lt;br /&gt;
[http://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 仮想環境 ===&lt;br /&gt;
&lt;br /&gt;
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。&lt;br /&gt;
&lt;br /&gt;
詳細は [[Python/仮想環境]] を見てください。&lt;br /&gt;
&lt;br /&gt;
== Python2 シェルで補完を表示 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|この項目は Python2 にのみ関連します。Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}}&lt;br /&gt;
&lt;br /&gt;
Python のインタラクティブシェルに以下をコピーしてください:&lt;br /&gt;
{{hc|/usr/bin/python|2=&lt;br /&gt;
import rlcompleter&lt;br /&gt;
import readline&lt;br /&gt;
readline.parse_and_bind(&amp;quot;tab: complete&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
ソース: [http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html]&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== ビルドスクリプトのバージョン問題の対処 ===&lt;br /&gt;
&lt;br /&gt;
多くのプロジェクトのビルドスクリプトは {{ic|python}} は Python 2 だと仮定していて、このことはエラーを起こします。典型的には {{ic|print &#039;foo&#039;}} は無効な文法であるというエラーが出ます。幸いにも多くの場合、シバン行にハードコードされた {{ic|#!/usr/bin/python}} ではなく {{ic|PATH}} から {{ic|python}} を呼び出していて、Python スクリプトはすべてプロジェクトツリーに含まれています。したがって、ビルドスクリプトを手動で変更する代わりに簡単なワークアラウンドがあります。&lt;br /&gt;
次のような内容のファイルを {{ic|/usr/local/bin/python}} に作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/local/bin/python|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
script=$(readlink -f -- &amp;quot;$1&amp;quot;)&lt;br /&gt;
case &amp;quot;$script&amp;quot; in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*)&lt;br /&gt;
    exec python2 &amp;quot;$@&amp;quot;&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exec python3 &amp;quot;$@&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
ここで {{ic|&amp;lt;nowiki&amp;gt;/path/to/project1/*|/path/to/project2/*|/path/to/project3*&amp;lt;/nowiki&amp;gt;}} は {{ic|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} によって区切られた Python 2 で動作させる必要のあるすべてのプロジェクトツリーです。&lt;br /&gt;
&lt;br /&gt;
ファイルを実行可能にすることを忘れないください:&lt;br /&gt;
&lt;br /&gt;
 # chmod +x /usr/local/bin/python&lt;br /&gt;
&lt;br /&gt;
その後指定したプロジェクトツリー内のスクリプトは Python 2 で動作します。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158071.do Learning Python, 4th edition]&lt;br /&gt;
* [http://www.diveintopython.net/ Dive Into Python], [http://getpython3.com/diveintopython3/ Dive Into Python3]&lt;br /&gt;
* [http://www.swaroopch.com/notes/Python A Byte of Python]&lt;br /&gt;
* [http://learnpythonthehardway.org Learn Python The Hard Way]&lt;br /&gt;
* [http://learnpython.org Learn Python]&lt;br /&gt;
* [http://stephensugden.com/crash_into_python/ Crash into Python] (他のプログラミング言語に慣れていることを前提としてます)&lt;br /&gt;
* [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame]&lt;br /&gt;
* [http://www.greenteapress.com/thinkpython/ Think Python]&lt;br /&gt;
* [https://pythonspot.com Pythonspot]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python_VirtualEnv&amp;diff=6149</id>
		<title>Python VirtualEnv</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python_VirtualEnv&amp;diff=6149"/>
		<updated>2016-10-20T11:23:45Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: リダイレクトを設定&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Python/仮想環境]]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6148</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6148"/>
		<updated>2016-10-20T11:21:21Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: リンク先を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:プログラミング言語]]&lt;br /&gt;
[[de:Python]]&lt;br /&gt;
[[en:Python]]&lt;br /&gt;
[[es:Python]]&lt;br /&gt;
[[ko:Python]]&lt;br /&gt;
[[ru:Python]]&lt;br /&gt;
[[zh-CN:Python]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Python パッケージガイドライン}}&lt;br /&gt;
{{Related|Python/仮想環境}}&lt;br /&gt;
{{Related|mod_wsgi}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:Python|Wikipedia]] より:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。&#039;&#039;&lt;br /&gt;
:&#039;&#039;Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、[http://wiki.python.org/moin/Python2orPython3 Python2orPython3] や Dive into Python 3 の [http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html 章] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。&lt;br /&gt;
&lt;br /&gt;
=== Python 2 ===&lt;br /&gt;
&lt;br /&gt;
最新版の Python 2 をインストールするには、[[公式リポジトリ]]から {{Pkg|python2}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは {{ic|python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
Python 2 を必要とするプログラムでは Python 3 の {{ic|/usr/bin/python}} ではなく {{ic|/usr/bin/python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。&lt;br /&gt;
&lt;br /&gt;
一番最初の行は以下のどちらかになっています:&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
または:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。&lt;br /&gt;
&lt;br /&gt;
スクリプトを変更せずに python2 を強制的に使用させる方法として {{ic|python2}} で明示的にプログラムを呼び出すという方法もあります、例:&lt;br /&gt;
 $ python2 &#039;&#039;myScript.py&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが {{ic|#!/usr/bin/env python}} を使っている場合のみ動作し、{{ic|#!/usr/bin/python}} を使っている場合は動作しません。このトリックは {{ic|env}} が {{ic|PATH}} 変数内の最初に一致したエントリを探すことに依存しています。&lt;br /&gt;
&lt;br /&gt;
まずダミーディレクトリを作成:&lt;br /&gt;
 $ mkdir ~/bin&lt;br /&gt;
そして {{ic|python}} から &#039;&#039;python2&#039;&#039; のシンボリックリンクと、設定スクリプトをディレクトリに追加:&lt;br /&gt;
 $ ln -s /usr/bin/python2 ~/bin/python&lt;br /&gt;
 $ ln -s /usr/bin/python2-config ~/bin/python-config&lt;br /&gt;
最後にあなたの {{ic|PATH}} 変数の&#039;&#039;最初に&#039;&#039;新しいディレクトリを追加してください:&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}}&lt;br /&gt;
{{ic|env}} によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください:&lt;br /&gt;
 $ which python&lt;br /&gt;
&lt;br /&gt;
スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。&lt;br /&gt;
&lt;br /&gt;
== 昔のバージョン ==&lt;br /&gt;
&lt;br /&gt;
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます:&lt;br /&gt;
* {{AUR|python15}}: Python 1.5.2&lt;br /&gt;
* {{AUR|python24}}{{Broken package link|{{aur-mirror|python24}}}}: Python 2.4.6&lt;br /&gt;
* {{AUR|python25}}: Python 2.5.6&lt;br /&gt;
* {{AUR|python26}}: Python 2.6.9&lt;br /&gt;
* {{AUR|python30}}: Python 3.0.1&lt;br /&gt;
* {{AUR|python31}}{{Broken package link|{{aur-mirror|python31}}}}: Python 3.1.5&lt;br /&gt;
* {{AUR|python32}}: Python 3.2.5&lt;br /&gt;
* {{AUR|python33}}: Python 3.3.5&lt;br /&gt;
* {{AUR|python34}}: Python 3.4.3&lt;br /&gt;
&lt;br /&gt;
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。&lt;br /&gt;
&lt;br /&gt;
古いバージョンの Python のモジュールやライブラリは {{ic|python&amp;lt;&#039;&#039;version without period&#039;&#039;&amp;gt;}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 &amp;quot;python26&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
== ウィジェットバインディング ==&lt;br /&gt;
&lt;br /&gt;
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:&lt;br /&gt;
* {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}}&lt;br /&gt;
* {{App|pyQt|[[Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}}&lt;br /&gt;
* {{App|pySide|[[Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}}&lt;br /&gt;
* {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{Pkg|pygtk}}}}&lt;br /&gt;
* {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}}&lt;br /&gt;
* {{App|wxPython|wxWidgets バインディング|http://wxpython.org/|{{Pkg|wxpython}}}}&lt;br /&gt;
以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== IPython ===&lt;br /&gt;
[http://ipython.org/ IPython] は Python コマンドラインの強化版です。公式リポジトリでは {{Pkg|ipython}} と {{Pkg|ipython2}} で利用できます。&lt;br /&gt;
IPython notebook を利用したい場合、IPython3 notebook には {{Pkg|jupyter-notebook}} を、IPython2 notebook には {{Pkg|ipython2-notebook}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
 $ jupyter notebook&lt;br /&gt;
&lt;br /&gt;
を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。&lt;br /&gt;
&lt;br /&gt;
[http://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 仮想環境 ===&lt;br /&gt;
&lt;br /&gt;
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。&lt;br /&gt;
&lt;br /&gt;
詳細は [[Python VirtualEnv]] を見てください。&lt;br /&gt;
&lt;br /&gt;
== Python2 シェルで補完を表示 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|この項目は Python2 にのみ関連します。Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}}&lt;br /&gt;
&lt;br /&gt;
Python のインタラクティブシェルに以下をコピーしてください:&lt;br /&gt;
{{hc|/usr/bin/python|2=&lt;br /&gt;
import rlcompleter&lt;br /&gt;
import readline&lt;br /&gt;
readline.parse_and_bind(&amp;quot;tab: complete&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
ソース: [http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html]&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== ビルドスクリプトのバージョン問題の対処 ===&lt;br /&gt;
&lt;br /&gt;
多くのプロジェクトのビルドスクリプトは {{ic|python}} は Python 2 だと仮定していて、このことはエラーを起こします。典型的には {{ic|print &#039;foo&#039;}} は無効な文法であるというエラーが出ます。幸いにも多くの場合、シバン行にハードコードされた {{ic|#!/usr/bin/python}} ではなく {{ic|PATH}} から {{ic|python}} を呼び出していて、Python スクリプトはすべてプロジェクトツリーに含まれています。したがって、ビルドスクリプトを手動で変更する代わりに簡単なワークアラウンドがあります。&lt;br /&gt;
次のような内容のファイルを {{ic|/usr/local/bin/python}} に作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/local/bin/python|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
script=$(readlink -f -- &amp;quot;$1&amp;quot;)&lt;br /&gt;
case &amp;quot;$script&amp;quot; in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*)&lt;br /&gt;
    exec python2 &amp;quot;$@&amp;quot;&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exec python3 &amp;quot;$@&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
ここで {{ic|&amp;lt;nowiki&amp;gt;/path/to/project1/*|/path/to/project2/*|/path/to/project3*&amp;lt;/nowiki&amp;gt;}} は {{ic|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} によって区切られた Python 2 で動作させる必要のあるすべてのプロジェクトツリーです。&lt;br /&gt;
&lt;br /&gt;
ファイルを実行可能にすることを忘れないください:&lt;br /&gt;
&lt;br /&gt;
 # chmod +x /usr/local/bin/python&lt;br /&gt;
&lt;br /&gt;
その後指定したプロジェクトツリー内のスクリプトは Python 2 で動作します。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158071.do Learning Python, 4th edition]&lt;br /&gt;
* [http://www.diveintopython.net/ Dive Into Python], [http://getpython3.com/diveintopython3/ Dive Into Python3]&lt;br /&gt;
* [http://www.swaroopch.com/notes/Python A Byte of Python]&lt;br /&gt;
* [http://learnpythonthehardway.org Learn Python The Hard Way]&lt;br /&gt;
* [http://learnpython.org Learn Python]&lt;br /&gt;
* [http://stephensugden.com/crash_into_python/ Crash into Python] (他のプログラミング言語に慣れていることを前提としてます)&lt;br /&gt;
* [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame]&lt;br /&gt;
* [http://www.greenteapress.com/thinkpython/ Think Python]&lt;br /&gt;
* [https://pythonspot.com Pythonspot]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python/%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83&amp;diff=6147</id>
		<title>Python/仮想環境</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python/%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83&amp;diff=6147"/>
		<updated>2016-10-20T11:20:27Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:開発]]&lt;br /&gt;
[[en:Python/Virtual environment]]&lt;br /&gt;
[[es:Python/Virtual environment]]&lt;br /&gt;
[[zh-cn:Python/Virtualenv]]&lt;br /&gt;
&#039;&#039;virtualenv&#039;&#039; は [[Python]] の隔離環境を作成するために使われるツールです。モジュールを隔離環境にインストールできる、作業環境をエクポートできる、[[Python]] プログラムをその環境で実行できるといった様々な利点があります。&lt;br /&gt;
&lt;br /&gt;
==仮想環境の概要==&lt;br /&gt;
仮想環境はいくつかのバイナリとシェルスクリプトがインストールされたディレクトリです。バイナリはスクリプトを実行するための &#039;&#039;python&#039;&#039; と 環境に他のモジュールをインストールするための &#039;&#039;pip&#039;&#039; を含んでいます。また環境に入るためのシェルスクリプト ([[bash]]、csh、[[fish]]で動作します) も含まれています。基本的に、仮想環境はシステムにインストールされた [[Python]] とすべての望まれたモジュールを、アプリケーションがどんなシステム上で動作しようと干渉されずに模倣します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[Python]] 3.3 以上では &#039;&#039;pyvenv&#039;&#039; と呼ばれるツールとネイティブ実装を拡張するための &#039;&#039;venv&#039;&#039; と呼ばれる API が付属しています。古いバージョンの Python を必要とするアプリケーションでは &#039;&#039;virtualenv&#039;&#039; を使う必要があります。&lt;br /&gt;
&lt;br /&gt;
=== パッケージ ===&lt;br /&gt;
&lt;br /&gt;
Python の仮想環境を利用するために [[公式リポジトリ]] から次のパッケージを[[インストール]]してください。&lt;br /&gt;
* Python 3.3+: {{pkg|python}}&lt;br /&gt;
* Python 3: {{pkg|python-virtualenv}}&lt;br /&gt;
* Python 2: {{pkg|python2-virtualenv}}&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
3つのツールの使い方は似ています。&lt;br /&gt;
&lt;br /&gt;
=== 作成 ===&lt;br /&gt;
&lt;br /&gt;
あなたのプロジェクトディレクトリ内で &#039;&#039;pyvenv&#039;&#039; か &#039;&#039;virtualenv&#039;&#039; を使って仮想環境を作成してください。必ず venv ディレクトリをバージョン管理から外してください。{{ic|pip freeze}} のコピーがあればリビルドすることができます。&lt;br /&gt;
&lt;br /&gt;
==== pyvenv ====&lt;br /&gt;
&lt;br /&gt;
このツールは {{pkg|python}} (3.3 以上) で提供されています。&lt;br /&gt;
 $ pyvenv venv&lt;br /&gt;
&lt;br /&gt;
==== virtualenv ====&lt;br /&gt;
&lt;br /&gt;
Python 3 には {{pkg|python-virtualenv}} に含まれる &#039;&#039;virtualenv&#039;&#039; を使ってください。&lt;br /&gt;
 $ virtualenv venv&lt;br /&gt;
&lt;br /&gt;
Python 2 には {{pkg|python2-virtualenv}} に含まれる &#039;&#039;virtualenv2&#039;&#039; を使ってください。&lt;br /&gt;
 $ virtualenv2 venv&lt;br /&gt;
&lt;br /&gt;
=== 有効化 ===&lt;br /&gt;
&lt;br /&gt;
環境を有効化・無効化するために提供されているシェルスクリプトを使います。この例は bash が使われていると仮定します。&lt;br /&gt;
&lt;br /&gt;
 $ source venv/bin/activate&lt;br /&gt;
 (venv) $&lt;br /&gt;
&lt;br /&gt;
仮想環境の中に入ると、&#039;&#039;pip&#039;&#039; を使ってモジュールをインストールしたり通常通りにスクリプトを実行することができます。&lt;br /&gt;
&lt;br /&gt;
仮想環境から抜けるには {{ic|bin/activate}} によって提供される関数を実行してください:&lt;br /&gt;
&lt;br /&gt;
 (venv) $ deactivate&lt;br /&gt;
&lt;br /&gt;
== Python のバージョン ==&lt;br /&gt;
&lt;br /&gt;
バイナリのバージョンはどの仮想環境ツールが使われたかに依存します。例えば、Python 2 の例では &#039;&#039;python&#039;&#039; コマンドは {{ic|bin/python2.7}} を指しますが、&#039;&#039;pyvenv&#039;&#039; の例では {{ic|bin/python3.5}} を指します。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;pyvenv&#039;&#039; と &#039;&#039;virtualenv&#039;&#039; 大きな違いは、前者はデフォルトでシステムの Python バイナリを使います:&lt;br /&gt;
 $ ls -l pyvenv/bin/python3.5&lt;br /&gt;
 lrwxrwxrwx 1 foo foo 7 Jun  3 19:57 pyvenv/bin/python3.5 -&amp;gt; /usr/bin/python3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;virtualenv&#039;&#039; は環境のディレクトリ内の別の Python バイナリを使います:&lt;br /&gt;
 $ ls -l venv3/bin/python3.5&lt;br /&gt;
 lrwxrwxrwx 1 foo foo 7 Jun  3 19:58 venv3/bin/python3.5 -&amp;gt; python3&lt;br /&gt;
&lt;br /&gt;
== Virtualenvwrapper ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;virtualenvwrapper&#039;&#039; は virtualenv を作成・有効化・削除する便利なコマンドを使えるようにして、より自然なコマンドライン操作で virtualenv を扱えるようにします。{{Pkg|python-virtualenv}} と {{Pkg|python2-virtualenv}} 両方のラッパーになっています。&lt;br /&gt;
&lt;br /&gt;
===インストール===&lt;br /&gt;
[[公式リポジトリ]]から {{Pkg|python-virtualenvwrapper}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
そして {{ic|~/.bashrc}} に以下の行を追加:&lt;br /&gt;
&lt;br /&gt;
 export WORKON_HOME=~/.virtualenvs&lt;br /&gt;
 source /usr/bin/virtualenvwrapper.sh&lt;br /&gt;
&lt;br /&gt;
Python 3 が Arch においてシステムのデフォルトなので、Python 2 の環境を作るためには {{ic|~/.bashrc}} で {{ic|virtualenvwrapper.sh}} を読み込む前に {{ic|VIRTUALENVWRAPPER_PYTHON}} と {{ic|VIRTUALENVWRAPPER_VIRTUALENV}} をセットする必要がります:&lt;br /&gt;
&lt;br /&gt;
 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7&lt;br /&gt;
 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv2&lt;br /&gt;
&lt;br /&gt;
Python 3 をデフォルトにしていない場合 ({{ic|$ python --version}} の出力を確認してください)、{{ic|virtualenvwrapper.sh}} スクリプトを source する前に {{ic|~/.bashrc}} に以下の行も追加する必要があります。&lt;br /&gt;
&lt;br /&gt;
 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3&lt;br /&gt;
&lt;br /&gt;
コンソールを再度開いて {{ic|WORKON_HOME}} フォルダを作成してください:&lt;br /&gt;
 $ mkdir $WORKON_HOME&lt;br /&gt;
&lt;br /&gt;
===基本的な使い方===&lt;br /&gt;
virtualenvwrapper の使い方に関しては Doug Hellmann の [http://www.doughellmann.com/docs/virtualenvwrapper/ ページ] が参考になります。&lt;br /&gt;
&lt;br /&gt;
* virtualenv を作成:&lt;br /&gt;
 $ mkvirtualenv -p /usr/bin/python2.7 my_env&lt;br /&gt;
* virtualenv の有効化:&lt;br /&gt;
 $ workon my_env&lt;br /&gt;
* virtualenv の中にパッケージをインストール (例: Django):&lt;br /&gt;
 (my_env)$ pip install django&lt;br /&gt;
* virtualenv を離脱:&lt;br /&gt;
 (my_env)$ deactivate&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
* [https://docs.python.org/3/library/venv.html Python venv (pyvenv)]&lt;br /&gt;
* [https://pypi.python.org/pypi/virtualenv virtualenv Pypi page]&lt;br /&gt;
* [http://wiki.pylonshq.com/display/pylonscookbook/Using+a+Virtualenv+Sandbox Tutorial for virtualenv]&lt;br /&gt;
* [http://www.doughellmann.com/docs/virtualenvwrapper/ virtualenvwrapper page at Doug Hellmann&#039;s]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6145</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6145"/>
		<updated>2016-10-19T17:56:44Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:プログラミング言語]]&lt;br /&gt;
[[de:Python]]&lt;br /&gt;
[[en:Python]]&lt;br /&gt;
[[es:Python]]&lt;br /&gt;
[[ko:Python]]&lt;br /&gt;
[[ru:Python]]&lt;br /&gt;
[[zh-CN:Python]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Python パッケージガイドライン}}&lt;br /&gt;
{{Related|Python VirtualEnv}}&lt;br /&gt;
{{Related|mod_wsgi}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:Python|Wikipedia]] より:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。&#039;&#039;&lt;br /&gt;
:&#039;&#039;Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、[http://wiki.python.org/moin/Python2orPython3 Python2orPython3] や Dive into Python 3 の [http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html 章] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。&lt;br /&gt;
&lt;br /&gt;
=== Python 2 ===&lt;br /&gt;
&lt;br /&gt;
最新版の Python 2 をインストールするには、[[公式リポジトリ]]から {{Pkg|python2}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは {{ic|python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
Python 2 を必要とするプログラムでは Python 3 の {{ic|/usr/bin/python}} ではなく {{ic|/usr/bin/python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。&lt;br /&gt;
&lt;br /&gt;
一番最初の行は以下のどちらかになっています:&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
または:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。&lt;br /&gt;
&lt;br /&gt;
スクリプトを変更せずに python2 を強制的に使用させる方法として {{ic|python2}} で明示的にプログラムを呼び出すという方法もあります、例:&lt;br /&gt;
 $ python2 &#039;&#039;myScript.py&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが {{ic|#!/usr/bin/env python}} を使っている場合のみ動作し、{{ic|#!/usr/bin/python}} を使っている場合は動作しません。このトリックは {{ic|env}} が {{ic|PATH}} 変数内の最初に一致したエントリを探すことに依存しています。&lt;br /&gt;
&lt;br /&gt;
まずダミーディレクトリを作成:&lt;br /&gt;
 $ mkdir ~/bin&lt;br /&gt;
そして {{ic|python}} から &#039;&#039;python2&#039;&#039; のシンボリックリンクと、設定スクリプトをディレクトリに追加:&lt;br /&gt;
 $ ln -s /usr/bin/python2 ~/bin/python&lt;br /&gt;
 $ ln -s /usr/bin/python2-config ~/bin/python-config&lt;br /&gt;
最後にあなたの {{ic|PATH}} 変数の&#039;&#039;最初に&#039;&#039;新しいディレクトリを追加してください:&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}}&lt;br /&gt;
{{ic|env}} によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください:&lt;br /&gt;
 $ which python&lt;br /&gt;
&lt;br /&gt;
スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。&lt;br /&gt;
&lt;br /&gt;
== 昔のバージョン ==&lt;br /&gt;
&lt;br /&gt;
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます:&lt;br /&gt;
* {{AUR|python15}}: Python 1.5.2&lt;br /&gt;
* {{AUR|python24}}{{Broken package link|{{aur-mirror|python24}}}}: Python 2.4.6&lt;br /&gt;
* {{AUR|python25}}: Python 2.5.6&lt;br /&gt;
* {{AUR|python26}}: Python 2.6.9&lt;br /&gt;
* {{AUR|python30}}: Python 3.0.1&lt;br /&gt;
* {{AUR|python31}}{{Broken package link|{{aur-mirror|python31}}}}: Python 3.1.5&lt;br /&gt;
* {{AUR|python32}}: Python 3.2.5&lt;br /&gt;
* {{AUR|python33}}: Python 3.3.5&lt;br /&gt;
* {{AUR|python34}}: Python 3.4.3&lt;br /&gt;
&lt;br /&gt;
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。&lt;br /&gt;
&lt;br /&gt;
古いバージョンの Python のモジュールやライブラリは {{ic|python&amp;lt;&#039;&#039;version without period&#039;&#039;&amp;gt;}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 &amp;quot;python26&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
== ウィジェットバインディング ==&lt;br /&gt;
&lt;br /&gt;
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:&lt;br /&gt;
* {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}}&lt;br /&gt;
* {{App|pyQt|[[Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}}&lt;br /&gt;
* {{App|pySide|[[Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}}&lt;br /&gt;
* {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{Pkg|pygtk}}}}&lt;br /&gt;
* {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}}&lt;br /&gt;
* {{App|wxPython|wxWidgets バインディング|http://wxpython.org/|{{Pkg|wxpython}}}}&lt;br /&gt;
以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== IPython ===&lt;br /&gt;
[http://ipython.org/ IPython] は Python コマンドラインの強化版です。公式リポジトリでは {{Pkg|ipython}} と {{Pkg|ipython2}} で利用できます。&lt;br /&gt;
IPython notebook を利用したい場合、IPython3 notebook には {{Pkg|jupyter-notebook}}を、IPython2 notebook には {{Pkg|ipython2-notebook}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
 $ jupyter notebook&lt;br /&gt;
&lt;br /&gt;
を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。&lt;br /&gt;
&lt;br /&gt;
[http://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 仮想環境 ===&lt;br /&gt;
&lt;br /&gt;
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。&lt;br /&gt;
&lt;br /&gt;
詳細は [[Python VirtualEnv]] を見てください。&lt;br /&gt;
&lt;br /&gt;
== Python2 シェルで補完を表示 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|この項目は Python2 にのみ関連します。Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}}&lt;br /&gt;
&lt;br /&gt;
Python のインタラクティブシェルに以下をコピーしてください:&lt;br /&gt;
{{hc|/usr/bin/python|2=&lt;br /&gt;
import rlcompleter&lt;br /&gt;
import readline&lt;br /&gt;
readline.parse_and_bind(&amp;quot;tab: complete&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
ソース: [http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html]&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== ビルドスクリプトのバージョン問題の対処 ===&lt;br /&gt;
&lt;br /&gt;
多くのプロジェクトのビルドスクリプトは {{ic|python}} は Python 2 だと仮定していて、このことはエラーを起こします。典型的には {{ic|print &#039;foo&#039;}} は無効な文法であるというエラーが出ます。幸いにも多くの場合、シバン行にハードコードされた {{ic|#!/usr/bin/python}} ではなく {{ic|PATH}} から {{ic|python}} を呼び出していて、Python スクリプトはすべてプロジェクトツリーに含まれています。したがって、ビルドスクリプトを手動で変更する代わりに簡単なワークアラウンドがあります。&lt;br /&gt;
次のような内容のファイルを {{ic|/usr/local/bin/python}} に作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/local/bin/python|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
script=$(readlink -f -- &amp;quot;$1&amp;quot;)&lt;br /&gt;
case &amp;quot;$script&amp;quot; in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*)&lt;br /&gt;
    exec python2 &amp;quot;$@&amp;quot;&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exec python3 &amp;quot;$@&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
ここで {{ic|&amp;lt;nowiki&amp;gt;/path/to/project1/*|/path/to/project2/*|/path/to/project3*&amp;lt;/nowiki&amp;gt;}} は {{ic|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} によって区切られた Python 2 で動作させる必要のあるすべてのプロジェクトツリーです。&lt;br /&gt;
&lt;br /&gt;
ファイルを実行可能にすることを忘れないください:&lt;br /&gt;
&lt;br /&gt;
 # chmod +x /usr/local/bin/python&lt;br /&gt;
&lt;br /&gt;
その後指定したプロジェクトツリー内のスクリプトは Python 2 で動作します。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158071.do Learning Python, 4th edition]&lt;br /&gt;
* [http://www.diveintopython.net/ Dive Into Python], [http://getpython3.com/diveintopython3/ Dive Into Python3]&lt;br /&gt;
* [http://www.swaroopch.com/notes/Python A Byte of Python]&lt;br /&gt;
* [http://learnpythonthehardway.org Learn Python The Hard Way]&lt;br /&gt;
* [http://learnpython.org Learn Python]&lt;br /&gt;
* [http://stephensugden.com/crash_into_python/ Crash into Python] (他のプログラミング言語に慣れていることを前提としてます)&lt;br /&gt;
* [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame]&lt;br /&gt;
* [http://www.greenteapress.com/thinkpython/ Think Python]&lt;br /&gt;
* [https://pythonspot.com Pythonspot]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6144</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Python&amp;diff=6144"/>
		<updated>2016-10-19T17:36:33Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 一部同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:プログラミング言語]]&lt;br /&gt;
[[de:Python]]&lt;br /&gt;
[[en:Python]]&lt;br /&gt;
[[es:Python]]&lt;br /&gt;
[[ko:Python]]&lt;br /&gt;
[[ru:Python]]&lt;br /&gt;
[[zh-CN:Python]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Python パッケージガイドライン}}&lt;br /&gt;
{{Related|Python VirtualEnv}}&lt;br /&gt;
{{Related|mod_wsgi}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:Python|Wikipedia]] より:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。&#039;&#039;&lt;br /&gt;
:&#039;&#039;Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、[http://wiki.python.org/moin/Python2orPython3 Python2orPython3] や Dive into Python 3 の [http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html 章] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。&lt;br /&gt;
&lt;br /&gt;
=== Python 2 ===&lt;br /&gt;
&lt;br /&gt;
最新版の Python 2 をインストールするには、[[公式リポジトリ]]から {{Pkg|python2}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは {{ic|python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
Python 2 を必要とするプログラムでは Python 3 の {{ic|/usr/bin/python}} ではなく {{ic|/usr/bin/python2}} を指定する必要があります。&lt;br /&gt;
&lt;br /&gt;
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。&lt;br /&gt;
&lt;br /&gt;
一番最初の行は以下のどちらかになっています:&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
または:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。&lt;br /&gt;
&lt;br /&gt;
スクリプトを変更せずに python2 を強制的に使用させる方法として {{ic|python2}} で明示的にプログラムを呼び出すという方法もあります、例:&lt;br /&gt;
 $ python2 &#039;&#039;myScript.py&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが {{ic|#!/usr/bin/env python}} を使っている場合のみ動作し、{{ic|#!/usr/bin/python}} を使っている場合は動作しません。このトリックは {{ic|env}} が {{ic|PATH}} 変数内の最初に一致したエントリを探すことに依存しています。&lt;br /&gt;
&lt;br /&gt;
まずダミーディレクトリを作成:&lt;br /&gt;
 $ mkdir ~/bin&lt;br /&gt;
そして {{ic|python}} から &#039;&#039;python2&#039;&#039; のシンボリックリンクと、設定スクリプトをディレクトリに追加:&lt;br /&gt;
 $ ln -s /usr/bin/python2 ~/bin/python&lt;br /&gt;
 $ ln -s /usr/bin/python2-config ~/bin/python-config&lt;br /&gt;
最後にあなたの {{ic|PATH}} 変数の&#039;&#039;最初に&#039;&#039;新しいディレクトリを追加してください:&lt;br /&gt;
 $ export PATH=~/bin:$PATH&lt;br /&gt;
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}}&lt;br /&gt;
{{ic|env}} によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください:&lt;br /&gt;
 $ which python&lt;br /&gt;
&lt;br /&gt;
スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。&lt;br /&gt;
&lt;br /&gt;
== 昔のバージョン ==&lt;br /&gt;
&lt;br /&gt;
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます:&lt;br /&gt;
* {{AUR|python15}}: Python 1.5.2&lt;br /&gt;
* {{AUR|python24}}{{Broken package link|{{aur-mirror|python24}}}}: Python 2.4.6&lt;br /&gt;
* {{AUR|python25}}: Python 2.5.6&lt;br /&gt;
* {{AUR|python26}}: Python 2.6.9&lt;br /&gt;
* {{AUR|python30}}: Python 3.0.1&lt;br /&gt;
* {{AUR|python31}}{{Broken package link|{{aur-mirror|python31}}}}: Python 3.1.5&lt;br /&gt;
* {{AUR|python32}}: Python 3.2.5&lt;br /&gt;
* {{AUR|python33}}: Python 3.3.5&lt;br /&gt;
* {{AUR|python34}}: Python 3.4.3&lt;br /&gt;
&lt;br /&gt;
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。&lt;br /&gt;
&lt;br /&gt;
古いバージョンの Python のモジュールやライブラリは {{ic|python&amp;lt;&#039;&#039;version without period&#039;&#039;&amp;gt;}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 &amp;quot;python26&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
== ウィジェットバインディング ==&lt;br /&gt;
&lt;br /&gt;
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:&lt;br /&gt;
* {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}}&lt;br /&gt;
* {{App|pyQt|[[Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}}&lt;br /&gt;
* {{App|pySide|[[Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}}&lt;br /&gt;
* {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{Pkg|pygtk}}}}&lt;br /&gt;
* {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}}&lt;br /&gt;
* {{App|wxPython|wxWidgets バインディング|http://wxpython.org/|{{Pkg|wxpython}}}}&lt;br /&gt;
以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== IPython ===&lt;br /&gt;
[http://ipython.org/ IPython] は Python コマンドラインの強化版です。公式リポジトリでは {{Pkg|ipython}} と {{Pkg|ipython2}} で利用できます。&lt;br /&gt;
IPython notebook を利用したい場合、IPython3 notebook には {{Pkg|jupyter-notebook}}を、IPython2 notebook には {{Pkg|ipython2-notebook}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
 $ jupyter notebook&lt;br /&gt;
&lt;br /&gt;
を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。&lt;br /&gt;
&lt;br /&gt;
[http://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。&lt;br /&gt;
&lt;br /&gt;
=== 仮想環境 ===&lt;br /&gt;
&lt;br /&gt;
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。&lt;br /&gt;
&lt;br /&gt;
詳細は [[Python VirtualEnv]] を見てください。&lt;br /&gt;
&lt;br /&gt;
== Python2 シェルで補完を表示 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|この項目は Python2 にのみ関連します。Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}}&lt;br /&gt;
&lt;br /&gt;
Python のインタラクティブシェルに以下をコピーしてください:&lt;br /&gt;
{{hc|/usr/bin/python|2=&lt;br /&gt;
import rlcompleter&lt;br /&gt;
import readline&lt;br /&gt;
readline.parse_and_bind(&amp;quot;tab: complete&amp;quot;)&lt;br /&gt;
}}&lt;br /&gt;
ソース: [http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html]&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
=== ビルドスクリプトのバージョン問題の対処 ===&lt;br /&gt;
&lt;br /&gt;
Many projects&#039; build scripts assume {{ic|python}} to be Python 2, and that would eventually result in an error — typically complaining that {{ic|print &#039;foo&#039;}} is invalid syntax. Luckily, many of them call {{ic|python}} from the {{ic|PATH}} instead of hardcoding {{ic|#!/usr/bin/python}} in the shebang line, and the Python scripts are all contained within the project tree. So, instead of modifying the build scripts manually, there is an easy workaround. Just create {{ic|/usr/local/bin/python}} with content like this:&lt;br /&gt;
&lt;br /&gt;
{{hc|/usr/local/bin/python|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
script=$(readlink -f -- &amp;quot;$1&amp;quot;)&lt;br /&gt;
case &amp;quot;$script&amp;quot; in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*)&lt;br /&gt;
    exec python2 &amp;quot;$@&amp;quot;&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exec python3 &amp;quot;$@&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Where {{ic|&amp;lt;nowiki&amp;gt;/path/to/project1/*|/path/to/project2/*|/path/to/project3*&amp;lt;/nowiki&amp;gt;}} is a list of patterns separated by {{ic|&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}} matching all project trees.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make it executable:&lt;br /&gt;
&lt;br /&gt;
 # chmod +x /usr/local/bin/python&lt;br /&gt;
&lt;br /&gt;
Afterwards scripts within the specified project trees will be run with Python 2.&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://shop.oreilly.com/product/9780596158071.do Learning Python, 4th edition]&lt;br /&gt;
* [http://www.diveintopython.net/ Dive Into Python], [http://getpython3.com/diveintopython3/ Dive Into Python3]&lt;br /&gt;
* [http://www.swaroopch.com/notes/Python A Byte of Python]&lt;br /&gt;
* [http://learnpythonthehardway.org Learn Python The Hard Way]&lt;br /&gt;
* [http://learnpython.org Learn Python]&lt;br /&gt;
* [http://stephensugden.com/crash_into_python/ Crash into Python] (他のプログラミング言語に慣れていることを前提としてます)&lt;br /&gt;
* [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame]&lt;br /&gt;
* [http://www.greenteapress.com/thinkpython/ Think Python]&lt;br /&gt;
* [https://pythonspot.com Pythonspot]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Gitolite&amp;diff=6132</id>
		<title>Gitolite</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Gitolite&amp;diff=6132"/>
		<updated>2016-10-18T16:48:21Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 不要なスペースを削除&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:バージョン管理システム]]&lt;br /&gt;
[[en:Gitolite]]&lt;br /&gt;
[https://github.com/sitaramc/gitolite/wiki/ Gitolite] を使うことで複数のユーザーが扱う Git リポジトリを簡単に安全にホストすることができます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
{{Pkg|gitolite}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
gitolite をインストールすると自動的に &#039;&#039;gitolite&#039;&#039; ユーザーがシステムに追加され、ホームディレクトリ {{ic|/var/lib/gitolite}} が作られます。&lt;br /&gt;
&lt;br /&gt;
=== SSH による管理者アクセス ===&lt;br /&gt;
&lt;br /&gt;
管理者アクセスできるように、SSH 公開鍵を {{ic|/var/lib/gitolite/&#039;&#039;username&#039;&#039;.pub}} に追加してください ({{ic|username}} はあなたのユーザー名に置き換えて下さい):&lt;br /&gt;
 # install -o gitolite -g gitolite ~/.ssh/id_rsa.pub /var/lib/gitolite/&#039;&#039;username&#039;&#039;.pub&lt;br /&gt;
&lt;br /&gt;
そして &#039;&#039;gitolite&#039;&#039; ユーザーを使って Gitolite のセットアップスクリプトを実行します:&lt;br /&gt;
 # su - gitolite&lt;br /&gt;
 $ gitolite setup -pk &#039;&#039;username&#039;&#039;.pub&lt;br /&gt;
&lt;br /&gt;
これで gitolite-admin の keydir に公開鍵が配置され、あなたのユーザー名で gitolite-admin リポジトリに読み書きアクセスできるようになります。&lt;br /&gt;
&lt;br /&gt;
コピーした SSH 公開鍵を削除して &#039;&#039;gitolite&#039;&#039; ユーザーシェルを終了してください:&lt;br /&gt;
 $ rm &#039;&#039;username&#039;&#039;.pub&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
あなたのユーザーを使って問題が無いか確認することが可能です:&lt;br /&gt;
{{hc|$ ssh gitolite@&#039;&#039;hostname&#039;&#039; info|&lt;br /&gt;
hello &#039;&#039;username&#039;&#039;, this is gitolite@&#039;&#039;hostname&#039;&#039; running gitolite3 v3.6.2 on git 2.3.3&lt;br /&gt;
&lt;br /&gt;
 R W    gitolite-admin&lt;br /&gt;
 R W    testing&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
リポジトリやユーザーを直接 &#039;&#039;gitolite&#039;&#039; としてサーバーに追加してはいけません。特別な &#039;&#039;gitolite-admin&#039;&#039; リポジトリを複製することでサーバーを管理します:&lt;br /&gt;
 $ git clone gitolite@&#039;&#039;hostname&#039;&#039;:gitolite-admin&lt;br /&gt;
&lt;br /&gt;
詳しくは [https://github.com/sitaramc/gitolite/ Gitolite] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Apache による http(s) アクセスの追加 (ベーシック認証) ===&lt;br /&gt;
&lt;br /&gt;
suEXEC ラッパースクリプトを作成する必要があります。suEXEC のセキュリティ要件を満たすために、スクリプトとディレクトリの所有者は {{ic|gitolite:gitolite}} である必要があり、{{ic|/srv/http}} 以下に配置しなくてはなりません。ここでは例として、{{ic|/srv/http/git/cgi-bin}} ディレクトリを作成します:&lt;br /&gt;
 # install -o gitolite -g gitolite -d /srv/http/git/cgi-bin&lt;br /&gt;
&lt;br /&gt;
gitolite シェルの suEXEC ラッパーを作成してください。以下の例では、{{ic|/srv/http/git/cgi-bin/gitolite-suexec-wrapper}} として保存しています。&lt;br /&gt;
{{hc|/srv/http/git/cgi-bin/gitolite-suexec-wrapper|2=&lt;br /&gt;
#!/usr/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# suEXEC wrapper for gitolite-shell&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
export GIT_PROJECT_ROOT=/var/lib/gitolite/repositories&lt;br /&gt;
export GITOLITE_HTTP_HOME=/var/lib/gitolite&lt;br /&gt;
&lt;br /&gt;
exec /usr/lib/gitolite/gitolite-shell&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ラッパーに実行可能属性を付与して所有者を {{ic|gitolite:gitolite}} に変更:&lt;br /&gt;
 # chown gitolite:gitolite /srv/http/git/cgi-bin/gitolite-suexec-wrapper&lt;br /&gt;
 # chmod 0755 /srv/http/git/cgi-bin/gitolite-suexec-wrapper&lt;br /&gt;
&lt;br /&gt;
空のパスワードデータベースファイルを作成、所有者は {{ic|gitolite:http}}:&lt;br /&gt;
 # install -o gitolite -g http -m 0640 /dev/null /srv/http/git/htpasswd&lt;br /&gt;
&lt;br /&gt;
Apache の basic 認証は ssh とは別の仕組みなので、証明書が別に必要になります。{{ic|htpasswd}} を使ってウェブユーザーを作成:&lt;br /&gt;
 # htpasswd /srv/http/git/htpasswd &#039;&#039;username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以下を Apache の vhost 設定に追加してください:&lt;br /&gt;
{{bc|&lt;br /&gt;
SuexecUserGroup gitolite gitolite&lt;br /&gt;
ScriptAlias /git/ /srv/http/git/cgi-bin/gitolite-suexec-wrapper/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /srv/http/git/cgi-bin&amp;gt;&lt;br /&gt;
    Require all granted&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /git&amp;gt;&lt;br /&gt;
    AuthType Basic&lt;br /&gt;
    AuthName &amp;quot;Git Access&amp;quot;&lt;br /&gt;
    AuthBasicProvider file&lt;br /&gt;
    AuthUserFile /srv/http/git/htpasswd&lt;br /&gt;
    Require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|httpd.service}} を再起動してください。&lt;br /&gt;
&lt;br /&gt;
最後に、前述の gitolite-admin リポジトリの中にある、{{ic|conf/gitolite.conf}} を編集して http でアクセスして変更をプッシュしたい全てのリポジトリに {{ic|1=R = daemon}} アクセスルールを追加してください。&lt;br /&gt;
&lt;br /&gt;
== ユーザーの追加 ==&lt;br /&gt;
&lt;br /&gt;
=== ssh ユーザー ===&lt;br /&gt;
アクセス権を与えるユーザーに、あなたに公開鍵を送るよう頼んでください。次のコマンドで ssh の鍵ペアを生成できます:&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
それぞれの公開鍵をユーザーの名前に従ってリネームし、.pub 拡張子を付けてください。例えば itaram.pub や john-smith.pub ような形です。ピリオドやアンダースコアも利用することができます。&lt;br /&gt;
&lt;br /&gt;
すべての *.pub ファイルを複製した gitolite-admin リポジトリの keydir の中にコピーしてください。サブディレクトリを使って鍵を整理することもできます。&lt;br /&gt;
&lt;br /&gt;
設定ファイル (複製した gitolite-admin リポジトリの中の conf/gitolite.conf) を編集してください。設定項目や文法などの詳細は gitolite.conf のドキュメント (http://sitaramc.github.com/gitolite/admin.html#conf) を見てください。必要に応じて新しいリポジトリを追加したり、新しいユーザーを追加しパーミッションを与えたりしてください。ユーザーの名前は鍵ファイル名から .pub 拡張子を除いたものと同一にしてください。&lt;br /&gt;
 $ nano conf/gitolite.conf&lt;br /&gt;
&lt;br /&gt;
変更をコミットしプッシュしてください:&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
 $ git push&lt;br /&gt;
&lt;br /&gt;
=== http(s) ユーザー ===&lt;br /&gt;
&lt;br /&gt;
http(s) のユーザー管理はシングルユーザーセットアップに適しています。新しいユーザーを追加したり、存在するユーザーのパスワードを変更するには:&lt;br /&gt;
 # htpasswd /srv/http/git/htpasswd &#039;&#039;username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Gitosis ライクな ssh ユーザー名 ==&lt;br /&gt;
{{ic|username@server1}} と {{ic|username@server2}} のような同じログインのユーザーを区別したい場合は次を実行してください ({{Pkg|gitolite}} 3.04-1 でテストしています):&lt;br /&gt;
&lt;br /&gt;
* {{ic|/usr/lib/gitolite/triggers/post-compile/ssh-authkeys}} を開き&lt;br /&gt;
 $user =~ s/(\@[^.]+)?\.pub$//;    # baz.pub, baz@home.pub -&amp;gt; baz&lt;br /&gt;
を&lt;br /&gt;
 $user =~ s/\.pub$//;              # baz@home.pub -&amp;gt; baz@home&lt;br /&gt;
で置き換えてください。&lt;br /&gt;
* authorized_keys ファイルを更新してください。(例えば &#039;&#039;gitolite-admin&#039;&#039; リポジトリにプッシュしてください)&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
gitolite のアカウントでログインできない場合、あなたの ssh の設定によってアカウントがロックされているかもしれません。&lt;br /&gt;
&lt;br /&gt;
[http://arlimus.github.io/articles/usepam/ SSH and locked users Article] や [http://unix.stackexchange.com/questions/193066/how-to-unlock-account-for-public-key-ssh-authorization-but-not-for-password-aut Unix &amp;amp; Linux StackExchange - How to unlock account for public key ssh authorization, but not for password authorization] に述べられているような SSH のセキュリティの強化がこの動作を引き起こすことがあります。&lt;br /&gt;
&lt;br /&gt;
この問題を解決するために {{ic|sshd_config}} で　PAM を許可するか、アカウントをアンロックしてください:&lt;br /&gt;
&lt;br /&gt;
 # usermod -p &#039;*&#039; gitolite&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/passwd|&lt;br /&gt;
...&lt;br /&gt;
gitolite:*:16199:0:99999:7:::&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|空のパスワードを持つアカウントを {{ic|passwd -u}} した状態にしておかないでください。パスワード無しでログインを許可することになります。}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://sitaramc.github.com/gitolite/index.html Gitolite Site]&lt;br /&gt;
* [http://arlimus.github.io/articles/usepam/ SSH and locked users Article]&lt;br /&gt;
* [http://unix.stackexchange.com/questions/193066/how-to-unlock-account-for-public-key-ssh-authorization-but-not-for-password-aut Unix &amp;amp; Linux StackExchange - How to unlock account for public key ssh authorization, but not for password authorization]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Gitolite&amp;diff=6131</id>
		<title>Gitolite</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Gitolite&amp;diff=6131"/>
		<updated>2016-10-18T16:46:15Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:バージョン管理システム]]&lt;br /&gt;
[[en:Gitolite]]&lt;br /&gt;
[https://github.com/sitaramc/gitolite/wiki/ Gitolite] を使うことで複数のユーザーが扱う Git リポジトリを簡単に安全にホストすることができます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
{{Pkg|gitolite}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
gitolite をインストールすると自動的に &#039;&#039;gitolite&#039;&#039; ユーザーがシステムに追加され、ホームディレクトリ {{ic|/var/lib/gitolite}} が作られます。&lt;br /&gt;
&lt;br /&gt;
=== SSH による管理者アクセス ===&lt;br /&gt;
&lt;br /&gt;
管理者アクセスできるように、SSH 公開鍵を {{ic|/var/lib/gitolite/&#039;&#039;username&#039;&#039;.pub}} に追加してください ({{ic|username}} はあなたのユーザー名に置き換えて下さい):&lt;br /&gt;
 # install -o gitolite -g gitolite ~/.ssh/id_rsa.pub /var/lib/gitolite/&#039;&#039;username&#039;&#039;.pub&lt;br /&gt;
&lt;br /&gt;
そして &#039;&#039;gitolite&#039;&#039; ユーザーを使って Gitolite のセットアップスクリプトを実行します:&lt;br /&gt;
 # su - gitolite&lt;br /&gt;
 $ gitolite setup -pk &#039;&#039;username&#039;&#039;.pub&lt;br /&gt;
&lt;br /&gt;
これで gitolite-admin の keydir に公開鍵が配置され、あなたのユーザー名で gitolite-admin リポジトリに読み書きアクセスできるようになります。&lt;br /&gt;
&lt;br /&gt;
コピーした SSH 公開鍵を削除して &#039;&#039;gitolite&#039;&#039; ユーザーシェルを終了してください:&lt;br /&gt;
 $ rm &#039;&#039;username&#039;&#039;.pub&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
あなたのユーザーを使って問題が無いか確認することが可能です:&lt;br /&gt;
{{hc|$ ssh gitolite@&#039;&#039;hostname&#039;&#039; info|&lt;br /&gt;
hello &#039;&#039;username&#039;&#039;, this is gitolite@&#039;&#039;hostname&#039;&#039; running gitolite3 v3.6.2 on git 2.3.3&lt;br /&gt;
&lt;br /&gt;
 R W    gitolite-admin&lt;br /&gt;
 R W    testing&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
リポジトリやユーザーを直接 &#039;&#039;gitolite&#039;&#039; としてサーバーに追加してはいけません。特別な &#039;&#039;gitolite-admin&#039;&#039; リポジトリを複製することでサーバーを管理します:&lt;br /&gt;
 $ git clone gitolite@&#039;&#039;hostname&#039;&#039;:gitolite-admin&lt;br /&gt;
&lt;br /&gt;
詳しくは [https://github.com/sitaramc/gitolite/ Gitolite] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Apache による http(s) アクセスの追加 (ベーシック認証) ===&lt;br /&gt;
&lt;br /&gt;
suEXEC ラッパースクリプトを作成する必要があります。suEXEC のセキュリティ要件を満たすために、スクリプトとディレクトリの所有者は {{ic|gitolite:gitolite}} である必要があり、{{ic|/srv/http}} 以下に配置しなくてはなりません。ここでは例として、{{ic|/srv/http/git/cgi-bin}} ディレクトリを作成します:&lt;br /&gt;
 # install -o gitolite -g gitolite -d /srv/http/git/cgi-bin&lt;br /&gt;
&lt;br /&gt;
gitolite シェルの suEXEC ラッパーを作成してください。以下の例では、{{ic|/srv/http/git/cgi-bin/gitolite-suexec-wrapper}} として保存しています。&lt;br /&gt;
{{hc|/srv/http/git/cgi-bin/gitolite-suexec-wrapper|2=&lt;br /&gt;
#!/usr/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# suEXEC wrapper for gitolite-shell&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
export GIT_PROJECT_ROOT=/var/lib/gitolite/repositories&lt;br /&gt;
export GITOLITE_HTTP_HOME=/var/lib/gitolite&lt;br /&gt;
&lt;br /&gt;
exec /usr/lib/gitolite/gitolite-shell&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ラッパーに実行可能属性を付与して所有者を {{ic|gitolite:gitolite}} に変更:&lt;br /&gt;
 # chown gitolite:gitolite /srv/http/git/cgi-bin/gitolite-suexec-wrapper&lt;br /&gt;
 # chmod 0755 /srv/http/git/cgi-bin/gitolite-suexec-wrapper&lt;br /&gt;
&lt;br /&gt;
空のパスワードデータベースファイルを作成、所有者は {{ic|gitolite:http}}:&lt;br /&gt;
 # install -o gitolite -g http -m 0640 /dev/null /srv/http/git/htpasswd&lt;br /&gt;
&lt;br /&gt;
Apache の basic 認証は ssh とは別の仕組みなので、証明書が別に必要になります。{{ic|htpasswd}} を使ってウェブユーザーを作成:&lt;br /&gt;
 # htpasswd /srv/http/git/htpasswd &#039;&#039;username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以下を Apache の vhost 設定に追加してください:&lt;br /&gt;
{{bc|&lt;br /&gt;
SuexecUserGroup gitolite gitolite&lt;br /&gt;
ScriptAlias /git/ /srv/http/git/cgi-bin/gitolite-suexec-wrapper/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /srv/http/git/cgi-bin&amp;gt;&lt;br /&gt;
    Require all granted&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Location /git&amp;gt;&lt;br /&gt;
    AuthType Basic&lt;br /&gt;
    AuthName &amp;quot;Git Access&amp;quot;&lt;br /&gt;
    AuthBasicProvider file&lt;br /&gt;
    AuthUserFile /srv/http/git/htpasswd&lt;br /&gt;
    Require valid-user&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|httpd.service}} を再起動してください。&lt;br /&gt;
&lt;br /&gt;
最後に、前述の gitolite-admin リポジトリの中にある、{{ic|conf/gitolite.conf}} を編集して http でアクセスして変更をプッシュしたい全てのリポジトリに {{ic|1=R = daemon}} アクセスルールを追加してください。&lt;br /&gt;
&lt;br /&gt;
== ユーザーの追加 ==&lt;br /&gt;
&lt;br /&gt;
=== ssh ユーザー ===&lt;br /&gt;
アクセス権を与えるユーザーに、あなたに公開鍵を送るよう頼んでください。次のコマンドで ssh の鍵ペアを生成できます:&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
それぞれの公開鍵をユーザーの名前に従ってリネームし、.pub 拡張子を付けてください。例えば itaram.pub や john-smith.pub ような形です。ピリオドやアンダースコアも利用することができます。&lt;br /&gt;
&lt;br /&gt;
すべての *.pub ファイルを 複製した gitolite-admin リポジトリの keydir の中にコピーしてください。サブディレクトリを使って鍵を整理することもできます。&lt;br /&gt;
&lt;br /&gt;
設定ファイル (複製した gitolite-admin リポジトリの中の conf/gitolite.conf) を編集してください。設定項目や文法などの詳細は gitolite.conf のドキュメント (http://sitaramc.github.com/gitolite/admin.html#conf) を見てください。必要に応じて新しいリポジトリを追加したり、新しいユーザーを追加しパーミッションを与えたりしてください。ユーザーの名前は鍵ファイル名から .pub 拡張子を除いたものと同一にしてください。&lt;br /&gt;
 $ nano conf/gitolite.conf&lt;br /&gt;
&lt;br /&gt;
変更をコミットしプッシュしてください:&lt;br /&gt;
 $ git commit -a&lt;br /&gt;
 $ git push&lt;br /&gt;
&lt;br /&gt;
=== http(s) ユーザー ===&lt;br /&gt;
&lt;br /&gt;
http(s) のユーザー管理はシングルユーザーセットアップに適しています。新しいユーザーを追加したり、存在するユーザーのパスワードを変更するには:&lt;br /&gt;
 # htpasswd /srv/http/git/htpasswd &#039;&#039;username&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Gitosis ライクな ssh ユーザー名 ==&lt;br /&gt;
{{ic|username@server1}} と {{ic|username@server2}} のような同じログインのユーザーを区別したい場合は次を実行してください ({{Pkg|gitolite}} 3.04-1 でテストしています):&lt;br /&gt;
&lt;br /&gt;
* {{ic|/usr/lib/gitolite/triggers/post-compile/ssh-authkeys}} を開き&lt;br /&gt;
 $user =~ s/(\@[^.]+)?\.pub$//;    # baz.pub, baz@home.pub -&amp;gt; baz&lt;br /&gt;
を&lt;br /&gt;
 $user =~ s/\.pub$//;              # baz@home.pub -&amp;gt; baz@home&lt;br /&gt;
で置き換えてください。&lt;br /&gt;
* authorized_keys ファイルを更新してください。(例えば &#039;&#039;gitolite-admin&#039;&#039; リポジトリにプッシュしてください)&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
gitolite のアカウントでログインできない場合、あなたの ssh の設定によってアカウントがロックされているかもしれません。&lt;br /&gt;
&lt;br /&gt;
[http://arlimus.github.io/articles/usepam/ SSH and locked users Article] や [http://unix.stackexchange.com/questions/193066/how-to-unlock-account-for-public-key-ssh-authorization-but-not-for-password-aut Unix &amp;amp; Linux StackExchange - How to unlock account for public key ssh authorization, but not for password authorization] に述べられているような SSH のセキュリティの強化がこの動作を引き起こすことがあります。&lt;br /&gt;
&lt;br /&gt;
この問題を解決するために {{ic|sshd_config}} で　PAM を許可するか、アカウントをアンロックしてください:&lt;br /&gt;
&lt;br /&gt;
 # usermod -p &#039;*&#039; gitolite&lt;br /&gt;
&lt;br /&gt;
{{hc|# nano /etc/passwd|&lt;br /&gt;
...&lt;br /&gt;
gitolite:*:16199:0:99999:7:::&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|空のパスワードを持つアカウントを {{ic|passwd -u}} した状態にしておかないでください。パスワード無しでログインを許可することになります。}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://sitaramc.github.com/gitolite/index.html Gitolite Site]&lt;br /&gt;
* [http://arlimus.github.io/articles/usepam/ SSH and locked users Article]&lt;br /&gt;
* [http://unix.stackexchange.com/questions/193066/how-to-unlock-account-for-public-key-ssh-authorization-but-not-for-password-aut Unix &amp;amp; Linux StackExchange - How to unlock account for public key ssh authorization, but not for password authorization]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Slurm&amp;diff=6084</id>
		<title>Slurm</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Slurm&amp;diff=6084"/>
		<updated>2016-10-14T16:11:27Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: カテゴリを同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:分散コンピューティング]]&lt;br /&gt;
[[en:Slurm]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|distcc}}&lt;br /&gt;
{{Related|TORQUE}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Slurm&#039;&#039;&#039; (Slurm Workload Manager や slurm-llnl とも呼ばれます) はあらゆる規模の Linux クラスタで動作するように作られたオープンソースのワークロードマネージャです。世界中のスーパーコンピュータやコンピュータクラスタで使われています。Slurm の機能は主に3つです。まず、一定時間、リソース (コンピュータノード) への排他的・非排他的なアクセスをユーザーに配分して、ユーザーが作業を行えるようにします。次に、割り当てられたノードで作業 (通常は並列のジョブ) を開始・実行したり監視するためのフレームワークを用意しています。最後に、保留されている作業のキューを管理することでリソースの取り合いを調整します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Slurm は強力なジョブスケジューラですが、単純にコンパイルのスループットを持ち上げるためだけのクラスタなら、[[distcc]] の方が簡単・簡潔です。}}&lt;br /&gt;
[[AUR]] から {{AUR|slurm-llnl}} パッケージを[[インストール]]してください。依存パッケージとして、認証サービスの {{AUR|munge}} もインストールされます。munge は slurmd の systemd サービスによって実行され、ホスト間の接続を暗号化します。そのため、クラスタの全てのノードには {{ic|/etc/munge/munge.key}} に同じ鍵を保存してください。&lt;br /&gt;
&lt;br /&gt;
slurm パッケージには他にも多数の任意依存パッケージが存在しますが、利用するにはパッケージをインストールした後に slurm を再コンパイルする必要があります。&lt;br /&gt;
&lt;br /&gt;
== セットアップ ==&lt;br /&gt;
&lt;br /&gt;
slurm-llnl の設定ファイルは {{ic|/etc/slurm-llnl}} にあります。slurm サービスを起動する前に、設定ファイル {{ic|/etc/slurm-llnl/slurm.conf}} を作成して適切に設定してください。クライアントとサーバーは同一の設定ファイルが使えます。https://computing.llnl.gov/linux/slurm/configurator.html からファイルを生成するか {{ic|/etc/slurm-llnl/slurm.conf.example}} を {{ic|/etc/slurm-llnl/slurm.conf}} にコピーして自由に修正してください。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、インストール時に UID と GID が 64030 の slurm ユーザーが作成されます。このユーザーを使うことで複数の環境でのセットアップが楽になります。UID と GID は Debian で使われている ID と同じなので、Debian と一緒に使うこともできます。ただしバイナリはディストリビューションによって違うので注意してください。&lt;br /&gt;
&lt;br /&gt;
=== クライアント (計算ノード) の設定 ===&lt;br /&gt;
&lt;br /&gt;
クライアント側では {{ic|slurmd.service}} を起動します (ブート時に起動させるにはサービスを有効化してください)。&lt;br /&gt;
&lt;br /&gt;
slurmd が立ち上がっていることを確認するには、次を実行:&lt;br /&gt;
&lt;br /&gt;
 # systemctl status slurmd&lt;br /&gt;
&lt;br /&gt;
=== サーバー (ヘッドノード) の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|slurmctld.service}} を起動・有効化してください。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|slurmdbd.service}} を起動・有効化することで、mysql データベースを使って重要なプロセスの情報ログを簡単に管理することができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|systemd の力を利用して、{{ic|/etc/default/slurm-llnl}} の設定を変更することでプログラムに引数を追加することができます。このファイルは様々なサービスの environment ファイルとして処理され、設定された引数がプログラムに渡されます。}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
*[http://slurm.schedmd.com/tutorials.html slurm tutorials] - ユーザーとシステム管理者のための Slurm Workload Manager のイントロダクション。Slurm プログラマ向けの資料。&lt;br /&gt;
*[http://slurm.schedmd.com/quickstart_admin.html Quick Start Administrator Guide] - 詳細なセットアップガイド。&lt;br /&gt;
*[https://rc.fas.harvard.edu/resources/documentation/convenient-slurm-commands/ SLURM to manage jobs] - 便利な SLURM コマンド。&lt;br /&gt;
*[https://rc.fas.harvard.edu/resources/running-jobs/ Running Jobs] - ハーバード大学での slurm の利用事例。&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=TORQUE&amp;diff=6083</id>
		<title>TORQUE</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=TORQUE&amp;diff=6083"/>
		<updated>2016-10-14T16:10:57Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: カテゴリを&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:分散コンピューティング]]&lt;br /&gt;
[[en:TORQUE]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|distcc}}&lt;br /&gt;
{{Related|Slurm}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TORQUE&#039;&#039;&#039; はオープンソースのリソースマネージャです。バッチジョブや分散された計算ノードを制御します。TORQUE を使うことで、ホーム・スモールオフィス用の Linux クラスタを構築してジョブを管理することができます。クラスタは一つのヘッドノードと多数の計算ノードから成ります。ヘッドノードでは &#039;&#039;&#039;torque-server&#039;&#039;&#039; デーモンを動作させ計算ノードでは &#039;&#039;&#039;torque-client&#039;&#039;&#039; デーモンを動作させます。ヘッドノードではスケジューラデーモンも動かします。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Note|TORQUE はとても強力なキューイングシステムですが、コンパイルのスループットを高めるためにクラスタを組むだけなら、[[distcc]] のほうがもっと簡潔に使うことができます。}}&lt;br /&gt;
[[AUR]] の {{AUR|torque}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
== 要件 ==&lt;br /&gt;
&lt;br /&gt;
=== /etc/hosts ===&lt;br /&gt;
&lt;br /&gt;
クラスタの全てのマシンの {{ic|/etc/hosts}} に、クラスタの全てのマシンのホストネームを記述してください。例えば、クラスタを3つのマシン (mars, phobos, deimos) で構成する場合:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.20   mars&lt;br /&gt;
 192.168.0.21   phobos&lt;br /&gt;
 192.168.0.22   deimos&lt;br /&gt;
&lt;br /&gt;
=== ファイアウォールの設定 (インストールしている場合) ===&lt;br /&gt;
&lt;br /&gt;
TORQUE を使用する全てのマシンの TCP を開いてください。&lt;br /&gt;
&lt;br /&gt;
pbs_server (サーバー) と pbs_mom (クライアント) はデフォルトでは TCP と UDP のポート 15001-15004 を使用します。また、特権ポートが設定されている場合 (デフォルト) pbs_mom (クライアント) は UDP ポート 1023 以下も使用します。&lt;br /&gt;
&lt;br /&gt;
=== NFS ===&lt;br /&gt;
&lt;br /&gt;
技術的には、NFS を必ずしも使う必要はありませんが、使ったほうが設定が簡単になります。ビルドに使用するディスク領域を共有するために [[NFS]] の共有をサーバーや他のマシンで設定することを強く推奨します。&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|/var/spool/torque/server_name}} を編集してヘッドノードに名前を付けます。分かりやすいように {{ic|/etc/hostname}} のホストネームと一緒の名前にすることを推奨します。&lt;br /&gt;
&lt;br /&gt;
torque サーバーを作成・設定:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
# pbs_server -t create&lt;br /&gt;
PBS_Server localhost.localdomain: Create mode and server database exists,&lt;br /&gt;
do you wish to continue y/(n)?y&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
以下を実行して trqauthd を起動:&lt;br /&gt;
{{bc|# trqauthd}}&lt;br /&gt;
&lt;br /&gt;
最小限必要なオプションは以下の通りです。最初の行の &amp;quot;mars&amp;quot; を {{ic|/var/spool/torque/server_name}} で入力したホストネームに置き換えてください:&lt;br /&gt;
&lt;br /&gt;
 qmgr -c &amp;quot;set server acl_hosts = mars&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;set server scheduling=true&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;create queue batch queue_type=execution&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;set queue batch started=true&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;set queue batch enabled=true&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;set queue batch resources_default.nodes=1&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;set queue batch resources_default.walltime=3600&amp;quot;&lt;br /&gt;
 qmgr -c &amp;quot;set server default_queue=batch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
完了したジョブは一定期間キューの中に保持すると良いでしょう:&lt;br /&gt;
&lt;br /&gt;
 qmgr -c &amp;quot;set server keep_completed = 86400&amp;quot;&lt;br /&gt;
&lt;br /&gt;
上記の場合、86400秒 = 24時間後に、キューからジョブが自動的に削除されます。qstat の {{ic|-f}} スイッチを使うことでキューから削除されたジョブのログを確認することができます:&lt;br /&gt;
&lt;br /&gt;
 qstat -f&lt;br /&gt;
&lt;br /&gt;
サーバーの設定を確認したい場合は次のコマンドを実行:&lt;br /&gt;
 # qmgr -c &#039;p s&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/spool/torque/server_priv/nodes}} を編集して計算ノードを全て追加してください。ヘッドノードと同じように、LAN 上のマシンのホストネームと同じ名前を使うことを推奨します。構文は HOSTNAME np=x gpus=y properties です。&lt;br /&gt;
&lt;br /&gt;
* HOSTNAME=マシンのホストネーム&lt;br /&gt;
* np=プロセッサの数&lt;br /&gt;
* gpus=gpu の数&lt;br /&gt;
* properties=コメント&lt;br /&gt;
&lt;br /&gt;
ホストネームだけが必須で、後のフィールドは任意です。&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 mars np=4&lt;br /&gt;
 phobos np=2&lt;br /&gt;
 deimos np=2&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 同じマシンでサーバーとクライアントの両方を動作させることもできます。&lt;br /&gt;
* {{ic|pbs_server -t create}} を再実行することで nodes ファイルを削除することができます。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
サーバーを再起動して新しいオプションを読み込ませてください。&lt;br /&gt;
&lt;br /&gt;
=== クライアント (計算ノード) の設定 ===&lt;br /&gt;
&lt;br /&gt;
クラスタ内の全ての計算ノードで以下の手順に従ってください。&lt;br /&gt;
{{Note|同一マシンでサーバーとクライアントの両方を動作させる場合、クラスタ内の&#039;&#039;純粋な&#039;&#039;クライアントだけでなくサーバーマシンでも以下の設定を行なってください。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/var/spool/torque/mom_priv/config}} を編集してサーバーに関する基本的な情報を記述:&lt;br /&gt;
&lt;br /&gt;
 $pbsserver      mars          # note: this is the hostname of the headnode&lt;br /&gt;
 $logevent       255           # bitmap of which events to log&lt;br /&gt;
&lt;br /&gt;
=== サーバーの再起動 ===&lt;br /&gt;
&lt;br /&gt;
サーバーを再起動すると設定が適用されます:&lt;br /&gt;
{{bc|&lt;br /&gt;
# killall -s 9 pbs_server&lt;br /&gt;
# pbs_server&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== クライアントの起動 ===&lt;br /&gt;
&lt;br /&gt;
クライアントマシンで以下を実行することでクライアントが起動します:&lt;br /&gt;
{{bc|&lt;br /&gt;
# pbs_mom&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== クラスタの状態を確認 ==&lt;br /&gt;
&lt;br /&gt;
クラスタの状態を確認したいときは、以下を実行:&lt;br /&gt;
 $ pbsnodes -a&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;state&#039;&#039; が &#039;&#039;free&#039;&#039; となっていればノードはジョブを受け取る準備が出来ています。ノードが落ちている場合、state は &#039;&#039;down&#039;&#039; となります。&lt;br /&gt;
&lt;br /&gt;
出力例:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
     mars&lt;br /&gt;
     state = free&lt;br /&gt;
     np = 4&lt;br /&gt;
     ntype = cluster&lt;br /&gt;
     status = rectime=1308479899,varattr=,jobs=0.localhost.localdomain,state=free,netload=1638547057,&lt;br /&gt;
gres=,loadave=2.69,ncpus=4,physmem=8195892kb,availmem=7172508kb,totmem=8195892kb,&lt;br /&gt;
idletime=24772,nusers=1,nsessions=5,sessions=1333 1349 1353 1388 9095,&lt;br /&gt;
uname=Linux mars 2.6.39-ck #1 SMP PREEMPT Sat Jun 18 14:19:01 EDT 2011 x86_64,opsys=linux&lt;br /&gt;
     mom_service_port = 15002&lt;br /&gt;
     mom_manager_port = 15003&lt;br /&gt;
     gpus = 2&lt;br /&gt;
&lt;br /&gt;
phobos&lt;br /&gt;
     state = free&lt;br /&gt;
     np = 2&lt;br /&gt;
     ntype = cluster&lt;br /&gt;
     status = rectime=1308479933,varattr=,jobs=,state=free,netload=1085755815,&lt;br /&gt;
gres=,loadave=2.84,ncpus=2,physmem=4019704kb,availmem=5753552kb,totmem=6116852kb,&lt;br /&gt;
idletime=7324,nusers=2,nsessions=6,sessions=1565 1562 1691 1716 1737 1851,&lt;br /&gt;
uname=Linux phobos 2.6.37-ck #1 SMP PREEMPT Sun Apr 3 17:16:35 EDT 2011 x86_64,opsys=linux&lt;br /&gt;
     mom_service_port = 15002&lt;br /&gt;
     mom_manager_port = 15003&lt;br /&gt;
     gpus = 1&lt;br /&gt;
&lt;br /&gt;
deimos&lt;br /&gt;
     state = free&lt;br /&gt;
     np = 2&lt;br /&gt;
     ntype = cluster&lt;br /&gt;
     status = rectime=1308479890,varattr=,jobs=2.localhost.localdomain,state=free,netload=527239670,&lt;br /&gt;
gres=,loadave=0.52,ncpus=2,physmem=4057808kb,availmem=3955624kb,totmem=4057808kb,&lt;br /&gt;
idletime=644,nusers=1,nsessions=1,sessions=865,&lt;br /&gt;
uname=Linux deimos 2.6.39-ck #1 SMP PREEMPT Sat Jun 11 12:36:21 EDT 2011 x86_64,opsys=linux&lt;br /&gt;
     mom_service_port = 15002&lt;br /&gt;
     mom_manager_port = 15003&lt;br /&gt;
     gpus = 1&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== ジョブをキューに追加 ==&lt;br /&gt;
&lt;br /&gt;
クラスタのキューにジョブを登録するには &#039;&#039;qsub&#039;&#039; コマンドを使います。&lt;br /&gt;
&lt;br /&gt;
sleep を実行するだけの簡単なテスト:&lt;br /&gt;
 $ echo &amp;quot;sleep 30&amp;quot; | qsub&lt;br /&gt;
&lt;br /&gt;
キューの状態は下に書かれているように &#039;&#039;qstat&#039;&#039; コマンドで確認できます。待機中のジョブの状態は &amp;quot;Q&amp;quot; になります。ジョブを開始するには、スケジューラを実行:&lt;br /&gt;
&lt;br /&gt;
 # pbs_sched&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;torque-server&#039;&#039; の &#039;&#039;systemd&#039;&#039; デーモンを修正することで起動時に pbs_sched を有効にすることができます。&lt;br /&gt;
&lt;br /&gt;
また、qsub にはジョブに名前をつけてスクリプトをキューに入れるという使い方もあります:&lt;br /&gt;
&lt;br /&gt;
 $ qsub -N x264 /home/facade/bin/x264_HQ.sh&lt;br /&gt;
&lt;br /&gt;
{{Note|STDOUT and STDERR for a queued job will be logged by default in the form text files corresponding to the respective outputs &#039;&#039;pid.o&#039;&#039; and &#039;&#039;pid.e&#039;&#039; and will be written to the path from which the qsub command was issued.}}&lt;br /&gt;
&lt;br /&gt;
Another example can use a wrapper script to make and queue work &#039;&#039;en mass&#039;&#039; automatically.&lt;br /&gt;
&lt;br /&gt;
== ジョブの状態の確認 ==&lt;br /&gt;
&lt;br /&gt;
作業状況を確認するには {{ic|qstat}} を使います:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ qstat|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Job id                    Name             User            Time Use S Queue&lt;br /&gt;
------------------------- ---------------- --------------- -------- - -----&lt;br /&gt;
13.localhost               generic-i686.pbs facade         00:05:06 R batch          &lt;br /&gt;
14.localhost               atom-i686.pbs    facade         00:03:09 R batch          &lt;br /&gt;
15.localhost               core2-i686.pbs   facade         00:01:02 R batch          &lt;br /&gt;
16.localhost               k7-i686.pbs      facade                0 Q batch          &lt;br /&gt;
17.localhost               k8-i686.pbs      facade                0 Q batch          &lt;br /&gt;
18.localhost               k10-i686.pbs     facade                0 Q batch          &lt;br /&gt;
19.localhost               p4-i686.pbs      facade                0 Q batch          &lt;br /&gt;
20.localhost               pentm-i686.pbs   facade                0 Q batch          &lt;br /&gt;
21.localhost               ...ic-x86_64.pbs facade                0 Q batch          &lt;br /&gt;
22.localhost               atom-x86_64.pbs  facade                0 Q batch          &lt;br /&gt;
23.localhost               core2-x86_64.pbs facade                0 Q batch          &lt;br /&gt;
24.localhost               k8-x86_64.pbs    facade                0 Q batch          &lt;br /&gt;
25.localhost               k10-x86_64.pbs   facade                0 Q batch          &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{ic|-n}} スイッチを追加することでどのノードがどのジョブを実行しているのか確認できます:&lt;br /&gt;
{{hc|$ qstat -n|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
localhost.localdomain:&lt;br /&gt;
405.localhost.lo     facade  batch    i686-generic       3035     1   0    --  01:00 C 00:12&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
406.localhost.lo     facade  batch    i686-atom          5768     1   0    --  01:00 C 00:46&lt;br /&gt;
   phobos/1+phobos/0&lt;br /&gt;
407.localhost.lo     facade  batch    i686-core2        22941     1   0    --  01:00 C 00:12&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
408.localhost.lo     facade  batch    i686-k7           10152     1   0    --  01:00 C 00:12&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
409.localhost.lo     facade  batch    i686-k8           29657     1   0    --  01:00 C 00:12&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
410.localhost.lo     facade  batch    i686-k10          16838     1   0    --  01:00 C 00:12&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
411.localhost.lo     facade  batch    i686-p4           25340     1   0    --  01:00 C 00:46&lt;br /&gt;
   deimos/1+deimos/0&lt;br /&gt;
412.localhost.lo     facade  batch    i686-pentm        12544     1   0    --  01:00 R 00:20&lt;br /&gt;
   phobos/1+phobos/0&lt;br /&gt;
413.localhost.lo     facade  batch    x86_64-generic     4024     1   0    --  01:00 C 00:13&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
414.localhost.lo     facade  batch    x86_64-atom       19330     1   0    --  01:00 C 00:13&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
415.localhost.lo     facade  batch    x86_64-core2       2146     1   0    --  01:00 C 00:13&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
416.localhost.lo     facade  batch    x86_64-k8         17234     1   0    --  01:00 R 00:11&lt;br /&gt;
   mars/3+mars/2+mars/1+mars/0&lt;br /&gt;
417.localhost.lo     facade  batch    x86_64-k10          --      1   0    --  01:00 Q   -- &lt;br /&gt;
    -- &lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
*[http://www.cgl.ucsf.edu/Resources/pbs/user_guide.html TORQUE short course from University of California, San Francisco] - Good guide with templates.&lt;br /&gt;
*[http://docs.adaptivecomputing.com/torque/5-1-0/help.htm TORQUE admin manual] - Great resource and easy to read.&lt;br /&gt;
*[http://www.bc.edu/offices/researchservices/cluster/torqueug.html Boston College&#039;s Torque user guide] - Guide not extensive but gives a flavor for how end-users can use a cluster. Probably overkill for home clusters where only one user is submitting work.&lt;br /&gt;
*[http://www.adaptivecomputing.com/support/download-center/torque-download/mailing-lists/ TORQUE mailing lists] - The TORQUE community is very knowledgeable and a key asset.&lt;br /&gt;
*[http://www.clusterresources.com/pipermail/torqueusers/ TORQUE users mailing list archives] - Searchable archive of TORQUE-users.&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Distcc&amp;diff=6082</id>
		<title>Distcc</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Distcc&amp;diff=6082"/>
		<updated>2016-10-14T16:08:23Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: カテゴリを追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:パッケージ開発]]&lt;br /&gt;
[[Category:分散コンピューティング]]&lt;br /&gt;
[[en:Distcc]]&lt;br /&gt;
[[it:Distcc]]&lt;br /&gt;
[[zh-CN:Distcc]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|TORQUE}}&lt;br /&gt;
{{Related|Slurm}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
Distcc は C, C++, Objective C, Objective C++ のコードのビルドをネットワーク上の複数のマシンに分散させるプログラムです。distcc は常にローカルビルドと同じ結果を生成し、インストールと使用方法がシンプルで、ローカルコンパイルよりもずっと高速です。makepkg などの Arch のビルドツールで使うことができます。&lt;br /&gt;
&lt;br /&gt;
==用語==&lt;br /&gt;
&lt;br /&gt;
; マスター: コンパイルを開始して設定済みのスレーブにコンパイルを分散させるコンピューター。&lt;br /&gt;
&lt;br /&gt;
; スレーブ: distcc デーモンが動いており、マスターからコンパイルリクエストを受け取る。&lt;br /&gt;
&lt;br /&gt;
==インストール==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]からクラスタの PC 全てに {{pkg|distcc}} パッケージを[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
他のディストロや、Cygwin を使用する Windows など他の OS を使う場合は、[http://distcc.samba.org/doc.html distcc のドキュメント] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==設定==&lt;br /&gt;
=== スレーブ ===&lt;br /&gt;
&lt;br /&gt;
スレーブの設定は {{ic|/etc/conf.d/distccd}} に保存します。利用できるコマンドラインオプションは [http://distcc.googlecode.com/svn%20...%20%3Cdiv%20class=/trunk/doc/web/man/distccd_1.html distcc マニュアル] に記載されています。最低でも、許可するアドレスの範囲を [[wikipedia:Classless_Inter-Domain_Routing|CIDR]] 形式で指定してください:&lt;br /&gt;
&lt;br /&gt;
 DISTCC_ARGS=&amp;quot;--allow 192.168.0.0/24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
アドレスの範囲を CIDR 形式に変換するツールが次のページにあります: [http://www.ipaddressguide.com/cidr CIDR Utility Tool]。&lt;br /&gt;
&lt;br /&gt;
コンパイルに参加する全てのスレーブで {{ic|distccd.service}} を[[起動]]してください。起動時に {{ic|distccd.service}} を実行させるには、全てのマシンでサービスを[[有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
=== マスター ===&lt;br /&gt;
&lt;br /&gt;
==== スタンドアロン ====&lt;br /&gt;
&lt;br /&gt;
マスターで設定する distcc の最小設定は、利用するスレーブの設定です。環境変数 {{ic|DISTCC_HOSTS}} や {{ic|$DISTCC_HOSTS}}, {{ic|$DISTCC_DIR/hosts}}, {{ic|~/.distcc/hosts}}, {{ic|/etc/distcc/hosts}} などの設定ファイルでアドレスを指定することで設定できます。&lt;br /&gt;
&lt;br /&gt;
{{ic|DISTCC_HOSTS}} を使ってスレーブのアドレスを設定する例:&lt;br /&gt;
&lt;br /&gt;
 $ export DISTCC_HOSTS=&amp;quot;192.168.0.3,lzo,cpp 192.168.0.4,lzo,cpp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|このリストは空白で分けられています。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|hosts}} 設定ファイルでスレーブのアドレスを設定する例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.distcc/hosts|&lt;br /&gt;
192.168.0.3,lzo,cpp 192.168.0.4,lzo,cpp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
サーバーのアドレスを明示的に指定する代わりに、avahi の zeroconf モードを使うこともできます。このモードを使うにはサーバーアドレスのところに {{ic|+zeroconf}} と記述して、スレーブ側で distcc デーモンを {{ic|--zeroconf}} オプションを使って起動するようにしてください。このオプションは pump モードをサポートしてないので注意してください。&lt;br /&gt;
&lt;br /&gt;
上記の例ではアドレスに以下のオプションを追加しています:&lt;br /&gt;
&lt;br /&gt;
* {{ic|lzo}}: TCP と SSH ホスト (スレーブ) で LZO 圧縮を使う。&lt;br /&gt;
* {{ic|cpp}}: ホスト (スレーブ) で distcc-pump モードを使う。サーバーを起動するにはビルドコマンドを pump スクリプトでラッピングする必要があるので注意。&lt;br /&gt;
&lt;br /&gt;
pump モードの説明は次のページにあります: [http://distcc.googlecode.com/svn%20...%20%3Cdiv%20class=/trunk/doc/web/man/distcc_1.html#TOC_8 HOW DISTCC-PUMP MODE WORKS] と [http://google-opensource.blogspot.de/2008/08/distccs-pump-mode-new-design-for.html distcc&#039;s pump mode: A New Design for Distributed C/C++ Compilation] 。&lt;br /&gt;
&lt;br /&gt;
スレーブで distcc-pump モードを使うには、pump スクリプトを使ってコンパイルを開始する必要があります。そうしないとコンパイルは失敗します。&lt;br /&gt;
&lt;br /&gt;
==== Makepkg ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/makepkg.conf}} の以下の3つのセクションを編集してください:&lt;br /&gt;
&lt;br /&gt;
#BUILDENV で distcc の前のエクスクラメーションポイントを外して有効にしてください。&lt;br /&gt;
#&#039;&#039;DISTCC_HOSTS&#039;&#039; 行をアンコメントして、スレーブの IP アドレスとスラッシュ、使用するスレッドの数を追加してください。後ろの IP アドレスとスレッドは空白で区切ります。リストは一番強力なサーバーから非力なサーバーの順で並べます (処理能力)。&lt;br /&gt;
#MAKEFLAGS 変数を個々のサーバーの最大スレッド数をすべて合計した数字にしてください。下の例の場合、5+3+3=11 になります。合計数以上を指定した場合、余った論理スレッドは distcc によってブロックされ、下で説明している &#039;&#039;distccmon-text&#039;&#039; などの監視ユーティリティでそのように表示されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|よく物理コアとハイパースレッドのコア数に1を加えた数をスレッド数として定義することがありますが、この設定では MAKEFLAGS で1を加えないようにしてください。}}&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
 BUILDENV=(distcc fakeroot color !ccache !check)&lt;br /&gt;
 MAKEFLAGS=&amp;quot;-j11&amp;quot;&lt;br /&gt;
 DISTCC_HOSTS=&amp;quot;192.168.0.2/5 192.168.0.3/3 192.168.0.4/3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
SSH を通して distcc を使いたい場合、セクションの IP アドレスの前に &amp;quot;@&amp;quot; シンボルを追加してください。キーベースの認証をセットアップしていないときは、認証済みのホストのチェックを無視するように DISTCC_SSH 変数を設定してください: {{ic|&amp;lt;nowiki&amp;gt;DISTCC_SSH=&amp;quot;ssh -i&amp;quot;&amp;lt;/nowiki&amp;gt;}}。&lt;br /&gt;
&lt;br /&gt;
==コンパイル==&lt;br /&gt;
=== スタンドアロン ===&lt;br /&gt;
&lt;br /&gt;
distcc の pump モードを使ってソースファイルをコンパイルするには、次のコマンドを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ pump distcc g++ -c hello_world.cpp&lt;br /&gt;
&lt;br /&gt;
この場合 pump スクリプトは distcc を実行してから &amp;quot;-c hello_world.cpp&amp;quot; をパラメータとして g++ を呼び出します。&lt;br /&gt;
&lt;br /&gt;
Makefile プロジェクトをコンパイルするには、まずコンパイラによって設定される変数を確認する必要があります。例えば、gzip-1.6 の場合、Makefile の中に次の行を見つけることができます: {{ic|1=CC = gcc -std=gnu99}}。基本的に {{ic|CC}} は C プロジェクトで使われる変数で、{{ic|CXX}} は C++ プロジェクトで使われる変数です。distcc を使ってプロジェクトをコンパイルするには以下のようにします:&lt;br /&gt;
&lt;br /&gt;
 $ wget ftp://ftp.gnu.org/pub/gnu/gzip/gzip-1.6.tar.xz&lt;br /&gt;
 $ tar xf gzip-1.6.tar.xz&lt;br /&gt;
 $ cd gzip-1.6&lt;br /&gt;
 $ ./configure&lt;br /&gt;
 $ pump make -j2 CC=&amp;quot;distcc gcc -std=gnu99&amp;quot;&lt;br /&gt;
&lt;br /&gt;
上記例では distcc の pump モードによって2つのコンパイルスレッドを使って gzip をコンパイルします。{{ic|-j}} の設定については [https://cdn.rawgit.com/distcc/distcc/master/doc/web/faq.html What -j level to use?] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Makepkg ===&lt;br /&gt;
&lt;br /&gt;
通常通り makepkg でコンパイルしてください。&lt;br /&gt;
&lt;br /&gt;
==進捗を見る==&lt;br /&gt;
複数の方法で進行状況を確認することができます。&lt;br /&gt;
#distccmon-text&lt;br /&gt;
#ログファイルを tail で表示する&lt;br /&gt;
&lt;br /&gt;
distccmon-text を実行してコンパイル状況をチェックします:&lt;br /&gt;
{{bc|$ distccmon-text&lt;br /&gt;
29291 Preprocess  probe_64.c                                 192.168.0.2[0]&lt;br /&gt;
30954 Compile     apic_noop.c                                192.168.0.2[0]&lt;br /&gt;
30932 Preprocess  kfifo.c                                    192.168.0.2[0]&lt;br /&gt;
30919 Compile     blk-core.c                                 192.168.0.2[1]&lt;br /&gt;
30969 Compile     i915_gem_debug.c                           192.168.0.2[3]&lt;br /&gt;
30444 Compile     block_dev.c                                192.168.0.3[1]&lt;br /&gt;
30904 Compile     compat.c                                   192.168.0.3[2]&lt;br /&gt;
30891 Compile     hugetlb.c                                  192.168.0.3[3]&lt;br /&gt;
30458 Compile     catalog.c                                  192.168.0.4[0]&lt;br /&gt;
30496 Compile     ulpqueue.c                                 192.168.0.4[2]&lt;br /&gt;
30506 Compile     alloc.c                                    192.168.0.4[0]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
プログラムを持続的に実行させるには、watch を使うか、コマンドに空白と繰り返す待機秒数を加えます:&lt;br /&gt;
 $ watch distccmon-text&lt;br /&gt;
または&lt;br /&gt;
 $ distccmon-text 2&lt;br /&gt;
&lt;br /&gt;
デーモンで {{ic|/var/log/messages.log}} を tail することもできます:&lt;br /&gt;
 # tail -f /var/log/messages.log&lt;br /&gt;
&lt;br /&gt;
==distcc で &amp;quot;クロスコンパイル&amp;quot;==&lt;br /&gt;
=== X86 ===&lt;br /&gt;
&lt;br /&gt;
現在、x86_64 環境から i686 のパッケージをビルドするのに、distcc でクラスタに作業を分散させる方法は2つ存在します。どちらも理想的とは言いがたいですが、今のところ、この2つの方法しかドキュメントになっていません。&lt;br /&gt;
&lt;br /&gt;
An ideal setup is one that uses the unmodified ARCH packages for distccd running only once one each node regardless of building from the native environment or from within a chroot AND one that works with makepkg.  Again, this Utopian setup is not currently known.&lt;br /&gt;
&lt;br /&gt;
A [https://bbs.archlinux.org/viewtopic.php?id=129762 discussion thread] has been started on the topic; feel free to contribute.&lt;br /&gt;
&lt;br /&gt;
==== Chroot を使う方法 (推奨) ====&lt;br /&gt;
{{Note|以下の方法は全てのノードに distccd をインストールして32ビットの chroot も必要なのであまりエレガントな方法とは言えません。}}&lt;br /&gt;
&lt;br /&gt;
[[64ビット環境に32ビット環境をインストール|32ビットの chroot]] を distcc クラスタの&#039;&#039;&#039;各ノード&#039;&#039;&#039;に設定したら、各ノードで2つの distccd インスタンスを別々のポートで実行させます。片方はネイティブの x86_64 環境で実行させ、もう片方は x86 chroot で動かします。makepkg は [[64ビット環境に32ビット環境をインストール#Schroot|schroot コマンド]]を通して実行します。&lt;br /&gt;
&lt;br /&gt;
===== i686 chroot の DISTCC_HOSTS にポート番号を追加する =====&lt;br /&gt;
以下のように {{ic|/opt/arch32/etc/makepkg.conf}} の各ホストにポート番号 (3692) を追加してください:&lt;br /&gt;
&lt;br /&gt;
 DISTCC_HOSTS=&amp;quot;192.168.1.101/5:3692 192.168.1.102/5:3692 192.168.1.103/3:3692&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{{Note|This only needs to be setup on the &amp;quot;master&amp;quot; i686 chroot.  Where &amp;quot;master&amp;quot; is defined as the one from which the compilation will take place.}}&lt;br /&gt;
&lt;br /&gt;
===== ネイティブ環境から makepkg を呼び出す =====&lt;br /&gt;
&lt;br /&gt;
ネイティブの x86_64 環境に [[64ビット環境に32ビット環境をインストール#Schroot|schroot]] をセットアップしてください。ネイティブの x86_64 環境から makepkg を実行して i686 パッケージのビルドをするには:&lt;br /&gt;
&lt;br /&gt;
 $ schroot -p -- makepkg -src&lt;br /&gt;
&lt;br /&gt;
==== Multilib GCC を使う方法 (非推奨) ====&lt;br /&gt;
{{Warning|以下の方法を使ってネイティブの x86_64 環境から i686 の linux パッケージをビルドするとエラーが発生することが報告されています。カーネルパッケージをビルドする場合 chroot を使用する方法を推奨します。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/pacman.conf}} を編集して [multilib] リポジトリをアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
 [multilib]&lt;br /&gt;
 Include = /etc/pacman.d/mirrorlist&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{pkg|gcc-multilib}} を[[pacman|インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|$HOME/.makepkg.conf}} に以下の行を追加するだけで x86_64 で i686 用のパッケージをコンパイルできます:&lt;br /&gt;
 CARCH=&amp;quot;i686&amp;quot;&lt;br /&gt;
 CHOST=&amp;quot;i686-pc-linux-gnu&amp;quot;&lt;br /&gt;
 CFLAGS=&amp;quot;-march=i686 -O2 -pipe -m32&amp;quot;&lt;br /&gt;
 CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
次のコマンドで makepkg を呼び出して下さい:&lt;br /&gt;
 $ linux32 makepkg -src&lt;br /&gt;
&lt;br /&gt;
i686 パッケージをコンパイルし終わった後は {{ic|$HOME/.makepkg.conf}} を忘れずに削除または修正してください。&lt;br /&gt;
&lt;br /&gt;
=== 他のアーキテクチャ ===&lt;br /&gt;
&lt;br /&gt;
==== Arch ARM ====&lt;br /&gt;
&lt;br /&gt;
Arch ARM デバイスでビルドをする場合、開発者は公式のプロジェクトツールチェインを使用することを強く推奨しています:&lt;br /&gt;
*[https://archlinuxarm.org/builder/xtools/x-tools8.tar.xz ARMv8]&lt;br /&gt;
*[https://archlinuxarm.org/builder/xtools/x-tools7h.tar.xz ARMv7l hard]&lt;br /&gt;
*[https://archlinuxarm.org/builder/xtools/x-tools6h.tar.xz ARMv6l hard]&lt;br /&gt;
*[https://archlinuxarm.org/builder/xtools/x-tools.tar.xz ARMv5te soft]&lt;br /&gt;
&lt;br /&gt;
必要なアーキテクチャのツールチェインをスレーブのファイルシステムのどこかに展開して {{ic|/etc/conf.d/distccd}} を編集し、ツールチェインが使えるように PATH を通してください。&lt;br /&gt;
&lt;br /&gt;
例えばツールチェインを {{ic|/mnt/data}} に展開した場合:&lt;br /&gt;
 PATH=/mnt/data/x-tools8/aarch64-unknown-linux-gnueabi/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
設定ファイルが読み込まれるように、{{ic|distcc.service}} を[[systemd#ユニットを使う|再起動]]する必要があります。&lt;br /&gt;
&lt;br /&gt;
makepkg を使用しないでビルドする場合、任意でユーザーのホームディレクトリにリンクを作成してください。例:&lt;br /&gt;
 $ ln -s /mnt/data/x-tools8 x-tools8&lt;br /&gt;
&lt;br /&gt;
==== 追加ツールチェイン ====&lt;br /&gt;
ツールチェインを入手する方法は複数存在します:&lt;br /&gt;
&lt;br /&gt;
* [https://embtoolkit.org/ EmbToolkit]: クロスコンパイルツールチェインを作成するためのツール。ARM と MIPS アーキテクチャをサポートしており、LLVM ベースのツールチェインのビルドをサポートしています。&lt;br /&gt;
* [http://crosstool-ng.org/ crosstool-ng]: EmbToolkit と同じようなツール。EmbToolkit よりも多数のアーキテクチャをサポートしています (詳しくはウェブサイトを参照)。&lt;br /&gt;
* [https://www.linaro.org/downloads/ Linaro]: ARM 開発用のツールチェインを提供しています。&lt;br /&gt;
&lt;br /&gt;
{{ic|EmbToolkit}} にはツールチェインを設定するためのグラフィカルな設定メニュー ({{ic|make xconfig}}) が付属しています。&lt;br /&gt;
&lt;br /&gt;
==トラブルシューティング==&lt;br /&gt;
&lt;br /&gt;
=== Journalctl ===&lt;br /&gt;
&lt;br /&gt;
問題が発生したときは {{ic|journalctl}} を使って原因を確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ journalctl $(which distccd) -e --since &amp;quot;5 min ago&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== code 110 ===&lt;br /&gt;
&lt;br /&gt;
distcc デーモンのプロセスが起動されるユーザーアカウント (デフォルトは nobody) でツールチェインが正しく機能することを確認してください。以下ではユーザー nobody でツールチェインが動作することをテストします。{{ic|/etc/passwd}} で nobody ユーザーのログインを以下のように変更してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ cat /etc/passwd|&lt;br /&gt;
...&lt;br /&gt;
nobody:x:99:99:nobody:/:/bin/bash&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
それからクロスコンパイラのバイナリが存在するディレクトリに cd してからコンパイラの実行を試行します:&lt;br /&gt;
&lt;br /&gt;
 # su nobody&lt;br /&gt;
 $ ./gcc --version&lt;br /&gt;
 bash: ./gcc: Permission denied&lt;br /&gt;
&lt;br /&gt;
上記のエラーが発生する場合、[[#他のアーキテクチャ]] に記述されているグループパーミッションの設定を正しく行ったか確認してください。&lt;br /&gt;
&lt;br /&gt;
変更を行った後は {{ic|/etc/passwd}} を元に戻すようにしましょう。&lt;br /&gt;
&lt;br /&gt;
もしくは、sudo を使うことで {{ic|/etc/passwd}} でシェルを変更しなくても実行できます:&lt;br /&gt;
&lt;br /&gt;
 # sudo -u nobody gcc --version&lt;br /&gt;
&lt;br /&gt;
===ログレベルを設定する===&lt;br /&gt;
デフォルトでは、distcc は {{ic|/var/log/messages.log}} にログを出力します。このログはファイルに直接出力することができます (distccd の man ページで実際に推奨されています)。ログファイルを {{ic|/tmp}} を使って RAM 上に配置することも可能です。また、ログファイルに出力されるエラーのログレベルを下げることもできます。接続のエントリよりもエラーメッセージを見たいというときに有用です。LEVEL は標準的な syslog のレベルで設定でき critical, error, warning, notice, info, debug などを指定します。&lt;br /&gt;
&lt;br /&gt;
以下の行を {{ic|/etc/conf.d/distccd}} の DISTCC_ARGS に追記してください:&lt;br /&gt;
&lt;br /&gt;
 DISTCC_ARGS=&amp;quot;--user nobody --allow 192.168.0.0/24 --log-level error --log-file /tmp/distccd.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===CMake などのツールでビルドが失敗する===&lt;br /&gt;
CMake はときどき gcc に [http://gcc.gnu.org/wiki/Response_Files &amp;quot;レスポンスファイル&amp;quot;] を渡すことがありますが、distcc はレスポンスファイルを扱うことができません。[http://code.google.com/p/distcc/issues/detail?id=85&amp;amp;q=response パッチファイル] は存在しているのですが、上流のコードには適用されていないようです。この問題が発生する場合は、このファイルをパスするか [[AUR]] の {{AUR|distcc-rsp}} パッケージを使って下さい。&lt;br /&gt;
&lt;br /&gt;
===HDD/SSD の使用量を制限する===&lt;br /&gt;
====$HOME/.distcc を移動する====&lt;br /&gt;
デフォルトでは、distcc は {{ic|$HOME/.distcc}} を作成して、一時的に情報を保存してノードにコンパイルさせる作業を割り当てます。{{ic|/tmp}} などの RAM に &#039;&#039;.distcc&#039;&#039; という名前のディレクトリを作成して $HOME の &#039;&#039;.distcc&#039;&#039; にソフトリンクします。これで無駄な HDD の読み書きが減ります。特に SSD の場合は効果的です。&lt;br /&gt;
&lt;br /&gt;
 $ mv $HOME/.distcc /tmp&lt;br /&gt;
 $ ln -s /tmp/.distcc $HOME/.distcc&lt;br /&gt;
&lt;br /&gt;
systemd を使って再起動時にこのディレクトリを再作成 (他のファイルと同じように手動で削除されるまでソフトリンクは消えません) します。以下の tmpfile を作成:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/tmpfiles.d/tmpfs-create.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
d /tmp/.distcc 0755 &amp;lt;username&amp;gt; users -&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Hadoop&amp;diff=6081</id>
		<title>Hadoop</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Hadoop&amp;diff=6081"/>
		<updated>2016-10-14T16:01:07Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: カテゴリを同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:分散コンピューティング]]&lt;br /&gt;
[[en:Hadoop]]&lt;br /&gt;
[[zh-CN:Hadoop]]&lt;br /&gt;
[http://hadoop.apache.org Apache Hadoop] はコモディティハードウェアによる巨大なクラスタ上でアプリケーションを実行するためのフレームワークです。Hadoop フレームワークは透過的にアプリケーションに信頼性とデータモーションを提供します。Hadoop は Map/Reduce という名前の計算パラダイムを実装しています。そこではアプリケーションは多数の小さな欠片に分割して、クラスタ内のノード上でそれぞれを実行・再実行できるようにします。さらに、Hadoop は計算ノード上にデータを保存するための分散ファイルシステム (HDFS) を備えており、クラスタ全体で非常に高い帯域を実現します。MapReduce と Hadoop Distributed File System はどちらもノードでのエラーをフレームワークによって自動的に処理できるように設計されています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
[[Arch User Repository]] の {{AUR|hadoop}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
デフォルトで、hadoop は擬似分散操作ができるように設定されています。{{ic|/etc/profile.d/hadoop.sh}} には伝統的な hadoop とは異なる値が設定されている環境変数があります。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| 環境変数&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| 値&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| 説明&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| パーミッション&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|HADOOP_CONF_DIR&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|{{ic|/etc/hadoop}}&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|{{ic|Where configuration files are stored.}}&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|Read&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|HADOOP_LOG_DIR&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|{{ic|/tmp/hadoop/log}}&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|{{ic|Where log files are stored.}}&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|Read and Write&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|HADOOP_SLAVES&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|{{ic|/etc/hadoop/slaves}}&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|{{ic|File naming remote slave hosts.}}&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|Read &lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|HADOOP_PID_DIR&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|{{ic|/tmp/hadoop/run}}&lt;br /&gt;
| align=&amp;quot;center&amp;quot;|{{ic|Where pid files are stored.}}&lt;br /&gt;
| align=&amp;quot;left&amp;quot;|Read and Write&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
また、以下のファイルを正しく設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
 /etc/hosts&lt;br /&gt;
 /etc/hostname &lt;br /&gt;
 /etc/locale.conf&lt;br /&gt;
&lt;br /&gt;
{{ic|JAVA_HOME}} は {{pkg|jdk7-openjdk}} の {{ic|/etc/profile.d/jre.sh}} によって自動的に設定されているはずです。{{ic|JAVA_HOME}} を確認:&lt;br /&gt;
 $ echo $JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
何も出力されない場合、一度ログアウトしてからログインしなおして下さい。&lt;br /&gt;
&lt;br /&gt;
== シングルノード設定 ==&lt;br /&gt;
{{out of date|This section of the article is based on documentation for an earlier version of Hadoop.}}&lt;br /&gt;
&lt;br /&gt;
{{Note|This section is based on the [http://hadoop.apache.org/docs/stable/ Hadoop Official Documentation] }}&lt;br /&gt;
&lt;br /&gt;
=== スタンドアロン操作 ===&lt;br /&gt;
&lt;br /&gt;
By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.&lt;br /&gt;
&lt;br /&gt;
The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.&lt;br /&gt;
 $ export HADOOP_CONF_DIR=/usr/lib/hadoop/orig_conf&lt;br /&gt;
 $ mkdir input&lt;br /&gt;
 $ cp /etc/hadoop/*.xml input&lt;br /&gt;
 $ hadoop jar /usr/lib/hadoop/hadoop-examples-*.jar grep input output &#039;dfs[a-z.]+&#039;&lt;br /&gt;
 $ cat output/*&lt;br /&gt;
&lt;br /&gt;
For the current 2.5.x release of hadoop included in the AUR:&lt;br /&gt;
 $ HADOOP_CONF_DIR=/usr/lib/hadoop/orig_etc/hadoop/&lt;br /&gt;
 $ mkdir input&lt;br /&gt;
 $ cp /etc/hadoop/hadoop/*.xml input&lt;br /&gt;
 $ hadoop jar /usr/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar grep input output &#039;dfs[a-z.]+&#039;&lt;br /&gt;
 $ cat output/*&lt;br /&gt;
&lt;br /&gt;
=== 擬似分散操作 ===&lt;br /&gt;
&lt;br /&gt;
Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process.&lt;br /&gt;
&lt;br /&gt;
By default, Hadoop will run as the user root. You can change the user in {{ic|/etc/conf.d/hadoop}}:&lt;br /&gt;
&lt;br /&gt;
 HADOOP_USERNAME=&amp;quot;&amp;lt;your user name&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== パスフレーズの要らない ssh の設定 ====&lt;br /&gt;
&lt;br /&gt;
Make sure you have [[sshd]] enabled, or start it with {{ic|systemctl enable sshd}}. Now check that you can connect to localhost without a passphrase:&lt;br /&gt;
&lt;br /&gt;
 $ ssh localhost&lt;br /&gt;
&lt;br /&gt;
If you cannot ssh to localhost without a passphrase, execute the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ ssh-keygen -t rsa -P &amp;quot;&amp;quot; -f ~/.ssh/id_rsa&lt;br /&gt;
 $ cat ~/.ssh/id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys2&lt;br /&gt;
&lt;br /&gt;
Also make sure this line is commented in {{ic|/etc/ssh/sshd_config}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ssh/sshd_config|&lt;br /&gt;
#AuthorizedKeysFile .ssh/authorized_keys}}&lt;br /&gt;
&lt;br /&gt;
==== 実行 ====&lt;br /&gt;
&lt;br /&gt;
Format a new distributed-filesystem:&lt;br /&gt;
 $ hadoop namenode -format&lt;br /&gt;
&lt;br /&gt;
Start the hadoop daemons:&lt;br /&gt;
 # systemctl start hadoop-datanode&lt;br /&gt;
 # systemctl start hadoop-jobtracker&lt;br /&gt;
 # systemctl start hadoop-namenode&lt;br /&gt;
 # systemctl start hadoop-secondarynamenode&lt;br /&gt;
 # systemctl start hadoop-tasktracker&lt;br /&gt;
&lt;br /&gt;
The hadoop daemon log output is written to the {{ic|&amp;lt;nowiki&amp;gt;${HADOOP_LOG_DIR}&amp;lt;/nowiki&amp;gt;}} directory (defaults to {{ic|/var/log/hadoop}}).&lt;br /&gt;
&lt;br /&gt;
Browse the web interface for the NameNode and the JobTracker; by default they are available at:&lt;br /&gt;
&lt;br /&gt;
* NameNode - http://localhost:50070/&lt;br /&gt;
* JobTracker - http://localhost:50030/&lt;br /&gt;
&lt;br /&gt;
Copy the input files into the distributed filesystem:&lt;br /&gt;
 $ hadoop fs -put /etc/hadoop input&lt;br /&gt;
&lt;br /&gt;
Run some of the examples provided:&lt;br /&gt;
 $ hadoop jar /usr/lib/hadoop/hadoop-examples-*.jar grep input output &#039;dfs[a-z.]+&#039;&lt;br /&gt;
&lt;br /&gt;
Examine the output files:&lt;br /&gt;
&lt;br /&gt;
Copy the output files from the distributed filesystem to the local filesytem and examine them:&lt;br /&gt;
 $ hadoop fs -get output output&lt;br /&gt;
 $ cat output/*&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
View the output files on the distributed filesystem:&lt;br /&gt;
 $ hadoop fs -cat output/*&lt;br /&gt;
&lt;br /&gt;
When you&#039;re done, stop the daemons with:&lt;br /&gt;
 # systemctl stop hadoop-datanode&lt;br /&gt;
 # systemctl stop hadoop-jobtracker&lt;br /&gt;
 # systemctl stop hadoop-namenode&lt;br /&gt;
 # systemctl stop hadoop-secondarynamenode&lt;br /&gt;
 # systemctl stop hadoop-tasktracker&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:%E5%88%86%E6%95%A3%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0&amp;diff=6080</id>
		<title>カテゴリ:分散コンピューティング</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA:%E5%88%86%E6%95%A3%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0&amp;diff=6080"/>
		<updated>2016-10-14T15:59:21Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ネットワーク]]&lt;br /&gt;
[[en:Category:Distributed computing]]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Apache_Spark&amp;diff=6079</id>
		<title>Apache Spark</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Apache_Spark&amp;diff=6079"/>
		<updated>2016-10-14T15:52:48Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:分散コンピューティング]]&lt;br /&gt;
[[en:Apache Spark]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Hadoop}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://spark.apache.org Apache Spark] はオープンソースのクラスタコンピューティングフレームワークで、もともとカリフォルニア大学バークレー校の AMPLab で開発されていました。&lt;br /&gt;
Hadoop の二段式ディスクベース MapReduce パラダイムと比較して、Spark のインメモリ処理はいくつかのアプリケーションにおいて100倍高速なパフォーマンスをもたらします。&lt;br /&gt;
クラスタのメモリへのデータのロードと、繰り返しアクセスがユーザープログラムに許されているため、Spark は機械学習アルゴリズムに適しています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{AUR|apache-spark}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
いくつかの環境変数が {{ic|/etc/profile.d/apache_spark.sh}} に設定されています。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! ENV&lt;br /&gt;
! Value&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| PATH&lt;br /&gt;
| {{ic|$PATH:/usr/lib/apache_spark/bin}}&lt;br /&gt;
| Spark binaries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
もしあなたのシェルが {{ic|/etc/profile.d}} を読み込まなかったら、{{ic|PATH}} [[環境変数]] を調整する必要があるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 export PATH=$PATH:/usr/lib/apache_spark/bin&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Java_Runtime_Environment_%E3%81%AE%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88&amp;diff=6076</id>
		<title>Java Runtime Environment のフォント</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Java_Runtime_Environment_%E3%81%AE%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88&amp;diff=6076"/>
		<updated>2016-10-14T14:58:39Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:フォント]]&lt;br /&gt;
[[en:Java Runtime Environment fonts]]&lt;br /&gt;
[[ru:Java Runtime Environment fonts]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|フォント}}&lt;br /&gt;
{{Related|フォント設定}}&lt;br /&gt;
{{Related|MS フォント}}&lt;br /&gt;
{{Related|X Logical Font Description}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
ユーザーによってはデフォルトの Java フォントや Java アプリケーションのフォントの表示モードが気に入らないという人もいるでしょう。Oracle Java Runtime Environment (JRE) のフォント表示を改善する方法は複数存在します。これらの方法は別々に使うこともできますが、多くの場合まとめて使うことでより良い結果が得られるでしょう。&lt;br /&gt;
&lt;br /&gt;
TrueType フォントは Java で一番良くサポートされているフォーマットです。&lt;br /&gt;
&lt;br /&gt;
==アンチエイリアス==&lt;br /&gt;
フォントの[[Wikipedia:Antialiased_font|アンチエイリアス]]は Linux の Oracle Java 1.6 及び OpenJDK で利用可能です。システム全体の設定でアンチエイリアスを使うには、次の行を {{ic|/etc/environment}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 export _JAVA_OPTIONS=&#039;-Dawt.useSystemAAFontSettings=&#039;&#039;setting&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Ic|&#039;&#039;setting&#039;&#039;}} は以下の7つの値のどれか一つに置き換えて下さい:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 設定&lt;br /&gt;
! 説明&lt;br /&gt;
|-&lt;br /&gt;
| {{Ic|off}}, {{Ic|false}}, {{Ic|default}}&lt;br /&gt;
| アンチエイリアスなし&lt;br /&gt;
|-&lt;br /&gt;
| {{Ic|on}}&lt;br /&gt;
| 完全なアンチエイリアス&lt;br /&gt;
|-&lt;br /&gt;
| {{Ic|gasp}}&lt;br /&gt;
| フォントに埋め込まれたヒント情報を使う&lt;br /&gt;
|-&lt;br /&gt;
| {{Ic|lcd}}, {{Ic|lcd_hrgb}}&lt;br /&gt;
| 多数派の LCD モニターにあわせてアンチエイリアスを調整する&lt;br /&gt;
|-&lt;br /&gt;
| {{Ic|lcd_hbgr}}, {{Ic|lcd_vrgb}}, {{Ic|lcd_vbgr}}&lt;br /&gt;
| もうひとつの LCD モニター設定&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
多くの場合 {{Ic|gasp}} と {{Ic|lcd}} の設定が上手く機能します。&lt;br /&gt;
&lt;br /&gt;
任意で GTK のルックアンドフィールを使うには、代わりに下の行を .bashrc に追加してください。&lt;br /&gt;
&lt;br /&gt;
 _JAVA_OPTIONS=&#039;-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel&#039; &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 上述の Java オプションやこのオプションは Java で GUI を描写している Jdownloader などのアプリケーションでしか意味がありません。Java をバックエンドでしか利用していない Openoffice.org や Matlab などのアプリケーションでは表示が変わりません。&lt;br /&gt;
* &#039;&#039;&#039;TrueType&#039;&#039;&#039; フォントにはポイントサイズに合わせてどうフォントを表示するかデザイナーによって決められたグリッド調整およびスキャン変換手続き (&#039;&#039;GASP&#039;&#039;) テーブルが含まれています。サイズによっては完全にアンチエイリアスをかけられたり、場合によってはヒンティングを適用したり、あるいはビットマップフォントとして表示するようになったりします。特定のポイントサイズではそれらを組み合わせて使われることもあります。}}&lt;br /&gt;
&lt;br /&gt;
コマンドラインで実行ファイルの前に変数を指定して新しい設定を試してみましょう:&lt;br /&gt;
&lt;br /&gt;
 _JAVA_OPTIONS=options exectuable &lt;br /&gt;
&lt;br /&gt;
変更を適用するには再ログインする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== フォントのヒンティング ===&lt;br /&gt;
&lt;br /&gt;
一部の Java アプリケーションにはヒンティングのシステム設定が反映されません。Java アプリを起動する前に、以下の環境変数のどれかを使ってみてください:&lt;br /&gt;
&lt;br /&gt;
 export FT2_SUBPIXEL_HINTING=0  # Classic mode&lt;br /&gt;
 export FT2_SUBPIXEL_HINTING=1  # Infinality mode&lt;br /&gt;
 export FT2_SUBPIXEL_HINTING=2  # Default mode&lt;br /&gt;
&lt;br /&gt;
例えば、{{ic|0}} の場合 FreeType は太字でないフォントを使うようになります。&lt;br /&gt;
&lt;br /&gt;
=== OpenJDK パッチ ===&lt;br /&gt;
&lt;br /&gt;
Java のオプションを使って強制的にアンチエイリアスをかけても、ネイティブアプリケーションのアンチエイリアスよりかは品質で劣ります。[[AUR]] にある OpenJDK のパッチを使うことで改善することができます:&lt;br /&gt;
* パッチ適用済み ({{ic|1=--enable-infinality=yes}}) の &#039;&#039;&#039;OpenJDK7&#039;&#039;&#039; は {{AUR|jre7-openjdk-infinality}} でインストールできます。&lt;br /&gt;
* パッチ適用済みの &#039;&#039;&#039;OpenJDK8&#039;&#039;&#039; は {{AUR|jre8-openjdk-infinality}} でインストールできます ([[非公式ユーザーリポジトリ#infinality-bundle|Infinality 非公式リポジトリ]]からインストールすることも可能です)。&lt;br /&gt;
パッチを適用したバージョンでは fontconfig と freetype の [[Infinality]] パッチを上手く混ぜ合わせています。標準の {{Pkg|fontconfig}} API を使用しているため {{AUR|fontconfig-infinality}} に依存はしていません。&lt;br /&gt;
&lt;br /&gt;
==フォント選択==&lt;br /&gt;
&lt;br /&gt;
===TrueType フォント===&lt;br /&gt;
Java アプリケーションによっては特定の TrueType フォントを使用するよう選択できたりしますが、こういったアプリケーションは使用したいフォントのディレクトリパスを指定できるようになっています。TrueType フォントは {{ic|/usr/share/fonts/TTF}} ディレクトリにインストールされます。次の行を {{ic|/etc/environment}} に追加してフォントを有効にしてください。&lt;br /&gt;
 JAVA_FONTS=/usr/share/fonts/TTF&lt;br /&gt;
&lt;br /&gt;
変更を適用するには再ログインする必要があります。&lt;br /&gt;
&lt;br /&gt;
===文字化けの修正 (JRE8)===&lt;br /&gt;
以下のディレクトリにフォントファイルを配置してください。ディレクトリが存在しない場合は作成してください。&lt;br /&gt;
&lt;br /&gt;
 /usr/lib/jvm/java-8-openjdk/jre/lib/fonts/fallback/&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%82%A2%E3%83%89%E3%83%9B%E3%83%83%E3%82%AF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=5638</id>
		<title>アドホックネットワーク</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%82%A2%E3%83%89%E3%83%9B%E3%83%83%E3%82%AF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF&amp;diff=5638"/>
		<updated>2016-08-19T17:49:26Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: Fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:無線ネットワーク]]&lt;br /&gt;
[[en:Ad-hoc networking]]&lt;br /&gt;
[[zh-CN:Ad-hoc networking]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ネットワーク設定}}&lt;br /&gt;
{{Related|ワイヤレス設定}}&lt;br /&gt;
{{Related|ソフトウェアアクセスポイント}}&lt;br /&gt;
{{Related|インターネット共有}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
IBSS (Independent Basic Service Set) ネットワーク (アドホックネットワークとも呼ばれます) は中央制御を必要としない、ワイヤレスで互いに通信するための通信方式です。直接一対一で通信を行う、P2P ネットワークの一例です。&lt;br /&gt;
&lt;br /&gt;
アドホックネットワークを使うことで、[[インターネット共有|インターネット接続の共有]]などが行えます。&lt;br /&gt;
&lt;br /&gt;
== 要件 ==&lt;br /&gt;
&lt;br /&gt;
* ネットワークに接続する全てのデバイスに [https://wireless.wiki.kernel.org/en/users/drivers nl80211] 対応の無線デバイスが必要です (例: ath9k)。&lt;br /&gt;
&lt;br /&gt;
== Wifi リンク層 ==&lt;br /&gt;
&lt;br /&gt;
IBSS ネットワークはピアツーピアネットワークなので、必要な wifi リンクの設定は全てのデバイスで共通です。&lt;br /&gt;
&lt;br /&gt;
{{Tip|複雑なネットワークトポロジーを作成することも可能です。高度な例については [http://wireless.kernel.org/en/users/Documentation/iw/vif Linux Wireless documentation] を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== 手動設定 ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|以下の方法では暗号化がないアドホックネットワークを作成します。WPA 暗号を使用する方法は [[#WPA supplicant]] を見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
以下で使っているコマンドの詳しい説明は[[ワイヤレス設定#手動セットアップ]]を見て下さい。また、{{Pkg|iw}} を[[pacman|インストール]]しておいてください。&lt;br /&gt;
&lt;br /&gt;
動作モードを ibss に設定:&lt;br /&gt;
&lt;br /&gt;
 # iw &#039;&#039;interface&#039;&#039; set type ibss&lt;br /&gt;
&lt;br /&gt;
インターフェイスを立ち上げる ({{ic|rfkill unblock wifi}} などの設定が必要になる場合もあります):&lt;br /&gt;
&lt;br /&gt;
 # ip link set &#039;&#039;interface&#039;&#039; up&lt;br /&gt;
&lt;br /&gt;
これでアドホックネットワークを作成することができます。&#039;&#039;your_ssid&#039;&#039; はネットワークの名前に、&#039;&#039;frequency&#039;&#039; は使用したい周波数 (MHz) に置き換えて下さい。使用できる周波数の表が Wikipedia の [[Wikipedia:List_of_WLAN_channels#Interference_Concerns|List of WLAN channels]] ページに載っています。&lt;br /&gt;
&lt;br /&gt;
 # iw &#039;&#039;interface&#039;&#039; ibss join &#039;&#039;your_ssid&#039;&#039; &#039;&#039;frequency&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== WPA supplicant ===&lt;br /&gt;
&lt;br /&gt;
{{Note|以下の方法では WPA 暗号を使用するアドホックネットワークを作成します。2013年8月現在 WPA2 はサポートされていません。}}&lt;br /&gt;
&lt;br /&gt;
{{Pkg|wpa_supplicant}} を[[pacman|インストール]]して、設定ファイルを作成してください (詳しくは [[WPA supplicant]] を参照):&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/wpa_supplicant-adhoc.conf|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel&lt;br /&gt;
&lt;br /&gt;
# use &#039;ap_scan=2&#039; on all devices connected to the network&lt;br /&gt;
ap_scan=2&lt;br /&gt;
&lt;br /&gt;
network={&lt;br /&gt;
    ssid=&amp;quot;MySSID&amp;quot;&lt;br /&gt;
    mode=1&lt;br /&gt;
    frequency=2432&lt;br /&gt;
    proto=WPA&lt;br /&gt;
    key_mgmt=WPA-NONE&lt;br /&gt;
    pairwise=NONE&lt;br /&gt;
    group=TKIP&lt;br /&gt;
    psk=&amp;quot;secret passphrase&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
以下のコマンドを使って、ネットワークに接続する全てのデバイスで &#039;&#039;wpa_supplicant&#039;&#039; を起動します:&lt;br /&gt;
&lt;br /&gt;
 # wpa_supplicant -B -i &#039;&#039;interface&#039;&#039; -c /etc/wpa_supplicant-adhoc.conf -D nl80211,wext&lt;br /&gt;
&lt;br /&gt;
== ネットワーク設定 ==&lt;br /&gt;
&lt;br /&gt;
最後に IP アドレスをネットワーク上の全てのデバイスに割り当てます。複数の方法が存在します:&lt;br /&gt;
&lt;br /&gt;
* 固定 IP アドレスを割り当てる。詳しくは[[ネットワーク設定#固定 IP アドレス]]を見て下さい。&lt;br /&gt;
* デバイスのどれかで DHCP サーバーを動かす。詳しくは [[dhcpd]] や [[dnsmasq]] を見て下さい。&lt;br /&gt;
* &#039;&#039;avahi-autoipd&#039;&#039; を動かす。詳しくは [[Avahi#IPv4LL IP アドレスの取得]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
アドホックネットワークでインターネット接続を共有したい場合、[[インターネット共有]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== NetworkManager を使う ===&lt;br /&gt;
&lt;br /&gt;
[[NetworkManager]] を使っている場合、上記のように手動で設定する代わりに &#039;&#039;nm-applet&#039;&#039; を使ってアドホックネットワークの設定ができます。詳しくは [[NetworkManager#Ad-hoc]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|NetworkManager はアドホックモードでの WPA 暗号化をサポートしていません。}}&lt;br /&gt;
&lt;br /&gt;
=== カスタム systemd サービス (wpa_supplicant と固定 IP) ===&lt;br /&gt;
&lt;br /&gt;
以下のテンプレートを使うことで無線アドホックネットワークを使うことができます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/conf.d/network-wireless-adhoc@&amp;lt;interface&amp;gt;|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
addr=192.168.0.2&lt;br /&gt;
mask=24&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/network-wireless-adhoc@.service|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Ad-hoc wireless network connectivity (%i)&lt;br /&gt;
Wants=network.target&lt;br /&gt;
Before=network.target&lt;br /&gt;
BindsTo=sys-subsystem-net-devices-%i.device&lt;br /&gt;
After=sys-subsystem-net-devices-%i.device&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
EnvironmentFile=/etc/conf.d/network-wireless-adhoc@%i&lt;br /&gt;
&lt;br /&gt;
# perhaps rfkill is not needed for you&lt;br /&gt;
ExecStart=/usr/bin/rfkill unblock wifi&lt;br /&gt;
ExecStart=/usr/bin/ip link set %i up&lt;br /&gt;
ExecStart=/usr/bin/wpa_supplicant -B -i %i -D nl80211,wext -c /etc/wpa_supplicant-adhoc.conf&lt;br /&gt;
ExecStart=/usr/bin/ip addr add ${addr}/${mask} dev %i&lt;br /&gt;
&lt;br /&gt;
ExecStop=/usr/bin/ip addr flush dev %i&lt;br /&gt;
ExecStop=/usr/bin/ip link set %i down&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://help.ubuntu.com/community/WifiDocs/Adhoc Ubuntu community wiki WifiDocs/Adhoc]&lt;br /&gt;
* [http://www.ubuntugeek.com/creating-an-adhoc-host-with-ubuntu.html Manual about creating an Ad-Hoc network on UbuntuGeek]&lt;br /&gt;
* [http://go2linux.garron.me/linux/2011/03/share-your-3g-internet-connection-over-wifi-linux-ipod-touch-925 Share your 3G Internet connection over wifi]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Electron&amp;diff=5637</id>
		<title>Electron</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Electron&amp;diff=5637"/>
		<updated>2016-08-19T13:59:02Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: パッケージへのリンクを公式リポジトリのものに変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:開発]]&lt;br /&gt;
[[en:Electron]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Node.js}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[http://electron.atom.io/ Electron] (旧名 Atom Shell) は GitHub によって開発されたアプリケーションで、ウェブ技術を使用してクロスプラットフォームのデスクトップアプリを作成することができます。Electron によって作成された最も有名なデスクトップアプリの例としては [[Atom]] テキストエディタが存在します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
Electron は以下のパッケージでインストールできます:&lt;br /&gt;
&lt;br /&gt;
* 公式リポジトリの {{Pkg|electron}} パッケージ&lt;br /&gt;
* 非公式の [[非公式ユーザーリポジトリ#atom|atom]] リポジトリの &#039;&#039;electron&#039;&#039; パッケージ: 別の [https://github.com/tensor5/arch-atom/blob/master/README.md#build-method ビルド方法] を使っています。&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Django&amp;diff=5539</id>
		<title>Django</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Django&amp;diff=5539"/>
		<updated>2016-08-12T15:08:03Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: データベースドライバについて同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:開発]]&lt;br /&gt;
[[en:Django]]&lt;br /&gt;
[[fr:Django]]&lt;br /&gt;
[http://www.djangoproject.com Django] は model–view–template (MVT) デザインパターンに従っている高水準な [[Python]] ウェブフレームワークです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
現在[[公式リポジトリ]]には2つの Django パッケージが存在します。以下のパッケージで[[Pacman|インストール]]することができます:&lt;br /&gt;
* {{Pkg|python-django}} - 最新の python に対応。ドキュメントは [[AUR]] の {{aur|django-docs}} パッケージ。&lt;br /&gt;
* {{Pkg|python2-django}} - Python 2 に対応。&lt;br /&gt;
&lt;br /&gt;
=== データベース ドライバ ===&lt;br /&gt;
&lt;br /&gt;
[[MySQL]] / MariaDB データベースをバックエンドとして使うつもりなら、{{aur|python-mysqlclient}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
Django プロジェクトを開始するには、{{ic|django-admin}} コマンドを使います:&lt;br /&gt;
 $ django-admin startproject mysite&lt;br /&gt;
&lt;br /&gt;
上記のコマンドでカレントディレクトリに &#039;&#039;mysite&#039;&#039; ディレクトリが作成されます。また、プロジェクトを管理するための &#039;&#039;manage.py&#039;&#039; スクリプトも作成されます。&lt;br /&gt;
&lt;br /&gt;
詳しくは [https://docs.djangoproject.com/en/1.8/intro/tutorial01/ Django 公式チュートリアル] や [https://docs.djangoproject.com/en/ Django ドキュメント] を見てください。&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5398</id>
		<title>I3</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5398"/>
		<updated>2016-06-24T04:50:34Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: /* i3status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:i3}}&lt;br /&gt;
[[Category:タイル型ウィンドウマネージャ]]&lt;br /&gt;
[[Category:動的ウィンドウマネージャ]]&lt;br /&gt;
[[en:i3]]&lt;br /&gt;
[[ko:I3]]&lt;br /&gt;
[[ru:I3]]&lt;br /&gt;
[[zh-CN:I3]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|デスクトップ環境}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|ファイルマネージャの機能}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related|タイル型ウィンドウマネージャの比較}}&lt;br /&gt;
{{Related|クリップボード}}&lt;br /&gt;
{{Related|自動起動#グラフィカル}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/ i3] は [[wmii]] にインスパイアされて開発された動的[[Wikipedia:ja:タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]で、主に開発者や上級ユーザーをターゲットにしています。&lt;br /&gt;
&lt;br /&gt;
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[vim]] のような様々なモードなどです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Grp|i3}} [[Pacman#パッケージグループのインストール|パッケージグループ]]を[[インストール]]してください。このグループにはウィンドウマネージャの {{Pkg|i3-wm}} と、[[Wikipedia:ja:標準ストリーム#標準出力 (stdout)|標準出力]]によってステータスラインに書き込みを行う {{Pkg|i3status}}、そして画面ロッカーの {{Pkg|i3lock}} が含まれています。&lt;br /&gt;
&lt;br /&gt;
追加のパッケージは [[Arch User Repository]] から利用可能です。例は [[#パッチ|パッチ]] セクションを見てください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイマネージャ ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} はウィンドウマネージャを起動する [[Xsession]] として {{ic|i3.desktop}} を含んでいます。&lt;br /&gt;
{{ic|i3-with-shmlog.desktop}} はログを有効にします (デバッグに役立ちます)。&lt;br /&gt;
{{AUR|i3-gnome}} は {{ic|i3}} を [[GNOME]] に統合します。 &lt;br /&gt;
&lt;br /&gt;
=== xinitrc ===&lt;br /&gt;
&lt;br /&gt;
[[xinitrc]] を編集して、次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3&lt;br /&gt;
&lt;br /&gt;
i3 からの出力を記録したいときは、代わりに次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3 -V &amp;gt;&amp;gt; ~/.config/i3/i3log-$(date +&#039;%F-%k-%M-%S&#039;) 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
キーのマッピングに問題が起こるときは (例: セミコロンの {{ic|;}})、{{Pkg|xorg-xev}} を使うか、または[[特別なキーボードキー]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
 $ xev | grep -A2 --line-buffered &#039;^KeyRelease&#039; | sed -n &#039;/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p&#039;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインド ===&lt;br /&gt;
&lt;br /&gt;
i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。&lt;br /&gt;
&lt;br /&gt;
デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。&lt;br /&gt;
&lt;br /&gt;
Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
=== コンテナ ===&lt;br /&gt;
&lt;br /&gt;
i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
i3 はアプリケーションランチャーとして [[dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の {{AUR|dmenu2}} を使うこともできます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} には &#039;&#039;dmenu&#039;&#039; の [[Wikipedia:ja:Perl|Perl]] ラッパーである &#039;&#039;i3-dmenu-desktop&#039;&#039; が含まれており、[[デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは &#039;&#039;i3-dmenu-desktop&#039;&#039; とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。この記事では &#039;&#039;i3&#039;&#039; の設定ファイルは {{ic|~/.config}} に置くことにします (&#039;&#039;i3-config-wizard&#039;&#039; では {{ic|~/.i3/config}} に作成されます)。&lt;br /&gt;
&lt;br /&gt;
=== 設定ウィザードとキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3&#039;&#039; を最初に起動したとき、設定ウィザードの &#039;&#039;i3-config-wizard&#039;&#039; が実行されます。このツールは {{ic|/etc/i3/config.keycodes}} にあるテンプレート設定ファイルを書き換えることで {{ic|~/.i3/config}} を作成します。デフォルトテンプレートには以下の2つの変更が加えられます:&lt;br /&gt;
&lt;br /&gt;
# ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。{{ic|set $mod Mod1}} のような行がテンプレートに追加されます。&lt;br /&gt;
# ユーザーの現在のキーボードレイアウトにあわせて &#039;&#039;bindcode&#039;&#039; 行をすべて &#039;&#039;bindsym&#039;&#039; 行で置き換えます。&lt;br /&gt;
&lt;br /&gt;
後者が実行されることで、4つのナビゲーションショートカット {{ic|j}}, {{ic|k}}, {{ic|l}} と Qwerty キーボードの&amp;quot;セミコロン&amp;quot;が正しいキーシムにマッピングされます。例えば [[Dvorak]] キーボードなら {{ic|h}}, {{ic|t}}, {{ic|n}}, {{ic|s}} になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。&amp;quot;再起動&amp;quot;は {{ic|$mod1+r}} ではなく {{ic|$mod1+p}} に、&amp;quot;横に分割&amp;quot;は {{ic|$mod1+h}} ではなく {{ic|$mod1+d}} にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は {{ic|/etc/i3/config}} を {{ic|~/.config/i3/config}} (または {{ic|~/.i3/config}}) にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。&lt;br /&gt;
&lt;br /&gt;
=== カラースキーム ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。&lt;br /&gt;
&lt;br /&gt;
* {{App|i3-style|JSON オブジェクトで保存されたテーマによって所定の設定を変更します。テーマは何度もカラースキームを調整・修正できるように作られています。|https://github.com/acrisci/i3-style|{{Aur|nodejs-i3-style}}}}&lt;br /&gt;
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}}&lt;br /&gt;
&lt;br /&gt;
=== i3bar ===&lt;br /&gt;
&lt;br /&gt;
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
    output            LVDS1&lt;br /&gt;
    status_command    i3status&lt;br /&gt;
    position          top&lt;br /&gt;
    mode              hide&lt;br /&gt;
    workspace_buttons yes&lt;br /&gt;
    tray_output       none&lt;br /&gt;
    &lt;br /&gt;
    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1&lt;br /&gt;
&lt;br /&gt;
    colors {&lt;br /&gt;
        background #000000&lt;br /&gt;
        statusline #ffffff&lt;br /&gt;
&lt;br /&gt;
        focused_workspace  #ffffff #285577&lt;br /&gt;
        active_workspace   #ffffff #333333&lt;br /&gt;
        inactive_workspace #888888 #222222&lt;br /&gt;
        urgent_workspace   #ffffff #900000&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3bar の代替 ====&lt;br /&gt;
&lt;br /&gt;
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。&lt;br /&gt;
&lt;br /&gt;
[[Xfce#パネル|XFCE パネル]]の場合、次の行を {{ic|~/.config/i3/config}} のどこかに追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec --no-startup-id xfce4-panel --disable-wm-check&lt;br /&gt;
&lt;br /&gt;
{{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|~/.config/i3/config}} の {{ic|&amp;lt;nowiki&amp;gt;bar{ }&amp;lt;/nowiki&amp;gt;}} セクションをコメントアウトすることで i3bar は無効にできます。&lt;br /&gt;
もしくは以下を使ってください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|&lt;br /&gt;
# bar toggle, hide or show &lt;br /&gt;
bindsym $mod+m bar mode toggle&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この方法では好きなようにバーを表示したり隠したりできます。&lt;br /&gt;
&lt;br /&gt;
=== i3status ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定ファイルをホームディレクトリにコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 $ cp /etc/i3status.conf ~/.config/i3status/config&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では定義されていないプラグインがあり、いくつかの設定はあなたのシステムでは無効かもしれません。&lt;br /&gt;
そのためシステムに応じて設定を更新する必要があります。詳しくは {{ic|man 1 i3status}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3status の代替 ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [http://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}&lt;br /&gt;
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}}&lt;br /&gt;
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}}&lt;br /&gt;
* {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar}}&lt;br /&gt;
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}}&lt;br /&gt;
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}}&lt;br /&gt;
* {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは {{Aur|j4status-plugins-git}} に入っています。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== i3status のラッパー ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[en2:h2status|h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}}}&lt;br /&gt;
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}}&lt;br /&gt;
* {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Aur|py3status}}}}&lt;br /&gt;
&lt;br /&gt;
==== ステータスバーにアイコンフォント ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3bar&#039;&#039; には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。&lt;br /&gt;
&lt;br /&gt;
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}}&lt;br /&gt;
* {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}}&lt;br /&gt;
&lt;br /&gt;
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります:&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
  ...&lt;br /&gt;
  font pango:DejaVu Sans Mono, Icons 8&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax] に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。&lt;br /&gt;
各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。&lt;br /&gt;
&lt;br /&gt;
最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば &amp;quot;ハート&amp;quot; アイコン (ユニコード番号 f004) を入力するには:&lt;br /&gt;
&lt;br /&gt;
* 様々な GUI のテキストエディタ (例: [[gedit]] や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Vim]] (挿入モード): {{ic|Ctrl+v}}, {{ic|uf004}}&lt;br /&gt;
* [[urxvt]]: {{ic|Ctrl+Shift}} を押して、{{ic|f004}} を入力&lt;br /&gt;
&lt;br /&gt;
=== ターミナルエミュレータ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他のターミナルを起動するには、{{ic|~/.config/i3/config}} の次の行を変更してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+Return exec i3-sensible-terminal&lt;br /&gt;
&lt;br /&gt;
または、{{ic|$TERMINAL}} 変数を[[環境変数#ユーザーごと|ローカルで定義]]してください:&lt;br /&gt;
&lt;br /&gt;
 $ export TERMINAL=&#039;&#039;yourterminal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 高度なウィンドウナビゲーション ===&lt;br /&gt;
&lt;br /&gt;
[http://www.slackword.net/?p=657 i3 window Navigation Tips] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Jump to open window ===&lt;br /&gt;
&lt;br /&gt;
*{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/proxypoke/quickswitch-for-i3|{{Aur|quickswitch-i3}}}}&lt;br /&gt;
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}}&lt;br /&gt;
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}}&lt;br /&gt;
*{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Pkg|rofi}}}}&lt;br /&gt;
&lt;br /&gt;
=== Jump to urgent window ===&lt;br /&gt;
&lt;br /&gt;
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/]&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+x [urgent=latest] focus&lt;br /&gt;
&lt;br /&gt;
=== ウィンドウレイアウトの保存と復元 ===&lt;br /&gt;
&lt;br /&gt;
バージョン 4.8 から、&#039;&#039;i3&#039;&#039; ワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: [[公式リポジトリ]]から {{Pkg|perl-anyevent-i3}} と {{Pkg|perl-json-xs}}。&lt;br /&gt;
&lt;br /&gt;
{{note| This section only provides quick tutorial on how to save the current window layout of a single workspace and how to restore it for later use. Refer to the [http://i3wm.org/docs/layout-saving.html official documentation] for more details}}&lt;br /&gt;
&lt;br /&gt;
==== Save the current window layout of a single workspace ====&lt;br /&gt;
&lt;br /&gt;
To save the current window layout, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# First, execute various commands to open windows in a preferred workspace and resize them if needed. Make sure to write down each executed command for each window.&lt;br /&gt;
# Now, in a new workspace, open a terminal and run the following: {{bc|i3-save-tree --workspace N &amp;gt; ~/.i3/workspace_N.json}} where N is the number of the preferred workspace. This will save the current layout of workspace N to the file {{ic|~/.i3/workspace_N.json}}.&lt;br /&gt;
# The newly created file needs to be edited, however this may be done with the following commands: {{bc|&amp;lt;nowiki&amp;gt;tail -n +2 ~/.i3/workspace_N.json | fgrep -v &#039;// splitv&#039; | sed &#039;s|//||g&#039; &amp;gt; ~/.i3/workspace_N.json&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Restore the window layout of the workspace ====&lt;br /&gt;
&lt;br /&gt;
There are two ways to restore the layout of the workspace: by writing a script, or by editing {{ic|~/.i3/config}} to automatically load the layout. In this section only the first case will be considered, refer to the [http://i3wm.org/docs/layout-saving.html#_restoring_the_layout official documentation] for the second case.&lt;br /&gt;
&lt;br /&gt;
To restore the saved layout in the previous section, write a file named {{ic|load_layout.sh}} with the following contents:&lt;br /&gt;
&lt;br /&gt;
* The starting lines:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
where M is the number of the workspace in which you would like to load the previously saved layout and N is the number of workspace saved in the previous section.&lt;br /&gt;
* And the commands used in the previous section to get the preferred windows, but enclosed in parentheses and with an ampersand appended before the last parentheses.&lt;br /&gt;
&lt;br /&gt;
For example, if the saved layout contained three {{ic|uxterm}} windows:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# First we append the saved layout of worspace N to workspace M&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# And finally we fill the containers with the programs they had&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Then set the file as executable:&lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
And finally, the layout of worskpace N can be loaded onto to workspace M by running:&lt;br /&gt;
&lt;br /&gt;
 ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
{{tip|Adding {{ic|bindsym $mod+g exec ~/load_layout.sh}} to {{ic|~/.i3/config}} and restarting i3 will bind Mod+g to run the above script.}}&lt;br /&gt;
&lt;br /&gt;
{{note|If the above script does not work properly, refer to the [http://i3wm.org/docs/layout-saving.html#_editing_layout_files  official documentation]. The &#039;&#039;swallows&#039;&#039; sections of {{ic|~/.i3/workspace_N.json}} needs to be manually edited.}}&lt;br /&gt;
&lt;br /&gt;
=== スクラッチパッドコンテナ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、[http://i3wm.org/docs/userguide.html#_scratchpad スクラッチパッド] は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。&lt;br /&gt;
&lt;br /&gt;
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。&lt;br /&gt;
&lt;br /&gt;
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ ({{ic|Mod+Shift+Space}})、スクラッチパッドに移動します ({{ic|Mod+Shift+-}})。これで自由にコンテナを分割できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[tmux]] などのマルチプレクサを使っても良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== スクリーンセーバーと電源管理 ===&lt;br /&gt;
&lt;br /&gt;
With [[電源管理#xss-lock]] you can register a screenlocker for your i3 session.&lt;br /&gt;
&lt;br /&gt;
Alternatively, &#039;&#039;xautolock&#039;&#039; can lock the screen after awakening from sleep or hibernation with the {{ic|-lockaftersleep}} option. The {{ic|-time}} option locks the screen after a given time period.&lt;br /&gt;
&lt;br /&gt;
 xautolock -time 10 -locker &amp;quot;i3lock -i &#039;background_image.png&#039;&amp;quot; -lockaftersleep &amp;amp;&lt;br /&gt;
&lt;br /&gt;
See also [[DPMS]].&lt;br /&gt;
&lt;br /&gt;
=== シャットダウン, 再起動, 画面ロック ===&lt;br /&gt;
&lt;br /&gt;
シャットダウン、再起動、画面ロックのキーコンビネーションを {{ic|~/.config/i3/config}} に追加することができます。以下の例では[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
set $Locker i3lock &amp;amp;&amp;amp; sleep 1&lt;br /&gt;
&lt;br /&gt;
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown&lt;br /&gt;
mode &amp;quot;$mode_system&amp;quot; {&lt;br /&gt;
    bindsym l exec --no-startup-id $Locker, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym e exec --no-startup-id i3-msg exit, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym s exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl suspend, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym h exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl hibernate, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym r exec --no-startup-id systemctl reboot, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode &amp;quot;default&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
    # back to normal: Enter or Escape&lt;br /&gt;
    bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bindsym $mod+Pause mode &amp;quot;$mode_system&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
追加したら {{ic|$mod+pause}} を押すことでプロンプトが表示されます。より複雑な動作の為には、スクリプトに分離し、mode の中で参照してください。[https://gist.github.com/anonymous/c8cd0a59bf4acb273068]&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;br&amp;gt;&lt;br /&gt;
* {{ic|sleep 1}} は小さなディレイを追加することで、サスペンドにより起こりうる競合状態を防ぎます。[https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]&lt;br /&gt;
* {{ic|systemctl poweroff}} への {{ic|-i}} 引数は、たとえ他のユーザーがログインしていたり (これは {{Pkg|polkit}} を必要とします)、&#039;&#039;logind&#039;&#039; が (誤って) そのように認識していてもシャットダウンを行います。[https://bugs.freedesktop.org/show_bug.cgi?id=62676]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他の画面ロッカーについては、[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。&lt;br /&gt;
&lt;br /&gt;
===External displays manual management===&lt;br /&gt;
&lt;br /&gt;
Thanks to [[xrandr]] there are many ways to easily manage systems displays. The below example integrates it in the i3 config file, and behave as the Power Management section above.&lt;br /&gt;
&lt;br /&gt;
Here a laptop with both VGA and HDMI outputs will use a menu selection to switch them On/Off:&lt;br /&gt;
&lt;br /&gt;
 ## Manual management of external displays&lt;br /&gt;
 # Set the shortcuts and what they do&lt;br /&gt;
 set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF&lt;br /&gt;
 mode &amp;quot;$mode_display&amp;quot; {&lt;br /&gt;
     bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     # back to normal: Enter or Escape&lt;br /&gt;
     bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 # Declare here the shortcut to bring the display selection menu&lt;br /&gt;
 bindsym $mod+x mode &amp;quot;$mode_display&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Any window that is still open in a switched Off display will automatically come back to the remaining active display.&lt;br /&gt;
&lt;br /&gt;
The simplest way to determine names of your devices is to plug the device you wish to use and run:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --query&lt;br /&gt;
&lt;br /&gt;
which will output the available, recognized devices and their in-system names to set your config file appropriately. &lt;br /&gt;
&lt;br /&gt;
Refer to the [[xrandr]] page or man page for the complete list of available options, the [http://i3wm.org/docs/userguide.html i3 userguide] and/or the [https://www.reddit.com/r/i3wm i3 FAQ on reddit] for more info.&lt;br /&gt;
&lt;br /&gt;
=== タブまたはスタックによるウェブブラウジング ===&lt;br /&gt;
&lt;br /&gt;
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。&lt;br /&gt;
&lt;br /&gt;
[[uzbl]] など、タブのないウェブブラウザを i3 で管理するには、次の行を {{ic|~/.config/i3/config}} に追加して下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout stacking, focus&lt;br /&gt;
&lt;br /&gt;
これはスタックのウェブブラウジング用で、ウィンドウは縦に表示されます。タブブラウジングと違って、たとえブラウザのウィンドウを大量に開いていても、ウィンドウのタイトルを全て見ることができます。&lt;br /&gt;
&lt;br /&gt;
水平方向のタブブラウジングの方が良い場合は (&#039;タブ&#039;)、次を使って下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout tabbed, focus&lt;br /&gt;
&lt;br /&gt;
=== ワークスペース変数 ===&lt;br /&gt;
&lt;br /&gt;
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]:&lt;br /&gt;
&lt;br /&gt;
 set $WS1 term&lt;br /&gt;
 set $WS2 web&lt;br /&gt;
 set $WS3 misc&lt;br /&gt;
 set $WS4 media&lt;br /&gt;
 set $WS5 code&lt;br /&gt;
&lt;br /&gt;
次にワークスペースの名前を対応する変数で置き換えます:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+1          workspace $WS1&lt;br /&gt;
 ...&lt;br /&gt;
 bindsym $mod+Shift+1    move container to workspace $WS1&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== フロートするダイアログを正しく扱う ===&lt;br /&gt;
&lt;br /&gt;
デフォルトではダイアログはフロートモードで開かれることになっていますが [http://i3wm.org/docs/userguide.html#_floating]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには {{pkg|xorg-xprop}} でダイアログの {{ic|WM_WINDOW_ROLE}} をチェックして適切なルールを {{ic|~/.i3/config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 for_window [window_role=&amp;quot;pop-up&amp;quot;] floating enable&lt;br /&gt;
 for_window [window_role=&amp;quot;task_dialog&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
また、タイトルルールと正規表現を使うこともできます:&lt;br /&gt;
&lt;br /&gt;
 for_window [title=&amp;quot;Preferences$&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
または {{ic|WM_CLASS}}:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;(?i)mplayer&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
=== ネットワークのダウンロード・アップロード速度をステータスバーに表示 ===&lt;br /&gt;
&lt;br /&gt;
上流の [http://code.stapelberg.de/git/i3status/tree/contrib/measure-net-speed.bash スクリプト] を編集します。&lt;br /&gt;
&lt;br /&gt;
* システムに応じて両方のネットワークカードをリネームしてください ({{ic|ip addr}} を使ってください)&lt;br /&gt;
* {{ic|/sys/devices}} にあるそれらを見つけて適切に置き換えます:&lt;br /&gt;
 $ find /sys/devices -name &#039;&#039;network_interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|PCI の位置に依存しない為に {{ic|/sys/class/net/&#039;&#039;interface&#039;&#039;/statistics/}} を使います。}}&lt;br /&gt;
&lt;br /&gt;
スクリプトを適切な場所 (例: {{ic|~/.config/i3}}) に保存して、ステータスプログラムから指してください。&lt;br /&gt;
&lt;br /&gt;
== パッチ ==&lt;br /&gt;
&lt;br /&gt;
上流にマージされてないパッチがあてられたパッケージが [[AUR]] には存在します:&lt;br /&gt;
&lt;br /&gt;
* {{App|i3bar-icons-git|i3bar で XBM アイコンを表示|https://github.com/ashinkarov/i3-extras|{{AUR|i3bar-icons-git}}}}&lt;br /&gt;
* {{App|i3-smart-border|スマートボーダー|https://github.com/ashinkarov/i3-extras|{{AUR|i3-smart-border}}}}&lt;br /&gt;
* {{App|i3-wm-iconpatch|タイトルバーアイコンのサポート|https://github.com/ashinkarov/i3-extras|{{AUR|i3-wm-iconpatch}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 一般 ===&lt;br /&gt;
&lt;br /&gt;
多くの場合、バグは開発版である {{AUR|i3-git}} と {{AUR|i3status-git}} で修正されているため上流では開発版を使ってエラーが再現できるかどうか訊いてきます。 [http://i3wm.org/docs/debugging.html] [[デバッグ - トレースを取得#一般]]も見てください。&lt;br /&gt;
&lt;br /&gt;
=== i3 メッセージバーのボタンが動作しない ===&lt;br /&gt;
&lt;br /&gt;
{{ic|i3-nagbar}} の &amp;quot;Edit config&amp;quot; などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
=== タイル化されたターミナルで行の折り返しがおかしい ===&lt;br /&gt;
&lt;br /&gt;
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。&lt;br /&gt;
&lt;br /&gt;
=== マウスカーソルが待機状態のままになる ===&lt;br /&gt;
&lt;br /&gt;
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。&lt;br /&gt;
&lt;br /&gt;
特定のアプリケーションでこの問題を解決するには、{{ic|--no-startup-id}} パラメータを使って下さい、例えば:&lt;br /&gt;
 exec --no-startup-id ~/script&lt;br /&gt;
 bindsym $mod+d exec --no-startup-id dmenu_run&lt;br /&gt;
&lt;br /&gt;
このアニメーションを全てのアプリケーションで無効にするには、[[カーソルテーマ]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインドが反応しない ===&lt;br /&gt;
&lt;br /&gt;
標準のキーバインド (キーを押して実行) を使っている場合、[[スクリーンショットの取得#scrot|scrot]] などのツールが動作しないことがあります。そのようなときは、{{ic|--release}} でキーをリリースしてからコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym --release Print exec --no-startup-id scrot &#039;%Y-%m-%d$&lt;br /&gt;
 bindsym --release Shift+Print exec --no-startup-id scrot &#039;%Y$&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/docs/userguide.html#keybindings] を参照。&lt;br /&gt;
&lt;br /&gt;
=== ティアリング ===&lt;br /&gt;
&lt;br /&gt;
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
=== トレイアイコンが表示されない ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの {{ic|tray_output primary}} ディレクティブでは &#039;&#039;xrandr&#039;&#039; でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [https://github.com/i3/i3/issues/1144]。詳しくは [[Xrandr]] を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://i3wm.org 公式ウェブサイト]&lt;br /&gt;
* [http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki]&lt;br /&gt;
* [http://code.stapelberg.de/git/i3 i3 ソースコード]&lt;br /&gt;
* [https://github.com/ashinkarov/i3-extras i3-extras] - Collection of scripts and patches&lt;br /&gt;
* [https://github.com/acrisci/i3ipc-glib i3ipc-glib] - i3 拡張のためのライブラリ&lt;br /&gt;
* [https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby&lt;br /&gt;
* [http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arch Linux フォーラム&#039;&#039;&#039;&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;スクリーンキャスト&#039;&#039;&#039;&lt;br /&gt;
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast]&lt;br /&gt;
* [https://www.youtube.com/watch?v=j1I63wGcvU4&amp;amp;index=1&amp;amp;list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5397</id>
		<title>I3</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5397"/>
		<updated>2016-06-23T16:31:17Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:i3}}&lt;br /&gt;
[[Category:タイル型ウィンドウマネージャ]]&lt;br /&gt;
[[Category:動的ウィンドウマネージャ]]&lt;br /&gt;
[[en:i3]]&lt;br /&gt;
[[ko:I3]]&lt;br /&gt;
[[ru:I3]]&lt;br /&gt;
[[zh-CN:I3]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|デスクトップ環境}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|ファイルマネージャの機能}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related|タイル型ウィンドウマネージャの比較}}&lt;br /&gt;
{{Related|クリップボード}}&lt;br /&gt;
{{Related|自動起動#グラフィカル}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/ i3] は [[wmii]] にインスパイアされて開発された動的[[Wikipedia:ja:タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]で、主に開発者や上級ユーザーをターゲットにしています。&lt;br /&gt;
&lt;br /&gt;
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[vim]] のような様々なモードなどです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Grp|i3}} [[Pacman#パッケージグループのインストール|パッケージグループ]]を[[インストール]]してください。このグループにはウィンドウマネージャの {{Pkg|i3-wm}} と、[[Wikipedia:ja:標準ストリーム#標準出力 (stdout)|標準出力]]によってステータスラインに書き込みを行う {{Pkg|i3status}}、そして画面ロッカーの {{Pkg|i3lock}} が含まれています。&lt;br /&gt;
&lt;br /&gt;
追加のパッケージは [[Arch User Repository]] から利用可能です。例は [[#パッチ|パッチ]] セクションを見てください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイマネージャ ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} はウィンドウマネージャを起動する [[Xsession]] として {{ic|i3.desktop}} を含んでいます。&lt;br /&gt;
{{ic|i3-with-shmlog.desktop}} はログを有効にします (デバッグに役立ちます)。&lt;br /&gt;
{{AUR|i3-gnome}} は {{ic|i3}} を [[GNOME]] に統合します。 &lt;br /&gt;
&lt;br /&gt;
=== xinitrc ===&lt;br /&gt;
&lt;br /&gt;
[[xinitrc]] を編集して、次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3&lt;br /&gt;
&lt;br /&gt;
i3 からの出力を記録したいときは、代わりに次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3 -V &amp;gt;&amp;gt; ~/.config/i3/i3log-$(date +&#039;%F-%k-%M-%S&#039;) 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
キーのマッピングに問題が起こるときは (例: セミコロンの {{ic|;}})、{{Pkg|xorg-xev}} を使うか、または[[特別なキーボードキー]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
 $ xev | grep -A2 --line-buffered &#039;^KeyRelease&#039; | sed -n &#039;/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p&#039;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインド ===&lt;br /&gt;
&lt;br /&gt;
i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。&lt;br /&gt;
&lt;br /&gt;
デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。&lt;br /&gt;
&lt;br /&gt;
Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
=== コンテナ ===&lt;br /&gt;
&lt;br /&gt;
i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
i3 はアプリケーションランチャーとして [[dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の {{AUR|dmenu2}} を使うこともできます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} には &#039;&#039;dmenu&#039;&#039; の [[Wikipedia:ja:Perl|Perl]] ラッパーである &#039;&#039;i3-dmenu-desktop&#039;&#039; が含まれており、[[デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは &#039;&#039;i3-dmenu-desktop&#039;&#039; とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。この記事では &#039;&#039;i3&#039;&#039; の設定ファイルは {{ic|~/.config}} に置くことにします (&#039;&#039;i3-config-wizard&#039;&#039; では {{ic|~/.i3/config}} に作成されます)。&lt;br /&gt;
&lt;br /&gt;
=== 設定ウィザードとキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3&#039;&#039; を最初に起動したとき、設定ウィザードの &#039;&#039;i3-config-wizard&#039;&#039; が実行されます。このツールは {{ic|/etc/i3/config.keycodes}} にあるテンプレート設定ファイルを書き換えることで {{ic|~/.i3/config}} を作成します。デフォルトテンプレートには以下の2つの変更が加えられます:&lt;br /&gt;
&lt;br /&gt;
# ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。{{ic|set $mod Mod1}} のような行がテンプレートに追加されます。&lt;br /&gt;
# ユーザーの現在のキーボードレイアウトにあわせて &#039;&#039;bindcode&#039;&#039; 行をすべて &#039;&#039;bindsym&#039;&#039; 行で置き換えます。&lt;br /&gt;
&lt;br /&gt;
後者が実行されることで、4つのナビゲーションショートカット {{ic|j}}, {{ic|k}}, {{ic|l}} と Qwerty キーボードの&amp;quot;セミコロン&amp;quot;が正しいキーシムにマッピングされます。例えば [[Dvorak]] キーボードなら {{ic|h}}, {{ic|t}}, {{ic|n}}, {{ic|s}} になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。&amp;quot;再起動&amp;quot;は {{ic|$mod1+r}} ではなく {{ic|$mod1+p}} に、&amp;quot;横に分割&amp;quot;は {{ic|$mod1+h}} ではなく {{ic|$mod1+d}} にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は {{ic|/etc/i3/config}} を {{ic|~/.config/i3/config}} (または {{ic|~/.i3/config}}) にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。&lt;br /&gt;
&lt;br /&gt;
=== カラースキーム ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。&lt;br /&gt;
&lt;br /&gt;
* {{App|i3-style|JSON オブジェクトで保存されたテーマによって所定の設定を変更します。テーマは何度もカラースキームを調整・修正できるように作られています。|https://github.com/acrisci/i3-style|{{Aur|nodejs-i3-style}}}}&lt;br /&gt;
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}}&lt;br /&gt;
&lt;br /&gt;
=== i3bar ===&lt;br /&gt;
&lt;br /&gt;
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
    output            LVDS1&lt;br /&gt;
    status_command    i3status&lt;br /&gt;
    position          top&lt;br /&gt;
    mode              hide&lt;br /&gt;
    workspace_buttons yes&lt;br /&gt;
    tray_output       none&lt;br /&gt;
    &lt;br /&gt;
    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1&lt;br /&gt;
&lt;br /&gt;
    colors {&lt;br /&gt;
        background #000000&lt;br /&gt;
        statusline #ffffff&lt;br /&gt;
&lt;br /&gt;
        focused_workspace  #ffffff #285577&lt;br /&gt;
        active_workspace   #ffffff #333333&lt;br /&gt;
        inactive_workspace #888888 #222222&lt;br /&gt;
        urgent_workspace   #ffffff #900000&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3bar の代替 ====&lt;br /&gt;
&lt;br /&gt;
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。&lt;br /&gt;
&lt;br /&gt;
[[Xfce#パネル|XFCE パネル]]の場合、次の行を {{ic|~/.config/i3/config}} のどこかに追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec --no-startup-id xfce4-panel --disable-wm-check&lt;br /&gt;
&lt;br /&gt;
{{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|~/.config/i3/config}} の {{ic|&amp;lt;nowiki&amp;gt;bar{ }&amp;lt;/nowiki&amp;gt;}} セクションをコメントアウトすることで i3bar は無効にできます。&lt;br /&gt;
もしくは以下を使ってください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|&lt;br /&gt;
# bar toggle, hide or show &lt;br /&gt;
bindsym $mod+m bar mode toggle&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この方法では好きなようにバーを表示したり隠したりできます。&lt;br /&gt;
&lt;br /&gt;
=== i3status ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定ファイルをホームディレクトリにコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 $ cp /etc/i3status.conf ~/.config/i3status/config&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では定義されていないプラグインがあり、いくつかの設定あなたのシステムでは無効かもしれません。&lt;br /&gt;
そのためシステムに応じて設定を更新する必要があります。詳しくは {{ic|man 1 i3status}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3status の代替 ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [http://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}&lt;br /&gt;
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}}&lt;br /&gt;
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}}&lt;br /&gt;
* {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar}}&lt;br /&gt;
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}}&lt;br /&gt;
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}}&lt;br /&gt;
* {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは {{Aur|j4status-plugins-git}} に入っています。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== i3status のラッパー ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[en2:h2status|h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}}}&lt;br /&gt;
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}}&lt;br /&gt;
* {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Aur|py3status}}}}&lt;br /&gt;
&lt;br /&gt;
==== ステータスバーにアイコンフォント ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3bar&#039;&#039; には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。&lt;br /&gt;
&lt;br /&gt;
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}}&lt;br /&gt;
* {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}}&lt;br /&gt;
&lt;br /&gt;
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります:&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
  ...&lt;br /&gt;
  font pango:DejaVu Sans Mono, Icons 8&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax] に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。&lt;br /&gt;
各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。&lt;br /&gt;
&lt;br /&gt;
最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば &amp;quot;ハート&amp;quot; アイコン (ユニコード番号 f004) を入力するには:&lt;br /&gt;
&lt;br /&gt;
* 様々な GUI のテキストエディタ (例: [[gedit]] や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Vim]] (挿入モード): {{ic|Ctrl+v}}, {{ic|uf004}}&lt;br /&gt;
* [[urxvt]]: {{ic|Ctrl+Shift}} を押して、{{ic|f004}} を入力&lt;br /&gt;
&lt;br /&gt;
=== ターミナルエミュレータ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他のターミナルを起動するには、{{ic|~/.config/i3/config}} の次の行を変更してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+Return exec i3-sensible-terminal&lt;br /&gt;
&lt;br /&gt;
または、{{ic|$TERMINAL}} 変数を[[環境変数#ユーザーごと|ローカルで定義]]してください:&lt;br /&gt;
&lt;br /&gt;
 $ export TERMINAL=&#039;&#039;yourterminal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 高度なウィンドウナビゲーション ===&lt;br /&gt;
&lt;br /&gt;
[http://www.slackword.net/?p=657 i3 window Navigation Tips] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Jump to open window ===&lt;br /&gt;
&lt;br /&gt;
*{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/proxypoke/quickswitch-for-i3|{{Aur|quickswitch-i3}}}}&lt;br /&gt;
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}}&lt;br /&gt;
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}}&lt;br /&gt;
*{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Pkg|rofi}}}}&lt;br /&gt;
&lt;br /&gt;
=== Jump to urgent window ===&lt;br /&gt;
&lt;br /&gt;
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/]&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+x [urgent=latest] focus&lt;br /&gt;
&lt;br /&gt;
=== ウィンドウレイアウトの保存と復元 ===&lt;br /&gt;
&lt;br /&gt;
バージョン 4.8 から、&#039;&#039;i3&#039;&#039; ワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: [[公式リポジトリ]]から {{Pkg|perl-anyevent-i3}} と {{Pkg|perl-json-xs}}。&lt;br /&gt;
&lt;br /&gt;
{{note| This section only provides quick tutorial on how to save the current window layout of a single workspace and how to restore it for later use. Refer to the [http://i3wm.org/docs/layout-saving.html official documentation] for more details}}&lt;br /&gt;
&lt;br /&gt;
==== Save the current window layout of a single workspace ====&lt;br /&gt;
&lt;br /&gt;
To save the current window layout, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# First, execute various commands to open windows in a preferred workspace and resize them if needed. Make sure to write down each executed command for each window.&lt;br /&gt;
# Now, in a new workspace, open a terminal and run the following: {{bc|i3-save-tree --workspace N &amp;gt; ~/.i3/workspace_N.json}} where N is the number of the preferred workspace. This will save the current layout of workspace N to the file {{ic|~/.i3/workspace_N.json}}.&lt;br /&gt;
# The newly created file needs to be edited, however this may be done with the following commands: {{bc|&amp;lt;nowiki&amp;gt;tail -n +2 ~/.i3/workspace_N.json | fgrep -v &#039;// splitv&#039; | sed &#039;s|//||g&#039; &amp;gt; ~/.i3/workspace_N.json&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Restore the window layout of the workspace ====&lt;br /&gt;
&lt;br /&gt;
There are two ways to restore the layout of the workspace: by writing a script, or by editing {{ic|~/.i3/config}} to automatically load the layout. In this section only the first case will be considered, refer to the [http://i3wm.org/docs/layout-saving.html#_restoring_the_layout official documentation] for the second case.&lt;br /&gt;
&lt;br /&gt;
To restore the saved layout in the previous section, write a file named {{ic|load_layout.sh}} with the following contents:&lt;br /&gt;
&lt;br /&gt;
* The starting lines:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
where M is the number of the workspace in which you would like to load the previously saved layout and N is the number of workspace saved in the previous section.&lt;br /&gt;
* And the commands used in the previous section to get the preferred windows, but enclosed in parentheses and with an ampersand appended before the last parentheses.&lt;br /&gt;
&lt;br /&gt;
For example, if the saved layout contained three {{ic|uxterm}} windows:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# First we append the saved layout of worspace N to workspace M&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# And finally we fill the containers with the programs they had&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Then set the file as executable:&lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
And finally, the layout of worskpace N can be loaded onto to workspace M by running:&lt;br /&gt;
&lt;br /&gt;
 ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
{{tip|Adding {{ic|bindsym $mod+g exec ~/load_layout.sh}} to {{ic|~/.i3/config}} and restarting i3 will bind Mod+g to run the above script.}}&lt;br /&gt;
&lt;br /&gt;
{{note|If the above script does not work properly, refer to the [http://i3wm.org/docs/layout-saving.html#_editing_layout_files  official documentation]. The &#039;&#039;swallows&#039;&#039; sections of {{ic|~/.i3/workspace_N.json}} needs to be manually edited.}}&lt;br /&gt;
&lt;br /&gt;
=== スクラッチパッドコンテナ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、[http://i3wm.org/docs/userguide.html#_scratchpad スクラッチパッド] は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。&lt;br /&gt;
&lt;br /&gt;
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。&lt;br /&gt;
&lt;br /&gt;
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ ({{ic|Mod+Shift+Space}})、スクラッチパッドに移動します ({{ic|Mod+Shift+-}})。これで自由にコンテナを分割できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[tmux]] などのマルチプレクサを使っても良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== スクリーンセーバーと電源管理 ===&lt;br /&gt;
&lt;br /&gt;
With [[電源管理#xss-lock]] you can register a screenlocker for your i3 session.&lt;br /&gt;
&lt;br /&gt;
Alternatively, &#039;&#039;xautolock&#039;&#039; can lock the screen after awakening from sleep or hibernation with the {{ic|-lockaftersleep}} option. The {{ic|-time}} option locks the screen after a given time period.&lt;br /&gt;
&lt;br /&gt;
 xautolock -time 10 -locker &amp;quot;i3lock -i &#039;background_image.png&#039;&amp;quot; -lockaftersleep &amp;amp;&lt;br /&gt;
&lt;br /&gt;
See also [[DPMS]].&lt;br /&gt;
&lt;br /&gt;
=== シャットダウン, 再起動, 画面ロック ===&lt;br /&gt;
&lt;br /&gt;
シャットダウン、再起動、画面ロックのキーコンビネーションを {{ic|~/.config/i3/config}} に追加することができます。以下の例では[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
set $Locker i3lock &amp;amp;&amp;amp; sleep 1&lt;br /&gt;
&lt;br /&gt;
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown&lt;br /&gt;
mode &amp;quot;$mode_system&amp;quot; {&lt;br /&gt;
    bindsym l exec --no-startup-id $Locker, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym e exec --no-startup-id i3-msg exit, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym s exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl suspend, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym h exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl hibernate, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym r exec --no-startup-id systemctl reboot, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode &amp;quot;default&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
    # back to normal: Enter or Escape&lt;br /&gt;
    bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bindsym $mod+Pause mode &amp;quot;$mode_system&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
追加したら {{ic|$mod+pause}} を押すことでプロンプトが表示されます。より複雑な動作の為には、スクリプトに分離し、mode の中で参照してください。[https://gist.github.com/anonymous/c8cd0a59bf4acb273068]&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;br&amp;gt;&lt;br /&gt;
* {{ic|sleep 1}} は小さなディレイを追加することで、サスペンドにより起こりうる競合状態を防ぎます。[https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]&lt;br /&gt;
* {{ic|systemctl poweroff}} への {{ic|-i}} 引数は、たとえ他のユーザーがログインしていたり (これは {{Pkg|polkit}} を必要とします)、&#039;&#039;logind&#039;&#039; が (誤って) そのように認識していてもシャットダウンを行います。[https://bugs.freedesktop.org/show_bug.cgi?id=62676]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他の画面ロッカーについては、[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。&lt;br /&gt;
&lt;br /&gt;
===External displays manual management===&lt;br /&gt;
&lt;br /&gt;
Thanks to [[xrandr]] there are many ways to easily manage systems displays. The below example integrates it in the i3 config file, and behave as the Power Management section above.&lt;br /&gt;
&lt;br /&gt;
Here a laptop with both VGA and HDMI outputs will use a menu selection to switch them On/Off:&lt;br /&gt;
&lt;br /&gt;
 ## Manual management of external displays&lt;br /&gt;
 # Set the shortcuts and what they do&lt;br /&gt;
 set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF&lt;br /&gt;
 mode &amp;quot;$mode_display&amp;quot; {&lt;br /&gt;
     bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     # back to normal: Enter or Escape&lt;br /&gt;
     bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 # Declare here the shortcut to bring the display selection menu&lt;br /&gt;
 bindsym $mod+x mode &amp;quot;$mode_display&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Any window that is still open in a switched Off display will automatically come back to the remaining active display.&lt;br /&gt;
&lt;br /&gt;
The simplest way to determine names of your devices is to plug the device you wish to use and run:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --query&lt;br /&gt;
&lt;br /&gt;
which will output the available, recognized devices and their in-system names to set your config file appropriately. &lt;br /&gt;
&lt;br /&gt;
Refer to the [[xrandr]] page or man page for the complete list of available options, the [http://i3wm.org/docs/userguide.html i3 userguide] and/or the [https://www.reddit.com/r/i3wm i3 FAQ on reddit] for more info.&lt;br /&gt;
&lt;br /&gt;
=== タブまたはスタックによるウェブブラウジング ===&lt;br /&gt;
&lt;br /&gt;
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。&lt;br /&gt;
&lt;br /&gt;
[[uzbl]] など、タブのないウェブブラウザを i3 で管理するには、次の行を {{ic|~/.config/i3/config}} に追加して下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout stacking, focus&lt;br /&gt;
&lt;br /&gt;
これはスタックのウェブブラウジング用で、ウィンドウは縦に表示されます。タブブラウジングと違って、たとえブラウザのウィンドウを大量に開いていても、ウィンドウのタイトルを全て見ることができます。&lt;br /&gt;
&lt;br /&gt;
水平方向のタブブラウジングの方が良い場合は (&#039;タブ&#039;)、次を使って下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout tabbed, focus&lt;br /&gt;
&lt;br /&gt;
=== ワークスペース変数 ===&lt;br /&gt;
&lt;br /&gt;
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]:&lt;br /&gt;
&lt;br /&gt;
 set $WS1 term&lt;br /&gt;
 set $WS2 web&lt;br /&gt;
 set $WS3 misc&lt;br /&gt;
 set $WS4 media&lt;br /&gt;
 set $WS5 code&lt;br /&gt;
&lt;br /&gt;
次にワークスペースの名前を対応する変数で置き換えます:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+1          workspace $WS1&lt;br /&gt;
 ...&lt;br /&gt;
 bindsym $mod+Shift+1    move container to workspace $WS1&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== フロートするダイアログを正しく扱う ===&lt;br /&gt;
&lt;br /&gt;
デフォルトではダイアログはフロートモードで開かれることになっていますが [http://i3wm.org/docs/userguide.html#_floating]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには {{pkg|xorg-xprop}} でダイアログの {{ic|WM_WINDOW_ROLE}} をチェックして適切なルールを {{ic|~/.i3/config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 for_window [window_role=&amp;quot;pop-up&amp;quot;] floating enable&lt;br /&gt;
 for_window [window_role=&amp;quot;task_dialog&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
また、タイトルルールと正規表現を使うこともできます:&lt;br /&gt;
&lt;br /&gt;
 for_window [title=&amp;quot;Preferences$&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
または {{ic|WM_CLASS}}:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;(?i)mplayer&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
=== ネットワークのダウンロード・アップロード速度をステータスバーに表示 ===&lt;br /&gt;
&lt;br /&gt;
上流の [http://code.stapelberg.de/git/i3status/tree/contrib/measure-net-speed.bash スクリプト] を編集します。&lt;br /&gt;
&lt;br /&gt;
* システムに応じて両方のネットワークカードをリネームしてください ({{ic|ip addr}} を使ってください)&lt;br /&gt;
* {{ic|/sys/devices}} にあるそれらを見つけて適切に置き換えます:&lt;br /&gt;
 $ find /sys/devices -name &#039;&#039;network_interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|PCI の位置に依存しない為に {{ic|/sys/class/net/&#039;&#039;interface&#039;&#039;/statistics/}} を使います。}}&lt;br /&gt;
&lt;br /&gt;
スクリプトを適切な場所 (例: {{ic|~/.config/i3}}) に保存して、ステータスプログラムから指してください。&lt;br /&gt;
&lt;br /&gt;
== パッチ ==&lt;br /&gt;
&lt;br /&gt;
上流にマージされてないパッチがあてられたパッケージが [[AUR]] には存在します:&lt;br /&gt;
&lt;br /&gt;
* {{App|i3bar-icons-git|i3bar で XBM アイコンを表示|https://github.com/ashinkarov/i3-extras|{{AUR|i3bar-icons-git}}}}&lt;br /&gt;
* {{App|i3-smart-border|スマートボーダー|https://github.com/ashinkarov/i3-extras|{{AUR|i3-smart-border}}}}&lt;br /&gt;
* {{App|i3-wm-iconpatch|タイトルバーアイコンのサポート|https://github.com/ashinkarov/i3-extras|{{AUR|i3-wm-iconpatch}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 一般 ===&lt;br /&gt;
&lt;br /&gt;
多くの場合、バグは開発版である {{AUR|i3-git}} と {{AUR|i3status-git}} で修正されているため上流では開発版を使ってエラーが再現できるかどうか訊いてきます。 [http://i3wm.org/docs/debugging.html] [[デバッグ - トレースを取得#一般]]も見てください。&lt;br /&gt;
&lt;br /&gt;
=== i3 メッセージバーのボタンが動作しない ===&lt;br /&gt;
&lt;br /&gt;
{{ic|i3-nagbar}} の &amp;quot;Edit config&amp;quot; などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
=== タイル化されたターミナルで行の折り返しがおかしい ===&lt;br /&gt;
&lt;br /&gt;
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。&lt;br /&gt;
&lt;br /&gt;
=== マウスカーソルが待機状態のままになる ===&lt;br /&gt;
&lt;br /&gt;
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。&lt;br /&gt;
&lt;br /&gt;
特定のアプリケーションでこの問題を解決するには、{{ic|--no-startup-id}} パラメータを使って下さい、例えば:&lt;br /&gt;
 exec --no-startup-id ~/script&lt;br /&gt;
 bindsym $mod+d exec --no-startup-id dmenu_run&lt;br /&gt;
&lt;br /&gt;
このアニメーションを全てのアプリケーションで無効にするには、[[カーソルテーマ]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインドが反応しない ===&lt;br /&gt;
&lt;br /&gt;
標準のキーバインド (キーを押して実行) を使っている場合、[[スクリーンショットの取得#scrot|scrot]] などのツールが動作しないことがあります。そのようなときは、{{ic|--release}} でキーをリリースしてからコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym --release Print exec --no-startup-id scrot &#039;%Y-%m-%d$&lt;br /&gt;
 bindsym --release Shift+Print exec --no-startup-id scrot &#039;%Y$&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/docs/userguide.html#keybindings] を参照。&lt;br /&gt;
&lt;br /&gt;
=== ティアリング ===&lt;br /&gt;
&lt;br /&gt;
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
=== トレイアイコンが表示されない ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの {{ic|tray_output primary}} ディレクティブでは &#039;&#039;xrandr&#039;&#039; でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [https://github.com/i3/i3/issues/1144]。詳しくは [[Xrandr]] を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://i3wm.org 公式ウェブサイト]&lt;br /&gt;
* [http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki]&lt;br /&gt;
* [http://code.stapelberg.de/git/i3 i3 ソースコード]&lt;br /&gt;
* [https://github.com/ashinkarov/i3-extras i3-extras] - Collection of scripts and patches&lt;br /&gt;
* [https://github.com/acrisci/i3ipc-glib i3ipc-glib] - i3 拡張のためのライブラリ&lt;br /&gt;
* [https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby&lt;br /&gt;
* [http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arch Linux フォーラム&#039;&#039;&#039;&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;スクリーンキャスト&#039;&#039;&#039;&lt;br /&gt;
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast]&lt;br /&gt;
* [https://www.youtube.com/watch?v=j1I63wGcvU4&amp;amp;index=1&amp;amp;list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5396</id>
		<title>I3</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5396"/>
		<updated>2016-06-23T16:09:31Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 翻訳&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:i3}}&lt;br /&gt;
[[Category:タイル型ウィンドウマネージャ]]&lt;br /&gt;
[[Category:動的ウィンドウマネージャ]]&lt;br /&gt;
[[en:i3]]&lt;br /&gt;
[[ko:I3]]&lt;br /&gt;
[[ru:I3]]&lt;br /&gt;
[[zh-CN:I3]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|デスクトップ環境}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|ファイルマネージャの機能}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related|タイル型ウィンドウマネージャの比較}}&lt;br /&gt;
{{Related|クリップボード}}&lt;br /&gt;
{{Related|自動起動#グラフィカル}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/ i3] は [[wmii]] にインスパイアされて開発された動的[[Wikipedia:ja:タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]で、主に開発者や上級ユーザーをターゲットにしています。&lt;br /&gt;
&lt;br /&gt;
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[vim]] のような様々なモードなどです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Grp|i3}} [[Pacman#パッケージグループのインストール|パッケージグループ]]を[[インストール]]してください。このグループにはウィンドウマネージャの {{Pkg|i3-wm}} と、[[Wikipedia:ja:標準ストリーム#標準出力 (stdout)|標準出力]]によってステータスラインに書き込みを行う {{Pkg|i3status}}、そして画面ロッカーの {{Pkg|i3lock}} が含まれています。&lt;br /&gt;
&lt;br /&gt;
追加のパッケージは [[Arch User Repository]] から利用可能です。例は [[#パッチ|パッチ]] セクションを見てください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイマネージャ ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} はウィンドウマネージャを起動する [[Xsession]] として {{ic|i3.desktop}} を含んでいます。&lt;br /&gt;
{{ic|i3-with-shmlog.desktop}} はログを有効にします (デバッグに役立ちます)。&lt;br /&gt;
{{AUR|i3-gnome}} は {{ic|i3}} を [[GNOME]] に統合します。 &lt;br /&gt;
&lt;br /&gt;
=== xinitrc ===&lt;br /&gt;
&lt;br /&gt;
[[xinitrc]] を編集して、次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3&lt;br /&gt;
&lt;br /&gt;
i3 からの出力を記録したいときは、代わりに次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3 -V &amp;gt;&amp;gt; ~/.config/i3/i3log-$(date +&#039;%F-%k-%M-%S&#039;) 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
キーのマッピングに問題が起こるときは (例: セミコロンの {{ic|;}})、{{Pkg|xorg-xev}} を使うか、または[[特別なキーボードキー]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
 $ xev | grep -A2 --line-buffered &#039;^KeyRelease&#039; | sed -n &#039;/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p&#039;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインド ===&lt;br /&gt;
&lt;br /&gt;
i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。&lt;br /&gt;
&lt;br /&gt;
デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。&lt;br /&gt;
&lt;br /&gt;
Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
=== コンテナ ===&lt;br /&gt;
&lt;br /&gt;
i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
i3 はアプリケーションランチャーとして [[dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の {{AUR|dmenu2}} を使うこともできます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} には &#039;&#039;dmenu&#039;&#039; の [[Wikipedia:ja:Perl|Perl]] ラッパーである &#039;&#039;i3-dmenu-desktop&#039;&#039; が含まれており、[[デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは &#039;&#039;i3-dmenu-desktop&#039;&#039; とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。この記事では &#039;&#039;i3&#039;&#039; の設定ファイルは {{ic|~/.config}} に置くことにします (&#039;&#039;i3-config-wizard&#039;&#039; では {{ic|~/.i3/config}} に作成されます)。&lt;br /&gt;
&lt;br /&gt;
=== 設定ウィザードとキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3&#039;&#039; を最初に起動したとき、設定ウィザードの &#039;&#039;i3-config-wizard&#039;&#039; が実行されます。このツールは {{ic|/etc/i3/config.keycodes}} にあるテンプレート設定ファイルを書き換えることで {{ic|~/.i3/config}} を作成します。デフォルトテンプレートには以下の2つの変更が加えられます:&lt;br /&gt;
&lt;br /&gt;
# ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。{{ic|set $mod Mod1}} のような行がテンプレートに追加されます。&lt;br /&gt;
# ユーザーの現在のキーボードレイアウトにあわせて &#039;&#039;bindcode&#039;&#039; 行をすべて &#039;&#039;bindsym&#039;&#039; 行で置き換えます。&lt;br /&gt;
&lt;br /&gt;
後者が実行されることで、4つのナビゲーションショートカット {{ic|j}}, {{ic|k}}, {{ic|l}} と Qwerty キーボードの&amp;quot;セミコロン&amp;quot;が正しいキーシムにマッピングされます。例えば [[Dvorak]] キーボードなら {{ic|h}}, {{ic|t}}, {{ic|n}}, {{ic|s}} になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。&amp;quot;再起動&amp;quot;は {{ic|$mod1+r}} ではなく {{ic|$mod1+p}} に、&amp;quot;横に分割&amp;quot;は {{ic|$mod1+h}} ではなく {{ic|$mod1+d}} にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は {{ic|/etc/i3/config}} を {{ic|~/.config/i3/config}} (または {{ic|~/.i3/config}}) にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。&lt;br /&gt;
&lt;br /&gt;
=== カラースキーム ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。&lt;br /&gt;
&lt;br /&gt;
* {{App|i3-style|JSON オブジェクトで保存されたテーマによって所定の設定を変更します。テーマは何度もカラースキームを調整・修正できるように作られています。|https://github.com/acrisci/i3-style|{{Aur|nodejs-i3-style}}}}&lt;br /&gt;
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}}&lt;br /&gt;
&lt;br /&gt;
=== i3bar ===&lt;br /&gt;
&lt;br /&gt;
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
    output            LVDS1&lt;br /&gt;
    status_command    i3status&lt;br /&gt;
    position          top&lt;br /&gt;
    mode              hide&lt;br /&gt;
    workspace_buttons yes&lt;br /&gt;
    tray_output       none&lt;br /&gt;
    &lt;br /&gt;
    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1&lt;br /&gt;
&lt;br /&gt;
    colors {&lt;br /&gt;
        background #000000&lt;br /&gt;
        statusline #ffffff&lt;br /&gt;
&lt;br /&gt;
        focused_workspace  #ffffff #285577&lt;br /&gt;
        active_workspace   #ffffff #333333&lt;br /&gt;
        inactive_workspace #888888 #222222&lt;br /&gt;
        urgent_workspace   #ffffff #900000&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3bar の代替 ====&lt;br /&gt;
&lt;br /&gt;
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。&lt;br /&gt;
&lt;br /&gt;
[[Xfce#パネル|XFCE パネル]]の場合、次の行を {{ic|~/.config/i3/config}} のどこかに追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec --no-startup-id xfce4-panel --disable-wm-check&lt;br /&gt;
&lt;br /&gt;
{{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|~/.config/i3/config}} の {{ic|&amp;lt;nowiki&amp;gt;bar{ }&amp;lt;/nowiki&amp;gt;}} セクションをコメントアウトすることで i3bar は無効にできます。&lt;br /&gt;
もしくは以下を使ってください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|&lt;br /&gt;
# bar toggle, hide or show &lt;br /&gt;
bindsym $mod+m bar mode toggle&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この方法では好きなようにバーを表示したり隠したりできます。&lt;br /&gt;
&lt;br /&gt;
=== i3status ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定ファイルをホームディレクトリにコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 $ cp /etc/i3status.conf ~/.config/i3status/config&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では定義されていないプラグインがあり、いくつかの設定あなたのシステムでは無効かもしれません。&lt;br /&gt;
そのためシステムに応じて設定を更新する必要があります。詳しくは {{ic|man 1 i3status}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3status の代替 ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [http://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}&lt;br /&gt;
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}}&lt;br /&gt;
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}}&lt;br /&gt;
* {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar}}&lt;br /&gt;
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}}&lt;br /&gt;
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}}&lt;br /&gt;
* {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは {{Aur|j4status-plugins-git}} に入っています。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== i3status のラッパー ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[en2:h2status|h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}}}&lt;br /&gt;
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}}&lt;br /&gt;
* {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Aur|py3status}}}}&lt;br /&gt;
&lt;br /&gt;
==== ステータスバーにアイコンフォント ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3bar&#039;&#039; には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。&lt;br /&gt;
&lt;br /&gt;
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}}&lt;br /&gt;
* {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}}&lt;br /&gt;
&lt;br /&gt;
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります:&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
  ...&lt;br /&gt;
  font pango:DejaVu Sans Mono, Icons 8&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax] に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。&lt;br /&gt;
各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。&lt;br /&gt;
&lt;br /&gt;
最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば &amp;quot;ハート&amp;quot; アイコン (ユニコード番号 f004) を入力するには:&lt;br /&gt;
&lt;br /&gt;
* 様々な GUI のテキストエディタ (例: [[gedit]] や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Vim]] (挿入モード): {{ic|Ctrl+v}}, {{ic|uf004}}&lt;br /&gt;
* [[urxvt]]: {{ic|Ctrl+Shift}} を押して、{{ic|f004}} を入力&lt;br /&gt;
&lt;br /&gt;
=== ターミナルエミュレータ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他のターミナルを起動するには、{{ic|~/.config/i3/config}} の次の行を変更してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+Return exec i3-sensible-terminal&lt;br /&gt;
&lt;br /&gt;
または、{{ic|$TERMINAL}} 変数を[[環境変数#ユーザーごと|ローカルで定義]]してください:&lt;br /&gt;
&lt;br /&gt;
 $ export TERMINAL=&#039;&#039;yourterminal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 高度なウィンドウナビゲーション ===&lt;br /&gt;
&lt;br /&gt;
[http://www.slackword.net/?p=657 i3 window Navigation Tips] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Jump to open window ===&lt;br /&gt;
&lt;br /&gt;
*{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/proxypoke/quickswitch-for-i3|{{Aur|quickswitch-i3}}}}&lt;br /&gt;
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}}&lt;br /&gt;
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}}&lt;br /&gt;
*{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Pkg|rofi}}}}&lt;br /&gt;
&lt;br /&gt;
=== Jump to urgent window ===&lt;br /&gt;
&lt;br /&gt;
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/]&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+x [urgent=latest] focus&lt;br /&gt;
&lt;br /&gt;
=== ウィンドウレイアウトの保存と復元 ===&lt;br /&gt;
&lt;br /&gt;
バージョン 4.8 から、&#039;&#039;i3&#039;&#039; ワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: [[公式リポジトリ]]から {{Pkg|perl-anyevent-i3}} と {{Pkg|perl-json-xs}}。&lt;br /&gt;
&lt;br /&gt;
{{note| This section only provides quick tutorial on how to save the current window layout of a single workspace and how to restore it for later use. Refer to the [http://i3wm.org/docs/layout-saving.html official documentation] for more details}}&lt;br /&gt;
&lt;br /&gt;
==== Save the current window layout of a single workspace ====&lt;br /&gt;
&lt;br /&gt;
To save the current window layout, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# First, execute various commands to open windows in a preferred workspace and resize them if needed. Make sure to write down each executed command for each window.&lt;br /&gt;
# Now, in a new workspace, open a terminal and run the following: {{bc|i3-save-tree --workspace N &amp;gt; ~/.i3/workspace_N.json}} where N is the number of the preferred workspace. This will save the current layout of workspace N to the file {{ic|~/.i3/workspace_N.json}}.&lt;br /&gt;
# The newly created file needs to be edited, however this may be done with the following commands: {{bc|&amp;lt;nowiki&amp;gt;tail -n +2 ~/.i3/workspace_N.json | fgrep -v &#039;// splitv&#039; | sed &#039;s|//||g&#039; &amp;gt; ~/.i3/workspace_N.json&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Restore the window layout of the workspace ====&lt;br /&gt;
&lt;br /&gt;
There are two ways to restore the layout of the workspace: by writing a script, or by editing {{ic|~/.i3/config}} to automatically load the layout. In this section only the first case will be considered, refer to the [http://i3wm.org/docs/layout-saving.html#_restoring_the_layout official documentation] for the second case.&lt;br /&gt;
&lt;br /&gt;
To restore the saved layout in the previous section, write a file named {{ic|load_layout.sh}} with the following contents:&lt;br /&gt;
&lt;br /&gt;
* The starting lines:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
where M is the number of the workspace in which you would like to load the previously saved layout and N is the number of workspace saved in the previous section.&lt;br /&gt;
* And the commands used in the previous section to get the preferred windows, but enclosed in parentheses and with an ampersand appended before the last parentheses.&lt;br /&gt;
&lt;br /&gt;
For example, if the saved layout contained three {{ic|uxterm}} windows:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# First we append the saved layout of worspace N to workspace M&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# And finally we fill the containers with the programs they had&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Then set the file as executable:&lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
And finally, the layout of worskpace N can be loaded onto to workspace M by running:&lt;br /&gt;
&lt;br /&gt;
 ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
{{tip|Adding {{ic|bindsym $mod+g exec ~/load_layout.sh}} to {{ic|~/.i3/config}} and restarting i3 will bind Mod+g to run the above script.}}&lt;br /&gt;
&lt;br /&gt;
{{note|If the above script does not work properly, refer to the [http://i3wm.org/docs/layout-saving.html#_editing_layout_files  official documentation]. The &#039;&#039;swallows&#039;&#039; sections of {{ic|~/.i3/workspace_N.json}} needs to be manually edited.}}&lt;br /&gt;
&lt;br /&gt;
=== スクラッチパッドコンテナ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、[http://i3wm.org/docs/userguide.html#_scratchpad スクラッチパッド] は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。&lt;br /&gt;
&lt;br /&gt;
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。&lt;br /&gt;
&lt;br /&gt;
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ ({{ic|Mod+Shift+Space}})、スクラッチパッドに移動します ({{ic|Mod+Shift+-}})。これで自由にコンテナを分割できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[tmux]] などのマルチプレクサを使っても良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== スクリーンセーバーと電源管理 ===&lt;br /&gt;
&lt;br /&gt;
With [[電源管理#xss-lock]] you can register a screenlocker for your i3 session.&lt;br /&gt;
&lt;br /&gt;
Alternatively, &#039;&#039;xautolock&#039;&#039; can lock the screen after awakening from sleep or hibernation with the {{ic|-lockaftersleep}} option. The {{ic|-time}} option locks the screen after a given time period.&lt;br /&gt;
&lt;br /&gt;
 xautolock -time 10 -locker &amp;quot;i3lock -i &#039;background_image.png&#039;&amp;quot; -lockaftersleep &amp;amp;&lt;br /&gt;
&lt;br /&gt;
See also [[DPMS]].&lt;br /&gt;
&lt;br /&gt;
=== シャットダウン, 再起動, 画面ロック ===&lt;br /&gt;
&lt;br /&gt;
シャットダウン、再起動、画面ロックのキーコンビネーションを {{ic|~/.config/i3/config}} に追加することができます。以下の例では[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
set $Locker i3lock &amp;amp;&amp;amp; sleep 1&lt;br /&gt;
&lt;br /&gt;
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown&lt;br /&gt;
mode &amp;quot;$mode_system&amp;quot; {&lt;br /&gt;
    bindsym l exec --no-startup-id $Locker, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym e exec --no-startup-id i3-msg exit, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym s exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl suspend, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym h exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl hibernate, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym r exec --no-startup-id systemctl reboot, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode &amp;quot;default&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
    # back to normal: Enter or Escape&lt;br /&gt;
    bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bindsym $mod+Pause mode &amp;quot;$mode_system&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Once completed, you will be presented with a prompt whenever you press {{ic|$mod+pause}}. For more complex behaviour, use a separate script, and refer to it in the mode. [https://gist.github.com/anonymous/c8cd0a59bf4acb273068]&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;br&amp;gt;&lt;br /&gt;
* {{ic|sleep 1}} adds a small delay to prevent possible race conditions with suspend [https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]&lt;br /&gt;
* The {{ic|-i}} argument for {{ic|systemctl poweroff}} causes a shutdown even if other users are logged-in (this requires {{Pkg|polkit}}), or when &#039;&#039;logind&#039;&#039; (wrongly) assumes so. [https://bugs.freedesktop.org/show_bug.cgi?id=62676]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他の画面ロッカーについては、[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。&lt;br /&gt;
&lt;br /&gt;
===External displays manual management===&lt;br /&gt;
&lt;br /&gt;
Thanks to [[xrandr]] there are many ways to easily manage systems displays. The below example integrates it in the i3 config file, and behave as the Power Management section above.&lt;br /&gt;
&lt;br /&gt;
Here a laptop with both VGA and HDMI outputs will use a menu selection to switch them On/Off:&lt;br /&gt;
&lt;br /&gt;
 ## Manual management of external displays&lt;br /&gt;
 # Set the shortcuts and what they do&lt;br /&gt;
 set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF&lt;br /&gt;
 mode &amp;quot;$mode_display&amp;quot; {&lt;br /&gt;
     bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     # back to normal: Enter or Escape&lt;br /&gt;
     bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 # Declare here the shortcut to bring the display selection menu&lt;br /&gt;
 bindsym $mod+x mode &amp;quot;$mode_display&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Any window that is still open in a switched Off display will automatically come back to the remaining active display.&lt;br /&gt;
&lt;br /&gt;
The simplest way to determine names of your devices is to plug the device you wish to use and run:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --query&lt;br /&gt;
&lt;br /&gt;
which will output the available, recognized devices and their in-system names to set your config file appropriately. &lt;br /&gt;
&lt;br /&gt;
Refer to the [[xrandr]] page or man page for the complete list of available options, the [http://i3wm.org/docs/userguide.html i3 userguide] and/or the [https://www.reddit.com/r/i3wm i3 FAQ on reddit] for more info.&lt;br /&gt;
&lt;br /&gt;
=== タブまたはスタックによるウェブブラウジング ===&lt;br /&gt;
&lt;br /&gt;
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。&lt;br /&gt;
&lt;br /&gt;
[[uzbl]] など、タブのないウェブブラウザを i3 で管理するには、次の行を {{ic|~/.config/i3/config}} に追加して下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout stacking, focus&lt;br /&gt;
&lt;br /&gt;
これはスタックのウェブブラウジング用で、ウィンドウは縦に表示されます。タブブラウジングと違って、たとえブラウザのウィンドウを大量に開いていても、ウィンドウのタイトルを全て見ることができます。&lt;br /&gt;
&lt;br /&gt;
水平方向のタブブラウジングの方が良い場合は (&#039;タブ&#039;)、次を使って下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout tabbed, focus&lt;br /&gt;
&lt;br /&gt;
=== ワークスペース変数 ===&lt;br /&gt;
&lt;br /&gt;
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]:&lt;br /&gt;
&lt;br /&gt;
 set $WS1 term&lt;br /&gt;
 set $WS2 web&lt;br /&gt;
 set $WS3 misc&lt;br /&gt;
 set $WS4 media&lt;br /&gt;
 set $WS5 code&lt;br /&gt;
&lt;br /&gt;
次にワークスペースの名前を対応する変数で置き換えます:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+1          workspace $WS1&lt;br /&gt;
 ...&lt;br /&gt;
 bindsym $mod+Shift+1    move container to workspace $WS1&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== フロートするダイアログを正しく扱う ===&lt;br /&gt;
&lt;br /&gt;
デフォルトではダイアログはフロートモードで開かれることになっていますが [http://i3wm.org/docs/userguide.html#_floating]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには {{pkg|xorg-xprop}} でダイアログの {{ic|WM_WINDOW_ROLE}} をチェックして適切なルールを {{ic|~/.i3/config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 for_window [window_role=&amp;quot;pop-up&amp;quot;] floating enable&lt;br /&gt;
 for_window [window_role=&amp;quot;task_dialog&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
また、タイトルルールと正規表現を使うこともできます:&lt;br /&gt;
&lt;br /&gt;
 for_window [title=&amp;quot;Preferences$&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
または {{ic|WM_CLASS}}:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;(?i)mplayer&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
=== ネットワークのダウンロード・アップロード速度をステータスバーに表示 ===&lt;br /&gt;
&lt;br /&gt;
上流の [http://code.stapelberg.de/git/i3status/tree/contrib/measure-net-speed.bash スクリプト] を編集します。&lt;br /&gt;
&lt;br /&gt;
* システムに応じて両方のネットワークカードをリネームしてください ({{ic|ip addr}} を使ってください)&lt;br /&gt;
* {{ic|/sys/devices}} にあるそれらを見つけて適切に置き換えます:&lt;br /&gt;
 $ find /sys/devices -name &#039;&#039;network_interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|PCI の位置に依存しない為に {{ic|/sys/class/net/&#039;&#039;interface&#039;&#039;/statistics/}} を使います。}}&lt;br /&gt;
&lt;br /&gt;
スクリプトを適切な場所 (例: {{ic|~/.config/i3}}) に保存して、ステータスプログラムから指してください。&lt;br /&gt;
&lt;br /&gt;
== パッチ ==&lt;br /&gt;
&lt;br /&gt;
上流にマージされてないパッチがあてられたパッケージが [[AUR]] には存在します:&lt;br /&gt;
&lt;br /&gt;
* {{App|i3bar-icons-git|i3bar で XBM アイコンを表示|https://github.com/ashinkarov/i3-extras|{{AUR|i3bar-icons-git}}}}&lt;br /&gt;
* {{App|i3-smart-border|スマートボーダー|https://github.com/ashinkarov/i3-extras|{{AUR|i3-smart-border}}}}&lt;br /&gt;
* {{App|i3-wm-iconpatch|タイトルバーアイコンのサポート|https://github.com/ashinkarov/i3-extras|{{AUR|i3-wm-iconpatch}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 一般 ===&lt;br /&gt;
&lt;br /&gt;
多くの場合、バグは開発版である {{AUR|i3-git}} と {{AUR|i3status-git}} で修正されているため上流では開発版を使ってエラーが再現できるかどうか訊いてきます。 [http://i3wm.org/docs/debugging.html] [[デバッグ - トレースを取得#一般]]も見てください。&lt;br /&gt;
&lt;br /&gt;
=== i3 メッセージバーのボタンが動作しない ===&lt;br /&gt;
&lt;br /&gt;
{{ic|i3-nagbar}} の &amp;quot;Edit config&amp;quot; などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
=== タイル化されたターミナルで行の折り返しがおかしい ===&lt;br /&gt;
&lt;br /&gt;
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。&lt;br /&gt;
&lt;br /&gt;
=== マウスカーソルが待機状態のままになる ===&lt;br /&gt;
&lt;br /&gt;
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。&lt;br /&gt;
&lt;br /&gt;
特定のアプリケーションでこの問題を解決するには、{{ic|--no-startup-id}} パラメータを使って下さい、例えば:&lt;br /&gt;
 exec --no-startup-id ~/script&lt;br /&gt;
 bindsym $mod+d exec --no-startup-id dmenu_run&lt;br /&gt;
&lt;br /&gt;
このアニメーションを全てのアプリケーションで無効にするには、[[カーソルテーマ]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインドが反応しない ===&lt;br /&gt;
&lt;br /&gt;
標準のキーバインド (キーを押して実行) を使っている場合、[[スクリーンショットの取得#scrot|scrot]] などのツールが動作しないことがあります。そのようなときは、{{ic|--release}} でキーをリリースしてからコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym --release Print exec --no-startup-id scrot &#039;%Y-%m-%d$&lt;br /&gt;
 bindsym --release Shift+Print exec --no-startup-id scrot &#039;%Y$&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/docs/userguide.html#keybindings] を参照。&lt;br /&gt;
&lt;br /&gt;
=== ティアリング ===&lt;br /&gt;
&lt;br /&gt;
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
=== トレイアイコンが表示されない ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの {{ic|tray_output primary}} ディレクティブでは &#039;&#039;xrandr&#039;&#039; でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [https://github.com/i3/i3/issues/1144]。詳しくは [[Xrandr]] を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://i3wm.org 公式ウェブサイト]&lt;br /&gt;
* [http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki]&lt;br /&gt;
* [http://code.stapelberg.de/git/i3 i3 ソースコード]&lt;br /&gt;
* [https://github.com/ashinkarov/i3-extras i3-extras] - Collection of scripts and patches&lt;br /&gt;
* [https://github.com/acrisci/i3ipc-glib i3ipc-glib] - i3 拡張のためのライブラリ&lt;br /&gt;
* [https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby&lt;br /&gt;
* [http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arch Linux フォーラム&#039;&#039;&#039;&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;スクリーンキャスト&#039;&#039;&#039;&lt;br /&gt;
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast]&lt;br /&gt;
* [https://www.youtube.com/watch?v=j1I63wGcvU4&amp;amp;index=1&amp;amp;list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5395</id>
		<title>I3</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=I3&amp;diff=5395"/>
		<updated>2016-06-23T15:48:22Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: 英語と同期(未翻訳を含む)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:i3}}&lt;br /&gt;
[[Category:タイル型ウィンドウマネージャ]]&lt;br /&gt;
[[Category:動的ウィンドウマネージャ]]&lt;br /&gt;
[[en:i3]]&lt;br /&gt;
[[ko:I3]]&lt;br /&gt;
[[ru:I3]]&lt;br /&gt;
[[zh-CN:I3]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|デスクトップ環境}}&lt;br /&gt;
{{Related|ディスプレイマネージャ}}&lt;br /&gt;
{{Related|ファイルマネージャの機能}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related|タイル型ウィンドウマネージャの比較}}&lt;br /&gt;
{{Related|クリップボード}}&lt;br /&gt;
{{Related|自動起動#グラフィカル}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/ i3] は [[wmii]] にインスパイアされて開発された動的[[Wikipedia:ja:タイル型ウィンドウマネージャ|タイル型ウィンドウマネージャ]]で、主に開発者や上級ユーザーをターゲットにしています。&lt;br /&gt;
&lt;br /&gt;
i3 が公表している目標は、わかりやすいドキュメント、適切なマルチモニタサポート、ウィンドウのツリー構造、[[vim]] のような様々なモードなどです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]]から {{Grp|i3}} [[Pacman#パッケージグループのインストール|パッケージグループ]]を[[インストール]]してください。このグループにはウィンドウマネージャの {{Pkg|i3-wm}} と、[[Wikipedia:ja:標準ストリーム#標準出力 (stdout)|標準出力]]によってステータスラインに書き込みを行う {{Pkg|i3status}}、そして画面ロッカーの {{Pkg|i3lock}} が含まれています。&lt;br /&gt;
&lt;br /&gt;
追加のパッケージは [[Arch User Repository]] から利用可能です。例は [[#パッチ|パッチ]] セクションを見てください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイマネージャ ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} はウィンドウマネージャを起動する [[Xsession]] として {{ic|i3.desktop}} を含んでいます。&lt;br /&gt;
{{ic|i3-with-shmlog.desktop}} はログを有効にします (デバッグに役立ちます)。&lt;br /&gt;
{{AUR|i3-gnome}} は {{ic|i3}} を [[GNOME]] に統合します。 &lt;br /&gt;
&lt;br /&gt;
=== xinitrc ===&lt;br /&gt;
&lt;br /&gt;
[[xinitrc]] を編集して、次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3&lt;br /&gt;
&lt;br /&gt;
i3 からの出力を記録したいときは、代わりに次の行を追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec i3 -V &amp;gt;&amp;gt; ~/.config/i3/i3log-$(date +&#039;%F-%k-%M-%S&#039;) 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
キーのマッピングに問題が起こるときは (例: セミコロンの {{ic|;}})、{{Pkg|xorg-xev}} を使うか、または[[特別なキーボードキー]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
 $ xev | grep -A2 --line-buffered &#039;^KeyRelease&#039; | sed -n &#039;/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p&#039;&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
詳しい情報は [http://i3wm.org/docs 公式のドキュメント]、すなわち [http://i3wm.org/docs/userguide.html i3 User’s Guide] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインド ===&lt;br /&gt;
&lt;br /&gt;
i3 では修飾キー ({{ic|$mod}} と表記されます) を使ってコマンドを呼び出します。デフォルトでは {{ic|Alt}} (Mod1) ですが、{{ic|Super}} (Mod4) も良く使われます。大抵のキーボードでは Super は Windows アイコンが印されたキーになります。Apple キーボードなら Command キーです。&lt;br /&gt;
&lt;br /&gt;
デフォルトのキーバインドについては [http://i3wm.org/docs/refcard.html i3 リファレンスカード] や [http://i3wm.org/docs/userguide.html#_using_i3 Using i3] を見て下さい。新しくショートカットを追加する方法は [http://i3wm.org/docs/userguide.html#keybindings Keyboard bindings] に載っています。&lt;br /&gt;
&lt;br /&gt;
Qwerty 以外のキーボード配列を使っている場合は[[#設定ウィザードとキーボードレイアウト|設定ウィザードとキーボードレイアウト]]に書かれているように設定ウィザードを迂回すると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
=== コンテナ ===&lt;br /&gt;
&lt;br /&gt;
i3 はコンテナを基本単位としたツリー構造でウィンドウを管理します。この構造は縦や横に分岐していきます。デフォルトではコンテナはタイル状に並べられますが、タブでまとめたり積み重ねるレイアウトに設定したり、フロートさせることもできます (ダイアログウィンドウのように)。フローティングウィンドウは常に一番上に表示されます。&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_tree i3 Tree] や [http://www.youtube.com/watch?v=AWA8Pl57UBY Containers and the tree data structure] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
i3 はアプリケーションランチャーとして [[dmenu]] を使っており、デフォルトでは {{ic|$mod+d}} で呼び出せます。dmenu の代わりに、透過機能や xft フォントのサポートなどが搭載されている AUR の {{AUR|dmenu2}} を使うこともできます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|i3-wm}} には &#039;&#039;dmenu&#039;&#039; の [[Wikipedia:ja:Perl|Perl]] ラッパーである &#039;&#039;i3-dmenu-desktop&#039;&#039; が含まれており、[[デスクトップエントリ]]を利用してインストールされている全てのアプリケーションのリストを作成します。また、{{AUR|j4-dmenu-desktop-git}} パッケージを使うこともできます。こちらは &#039;&#039;i3-dmenu-desktop&#039;&#039; とほぼ同様に使える上に、高速に動作します [https://github.com/enkore/j4-dmenu-desktop/blob/master/README.md]。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#configuring Configuring i3] を参照。この記事では &#039;&#039;i3&#039;&#039; の設定ファイルは {{ic|~/.config}} に置くことにします (&#039;&#039;i3-config-wizard&#039;&#039; では {{ic|~/.i3/config}} に作成されます)。&lt;br /&gt;
&lt;br /&gt;
=== 設定ウィザードとキーボードレイアウト ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3&#039;&#039; を最初に起動したとき、設定ウィザードの &#039;&#039;i3-config-wizard&#039;&#039; が実行されます。このツールは {{ic|/etc/i3/config.keycodes}} にあるテンプレート設定ファイルを書き換えることで {{ic|~/.i3/config}} を作成します。デフォルトテンプレートには以下の2つの変更が加えられます:&lt;br /&gt;
&lt;br /&gt;
# ウィザードはデフォルトの修飾キーを何にするかユーザーに尋ねます。{{ic|set $mod Mod1}} のような行がテンプレートに追加されます。&lt;br /&gt;
# ユーザーの現在のキーボードレイアウトにあわせて &#039;&#039;bindcode&#039;&#039; 行をすべて &#039;&#039;bindsym&#039;&#039; 行で置き換えます。&lt;br /&gt;
&lt;br /&gt;
後者が実行されることで、4つのナビゲーションショートカット {{ic|j}}, {{ic|k}}, {{ic|l}} と Qwerty キーボードの&amp;quot;セミコロン&amp;quot;が正しいキーシムにマッピングされます。例えば [[Dvorak]] キーボードなら {{ic|h}}, {{ic|t}}, {{ic|n}}, {{ic|s}} になります。ただし副作用として他のキーシムのマッピングが変更されるため Dvorak ユーザーはむしろ混乱してしまうかもしれません。&amp;quot;再起動&amp;quot;は {{ic|$mod1+r}} ではなく {{ic|$mod1+p}} に、&amp;quot;横に分割&amp;quot;は {{ic|$mod1+h}} ではなく {{ic|$mod1+d}} にバインドされます。チュートリアルに記載されているバインドと同じ、覚えやすいキーバインドを使いたい場合は {{ic|/etc/i3/config}} を {{ic|~/.config/i3/config}} (または {{ic|~/.i3/config}}) にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
キーボードレイアウトを頻繁に変更するユーザーなどに対応するために、キーコードによる設定も可能です。&lt;br /&gt;
&lt;br /&gt;
=== カラースキーム ===&lt;br /&gt;
&lt;br /&gt;
設定ファイルを使ってウィンドウ装飾の色をカスタマイズすることができますが、構文のためにテーマを作成したり共有するのは現実的ではありません。ユーザーが様々なテーマを作るのを楽にさせるプロジェクトが複数存在します。&lt;br /&gt;
&lt;br /&gt;
* {{App|i3-style|JSON オブジェクトで保存されたテーマによって所定の設定を変更します。テーマは何度もカラースキームを調整・修正できるように作られています。|https://github.com/acrisci/i3-style|{{Aur|nodejs-i3-style}}}}&lt;br /&gt;
* {{App|j4-make-config|あなたの設定をテーマのコレクションや個人用の設定パーツ (たとえばホスト用の設定) と組み合わせます。テーマの簡単な変更や、柔軟でダイナミックな設定のカスタマイズを可能にします。|https://github.com/okraits/j4-make-config|{{Aur|j4-make-config-git}}}}&lt;br /&gt;
&lt;br /&gt;
=== i3bar ===&lt;br /&gt;
&lt;br /&gt;
i3bar はワークスペースの情報を表示するほかに、次のセクションで説明している、i3status などに入力を行うこともできます。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
    output            LVDS1&lt;br /&gt;
    status_command    i3status&lt;br /&gt;
    position          top&lt;br /&gt;
    mode              hide&lt;br /&gt;
    workspace_buttons yes&lt;br /&gt;
    tray_output       none&lt;br /&gt;
    &lt;br /&gt;
    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1&lt;br /&gt;
&lt;br /&gt;
    colors {&lt;br /&gt;
        background #000000&lt;br /&gt;
        statusline #ffffff&lt;br /&gt;
&lt;br /&gt;
        focused_workspace  #ffffff #285577&lt;br /&gt;
        active_workspace   #ffffff #333333&lt;br /&gt;
        inactive_workspace #888888 #222222&lt;br /&gt;
        urgent_workspace   #ffffff #900000&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3bar の代替 ====&lt;br /&gt;
&lt;br /&gt;
旧来の[[デスクトップ環境]]に入っているようなパネルを使いたいというユーザーもいるかもしれません。起動時に i3 の中でパネルアプリケーションを起動することで他のパネルを使うことができます。&lt;br /&gt;
&lt;br /&gt;
[[Xfce#パネル|XFCE パネル]]の場合、次の行を {{ic|~/.config/i3/config}} のどこかに追加してください:&lt;br /&gt;
&lt;br /&gt;
 exec --no-startup-id xfce4-panel --disable-wm-check&lt;br /&gt;
&lt;br /&gt;
{{Note|[[デスクトップ環境]]固有のパネル機能は基本的に動作しません (例: ワークスペースやセッションを管理するウィジェット)、ただし i3 の機能がそれによって影響を受けることはないはずです。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|~/.config/i3/config}} の {{ic|&amp;lt;nowiki&amp;gt;bar{ }&amp;lt;/nowiki&amp;gt;}} セクションをコメントアウトすることで i3bar は無効にできます。&lt;br /&gt;
もしくは以下を使ってください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/i3/config|&lt;br /&gt;
# bar toggle, hide or show &lt;br /&gt;
bindsym $mod+m bar mode toggle&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この方法では好きなようにバーを表示したり隠したりできます。&lt;br /&gt;
&lt;br /&gt;
=== i3status ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定ファイルをホームディレクトリにコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 $ cp /etc/i3status.conf ~/.config/i3status/config&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では定義されていないプラグインがあり、いくつかの設定あなたのシステムでは無効かもしれません。&lt;br /&gt;
そのためシステムに応じて設定を更新する必要があります。詳しくは {{ic|man 1 i3status}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
==== i3status の代替 ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[conky]]|拡張性の高いシステムモニター。i3bar で使用する場合は [http://i3wm.org/docs/user-contributed/conky-i3bar.html このチュートリアル] を見て下さい。|https://github.com/brndnmtthws/conky|{{Pkg|conky}}}}&lt;br /&gt;
* {{App|i3blocks|シェルスクリプトで拡張することができます。クリックイベントや割り込み、ブロックごとによるリフレッシュ間隔の定義などを管理可能。|https://github.com/vivien/i3blocks|{{AUR|i3blocks}}}}&lt;br /&gt;
* {{App|i3phtatus|PHP で書かれた i3status の代替。簡単に拡張できます。|https://github.com/mwgg/i3phtatus}}&lt;br /&gt;
* {{App|goi3bar|Go で書かれた i3status の代替。コンポーネントを自由にアップデートすることができます。|https://github.com/denbeigh2000/goi3bar}}&lt;br /&gt;
* {{App|i3pystatus|デフォルトで多数のプラグインと設定オプションがある拡張可能な Python 3 ステータスバー。|https://github.com/enkore/i3pystatus i3pystatus|{{AUR|i3pystatus-git}}}}&lt;br /&gt;
* {{App|i3situation|もうひとつの Python 3 ステータスバージェネレータ。|https://github.com/HarveyHunt/i3situation|{{Aur|i3situation-git}}}}&lt;br /&gt;
* {{App|j4status|C で書かれており、プラグインで設定ができる、ステータスラインを提供します。追加プラグインは {{Aur|j4status-plugins-git}} に入っています。|http://j4status.j4tools.org/|{{Aur|j4status-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== i3status のラッパー ====&lt;br /&gt;
&lt;br /&gt;
* {{App|[[en2:h2status|h2status]]|i3status の Bash ラッパー、カスタム json エントリを入力として、非同期のステータスバーの更新だけでなくクリックイベントの処理が可能。|https://wiki.archlinux.org/index.php/H2status|{{Aur|h2status}}}}&lt;br /&gt;
* {{App|i3cat|[[go]] ベースのラッパーで外部の複数のソースからの入力を繋げることができます。クリックイベントの処理、ユーザーが定義した信号を子プロセスに転送することが可能。|http://vincent-petithory.github.io/i3cat/|{{AUR|i3cat-git}}}}&lt;br /&gt;
* {{App|py3status|Python による拡張可能な i3status ラッパー。|https://github.com/ultrabug/py3status|{{Aur|py3status}}}}&lt;br /&gt;
&lt;br /&gt;
==== ステータスバーにアイコンフォント ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;i3bar&#039;&#039; には XBM アイコンサポートの[[#パッチ|パッチ]]をあてることができますが、代わりにアイコンフォントを使うこともできます。&lt;br /&gt;
&lt;br /&gt;
* {{App|ttf-font-awesome|CSS でカスタマイズできるスケーラブルなベクターアイコン。それぞれの記号の Unicode を記した [http://fortawesome.github.io/Font-Awesome/cheatsheet/ チートシート] があります。|http://fortawesome.github.io/Font-Awesome/|{{AUR|ttf-font-awesome}}}}&lt;br /&gt;
* {{App|ttf-font-icons|Awesome と Ionicons の重複をなくしてサイズを合わせたミックス。DejaVu Sans と Awesome が重複しないようにします。|http://kageurufu.net/icons.pdf|{{AUR|ttf-font-icons}}}}&lt;br /&gt;
&lt;br /&gt;
フォントを混ぜ合わせるには、設定ファイルにフォントのフォールバックを定義してください、以下のように {{ic|,}} でフォントを区切ります:&lt;br /&gt;
{{hc|~/.config/i3/config|2=&lt;br /&gt;
bar {&lt;br /&gt;
  ...&lt;br /&gt;
  font pango:DejaVu Sans Mono, Icons 8&lt;br /&gt;
  ...&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://developer.gnome.org/pango/stable/pango-Fonts.html#pango-font-description-from-string pango syntax] に従って、カンマで区切ったフォントファミリーのリストを記述してそれから一番後ろにサイズをひとつだけ指定してください。&lt;br /&gt;
各フォントにサイズを設定するのは最後のフォントを除いて無視される原因となります。&lt;br /&gt;
&lt;br /&gt;
最後に、アイコングラフをフォーマット文字列にして {{ic|~/.config/i3status/config}} に入力します。入力するために、上でリンクしているチートシートを見てユニコード番号を使います。入力方法はテキストエディタによって異なります。例えば &amp;quot;ハート&amp;quot; アイコン (ユニコード番号 f004) を入力するには:&lt;br /&gt;
&lt;br /&gt;
* 様々な GUI のテキストエディタ (例: [[gedit]] や Leafpad) とターミナル (例: GNOME Terminal, xfce4-terminal): {{ic|ctrl+shift+u}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Emacs]]: {{ic|ctrl+x}}, {{ic|8}}, {{ic|Enter}}, {{ic|f004}}, {{ic|Enter}}&lt;br /&gt;
* [[Vim]] (挿入モード): {{ic|Ctrl+v}}, {{ic|uf004}}&lt;br /&gt;
* [[urxvt]]: {{ic|Ctrl+Shift}} を押して、{{ic|f004}} を入力&lt;br /&gt;
&lt;br /&gt;
=== ターミナルエミュレータ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは {{ic|$mod+Return}} を押すとターミナルを呼び出すスクリプトの {{ic|i3-sensible-terminal}} が起動します。ターミナルを呼び出す順番については {{ic|man i3-sensible-terminal}} を見て下さい。&lt;br /&gt;
&lt;br /&gt;
他のターミナルを起動するには、{{ic|~/.config/i3/config}} の次の行を変更してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+Return exec i3-sensible-terminal&lt;br /&gt;
&lt;br /&gt;
または、{{ic|$TERMINAL}} 変数を[[環境変数#ユーザーごと|ローカルで定義]]してください:&lt;br /&gt;
&lt;br /&gt;
 $ export TERMINAL=&#039;&#039;yourterminal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== 高度なウィンドウナビゲーション ===&lt;br /&gt;
&lt;br /&gt;
[http://www.slackword.net/?p=657 i3 window Navigation Tips] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== Jump to open window ===&lt;br /&gt;
&lt;br /&gt;
*{{App|quickswitch-i3|i3 でウィンドウを素早く切り替え・確認するための Python ユーティリティ。|https://github.com/proxypoke/quickswitch-for-i3|{{Aur|quickswitch-i3}}}}&lt;br /&gt;
*{{App|i3-wm-scripts|正規表現にマッチする名前を持ったウィンドウを検索してジャンプ。|https://github.com/yiuin/i3-wm-scripts||}}&lt;br /&gt;
*{{App|winmenupy|クライアントのリストと一緒に dmenu を起動、ワークスペースの後にソートされます。クライアントを選択するとそのウィンドウにジャンプ。|https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py||}}&lt;br /&gt;
*{{App|rofi|スクラッチパッドウィンドウを検索してジャンプして開く。|https://davedavenport.github.io/rofi/|{{Pkg|rofi}}}}&lt;br /&gt;
&lt;br /&gt;
=== Jump to urgent window ===&lt;br /&gt;
&lt;br /&gt;
{{ic|.i3/config}} に次を追加: [https://faq.i3wm.org/question/853/how-to-jump-to-urgent-workspace/]&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+x [urgent=latest] focus&lt;br /&gt;
&lt;br /&gt;
=== ウィンドウレイアウトの保存と復元 ===&lt;br /&gt;
&lt;br /&gt;
バージョン 4.8 から、&#039;&#039;i3&#039;&#039; ワークスペースレイアウトの保存・復元が可能になっています。これを行うには、次のパッケージが必要です: [[公式リポジトリ]]から {{Pkg|perl-anyevent-i3}} と {{Pkg|perl-json-xs}}。&lt;br /&gt;
&lt;br /&gt;
{{note| This section only provides quick tutorial on how to save the current window layout of a single workspace and how to restore it for later use. Refer to the [http://i3wm.org/docs/layout-saving.html official documentation] for more details}}&lt;br /&gt;
&lt;br /&gt;
==== Save the current window layout of a single workspace ====&lt;br /&gt;
&lt;br /&gt;
To save the current window layout, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# First, execute various commands to open windows in a preferred workspace and resize them if needed. Make sure to write down each executed command for each window.&lt;br /&gt;
# Now, in a new workspace, open a terminal and run the following: {{bc|i3-save-tree --workspace N &amp;gt; ~/.i3/workspace_N.json}} where N is the number of the preferred workspace. This will save the current layout of workspace N to the file {{ic|~/.i3/workspace_N.json}}.&lt;br /&gt;
# The newly created file needs to be edited, however this may be done with the following commands: {{bc|&amp;lt;nowiki&amp;gt;tail -n +2 ~/.i3/workspace_N.json | fgrep -v &#039;// splitv&#039; | sed &#039;s|//||g&#039; &amp;gt; ~/.i3/workspace_N.json&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
==== Restore the window layout of the workspace ====&lt;br /&gt;
&lt;br /&gt;
There are two ways to restore the layout of the workspace: by writing a script, or by editing {{ic|~/.i3/config}} to automatically load the layout. In this section only the first case will be considered, refer to the [http://i3wm.org/docs/layout-saving.html#_restoring_the_layout official documentation] for the second case.&lt;br /&gt;
&lt;br /&gt;
To restore the saved layout in the previous section, write a file named {{ic|load_layout.sh}} with the following contents:&lt;br /&gt;
&lt;br /&gt;
* The starting lines:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
where M is the number of the workspace in which you would like to load the previously saved layout and N is the number of workspace saved in the previous section.&lt;br /&gt;
* And the commands used in the previous section to get the preferred windows, but enclosed in parentheses and with an ampersand appended before the last parentheses.&lt;br /&gt;
&lt;br /&gt;
For example, if the saved layout contained three {{ic|uxterm}} windows:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=~/load_layout.sh|output=&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# First we append the saved layout of worspace N to workspace M&lt;br /&gt;
i3-msg &amp;quot;workspace M; append_layout ~/.i3/workspace_N.json&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# And finally we fill the containers with the programs they had&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
(uxterm &amp;amp;)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Then set the file as executable:&lt;br /&gt;
&lt;br /&gt;
 chmod u+x ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
And finally, the layout of worskpace N can be loaded onto to workspace M by running:&lt;br /&gt;
&lt;br /&gt;
 ~/load_layout.sh&lt;br /&gt;
&lt;br /&gt;
{{tip|Adding {{ic|bindsym $mod+g exec ~/load_layout.sh}} to {{ic|~/.i3/config}} and restarting i3 will bind Mod+g to run the above script.}}&lt;br /&gt;
&lt;br /&gt;
{{note|If the above script does not work properly, refer to the [http://i3wm.org/docs/layout-saving.html#_editing_layout_files  official documentation]. The &#039;&#039;swallows&#039;&#039; sections of {{ic|~/.i3/workspace_N.json}} needs to be manually edited.}}&lt;br /&gt;
&lt;br /&gt;
=== スクラッチパッドコンテナ ===&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、[http://i3wm.org/docs/userguide.html#_scratchpad スクラッチパッド] は一つのウィンドウしか含んでいません。しかしながら、コンテナをスクラッチパッドにすることが可能です。&lt;br /&gt;
&lt;br /&gt;
新しいコンテナを作成して (例えば、{{ic|Mod+Enter}})、コンテナを分割し ({{ic|Mod+v}}) 別のコンテナを作成します。親にフォーカスして ({{ic|Mod+a}})、反対方向に分割し ({{ic|Mod+h}})、もう一度作成します。&lt;br /&gt;
&lt;br /&gt;
最初のコンテナにフォーカスして (必要なら親にもフォーカス)、ウィンドウをフロートさせ ({{ic|Mod+Shift+Space}})、スクラッチパッドに移動します ({{ic|Mod+Shift+-}})。これで自由にコンテナを分割できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|フロートしているウィンドウでコンテナのサイズを個別に変更することはできません。ウィンドウをフロートさせる前にコンテナのサイズを変えて下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|ターミナルアプリケーションしか使わない場合は、代わりに [[tmux]] などのマルチプレクサを使っても良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
マルチスクラッチパッドについては [https://faq.i3wm.org/question/138/multiple-scratchpad/i3] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== スクリーンセーバーと電源管理 ===&lt;br /&gt;
&lt;br /&gt;
With [[電源管理#xss-lock]] you can register a screenlocker for your i3 session.&lt;br /&gt;
&lt;br /&gt;
Alternatively, &#039;&#039;xautolock&#039;&#039; can lock the screen after awakening from sleep or hibernation with the {{ic|-lockaftersleep}} option. The {{ic|-time}} option locks the screen after a given time period.&lt;br /&gt;
&lt;br /&gt;
 xautolock -time 10 -locker &amp;quot;i3lock -i &#039;background_image.png&#039;&amp;quot; -lockaftersleep &amp;amp;&lt;br /&gt;
&lt;br /&gt;
See also [[DPMS]].&lt;br /&gt;
&lt;br /&gt;
=== シャットダウン, 再起動, 画面ロック ===&lt;br /&gt;
&lt;br /&gt;
シャットダウン、再起動、画面ロックのキーコンビネーションを {{ic|~/.config/i3/config}} に追加することができます。以下の例では[[systemd#電源管理|電源管理]]コマンドを実行する権限がないユーザーに権限を与えるために {{Pkg|polkit}} をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
set $Locker i3lock &amp;amp;&amp;amp; sleep 1&lt;br /&gt;
&lt;br /&gt;
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown&lt;br /&gt;
mode &amp;quot;$mode_system&amp;quot; {&lt;br /&gt;
    bindsym l exec --no-startup-id $Locker, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym e exec --no-startup-id i3-msg exit, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym s exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl suspend, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym h exec --no-startup-id $Locker &amp;amp;&amp;amp; systemctl hibernate, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym r exec --no-startup-id systemctl reboot, mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode &amp;quot;default&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
    # back to normal: Enter or Escape&lt;br /&gt;
    bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
    bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bindsym $mod+Pause mode &amp;quot;$mode_system&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Once completed, you will be presented with a prompt whenever you press {{ic|$mod+pause}}. For more complex behaviour, use a separate script, and refer to it in the mode. [https://gist.github.com/anonymous/c8cd0a59bf4acb273068]&lt;br /&gt;
&lt;br /&gt;
{{Note|1=&amp;lt;br&amp;gt;&lt;br /&gt;
* {{ic|sleep 1}} adds a small delay to prevent possible race conditions with suspend [https://bugs.launchpad.net/ubuntu/+source/unity-2d/+bug/830348]&lt;br /&gt;
* The {{ic|-i}} argument for {{ic|systemctl poweroff}} causes a shutdown even if other users are logged-in (this requires {{Pkg|polkit}}), or when &#039;&#039;logind&#039;&#039; (wrongly) assumes so. [https://bugs.freedesktop.org/show_bug.cgi?id=62676]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他の画面ロッカーについては、[[アプリケーション一覧/セキュリティ#スクリーンロック]]を参照。&lt;br /&gt;
&lt;br /&gt;
===External displays manual management===&lt;br /&gt;
&lt;br /&gt;
Thanks to [[xrandr]] there are many ways to easily manage systems displays. The below example integrates it in the i3 config file, and behave as the Power Management section above.&lt;br /&gt;
&lt;br /&gt;
Here a laptop with both VGA and HDMI outputs will use a menu selection to switch them On/Off:&lt;br /&gt;
&lt;br /&gt;
 ## Manual management of external displays&lt;br /&gt;
 # Set the shortcuts and what they do&lt;br /&gt;
 set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF&lt;br /&gt;
 mode &amp;quot;$mode_display&amp;quot; {&lt;br /&gt;
     bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode &amp;quot;default&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     # back to normal: Enter or Escape&lt;br /&gt;
     bindsym Return mode &amp;quot;default&amp;quot;&lt;br /&gt;
     bindsym Escape mode &amp;quot;default&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 # Declare here the shortcut to bring the display selection menu&lt;br /&gt;
 bindsym $mod+x mode &amp;quot;$mode_display&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Any window that is still open in a switched Off display will automatically come back to the remaining active display.&lt;br /&gt;
&lt;br /&gt;
The simplest way to determine names of your devices is to plug the device you wish to use and run:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --query&lt;br /&gt;
&lt;br /&gt;
which will output the available, recognized devices and their in-system names to set your config file appropriately. &lt;br /&gt;
&lt;br /&gt;
Refer to the [[xrandr]] page or man page for the complete list of available options, the [http://i3wm.org/docs/userguide.html i3 userguide] and/or the [https://www.reddit.com/r/i3wm i3 FAQ on reddit] for more info.&lt;br /&gt;
&lt;br /&gt;
=== タブまたはスタックによるウェブブラウジング ===&lt;br /&gt;
&lt;br /&gt;
タブの管理はブラウザの仕事ではなく、ウィンドウマネージャの仕事だとして、故意にタブを実装していないウェブブラウザというのが存在します。&lt;br /&gt;
&lt;br /&gt;
[[uzbl]] など、タブのないウェブブラウザを i3 で管理するには、次の行を {{ic|~/.config/i3/config}} に追加して下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout stacking, focus&lt;br /&gt;
&lt;br /&gt;
これはスタックのウェブブラウジング用で、ウィンドウは縦に表示されます。タブブラウジングと違って、たとえブラウザのウィンドウを大量に開いていても、ウィンドウのタイトルを全て見ることができます。&lt;br /&gt;
&lt;br /&gt;
水平方向のタブブラウジングの方が良い場合は (&#039;タブ&#039;)、次を使って下さい:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;Uzbl-core&amp;quot;] focus child, layout tabbed, focus&lt;br /&gt;
&lt;br /&gt;
=== ワークスペース変数 ===&lt;br /&gt;
&lt;br /&gt;
i3 ではワークスペースを複数定義するので、ワークスペース変数を指定すると便利です。例えば [https://github.com/dkeg/bloat2.0/blob/master/i3config#L55]:&lt;br /&gt;
&lt;br /&gt;
 set $WS1 term&lt;br /&gt;
 set $WS2 web&lt;br /&gt;
 set $WS3 misc&lt;br /&gt;
 set $WS4 media&lt;br /&gt;
 set $WS5 code&lt;br /&gt;
&lt;br /&gt;
次にワークスペースの名前を対応する変数で置き換えます:&lt;br /&gt;
&lt;br /&gt;
 bindsym $mod+1          workspace $WS1&lt;br /&gt;
 ...&lt;br /&gt;
 bindsym $mod+Shift+1    move container to workspace $WS1&lt;br /&gt;
&lt;br /&gt;
詳しくは [http://i3wm.org/docs/userguide.html#_changing_named_workspaces_moving_to_workspaces Changing named workspaces] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== フロートするダイアログを正しく扱う ===&lt;br /&gt;
&lt;br /&gt;
デフォルトではダイアログはフロートモードで開かれることになっていますが [http://i3wm.org/docs/userguide.html#_floating]、ダイアログはタイルモードで開いてしまうこともあります。この挙動を変更するには {{pkg|xorg-xprop}} でダイアログの {{ic|WM_WINDOW_ROLE}} をチェックして適切なルールを {{ic|~/.i3/config}} に追加してください:&lt;br /&gt;
&lt;br /&gt;
 for_window [window_role=&amp;quot;pop-up&amp;quot;] floating enable&lt;br /&gt;
 for_window [window_role=&amp;quot;task_dialog&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
また、タイトルルールと正規表現を使うこともできます:&lt;br /&gt;
&lt;br /&gt;
 for_window [title=&amp;quot;Preferences$&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
または {{ic|WM_CLASS}}:&lt;br /&gt;
&lt;br /&gt;
 for_window [class=&amp;quot;(?i)mplayer&amp;quot;] floating enable&lt;br /&gt;
&lt;br /&gt;
=== Network Download/Upload speed on statusbar ===&lt;br /&gt;
&lt;br /&gt;
You might adapt this upstream [http://code.stapelberg.de/git/i3status/tree/contrib/measure-net-speed.bash script]. For that,&lt;br /&gt;
&lt;br /&gt;
* rename both network cards according to your system (use {{ic|ip addr}})&lt;br /&gt;
* find them on {{ic|/sys/devices}} then replace them appropriately:&lt;br /&gt;
 $ find /sys/devices -name &#039;&#039;network_interface&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|Use {{ic|/sys/class/net/&#039;&#039;interface&#039;&#039;/statistics/}} to not depend on PCI location.}}&lt;br /&gt;
&lt;br /&gt;
Now, just save the script in a suitable place (for example {{ic|~/.config/i3}}) and point your status program to it.&lt;br /&gt;
&lt;br /&gt;
== パッチ ==&lt;br /&gt;
&lt;br /&gt;
上流にマージされてないパッチがあてられたパッケージが [[AUR]] には存在します:&lt;br /&gt;
&lt;br /&gt;
* {{App|i3bar-icons-git|i3bar で XBM アイコンを表示|https://github.com/ashinkarov/i3-extras|{{AUR|i3bar-icons-git}}}}&lt;br /&gt;
* {{App|i3-smart-border|スマートボーダー|https://github.com/ashinkarov/i3-extras|{{AUR|i3-smart-border}}}}&lt;br /&gt;
* {{App|i3-wm-iconpatch|タイトルバーアイコンのサポート|https://github.com/ashinkarov/i3-extras|{{AUR|i3-wm-iconpatch}}}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== 一般 ===&lt;br /&gt;
&lt;br /&gt;
多くの場合、バグは開発版である {{AUR|i3-git}} と {{AUR|i3status-git}} で修正されているため上流では開発版を使ってエラーが再現できるかどうか訊いてきます。 [http://i3wm.org/docs/debugging.html] [[デバッグ - トレースを取得#一般]]も見てください。&lt;br /&gt;
&lt;br /&gt;
=== i3 メッセージバーのボタンが動作しない ===&lt;br /&gt;
&lt;br /&gt;
{{ic|i3-nagbar}} の &amp;quot;Edit config&amp;quot; などのボタンは {{ic|i3-sensible-terminal}} を呼び出します。[[#ターミナルエミュレータ|ターミナルエミュレータ]]が i3 によって認識されていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
=== タイル化されたターミナルで行の折り返しがおかしい ===&lt;br /&gt;
&lt;br /&gt;
i3 v4.3 以上ではタイル配置したウィンドウのサイズ増加ヒントは無視されます [https://www.mail-archive.com/i3-discuss@i3.zekjur.net/msg00709.html]。これによってターミナルで行が早いところで折り返されてしまうなどの問題が生じます。解決方法としては、問題のウィンドウをフロートさせてから、もう一度タイル化してください。&lt;br /&gt;
&lt;br /&gt;
=== マウスカーソルが待機状態のままになる ===&lt;br /&gt;
&lt;br /&gt;
起動通知をサポートしていないスクリプやアプリケーションを起動すると、マウスカーソルは60秒間の間、ビジー/砂時計状態になります。&lt;br /&gt;
&lt;br /&gt;
特定のアプリケーションでこの問題を解決するには、{{ic|--no-startup-id}} パラメータを使って下さい、例えば:&lt;br /&gt;
 exec --no-startup-id ~/script&lt;br /&gt;
 bindsym $mod+d exec --no-startup-id dmenu_run&lt;br /&gt;
&lt;br /&gt;
このアニメーションを全てのアプリケーションで無効にするには、[[カーソルテーマ]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== キーバインドが反応しない ===&lt;br /&gt;
&lt;br /&gt;
標準のキーバインド (キーを押して実行) を使っている場合、[[スクリーンショットの取得#scrot|scrot]] などのツールが動作しないことがあります。そのようなときは、{{ic|--release}} でキーをリリースしてからコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 bindsym --release Print exec --no-startup-id scrot &#039;%Y-%m-%d$&lt;br /&gt;
 bindsym --release Shift+Print exec --no-startup-id scrot &#039;%Y$&lt;br /&gt;
&lt;br /&gt;
[http://i3wm.org/docs/userguide.html#keybindings] を参照。&lt;br /&gt;
&lt;br /&gt;
=== ティアリング ===&lt;br /&gt;
&lt;br /&gt;
i3 は [http://bugs.i3wm.org/report/ticket/661 ダブルバッファをちゃんと実装していない] ためにティアリングやちらつきが発生することがあります。問題を修正したいときは、[[Xorg#コンポジット|コンポジットマネージャ]]を使ってみて下さい。&lt;br /&gt;
&lt;br /&gt;
=== トレイアイコンが表示されない ===&lt;br /&gt;
&lt;br /&gt;
デフォルトの {{ic|tray_output primary}} ディレクティブでは &#039;&#039;xrandr&#039;&#039; でプライマリ出力を設定する必要があります。明示的に出力を指定するか、ディレクティブを削除してください [https://github.com/i3/i3/issues/1144]。詳しくは [[Xrandr]] を参照。i3 のバージョン 4.12 から、i3-config-wizard によって作成されるデフォルト設定ではディレクティブが追加されないようになりました。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [http://i3wm.org 公式ウェブサイト]&lt;br /&gt;
* [http://www.funtoo.org/I3_Tiling_Window_Manager funtoo Wiki]&lt;br /&gt;
* [http://code.stapelberg.de/git/i3 i3 ソースコード]&lt;br /&gt;
* [https://github.com/ashinkarov/i3-extras i3-extras] - Collection of scripts and patches&lt;br /&gt;
* [https://github.com/acrisci/i3ipc-glib i3ipc-glib] - i3 拡張のためのライブラリ&lt;br /&gt;
* [https://github.com/veelenga/i3ipc-ruby i3ipc-ruby] - An improved library for i3 extensions in Ruby&lt;br /&gt;
* [http://www.j4tools.org/ j4tools] - non-official tools designed to work with i3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arch Linux フォーラム&#039;&#039;&#039;&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] - A general discussion about i3&lt;br /&gt;
* [https://bbs.archlinux.org/viewtopic.php?id=103369 i3 desktop screenshots and config sharing]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;スクリーンキャスト&#039;&#039;&#039;&lt;br /&gt;
* [http://www.youtube.com/watch?v=Wx0eNaGzAZU i3 window manager v4.1 screencast]&lt;br /&gt;
* [https://www.youtube.com/watch?v=j1I63wGcvU4&amp;amp;index=1&amp;amp;list=PL5ze0DjYv5DbCv9vNEzFmP6sU7ZmkGzcf i3 window manager v4.1X screencasts]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Certbot&amp;diff=5373</id>
		<title>Certbot</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Certbot&amp;diff=5373"/>
		<updated>2016-06-15T12:03:30Z</updated>

		<summary type="html">&lt;p&gt;Colajam93: Let&amp;#039;s EncryptクライアントからCertbotに置換&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ネットワーク]]&lt;br /&gt;
[[Category:セキュリティ]]&lt;br /&gt;
[[en:Let’s Encrypt]]&lt;br /&gt;
[https://letsencrypt.org/ Let’s Encrypt] はフリーかつ自動化されたオープンな認証局です。公式クライアントは &#039;&#039;&#039;Certbot&#039;&#039;&#039; と呼ばれており、コマンドラインから有効な SSL 証明書を取得できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|以前 &#039;&#039;Let’s Encrypt client&#039;&#039; と呼ばれていた公式クライアントは、現在 &#039;&#039;Certbot&#039;&#039; と呼ばれています。}}&lt;br /&gt;
&lt;br /&gt;
== Certbot ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Certbot&#039;&#039; は公式のリファレンスクライアントです。Python で書かれており、証明書を取得するためのコマンドラインツールを提供します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|certbot}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
手動で CSR 作成を行うミニマルなクライアントを {{AUR|acme-tiny}} でインストールすることができます。スクリプトで使用するのに適したクライアントとして {{AUR|simp_le-git}} や {{AUR|letsencrypt-cli}} も存在します。&lt;br /&gt;
&lt;br /&gt;
公式クライアントを用いて発行された証明書はプラグインを使ってウェブサーバーに自動的に設定・インストールできます:&lt;br /&gt;
* [[Nginx]] 用の実験的なプラグインは {{Pkg|certbot-nginx}} パッケージに入っています。&lt;br /&gt;
* {{Pkg|certbot-apache}} パッケージも存在していますが、[[Apache HTTP Server]] を使っている場合の自動インストールは現在 Debian の派生ディストリビューションでしかサポートされていません。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
証明を作成・インストールする方法は [https://certbot.eff.org/docs/ Certbot のドキュメント] を参照してください。証明書の作成方法がはっきりしたら、この wiki にも記載します。&lt;br /&gt;
&lt;br /&gt;
=== 手動 ===&lt;br /&gt;
&lt;br /&gt;
{{Note|この方法では、一時的にウェブサーバーを停止する必要があります。[[#Webroot]] の方法ではウェブサーバーを実行しながらでも認証が行えます。}}&lt;br /&gt;
&lt;br /&gt;
ウェブサーバーのプラグインが存在しない場合、次のコマンドを使って下さい:&lt;br /&gt;
 # certbot certonly --manual&lt;br /&gt;
&lt;br /&gt;
上記のコマンドで自動的にドメインが認証されて秘密鍵と証明書のペアが作成されます。秘密鍵と証明書は {{ic|/etc/letsencrypt/live/&#039;&#039;your.domain&#039;&#039;/}} に保存されます。&lt;br /&gt;
&lt;br /&gt;
上記のディレクトリに入っている秘密鍵と証明書を使用するように手動でウェブサーバーを設定します。&lt;br /&gt;
&lt;br /&gt;
=== Webroot ===&lt;br /&gt;
&lt;br /&gt;
webroot を使うことでウェブサーバー (例: Apache/nginx) を止めることなく証明書を取得・更新できます。&lt;br /&gt;
&lt;br /&gt;
 # certbot certonly --email &#039;&#039;email@example.com&#039;&#039; --webroot -w &#039;&#039;/path/to/html/&#039;&#039; -d &#039;&#039;your.domain&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
サーバーの設定で {{ic|/etc/letsencrypt/live/&#039;&#039;your.domain&#039;&#039;/}} の証明書を使うようにしてください。&lt;br /&gt;
&lt;br /&gt;
==== 自動更新 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|certbot certonly}} を実行するとき、Certbot はドメインと webroot ディレクトリを {{ic|/etc/letsencrypt/renewal}} に記録します。次回からは {{ic|certbot renew}} を実行することで証明書を自動更新することができます。&lt;br /&gt;
&lt;br /&gt;
以下の {{ic|.service}} ファイルを作成することで完全に自動化することが可能です:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/systemd/system/certbot.service|&lt;br /&gt;
2=[Unit]&lt;br /&gt;
Description=Let&#039;s Encrypt renewal&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
ExecStart=/usr/bin/certbot renew}}&lt;br /&gt;
&lt;br /&gt;
[[systemd/タイマー|タイマー]]を追加する前に、サービスが正しく動作すること、何も入力が要求されないことを確認してください。&lt;br /&gt;
&lt;br /&gt;
それから、タイマーを追加することで毎月証明書を更新できます。&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/systemd/system/certbot.timer|&lt;br /&gt;
2=[Unit]&lt;br /&gt;
Description=Monthly renewal of Let&#039;s Encrypt&#039;s certificates&lt;br /&gt;
&lt;br /&gt;
[Timer]&lt;br /&gt;
OnCalendar=monthly&lt;br /&gt;
Persistent=true&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=timers.target}}&lt;br /&gt;
&lt;br /&gt;
{{ic|certbot.timer}} を[[起動]]・[[有効化]]してください。また、証明書をいますぐ更新したい場合は {{ic|certbot.service}} を[[起動]]してください。&lt;br /&gt;
&lt;br /&gt;
証明書を更新するたびにウェブサーバーを再起動させることもできます。{{ic|certbot.service}} ファイルに以下のどちらかの行を追加してください:&lt;br /&gt;
&lt;br /&gt;
* Apache: {{ic|1=ExecStartPost=/usr/sbin/systemctl restart httpd.service}}&lt;br /&gt;
* nginx: {{ic|1=ExecStartPost=/usr/sbin/systemctl restart nginx.service}}&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://community.letsencrypt.org/t/list-of-client-implementations/2103 ACME クライアントの一覧]&lt;/div&gt;</summary>
		<author><name>Colajam93</name></author>
	</entry>
</feed>