> Top > 起動について
起動について
通常の起動
使い方は以下のとおりです。
$ jdim [OPTION] [URL,FILE]
引数にURLを付けて起動することもできるため、他のアプリケーションから外部 コマンドとしてURLを開くことなどができます。(JDimが扱うことのできるURLでない場合は 設定されているWebブラウザに渡されます)
$ jdim http://pc99.2ch.net/test/read.cgi/linux/1234567890/
ローカルにあるdatファイルを指定して、一時的にスレッドを表示させることもできます。
$ jdim ./12345.dat
環境変数 JDIM_CACHE
でキャッシュディレクトリの位置を変更・指定できます。
指定しなければ下記の優先順位の通りに決まります。
$ JDIM_CACHE=~/.mycache jdim
環境変数 JDIM_LOCK
でロックファイルの位置を変更・指定することができます。
指定しなければ <キャッシュディレクトリ>/JDLOCK
がロックファイルになります。
$ JDIM_LOCK=~/mylock jdim
キャッシュディレクトリの優先順位
~/.jd |
$XDG_CACHE_HOME/jdim |
使われるのは… |
---|---|---|
存在する | any | ~/.jd |
存在しない | any | $XDG_CACHE_HOME/jdim |
any (無効化) | any | $XDG_CACHE_HOME/jdim |
NOTE:
- 環境変数
XDG_CACHE_HOME
が未設定または空のときはかわりに$HOME/.cache/jdim
が使われます。 ~/.jd
が無効化されている場合はjdim --version
の出力に--disable-compat-cache-dir
が追加されます。- キャッシュディレクトリはJDimを起動すると作成されます。
オプション
- -h, --help
- ヘルプを表示します。
- -m, --multi
- 多重起動時のサブプロセスであっても終了しません。
- -s, --skip-setup
- 初回起動時の設定ダイアログを表示しません。
- -l, --logfile
- エラーなどのメッセージをファイル(キャッシュディレクトリの
log/msglog
)に出力します。 - -g, --geometry WxH-X+Y
- 幅(W)高さ(H)横位置(X)縦位置(Y)を指定します。
WxHは省略可能です。(例:
-g 100x40-10+30
,-g -20+100
)
注意: Wayland環境で起動したときは位置を指定しても反映されません。 - -V, --version
- バージョン及びビルドオプションを全て表示します。
多重起動について
JDimはメインプロセス/サブプロセスの関係で動作します。
- メインプロセス: 指令を受け取ることができるプロセスです。
- サブプロセス : 指令を出すことができるプロセスです。
通常は最初に起動したものがメインプロセスとなり、メインプロセスは1つだけ 存在することができます。メインプロセスが存在する状態で起動したプロセスは サブプロセスとして扱われ、複数存在させることも可能です。なお、指令を受け取るのは メインプロセスのみなので、指令を出す側のサブプロセスでURLは開かれません。
以下のコマンドを使い分けることでサブプロセスの起動の仕方をコントロールできます。
-m
を指定しないときはメインプロセスのウインドウを最前面に表示します (v0.11.0-20240330 から変更)
デスクトップ環境によって挙動が異なる可能性があります。$ jdim
- 確認せずにサブプロセスを起動します。
$ jdim -m
- メインプロセスにURLを渡してサブプロセスを起動します。
$ jdim -m http://pc99.2ch.net/test/read.cgi/linux/1234567890/
注: サブプロセスを残したままメインプロセスを終了していた場合は次に起動 したプロセスがメインプロセスになります。
実行時の注意事項
Wayland対応
JDimはWayland環境で起動しますが、動作は安定していません。
GTKのバックエンドにWaylandを使うかわりに互換レイヤーのXWaylandをインストールして使用することをおすすめします。
環境変数 GDK_BACKEND=x11
を設定してjdimを起動してください。
# シェルからJDimを起動する場合
GDK_BACKEND=x11 ./src/jdim
WaylandやXWaylandではX11限定の機能を使うことができないため注意してください。
- Wayland環境では about:config の「自前でウィンドウ配置を管理する」の設定に関係なく、 ウインドウ(メイン、書き込みビュー、画像ビュー)の位置を復元しません。(Issue #1450を参照)
- Waylandでは、ウインドウ最大化を解除したときのウインドウのサイズは、最大化する前のサイズと異なる可能性があります。 (Issue #1463)
- Waylandでは、親ウインドウから子ウインドウのポップアップを表示する際、一度に1つしか表示できません。 そのため、スレビューのポップアップ表示中にメインウインドウのツールチップを同時に表示することはできません。
既知の問題
- タブのドラッグ・アンド・ドロップの矢印ポップアップの背景が透過しない環境があります。 (アルファチャンネルが利用できない環境)
- Waylandで多段ポップアップを表示すると、マウスポインターから離れた位置に表示されることがあります。 この問題はPR #1472で修正済みです。
- Weston(Waylandコンポジタ)環境でXWaylandをバックエンドに指定して起動した場合、右クリックしながらポップアップ内に マウスポインターを動かすとポップアップ内容ではなくポップアップに隠れたスレビューに反応します。
- Wayland環境では画像ビュー(ウインドウ表示)のフォーカスが外れたら折りたたむ機能が正常に動作しません。
- gcc(バージョン10から13まで)を使いAddressSanitizer(ASan)を有効にしてビルドすると 書き込みのプレビューでトリップを表示するときにクラッシュすることがあります。(Issue #943を参照)
- Ubuntu 22.04(23.10でも確認)の環境でASanを有効にしてビルドしたプログラムを実行すると
AddressSanitizer:DEADLYSIGNAL
を出力し続けてハングアップすることがあります。(README.mdを参照) - Waylandでは、多段ポップアップ表示中にマウスポインターをポップアップ外に移動しても、ポップアップが消えない場合があります。 この場合、Escキーを押すことでポップアップを閉じることができます。
JDとの互換性
JDimの環境設定はJDからフォーマットを継承しているので後方互換性があります。 また、ユーザーインタフェースは今のところ変更されていません。 JDimで追加された不具合や機能の修正についてはPull requestsから見ることができます。
JDから移行する
- 後方互換性としてJDのキャッシュディレクトリ(
~/.jd
)はそのまま使うことができます。 ただし、オプション--disable-compat-cache-dir
が指定されたビルドでは互換機能は無効化されます。 - 互換機能が使えないときは
$XDG_CACHE_HOME/jdim
(~/.cache/jdim
) にキャッシュディレクトリを移動します。$ mv ~/.jd ~/.cache/jdim
- 環境変数
JD_CACHE
でキャッシュディレクトリを設定している場合はかわりにJDIM_CACHE
を使用します。 - JDとJDimを併存させる(データや設定を共有しない)ためには環境変数によるキャッシュディレクトリの設定が必要です。 (通常の起動を参照)
Snapパッケージ
JDimはSnapパッケージとしてSnap Storeで公開されています。
snap
コマンドやwebページからインストールすることでコマンドやデスクトップ環境のメニューから起動できます。
sudo snap install jdim
Snapパッケージ版はアクセス制限が導入されているため通常のパッケージやビルドと異なる点があります。
- JDimを起動したとき作成されるキャッシュディレクトリの場所が異なります。(
~/snap/jdim/common/.cache/jdim/
) - 上記Snap版のキャッシュディレクトリはパッケージを削除(アンインストール)すると消去されます。
- JDのキャッシュディレクトリ (
~/.jd
) は使えません。 - 隠しファイル(ドットファイル)のキャッシュディレクトリは使えません。
- 外部コマンドの呼び出しは制限されます。
- 環境によってはGTKテーマ、アイコン、マウスカーソルがうまく表示されない場合があります。
環境変数 (GTK_THEME
) やGTKの設定ファイル ($XDG_CONFIG_HOME/gtk-3.0/settings.ini
) を調整することで改善できるかもしれません。
サポートの最新情報
Snap i386(32bit)版は2023年1月のリリースをもって更新を終了しました。 更新終了後も最後のバージョンは利用可能ですが、Storeからパッケージが削除される可能性があります。