Life with IT

山好きITエンジニア 木檜(こぐれ)和明 による発信の場

CDE

2007/9/22更新

対応バージョン: 1.4

~/.dt/sessions/lastsessionに記述される。

デスクトップがCDEだった場合
/usr/dt/bin/Xsession
デスクトップがOpenWindowsだった場合
/usr/dt/config/Xsession.ow

2007/9/22更新

対応バージョン: 1.4

~/.dtprofileにて以下の設定を行う。

DTSTARTIMS=False

2007/9/22更新

対応バージョン: 1.4

DtwmのworkspaceCountリソースでワークスペースの数を指定する。

システム全体の設定を変更する場合

# mkdir -p /etc/dt/app-defaults/$LANG
# cd /etc/dt/app-defaults/$LANG
# cp /usr/dt/app-defaults/$LANG/Dtwm .
# vi Dtwm

アカウント毎の設定を変更する場合

% vi ~/.Xdefaults

上記2ファイルとも以下の設定を変更(なければ追加)する。

両方とも記述した場合は.Xdefaultsの記述が優先される。

Dtwm*0*workspaceCount: <ワークスペースの数>

(*) スクリーン番号(Dtwm*0..の「0」の部分)は通常は0、外部ディスプレイを使用する場合はディスプレイ毎に1,2,3...を指定する。

通常CDEのデスクトップ設定は前回ログイン時の状態を保存するようになっていて、ログアウト時に現在の状態を~/.dt/sessions/current/dt.resourcesに保存する。

この中に上記と同様のリソース定義が保存されているので次回ログイン時にはそちらが優先される。

従って、上記設定を有効にしたい場合はいったんCDEをログアウトしてTelnet等の(CDE以外の)方法でログインした後にdt.resourcesを編集して同リソースの定義を行ごと削除する必要がある。

こうすることで、次回ログイン時にはワークスペースの数の設定だけが上記設定ファイルから読み込まれる。

2007/9/22更新

対応バージョン: 1.4

~/.Xdefaultsに以下のリソースを設定する。

Dtwm*useFrontPanel: False

2007/9/22更新

対応バージョン: 1.4

コントロール定義ファイルを変更し、削除させたくないサブパネル毎に「CONTROL_INSTALL False」オプションを追加する。

# mkdir -p /etc/dt/appconfig/types/$LANG
# cd /etc/dt/appconfig/types/$LANG
# cp /usr/dt/appconfig/types/$LANG/dtwm.fp .
# vi dtwm.fp

例) 「リンク」サブパネルの「アイコンのインストール」ボタンを表示させない場合

SUBPANEL Links
{
  CONTAINER_NAME    Clock
  TITLE             リンク
  CONTROL_INSTALL   False ← 追加
}

2007/9/22更新

対応バージョン: 1.4

コントロール定義ファイルを変更し、削除させたくないコントロール毎に「LOCKED True」オプションを追加する。

# mkdir -p /etc/dt/appconfig/types/$LANG
# cd /etc/dt/appconfig/types/$LANG
# cp /usr/dt/appconfig/types/$LANG/dtwm.fp .
# vi dtwm.fp

例) 「Webブラウザ」コントロールを削除させたくない場合

CONTROL Clock
{
  TYPE            clock
  CONTAINER_NAME  Top
  CONTAINER_TYPE  BOX
  POSITION_HINTS  1
  ICON            SDtEarth
  LABEL           Web ブラウザ
  PUSH_ACTION     WebBrowser
  DROP_ACTION     WebBrowser
  HELP_TOPIC      FPOnItemClock
  HELP_VOLUME     FPanel
  LOCKED          True ← 追加   
}

尚、フロントパネルをカスタマイズしているような場合はそのアカウントの~/.dt/types/fp_dynamic/*.fpファイルにカスタマイズ内容が保存されるのでこれらファイルにも上記設定を行なう必要がある。

2007/9/22更新

対応バージョン: 1.4

以下の手順で左上メニューの新たなメニュー定義を作り、その定義中で「閉じる」を記述しない。

~/.Xdefaultsに以下のリソースを追加してdtwmのデフォルトのウィンドウメニューを「NonCloseWindowMenu」という新しいウィンドウ定義に変更(ウィンドウ名は任意)

Dtwm*windowMenu: NonCloseWindowMenu

~/.dt/dtwmrcに上記のメニュー定義を作成

dtwmrcが存在しない場合はデフォルトの設定ファイル(/usr/dt/config/$LANG/sys.dtwmrc)からコピーする。

###
#
# No `Close' Window Menu
#
###

Menu NonCloseWindowMenu
{
  "復元(R)"                          _R   f.normalize
  "移動(M)"                          _M   f.move
  "サイズ(S)"                        _S   f.resize
  "アイコン化(n)"                    _n   f.minimize
  "最大表示(x)"                      _x   f.maximize
  "奥へ(L)"                          _L   f.lower
   no-label                               f.separator
  "配置するワークスペース...(O)"     _O   f.workspace_presence
  "すべてのワークスペースに配置(A)"  _A   f.occupy_all
  "このワークスペースから消去(U)"    _U   f.remove
}

ログイン時に~/.Xdefaultsを「xrdb -m」で読み込むように~/.dtprofile等に設定

2007/9/22更新

対応バージョン: 1.4

以下の手順で作成する。

デフォルトの設定ファイルを~/.dt配下にコピー

% cd ~/.dt
% cp /usr/dt/config/$LANG/sys.dtwmrc dtwmrc

自分用のdtwmrcを編集

###
#
# Root Menu Description
#
###

Menu DtRootMenu
{
  "ワークスペース・メニュー"               f.title
  "プログラム"                             f.menu ProgramsMenu
   no-label                                f.separator
  "奥のウィンドウを手前へ"                 f.circle_up
  "手前のウィンドウを奥へ"                 f.circle_down
  "再表示"                                 f.refresh
  "フロントパネルのアイコン化/復元"        f.toggle_frontpanel
  "アイコン整理"                           f.pack_icons
   no-label                                f.separator
  "ワークスペース・マネージャの再起動..."  f.restart
   no-label                                f.separator
  "ログアウト..."                          f.action ExitSession
}

この後に新たに必要なメニューの定義を追加する。

ここでは例として/usr/openwin/bin/xclock(時計)と/usr/openwin/bin/xcalc(計算機)を追加してみる。

ここに書いた文字列が右クリックメニューの[プログラム]サブメニューに表示され、右側に書いたコマンドが実行される。

###
#
# ProgramsMenu Description
#
###

Menu ProgramsMenu
{
    "時計"      f.exec "/usr/openwin/bin/xclock"
    "計算機"    f.exec "/usr/openwin/bin/xcalc"
}

右クリックメニューの「ワークスペース・マネージャの再起動...」を選んでこの設定を有効にする

telnet端末上で上記設定を行った場合は次回のCDE起動時からこの設定が有効になる。

2007/9/22更新

対応バージョン: 1.4

X端末のIPアドレスからホスト名を逆引きしようとして失敗すると上記のエラーとともにアクセスが拒否される。

DNSやhosts等、なんらかの方法で上記X端末の名前解決(逆引き)ができる必要がある。

2007/9/22更新

対応バージョン: 1.4

以下のようにdtloginの設定を変更してdtloginを再起動する。

# mkdir -p /etc/dt/config
# cd /etc/dt/config
# cp -p /usr/dt/config/{Xconfig,Xsetup} .

# vi Xconfig

147  #  Dtlogin*grabServer:    False  ← コメントを外す

# vi Xsetup

/usr/openwin/bin/xhost + > /dev/null 2>&1 ← 最終行に追加
# /etc/rc2.d/S99dtlogin stop
# /etc/rc2.d/S99dtlogin start

2007/9/22更新

対応バージョン: 1.4

CDEのログインの流れは以下のようになっている。

ログイン画面表示(/usr/dt/bin/dtlogin)

ユーザセッション開始(/usr/dt/bin/Xsession)

Xsessionの中で以下の処理を実行

~/.dtprofileがあればそれを実行
/etc/dt/config/Xsession.d配下にファイルがあればファイルの並び順に実行
/usr/dt/config/Xsession.d配下にファイルがあればファイルの並び順に実行

このディレクトリにはデフォルトで以下のファイルが存在する。

0010.dtpaths

全てコメントアウトされている

0020.dtims

日本語入力サーバ起動(/usr/bin/X11/dxjim)

0030.dttmpdir

テンポラリディレクトリ作成等

0040.xmbind

空ファイル

ウェルカム関連処理

ウェルカム画面表示(/usr/dt/bin/dthello)
ルートウィンドウ初期化(/usr/bin/X11/xsetroot)

各種検索パス設定(/usr/dt/bin/dtsearchpath)

使用可能なアプリケーションの収集(/usr/dt/bin/dtappgather)

初期設定ファイル読み込み

~/.dtprofileでDTSOURCEPROFILE=trueが設定されていればログインシェルの種類によって以下のスクリプトを実行

~/.login(C-Shell系)
~/.profile(B-Shell系)

ToolTalkメッセージサーバ起動(/usr/dt/bin/ttsession)

セッションマネージャ起動(/usr/dt/bin/dtsession)

セッションマネージャはユーザがログインしてからログアウトするまでのユーザセッションを管理する。具体的には以下のような処理を行う。

ウィンドウマネージャ起動(/usr/dt/bin/dtwm)
~/.dt/sessions/sessionetcがあればそれを実行
~/.dt/sessions/{current,home}/dt.sessionを実行

この中でコンソール等のプログラムが起動する。

フロントパネル起動

2007/9/22更新

対応バージョン: 1.4

~/.Xdefaultsにて以下の設定を行う。

Dtwm*showFeedback: no

2007/9/22更新

対応バージョン: 1.4

~/.Xdefaultsに以下の設定を追加する。

*ClientFunctions: -close

この設定を行うと画面左上の「閉じる」メニューも無効になる。

ただし、この方法だとフロントパネルのサブパネルメニューを開いた場合に下矢印ボタンを押しても閉じられなくなる。

これはサブパネルメニューの下矢印ボタンが上記リソースのclose機能を使用しているためである。