External applications メニュー
本ドキュメントでは、Launcher における External applications メニューの構造と動作を説明する。 対象スクリプトは以下である。
0-010-ExternalApps.ini
1. 概要
[External applications] セクションは、Launcher 上で外部スクリプトやツールを実行するためのメニュー群を定義する。
主な機能は次のとおりである。
他の Launcher の起動
Python スクリプトの実行
環境セットアップ
Launcher 自体の再読み込み・再起動
コンテキストメニューの追加
2. セクション構造
2.1 [External applications].select
このセクションは、External applications メニューの初期化処理を担う。
役割
メニューの基準ディレクトリ設定
ツールチップ設定
コンテキストメニュー設定
例
[External applications].select
join_path section_root_dir $(tkprog_X_path) Launcher
add_tooltip 1 "Run another default Launcher.py" #dcfbfe #0000ff
add_tooltip 2 "Run another Launcher.py with all functions" #dcfbfe #0000ff
add_tooltip 19 "Reload script files" #dcfbfe #0000ff
add_tooltip 20 "Restart this Launcher.py" #dcfbfe #0000ff
add_tooltip 21 "Restart this Launcher.py with debug mode" #dcfbfe #0000ff
End
join_path
join_path section_root_dir $(tkprog_X_path) Launcher
External applications メニューの基準パスを設定する。
join_path は OS 依存のパス区切りを吸収して安全にパスを構築するためのコマンドである。
add_tooltip
ボタン番号に対応した説明文を設定する。
add_tooltip 1 "Run another default Launcher.py" #dcfbfe #0000ff
add_tooltip 2 "Run another Launcher.py with all functions" #dcfbfe #0000ff
ここでは、背景色と文字色も併せて指定している。
コンテキストメニュー
create_menu と add_context_menu により、右クリックメニューを追加できる。
create_menu hmenu "title=aaa"\
"label=abc" "command=echo abc"\
"label=def" "command=echo def"\
"label=leave menu" "command=End"\
"label=def" "command=echo def"
add_context_menu hmenu 1
3. 他の Launcher を起動するボタン
External applications メニューには、別設定の Launcher を起動するボタンが定義されている。
4. インストール・環境構築ボタン
External applications には、セットアップやライブラリ導入を行うボタン群も含まれる。
4.4 個別導入ボタン
physbo
[Button14.External applications]
Caption=Install physbo
join_path script_path "$(tkProg_Root)" bin admin mypip.py
$(python_path) "$(script_path)" physbo
End
BoltzTraP2
[Button15.External applications]
Caption=Install BoltzTraP2
join_path script_path "$(tkProg_Root)" bin admin mypip.py
$(python_path) "$(script_path)" wheel
$(python_path) "$(script_path)" BoltzTraP2
End
pydefect
[Button16.External applications]
Caption=Install pydefect
join_path script_path "$(tkProg_Root)" bin admin mypip.py
$(python_path) "$(script_path)" pydefect mp-api
End
Python modules2
[Button17.External applications]
Caption=Install python modules2
join_path script_path "$(tkProg_Root)" bin admin mypip.py
$(python_path) "$(script_path)" pillow
$(python_path) "$(script_path)" pyocr
End
Perl modules
[Button18.External applications]
Caption=Install perl modules
cpan install Jcode File::Copy::Recursive Math:Matrix Math::MatrixReal Math::Vector::Real
cpan install CGI CGI::Carp MIME::Lite Digest::SHA1 HTTP:Cookies
End
説明
専用用途ごとのライブラリを個別に導入する
Button18 は
cpanを使った Perl モジュール導入である
5. Launcher の再読み込み・再起動
6. 主要コマンドの見方
このメニューでは、Launcher スクリプトの典型的なコマンド群が使われている。
6.1 $(start)
$(start) "$(python_path)" "$(script_fullpath)"
外部プログラムやスクリプトを起動するための標準的な呼び出しである。
6.2 $(start_cmd_C) / $(start_cmd_K)
$(start_cmd_C) ...
$(start_cmd_K) ...
Cは実行後にコンソールを閉じるKは実行後もコンソールを保持する
6.3 join_path
join_path var base sub
パス連結を安全に行う。 空白を含むパスや OS ごとの差異を吸収しやすいため、外部プログラム起動前によく使われる。
6.4 check_exist
check_exist $(app_path) "エラーメッセージ"
指定したファイルやディレクトリが存在しない場合にエラーとする。 依存関係の事前確認に有効である。
6.6 save_config
現在の設定を保存する。 再起動前にユーザー設定を保持したい場合に用いる。
7. 設計上の特徴
External applications メニューは、単なる外部アプリ一覧ではなく、Launcher 全体の運用補助メニューとして設計されている。
7.1 複数 Launcher の起動ハブ
Main
All
Electrical
VASP
のように、用途別 Launcher の起動点になっている。
7.2 セットアップ窓口
setup.pycheck libsInstall python modulesInstall perl modules
などをこの画面から直接起動できる。
7.3 メンテナンス機能の集約
Reload
Restart
Restart(/K)
があるため、.ini 編集後の動作確認やデバッグがしやすい。
8. 画面上の見え方との対応
添付画像では、このメニューは Launcher タブ内の External applications 一覧として表示され、右側に補助ボタン、下部に個別ボタン群が並んでいる。 ボタン名としては、たとえば次のものが確認できる。
Main/Launcher.pyAll/Launcher.pyElectrical/Launcher.pyVASP/Launcher.pysetup.pycheck libsInstall python modulesInstall physboInstall BoltzTraP2Install pydefectReloadRestartRestart(/K)
これらは 0-010-ExternalApps.ini 内の Caption= 定義と対応している。
9. まとめ
External applications メニューは、外部アプリケーション実行メニューであると同時に、Launcher の派生起動、環境構築、再読み込み、再起動を担う管理メニューでもある。
特に次の 3 系統に整理できる。
別 Launcher の起動
ライブラリや周辺環境の導入
Launcher 自体の再読み込み・再起動
そのため、ユーザー向けの実行入口としてだけでなく、開発・保守用途でも重要なメニューである。
付録: 対応ボタン一覧
ボタン |
Caption |
機能概要 |
|---|---|---|
Button1 |
Main/Launcher.py |
標準 Launcher 起動 |
Button2 |
All/Launcher.py |
全機能 Launcher 起動 |
Button4 |
Electrical/Launcher.py |
Electrical 用 Launcher 起動 |
Button5 |
VASP/Launcher.py |
VASP 用 Launcher 起動 |
Button10 |
setup.py |
初期セットアップ |
Button11 |
check libs |
依存ライブラリ確認 |
Button13 |
Install python modules |
Python モジュール一括導入 |
Button14 |
Install physbo |
physbo 導入 |
Button15 |
Install BoltzTraP2 |
BoltzTraP2 導入 |
Button16 |
Install pydefect |
pydefect 導入 |
Button17 |
Install python modules2 |
追加 Python モジュール導入 |
Button18 |
Install perl modules |
Perl モジュール導入 |
Button19 |
Reload |
メニュー再読み込み |
Button20 |
Restart |
cmd /C で再起動 |
Button21 |
Restart(/K) |
cmd /K で再起動 |
必要なら、次に この内容を .md ファイルとして保存しやすい形で、見出しや表現を少し整理した完成版 に整えます。