Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Xpraのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Xpra
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:X サーバー]] [[カテゴリ:リモートデスクトップ]] [[en:Xpra]] Xpra は '[[screen]] for X' です: リモートホストで X プログラムを実行して、ディスプレイをローカルマシンに飛ばすことができ、状態を維持したままプログラムから切断して他のマシンから再接続できます。Xpra を使うことで個別のアプリケーションにリモートアクセスすることが可能になります。 * Xpra は "rootless" あるいは "seamless" です: Xpra で実行したプログラムは普通のプログラムと同じようにデスクトップに表示され、ウィンドウマネージャで管理されます。 * SSH を通してセッションにアクセスしたり、パスワードで保護した平文の TCP ソケットを使うことができます。 * Xpra は接続速度が遅くても使うことができ、ネットワークの帯域幅の変化に対応します (アダプティブ JPEG モードを参照)。 * Xpra はオープンソース (GPLv2+)、マルチプラットフォーム、多言語対応です。クライントは Python と Java で書かれています。 ==インストール== サーバーとクライントの両方で {{AUR|xpra}} パッケージを[[インストール]]してください。 {{Tip|1={{ic|nvidia}} や {{ic|ATi}} などのグラフィックドライバーを使って既存の Xorg セッションでローカルに Xpra を実行する場合、デフォルトの xpra の設定を変更する必要があります。Xpra は {{ic|xorg-server-xvfb}} ({{ic|/etc/X11/xorg.conf.d}} になります) から {{ic|-configdir}} を取得しますが、そこで xpra をローカルに実行するために [https://bbs.archlinux.org/viewtopic.php?pid=1333056#p1333056 1333056#p1333056] に書かれている手順に従って変更が必要です。}} ==使用方法== 詳しいマニュアルは {{ic|man xpra}} を確認してください。 === アプリケーションの実行 === アプリケーションを実行したいマシンで xpra サーバーを起動 (例としてディスプレイ番号は '''7''' を使用): {{bc|$ xpra start :7}} それからアプリケーションを実行します (例: firefox): {{bc|1=$ DISPLAY=:7 firefox}} もしくは、コンソールを閉じても問題ないように screen セッションを起動してプログラムを実行するには: {{bc|1= $ DISPLAY=:7 screen [screen starts] $ firefox }} 上記のように {{ic|screen}} を起動したときはプログラムを起動する際にディスプレイ番号を指定する必要はありません。自動的に xpra のディスプレイで実行されます。 上のコマンドを実行しても、ウィンドウはまだ表示されません。アプリケーションをディスプレイに表示するには、xpra サーバーに接続しなければなりません。同一マシン上にある xpra サーバーに接続する場合、以下のように xpra クライアントを起動してください: {{bc|$ xpra attach :7}} もしくは、ssh を介してリモートマシンに接続する場合: {{bc|$ xpra attach ssh:user@example.com:7}} クライアントの起動後、リモートサーバーのディスプレイで実行されているプログラムは全てローカルマシンの画面に表示されます。解除するには、{{ic|ctrl-c}} と入力するか以下のコマンドを使用: {{bc|$ xpra detach ssh:user@example.com:7}} プログラムはサーバー側で実行し続けるので後から再度表示することもできます。 サーバーを停止するには、サーバーを実行しているマシンで次を実行: {{bc|$ xpra stop :7}} あるいはリモートから停止する場合: {{bc|$ xpra stop ssh:user@example.com:7}} === デスクトップ環境の実行 === デスクトップを実行するには (サーバー側で実行): {{Bc|$ <nowiki>xpra start-desktop :7 --start-child=xfce4-session --exit-with-children</nowiki>}} * {{Ic|:7}} は xorg の DISPLAY セッションの数字 * {{Ic|<nowiki>--start-child=xfce4-session</nowiki>}} は xpra サーバーの子プロセスとして xfce4 セッションを実行 * {{Ic|--exit-with-children}} はセッションからログアウトした (子プロセスが終了) 際にサーバーを終了 アタッチするには (サーバー側で実行): {{Bc|$ xpra attach :7}} アタッチするには (クライアント側で実行): {{Bc|$ xpra attach ssh:user@example.com:7}} デタッチするにはターミナルで ctrl+c を押すか以下のコマンドを実行: {{Bc|$ xpra detach :7}}{{Tip|画面の解像度は [[xrandr]] で変更できます。}} === Xorg サンドボックスとして実行 === [[Firejail]] を使うことでサンドボックスを作成できます: * アプリケーションのサンドボックスの場合 ({{Ic|eth0}} は適当なインターフェイス名か {{Ic|none}} に置き換えてください): {{Bc|$ <nowiki>firejail --x11=xpra --net=eth0 firefox</nowiki>}} * xpra をアタッチする場合: {{bc|$ <nowiki>firejail --net=eth0 xpra [...]</nowiki>}}{{Note|{{ic|<nowiki>--net=eth0</nowiki>}} はネットワーク用の名前空間を作成して xorg やシステムソケットを xpra から遮蔽します。この設定を行わないとサンドボックスはあまり意味をなしません ([https://github.com/netblue30/firejail/issues/57#issuecomment-153757284 issue-54#153757284])。}} ==ヒントとテクニック== === ブート時に起動 === ==== サーバー ==== [[systemd]] ユニットを使うことで xpra サーバーをブート時に起動することができます。 ユニットファイルを作成: {{hc|/etc/systemd/system/xpra@.service|<nowiki> [Unit] Description=xpra display [Service] Type=simple User=%i EnvironmentFile=/etc/conf.d/xpra ExecStart=/usr/bin/xpra --no-daemon start ${%i} [Install] WantedBy=multi-user.target </nowiki>}} そして設定を作成して、xpra ディスプレイを表示したいユーザーの行を追加します: {{hc|/etc/conf.d/xpra|<nowiki> myusername=:7 </nowiki>}} ディスプレイを表示するユーザーを指定してサービスを[[デーモン|有効化]]してください。上記の例なら、サービスは次のようになります: {{ic|xpra@myusername.service}}。 ==== クライアント ==== {{Note|クライアントがリモートマシンの場合、まずは SSH 鍵を使ってパスワードを入力しなくてもサーバーに接続できるようにしてください。詳しくは [[SSH 鍵]]を参照。}} ===== 方法 1: .xinitrc ===== {{ic|~/.xinitrc}} ファイルに接続を開始するのに必要な行を追加してください。行末には '''&''' を付けます。 {{ic|exec}} 行の前に追加するようにしてください。 例えば、リモートクライアントの場合なら以下のようになります: {{hc|~/.xinitrc| xpra attach ssh:user@example.com:7 & }} ===== 方法 2: systemd ユーザーセッション ===== '''systemd ユーザーセッション'''を使うようにセッションを設定します。詳しくは [[Systemd/ユーザー]] を参照。 {{Note|'''systemd ユーザーセッション'''のサービスと、通常の '''systemd''' サービスの違いについて理解してください。[[Systemd/ユーザー]]を先に読むことを推奨します。}} 以下のサービスユニットを作成: {{hc|$HOME/.config/systemd/user/xpra-client@.service|<nowiki> [Unit] Description=xpra client [Service] Type=simple EnvironmentFile=%h/.config/conf/xpra_client ExecStart=/usr/bin/xpra attach %i $OPTS [Install] WantedBy=default.target </nowiki>}} 適当なオプションを使って設定ファイルを作成: {{hc|$HOME/.config/conf/xpra_client|<nowiki> OPTS=--encoding=jpeg --quality=90 </nowiki>}} サービス名は {{ic|xpra-client@''ssh:username@hostname''':<display number>'''''.service}} という形式になります。例: {{bc|xpra-client@ssh:myuser@example.com:7.service}} サービスを[[デーモン|有効化]]してください。{{ic|systemctl}} コマンドに {{ic|--user}} フラグを付けるのを忘れずに。 == トラブルシューティング == ==== Error: Only console users are allowed to run the X server ==== エラーによって実行が失敗する場合 {{Ic|/etc/X11/Xwrapper.config}} ファイルを以下の内容で作成してください: {{Hc|/etc/X11/Xwrapper.config|2=allowed_users=anybody}} ==参照== * [http://xpra.org/ Xpra ウェブサイト]
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
Xpra
に戻る。
検索
検索
Xpraのソースを表示
話題を追加