この節では、次の作業について説明します。
環境変数の設定
リソースの設定
ディスプレイに依存するセッションの使用
ログイン時のスクリプトの実行
バックアップ・セッションの復元
たとえば、実行可能な sh または ksh スクリプトである /etc/dt/config/Xsession.d/myvars を作成すると、次の行が含まれています。
export MYVARIABLE="value"
変数 MYVARIABLE
は、次のログイン時に各ユーザの環境に設定されます。
たとえば次の行により、変数 MYVARIABLE
は、次のログイン時に各ユーザの環境に設定されます。
export MYVARIABLE="value"
セッション・マネージャは .profile または .login ファイルを自動的に読み込みません。しかし、これらのファイルを使用するために構成することはできます。詳細は、「オプションとしての .profile または .login スクリプトの参照」を参照してください。
.dtprofile は、/bin/sh または /bin/ksh 構文だけをサポートします。
たとえば、/etc/dt/config/C/sys.resources に下記の行を指定すると、リソース AnApplication*resource は、次のログイン時に各ユーザの RESOURCE_MANAGER
属性に設定されます。
AnApplication*resource: value
個人用リソースを設定するには、HomeDirectory/.Xdefaults ファイルにリソースを追加します。
システム上のすべてのデスクトップ・ユーザに対してディスプレイに固有のリソースを設定できます。また、ユーザのセッションに制限されたディスプレイに固有のリソースを設定できます。この設定により、ユーザがデスクトップにログインするディスプレイに応じて、リソースを指定できるようになります。
システム上のすべてのデスクトップ・ユーザのディスプレイに固有のリソースを設定するには、ディスプレイに固有のリソースを指定する /etc/dt/config/language/sys.resources ファイルを作成します。
個人用ディスプレイに固有のリソースを設定するには、HomeDirectory/.Xdefaults ファイルにリソースを指定します。
cpp 条件文でこれらのリソースを囲むことにより、リソースを区切ります。DISPLAY_displayname
マクロが $DISPLAY
変数の値に応じて定義されます。これは、すべての . (ピリオド) と : (コロン) 文字を _ (下線文字) に変換し、画面の指定を取り除き、最後に DISPLAY_
という接頭辞をその結果に付けます。
たとえば、:0 の $DISPLAY
は DISPLAY_0
になり、blanco.gato.com:0.0 の $DISPLAY
は DISPLAY_blanco_gato_com_0 になります。結果の値は、セッションのリソース・ファイルの cpp テストの一部として使用できます。たとえば、/etc/dt/config/C/sys.resources では、次のように指定します。
Myapp*resource: value
#ifdef DISPLAY_blanco_gato_com_0 Myapp*resource: specialvalue1 #endif
#ifdef DISPLAY_pablo_gato_com_0 Myapp*resource: specialvalue2 #endif
この場合、リソース MyApp*resource は、ディスプレイ blanco.gato.com:0 にログインするときは specialvalue1 に対して、pablo.gato.com:0; にログインするときは specialvalue2 に対して、別のディスプレイにログインするときは value に対して、それぞれ RESOURCE_MANAGER
に設定されます。
ユーザの初期セッションの一部として起動する代わりのアプリケーションを指定できます。
/usr/dt/config/language/sys.session を /etc/dt/config/language/sys.session にコピーします。
sys.session にある各エントリは次のように表示されます。
dtsmcmd -cmd command_and_options
ユーザの初期セッションの一部として追加のアプリケーションを起動するには、絶対パス名で新しい sys.session エントリを指定します。たとえば、ユーザの初期セッションの一部として /usr/bin/X11/xclock を起動するには、xclock エントリを /etc/dt/config/C/sys.session に追加します。
# # Start up xclock... # dtsmcmd -cmd "/usr/bin/X11/xclock -digital"
特定のディスプレイに合わせてセッションを調節するように、ディスプレイに、固有のセッションを設定できます。
HomeDirectory/.dt/sessions ディレクトリを HomeDirectory/.dt/display にコピーします。この場合 display は実際に存在する修飾していないホスト名です (pablo:0 は有効で、pablo.gato.com:0 や unix:0 は無効です)。
たとえば、ディスプレイ pablo.gato.com:0 のディスプレイに固有のセッションを作成するには、次のように指定します。
cp -r HomeDirectory/.dt/sessions HomeDirectory/.dt/pablo:0
ディスプレイ pablo.gato.com:0 に次にログインしたときには、セッション・マネージャはそのディスプレイに固有のセッションを起動します。
デスクトップ・セッションにログインしたときに、追加コマンドが起動されるように指定できます。これは、セッション・マネージャが保存しない X の設定を行う場合に有用です。たとえば、ユーザは xsetroot を使用してルート (ワークスペース)・ポインタをカスタマイズできます。もう 1 つの使用方法は、セッション・マネージャによって保存および復元できないアプリケーションを起動することです。セッションが復元されたときにアプリケーションが再起動しない場合、ユーザはこの方法を使用して、クライアントを起動できます。
コマンドが入っている HomeDirectory/.dt/sessions/sessionetc ファイルを作成します。
通常、このファイルはスクリプトで、実行権を持っていなければなりません。sessionetc で起動されるプロセスはバックグラウンドで実行されなければなりません。
セッション・マネージャによって自動的に復元されるクライアントを起動するために、sessionetc を使用しないでください。使用すると、複数のアプリケーションのコピーが起動されてしまいます。ウィンドウは、もう 1 つのウィンドウの上部に重なることがあるので、コピーをすぐに見つけられない可能性があります。
sessionetc に付属したファイルは sessionexit です。セッション・マネージャが処理しないセッション終了時のオペレーションのいくつかを実行するには、sessionexit を使用します。
HomeDirectory/.dt/sessions/sessionexit ファイルを作成します。
sessionetc と同様に、このファイルは通常は実行権を持っているスクリプトです。
セッション・マネージャがセッションを保存すると、ディスプレイに固有のセッションを使用している場合は、セッション情報が HomeDirectory/.dt/sessions ディレクトリまたは HomeDirectory/.dt/display ディレクトリに保存されます。現在のセッションまたはホーム・セッションそれぞれに関する情報を格納するために、セッション・マネージャは current または home という名前のサブディレクトリをこれらのディレクトリに作成します。セッション情報が格納される前に、セッション・マネージャはその名前で以前のセッションのバックアップを作成し、current.old か home.old に格納します。
ログイン画面から [復旧セッション] か [コマンド行ログイン] を使用してログインします。
バックアップのセッション・ディレクトリを有効な名前にコピーします。たとえば、バックアップのホーム・セッションを復元するには、次のようにします。
cp -r HomeDirectory/.dt/sessions/home.old HomeDirectory/.dt/sessions/home
ディスプレイに固有のセッションも同じ方法で復元できます。