Skip to content

Commit

Permalink
version up : jdim-0.1.91-beta20190207
Browse files Browse the repository at this point in the history
GTK3版にタッチスクリーン対応を追加する(テスト版)

jdim-0.1.90-beta20190124 からの変更点

* --disable-xinput-extensionオプションを追加
* スレビューのタッチスクリーン対応を追加

詳細はPull Requestを参照してください
#24

Closes #24
  • Loading branch information
ma8ma committed Feb 7, 2019
1 parent 4370eb0 commit 567a9cc
Show file tree
Hide file tree
Showing 12 changed files with 374 additions and 70 deletions.
14 changes: 11 additions & 3 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
オプション

・alsa-lib (--with-alsa)
・libgnomeui (--with-sessionlib=gnomeui)
・libgnomeui (--with-sessionlib=gnomeui) (GTK2版)
・openssl (--with-openssl)
・oniguruma (--with-oniguruma)
・libpcre (--with-pcre)
Expand All @@ -57,7 +57,8 @@

--with-sessionlib=[xsmp|gnomeui|no]

GNOMEUIを使ってセッション管理をするには「gnomeui」を、セッション管理を無効にするには「no」を選択。デフォルトでは XSMPを使用する。
GNOMEUIを使ってセッション管理をするには「gnomeui」を。セッション管理を無効にするには「no」を選択。
デフォルトでは XSMPを使用する。「gnomeui」はGTK2版のみ利用できる。

--with-pangolayout

Expand Down Expand Up @@ -106,7 +107,14 @@

--with-gtkmm3

gtkmm2の代わりにgtkmm3を使用する。
gtkmm2のかわりにgtkmm3を使用する。

--disable-xinput-extension

(GTK3版のみ) XInputの拡張機能(タッチスクリーン操作)を無効にする。
拡張機能が有効だと板一覧やスレ一覧でマウスホイールによるスクロールが動作しないことがある。
環境変数GDK_CORE_DEVICE_EVENTSを設定すると拡張機能は無効になるがこのオプションを使うと
環境変数に関係なく常時無効となる。

* メモ

Expand Down
120 changes: 66 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* [導入方法](#導入方法)
* [事前準備](#事前準備)
* [ビルド](#ビルド)
* [GTK3版について](#GTK3版について)
* [通常の起動](#通常の起動)
* [コマンドライン オプション](#コマンドライン-オプション)
* [多重起動について](#多重起動について)
Expand Down Expand Up @@ -39,18 +40,24 @@ WindowsではMinGWを使ってビルド可能ですが、動作はまだ安定

## 導入方法

> 引用はテスト版(beta)の注意書き
ソースコードからJDimをビルドします。**デフォルトの設定ではGTK2版がビルド**されますのでご注意ください。
詳細は [INSTALL](./INSTALL) にも書いてあります。


### 事前準備

一度だけやればいい
ツールチェーンとライブラリをインストールします。一度インストールすれば次回から事前準備はいりません

#### Redhat系
*GTK2版*
```sh
dnf install gtkmm24-devel gnutls-devel libgcrypt-devel libSM-devel libtool automake autoconf-archive git
```

> GTK3版をビルドする場合は `gtkmm24-devel` の代わりに `gtkmm30-devel` をインストールする。
*GTK3版* - `gtkmm24-devel` のかわりに `gtkmm30-devel` をインストールします。
```sh
dnf install gtkmm30-devel gnutls-devel libgcrypt-devel libSM-devel libtool automake autoconf-archive git
```

#### Debian系
```sh
Expand All @@ -71,17 +78,22 @@ sudo apt-get install build-essential automake autoconf-archive git
sudo apt-get install build-essential automake autoconf-archive git libtool
```

必要なライブラリを入れる。(抜けがあるかも)
必要なライブラリを入れます。(抜けがあるかも)

*GTK2版*
```sh
sudo apt-get install libgtkmm-2.4-dev libmigemo1 libasound2-data libltdl-dev libasound2-dev libgnutls28-dev libgcrypt20-dev
```

> GTK3版をビルドする場合は `libgtkmm-2.4-dev` の代わりに `libgtkmm-3.0-dev` をインストールする。
*GTK3版* - `libgtkmm-2.4-dev` のかわりに `libgtkmm-3.0-dev` をインストールします。
```sh
sudo apt-get install libgtkmm-3.0-dev libmigemo1 libasound2-data libltdl-dev libasound2-dev libgnutls28-dev libgcrypt20-dev
```


### ビルド

*GTK2版 (デフォルト)*
```sh
git clone -b master --depth 1 https://github.com/JDimproved/JDim.git jdim
cd jdim
Expand All @@ -90,31 +102,30 @@ autoreconf -i
make
```

> **デフォルトではGTK2版になる。** GTK3版をビルドするには ./configure にオプション `--with-gtkmm3` を追加する。
> ビルド/インストールの方法は [INSTALL](./INSTALL) にも書いてある。
> ```sh
> git clone -b gtk3-preview --depth 1 https://github.com/ma8ma/JDim.git jdim
> cd jdim
> autoreconf -i
> ./configure --with-gtkmm3
> make
> ```
*GTK3版* - ./configure にオプション `--with-gtkmm3` を追加します。
```sh
git clone -b master --depth 1 https://github.com/JDimproved/JDim.git jdim
cd jdim
autoreconf -i
./configure --with-gtkmm3
make
```

実行するには直接 src/jdim を起動するか手動で /usr/bin あたりに src/jdim を cp する
実行するには直接 src/jdim を起動するか手動で /usr/bin あたりに src/jdim を cp します

#### Arch Linux
> GTK3版のビルドファイルはAURで公開されている。(Thanks to @naniwaKun.)
> https://aur.archlinux.org/packages/jdim-git/
>
> AUR Helper [yay](https://github.com/Jguer/yay) でインストール
> ```sh
> yay -S jdim-git
> ```
GTK3版のビルドファイルはAURで公開されています。(Thanks to @naniwaKun.)
https://aur.archlinux.org/packages/jdim-git/

AUR Helper [yay](https://github.com/Jguer/yay) でインストール
```sh
yay -S jdim-git
```


### 参考

詳しいインストールの方法は [本家のwiki](https://ja.osdn.net/projects/jd4linux/wiki/OS%2f%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%A5%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95) を参照
詳しいインストールの方法は [本家のwiki](https://ja.osdn.net/projects/jd4linux/wiki/OS%2f%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%A5%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95) を参照してください


### Tips
Expand Down Expand Up @@ -148,59 +159,60 @@ make

### GTK3版について

> **GTK3版はテスト版(beta)です!不具合や不便な点がある可能性があります。**
>
> GTK3版はGTK2版同様のルック・アンド・フィールになるように実装していますが、
> 技術的な問題やテスト不足から完全な再現はできていません。
> もしお気づきの点などがございましたらご指摘いただけると幸いです。
GTK3版はGTK2版同様のルック・アンド・フィールになるように実装していますが、
技術的な問題やテスト不足から完全な再現はできていません。
もしお気づきの点などがございましたらご指摘いただけると幸いです。

#### マウスホイール操作
板一覧やスレ一覧でマウスホイールによるスクロールが動作しないことがあります。
環境変数 `GDK_CORE_DEVICE_EVENTS=1` を設定してjdimを起動するとマウスホイール機能が使えます。
```sh
# シェルからJDimを起動する場合
GDK_CORE_DEVICE_EVENTS=1 ./src/jdim
```
または./configureに `--disable-xinput-extension` を追加してビルドすると環境変数の設定を自動で行うようになる。

#### GTK2版から変更/追加された部分
> * 書き込みビューの配色にGTKテーマを使う設定が追加された。
> 1. メニューバーの`設定(C) > フォントと色(F) > 詳細設定(R)...`からフォントと色の詳細設定を開く
> 2. `色の設定`タブにある`書き込みビューの配色設定に GTKテーマ を用いる(W)`をチェックして適用する
* 書き込みビューの配色にGTKテーマを使う設定が追加された。
1. メニューバーの`設定(C) > フォントと色(F) > 詳細設定(R)...`からフォントと色の詳細設定を開く
2. `色の設定`タブにある`書き込みビューの配色設定に GTKテーマ を用いる(W)`をチェックして適用する

#### GTK3版の既知の問題
> * 板一覧やスレ一覧でマウスホイールによるスクロールが動作しないことがある。
> 環境変数 `GDK_CORE_DEVICE_EVENTS=1` を設定してjdimを起動するとマウスホイール機能が使える。
> ```sh
> # シェルからJDを起動する場合
> GDK_CORE_DEVICE_EVENTS=1 ./src/jdim
> ```
> * マウスホイールでタブを切り替える機能が動作しない環境がある。(gtk 3.20以上?)
> * タブのドラッグ・アンド・ドロップの矢印ポップアップの背景が透過しない環境がある。
> (アルファチャンネルが利用できない環境)
* マウスホイールでタブを切り替える機能が動作しない環境がある。(gtk 3.20以上?)
* タブのドラッグ・アンド・ドロップの矢印ポップアップの背景が透過しない環境がある。
(アルファチャンネルが利用できない環境)


## 通常の起動

使い方は以下のとおり
使い方は以下のとおりです

```sh
$ jdim [OPTION] [URL,FILE]
```

引数にURLを付けて起動する事も出来るので、他のアプリケーションから外部コマンドとしてURLを開く事などが出来る
(JDimが扱う事の出来るURLでない場合は設定されているWebブラウザに渡される)
引数にURLを付けて起動する事も出来るので、他のアプリケーションから外部コマンドとしてURLを開く事などが出来ます
(JDimが扱う事の出来るURLでない場合は設定されているWebブラウザに渡されます)

```sh
$ jdim http://pc99.2ch.net/test/read.cgi/linux/1234567890/
```

ローカルにあるdatファイルを指定して、一時的にスレビュー表示させることも出来る
ローカルにあるdatファイルを指定して、一時的にスレビュー表示させることも出来ます

```sh
$ jdim ./12345.dat
```

環境変数 `JDIM_CACHE` でキャッシュディレクトリの位置を変更・指定することが可能
指定しなければ `~/.jd` がキャッシュディレクトリになる
環境変数 `JDIM_CACHE` でキャッシュディレクトリの位置を変更・指定することが可能です
指定しなければ `~/.jd` がキャッシュディレクトリになります

```sh
$ JDIM_CACHE=~/.mycache jdim
```

環境変数 `JDIM_LOCK` でロックファイルの位置を変更・指定することが可能
指定しなければ `~/.jd/JDLOCK` がロックファイルになる
環境変数 `JDIM_LOCK` でロックファイルの位置を変更・指定することが可能です
指定しなければ `~/.jd/JDLOCK` がロックファイルになります

```sh
$ JDIM_LOCK=~/mylock jdim
Expand All @@ -221,16 +233,16 @@ $ JDIM_LOCK=~/mylock jdim

## 多重起動について

JDimはメインプロセス/サブプロセスという関係で動作する
JDimはメインプロセス/サブプロセスという関係で動作します

* メインプロセス: 指令を受け取る事が出来るプロセス
* サブプロセス: 指令を出す事が出来るプロセス

通常は最初に起動した物がメインプロセスとなり、メインプロセスは1つだけ存在する事が出来る
メインプロセスが存在する状態で起動したプロセスはサブプロセスとして扱われ、複数存在させる事も可能
なお、指令を受け取るのはメインプロセスのみなので、指令を出す側のサブプロセスでURLは開かれない
通常は最初に起動した物がメインプロセスとなり、メインプロセスは1つだけ存在する事が出来ます
メインプロセスが存在する状態で起動したプロセスはサブプロセスとして扱われ、複数存在させる事も可能です
なお、指令を受け取るのはメインプロセスのみなので、指令を出す側のサブプロセスでURLは開かれません

以下のコマンドを使い分ける事でサブプロセスの起動のしかたをコントロール出来る
以下のコマンドを使い分ける事でサブプロセスの起動のしかたをコントロール出来ます

* a. 起動するかどうか確認してサブプロセスを起動
```sh
Expand All @@ -245,7 +257,7 @@ JDimはメインプロセス/サブプロセスという関係で動作する。
$ jdim -m http://pc99.2ch.net/test/read.cgi/linux/1234567890/
```

注: サブプロセスを残したままメインプロセスを終了していた場合は次に起動したプロセスがメインプロセスとなる
注: サブプロセスを残したままメインプロセスを終了していた場合は次に起動したプロセスがメインプロセスとなります


## JDとの互換性
Expand Down
14 changes: 14 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -509,4 +509,18 @@ AC_ARG_WITH(pangolayout,[ --with-pangolayout (use pangolayout)],
fi ])


dnl
dnl checking xinput extension
dnl
AC_MSG_CHECKING(for --enable-xinput-extension)
AC_ARG_ENABLE(xinput-extension,
[AS_HELP_STRING([--disable-xinput-extension],
[disable XInput extension (only applies to --with-gtkmm3) [default=no]])],
[], [enable_xinput_extension=yes])
AC_MSG_RESULT($enable_xinput_extension)

AS_IF([test "x$enable_xinput_extension" = xyes],
[AC_DEFINE(ENABLE_XINPUT_EXTENSION, 1, [Enable XInput extension (only applies to WITH_GTKMM_3_0)])])


AC_OUTPUT(Makefile src/Makefile src/skeleton/Makefile src/jdlib/Makefile src/dbtree/Makefile src/dbimg/Makefile src/bbslist/Makefile src/board/Makefile src/article/Makefile src/image/Makefile src/message/Makefile src/history/Makefile src/config/Makefile src/icons/Makefile src/sound/Makefile src/xml/Makefile src/control/Makefile )

0 comments on commit 567a9cc

Please sign in to comment.