Xephyr-session Release Notes
August 8, 2022

1. 概要本書は、Xephyr-session のリリースノートである。

2. 要求事項
このパッケージを適用するシステムは、RedHawk8.4 にインストールする事を想定している。

3. インストール手順
本インストーラは、RPM で提供される。
以下に、インストールの方法を示す。
# rpm -ivh xephyr-session-6.0-1.0.noarch.rpm
Verifying...
################################# [100%]
準備しています...
################################# [100%]
更新中 / インストール中...
1:xephyr-session-6.0-1.0################################# [100%]===============================================================================
Package: 'xephyr-session' installed in '/usr/local/bin/'===============================================================================
インストール後、以下のファイルが展開され、/usr/local/CNC/xephyr-session/sendkeys/sendkey.c がコンパイルされ/usr/local/bin 下に、sendkey がインストールされる。
# rpm -qpl xephyr-session-6.0-1.0.noarch.rpm/usr/local/CNC/xephyr-session/kvmrt-ssh.session/usr/local/CNC/xephyr-session/kvmrt-vncviewer.session/usr/local/CNC/xephyr-session/podman-named.session/usr/local/CNC/xephyr-session/podman-onetime.session/usr/local/CNC/xephyr-session/sendkeys/Makefile/usr/local/CNC/xephyr-session/sendkeys/sendkey.c/usr/local/CNC/xephyr-session/xephyr.options/usr/local/bin/xephyr-session/usr/share/man/ja/man1/xephyr-session.1.gz/usr/share/man/man1/sendkey.1.gz/usr/share/man/man1/xephyr-session.1.gz/usr/share/xsessions/multiseat.desktop/usr/share/xsessions/xephyr.desktop

4. アンインストール手順
パッケージを削除するためには、以下のコマンドを実行する# rpm -e xephyr-session

5. 利用方法
ログイン時、下記のパスワード入力画面で、歯車マーク（⚙）をクリックすると、”Xephyr”と”MultiSeat”が表示されるので、選択する。

Xepher セッションのログインでは、以下の様に同一ユーザ名で、最大４つの独立した gnome-session がXephyr の上で、実行される。
Multiseat セッションでは、ディスプレイと同じ数のキーボード/マウスペアで、異なる独立した X セッシ
ョンを構成する。（各々独立したディスプレイにキーボード/マウスペアが固定される）$HOME/.xephyr-session/下にカスタム セッションファイルを作成すると、以下の様に KVM-RT の X や、PODMAN のコンテナ X を構成する事が出来る。

カスタムセッションの詳細は、man xepher-session(1)を参照する事。6. マニュアルXEPHYR(SESSION)XEPHYR(SESSION)
名前
xephyr-session - 独立した Xephyr デスクトップ環境を開始する
書式
xephyr-session [-p|--pair] [-g|--grab] [-h|--help] [-v|--version]説明
xephyr-session は、独立した Xephyr デスクトップ環境を起動します。このコマンドは、既存の X サーバーの上にXephyr をオーバーレイし、複数の gnome セッションを起動できるようにします。このコマンドは通常、ログインマネージャー(gdm、xdm、または X 起動スクリプトから)によって実行されます。
保存されたセッションをロードするか、システム管理者 (またはシステムにデフォルトインストールされた GNOME) によって定義されたユーザーのデフォルト セッションを提供します。
このコマンドは、xrandr によって表示されるディスプレイ接続に対して定義された順序に従って、Xorg に xephyr をオーバーレイします。
(0,0)(1919,0) (1920,0)(3839,0) (3840,0)(5759,0) (5760,0)(7679,0)+--------------------+-------------------+-------------------+--------------------+|
No window manager (DISPLAY=:1 Xorg)||+-------------------+-------------------+-------------------+--------------------+|||gnome-session|gnome-shell|podman containers |kvmrt guest||||DISPLAY=:2|DISPLAY=:3|DISPLAY=:4|DISPLAY=:5||||Xephyr|Xephyr|Xephyr|Xephyr|||+-------------------+-------------------+-------------------+--------------------+|+--------------------+-------------------+-------------------+--------------------+ (0,1079)(7679,1079)
オプション-p | --pair
X サーバー上に新しいキーボード/マウスのマスターデバイスペアを作成します。 サーバーは、"DevicePair#n pointer"という名前の 1 つのマスターポインターと、"DevicePair#n key‐board"という名前の 1 つのマスターキーボードを作成します。
キーボードとマウスのペアが 1 つしかない場合は作成されず、通常は#n は 2 より大きな値になります。
このオプションは通常、"/usr/share/xsessions/xephyr.desktop"の"Exec"行に指定されます。
メインマスターデバイスはセカンダリマスターデバイスよりも優先されることに注意してください。
2 人で同じシステムを使用する場合は、セカンダリマスターデバイスにセカンダリマウスとキーボードを配置できます。 それぞれ異なるウィンドウを持つ 2 つのモニターを使用すると、2 人のユーザーが同時に 2 つのアプリケーションを実行できます。
その後、各ユーザーは、同じシステムで個別のタスクを一度に実行できます。
以下にステータスを示します。
# DISPLAY=:1 xinput⎡ Virtual core pointer
id=2⎜↳ Virtual core XTEST pointerid=4⎜↳ PixArt USB Optical Mouse
id=8⎜↳ Dell KB216 Wired Keyboard Consumer Control id=11⎜↳ Generic USB Keyboard Mouse
id=15⎣ Virtual core keyboard
id=3↳ Virtual core XTEST keyboard
id=5↳ Power Button
id=6↳ Power Button
id=7↳ Dell KB216 Wired Keyboard
id=9↳ Dell KB216 Wired Keyboard System Control
id=10↳ Generic USB Keyboard System Control
id=13↳ Generic USB Keyboard Consumer Control
id=14↳ Dell WMI hotkeys
id=17↳ Dell KB216 Wired Keyboard Consumer Control id=18↳ Generic USB Keyboard Mouse
id=19⎡ DevicePair2 pointer
id=20⎜↳ USB Optical Mouse
id=16[master pointer (3)][slave pointer (2)][slave pointer (2)][slave pointer (2)][slave pointer (2)][master keyboard (2)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][slave keyboard (3)][master pointer (21)][slave pointer (20)]⎜↳ DevicePair2 XTEST pointer⎣ DevicePair2 keyboard↳ Generic USB Keyboard↳ DevicePair2 XTEST keyboard

id=22
id=21
id=12
id=23

[slave pointer (20)][master keyboard (20)][slave keyboard (21)][slave keyboard (21)]-g | --grab--pair とともに使用して、マルチシートを構成します。
ディスプレイの数とキーボード/マウスのペアの数は常に一致する必要があります。
次に、関連付けられたディスプレイにマウスを移動し、同時に ctrl+shift を押して grab のオン/オフを切り替えます。
-h | --help
ヘルプを表示して終了します。
-v | --version
バージョンを表示して終了します。
ファイル$HOME/.xephyr-session/xephyr.options$HOME/.xephyr-session/xephyr.options ファイルは、次の環境変数を使用して Xephyr の実行時オプションを定義します。
XEPHYR_RUN[1-4]は、Xephyr 実行時の run コマンドのオプションを指定します。 以下の例では、それぞれを異なる CPU に割り当てることができます。 この環境変数はそのまま run コマンドに渡されるため、-sおよび -P も使用できます。 run コマンドのオプションの詳細については、man run(1) を参照してください。
XEPHYR_RUN1="-b 0"
XEPHYR_RUN2="-b 1"
XEPHYR_RUN3="-b 2"
XEPHYR_RUN4="-b 3"
XEPHYR_OPTIONS[1-4]は、Xephyr の実行時に Xephyr コマンドの追加オプションを指定します。
典型的な例は、以下のように"-auth$XAUTHORITY"を指定することです。
ただし、以下に示すように、PODMAN コンテナーに"-auth $XAUTHORITY"オプションがある場合、PODMAN は起動しません。
XEPHYR_OPTIONS1=""XEPHYR_OPTIONS2=""XEPHYR_OPTIONS3="-auth $XAUTHORITY"XEPHYR_OPTIONS4=""$HOME/.xephyr-session/xephyr[1-4] ファイルは、gnome セッションではなく別のカスタムセッションを実行します。 ファイルには実行権限が必要です。 以下の例を参照してください。
例
カスタム セッションの例を以下に示します。
kvmrt ゲストを vncviewer で接続する例 (テンプレートは /usr/local/CNC/xephyr-session/kvmrtvncviewer.session )#!/bin/bash#
trap '
kvmrt-shutdown' 15#
kvmrt-bootwhile true
dostatus=`kvmrt-stat |awk '{print $2}'`
if [ "$status" == "running" ]thenvncviewer -display $DISPLAY -FullScreen 127.0.0.1:0
else
if [ "$status" == "shutdown" ]thenbreak;
else
kvmrt-shutdown
fifidonekvmrt ゲストと ssh で接続する例 ( テンプレートは /usr/local/CNC/xephyr-session/kvmrt-ssh.session )#!/bin/bash#trap '
kvmrt-shutdown' 3 15#
kvmrt-bootwhile true
dostatus=`kvmrt-stat |awk '{print $2}'`
if [ "$status" == "running" ]thenssh -XY 192.168.122.101 gnome-shell &SSH_SESSION=$!
wait $SSH_SESSIONelse
if [ "$status" == "shutdown" ]thenbreak;else
kvmrt-shutdown
fifi
done
podman ワンタイム セッション用 (テンプレートは /usr/local/CNC/xephyr-session/podman-onetime.session )#!/bin/bash
CONTAINER_IMAGE=ce29update8r1:basepodman run -it -device=/dev/:/dev/ --storage-opt size=200G--rm --privileged=true-v /home/:/home/ -v/var/run/dbus/:/var/run/dbus/-v/tmp/:/tmp/-v/run/user/0/:/run/user/0/ -v /var/run/cups/cups.sock:/var/run/cups/cup.sock --env
LANG=ja_JP.UTF8 --env DISPLAY=$DISPLAY $CONTAINER_IMAGE /root/bin/podman-xephyr-start‐
gnome $DISPLAY
podman の名前付きセッション用 (テンプレートは /usr/local/CNC/xephyr-session/podman-named.session )#!/bin/bash#CONTAINER=ce29update8r1.bash
trap 'podman exec -it $CONTAINER /usr/bin/bash exit
' 15
podman start $CONTAINER
podman exec --env LANG=ja_JP.UTF8 --env DISPLAY=$DISPLAY -it $CONTAINER /root/bin/podmanxephyr-startgnome $DISPLAY
注意
このコマンドは、まず gnome-session を起動し、次に gnome-shell を起動します。
したがって、gnome-session によって起動された最初のXephyr のみが GUI からログアウトできます。
また、DISPLAY 変数は Xephyr で使用され、真の Xorg DISPLAY 変数ではありません。
gnome-shell をコマンドラインからログアウトさせる場合は、次の設定を使用します。
DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus gnome-session-quit --logout --no-prompt
関連項目
gnome-session(1),gnomeshell(1),Xephyr(1),xrandr(1),xorg(1),xinput(1),sendkey(1),ssh(1),xauth(1),run(1)xephyr-session

1
XEPHYR(SESSION)