Solist Work Blog

ソフトウェアエンジニア / IT navigator

Zeal offline documentation browser

macOSで使われているdashというドキュメントビューワーはオフラインでプログラミング言語のドキュメントが読めて便利だと聞きました。 そのオープンソース版でマルチOSで使えるように作ったものがZealです。

dashがあるから開発環境をmacOSからLinuxにしたいのにできないという人がいるのかどうかは知りませんが、もしいればこの記事は役に立つのではないかと思います。 Zealはあらかじめドキュメントをダウンロードしてから使うドキュメントビューワーなので最速でドキュメントを見れますし、 オフライン環境でもドキュメントを参考にしながらプログラミングできるのでかなりよいです。 Zealが対応しているプログラミング言語はこちらで確認できるように大量にあるので困ることはほとんどないでしょう。

zeal-at-pointの使い方

zeal-at-pointを使えばEmacsで調べたい関数の上で

M-x zeal-at-point

を実行すると

zeal-at-pointで指定したドキュメントを開いている

該当するドキュメントがZealで開くのでとても便利です。

QtにGTK+テーマを適応する

私は基本的にはGTK+のアプリケーションを使うのですが、 ZealGTK+による実装はないのでQtZealを使っています。 このZealはドキュメントビューワーとして優秀なのですが、Qtで作られているためデフォルトでは背景が明るくて目に負担がかかってつらいです。 日本語の情報がなかったのでGTK+のテーマを適用して黒背景にする方法を書いておきます。 Qtアプリケーションの外観にGTK+のテーマを適応できるようにしましょう。 私が使いたいのはZealなのでこれを例として説明します。

sudo pacman -S zeal qt5-styleplugins qt5ct

Zealをインストールします。qt5-styleplugins qt5ctをインストールするとQtアプリケーションの外観を設定できるようになります。

/etc/environment

#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
QT_QPA_PLATFORMTHEME=qt5ct

このファイルを/etc/environmentに配置すればよいので私のdotfilesをgit cloneしたディレクトリで以下のコマンドを叩けばよいです。

sudo ln -vsf ${PWD}/etc/environment   /etc/environment

その後 Qt5 Settingsのアプリケーションを起動します。

Qt5 SettingsでGTK+テーマを設定する

AppearanceタブにあるStyleをgtk2に設定すれば その時アクティブになっているGTK+テーマが適応されます。 私がつかっているGTK+テーマのArc-Darkは 対応しているようなので無事Zealが黒背景になりました。

ZealにGTK+テーマを適応した画面

QtアプリケーションであるAvidemuxにもGTK+テーマを適応できたのでおそらく他のQtアプリケーションもこの方法でいけるのではないでしょうか。

AvidemuxにGTK+テーマを適応した画面

Zealの設定が決まったのでdotfilesに登録しましょう。

~/.config/Zeal/Zeal.conf

[General]
check_for_update=true
hide_on_close=false
minimize_to_systray=false
show_systray_icon=true
start_minimized=false

[content]
custom_css_file=
dark_mode=true
default_fixed_font_size=0
default_font_family=sans-serif
default_font_size=20
disable_ad=false
external_link_policy=@Variant(\0\0\0\x7f\0\0\0)Zeal::Core::Settings::ExternalLinkPolicy\0\0\0\0\x1)
fixed_font_family=IPAGothic
highlight_on_navigate=true
minimum_font_size=18
sans_serif_font_family=Cica
serif_font_family=Cica
smooth_scrolling=false

[docsets]
path=/home/masa/.local/share/Zeal/Zeal/docsets

[global_shortcuts]
show=

[internal]
install_id=405a12fa-80fa-424d-9596-35e1aae57e8a
version=0.6.0

[proxy]
authenticate=false
host=
password=
port=0
type=1
username=

[search]
fuzzy_search_enabled=false

[state]
splitter_geometry=@ByteArray(\0\0\0\xff\0\0\0\x1\0\0\0\x2\0\0\0\xb4\0\0\x4H\0\xff\xff\xff\xff\x1\0\0\0\x1\0)
toc_splitter_state=@ByteArray()
window_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\0\0\0\0\0\x1b\0\0\x4\xff\0\0\x3\x1f\0\0\0\x1d\0\0\0T\0\0\x3\xa0\0\0\x2\xab\0\0\0\0\x2\0\0\0\x5\0)

[tabs]
open_new_tab_after_active=false

Makefile

気に入ったのでMakefileに登録しましょう。

zeal: ## Deploy zeal config and docsets
	sudo pacman -S zeal qt5-styleplugins qt5ct
	sudo ln -vsf ${PWD}/etc/environment   /etc/environment
	mkdir -p ${HOME}/.local/share
	mkdir -p ${HOME}/.config/Zeal
	ln -vsf ${PWD}/.config/Zeal/Zeal.conf   ${HOME}/.config/Zeal/Zeal.conf
	test -L ${HOME}/.local/share/Zeal || rm -rf ${HOME}/.local/share/Zeal
	ln -vsfn ${HOME}/Dropbox/Zeal   ${HOME}/.local/share/Zeal
	
allinstall: ttf-cica install pipinstall goinstall aur mozc neomutt docker mariadb redis rbenv rustinstall nodeinstall screenkey dnsmasq desktop chromium jekyll sxiv zeal zoom toggle

これで

make zeal

するだけでこの変更が適応されます。

make allinstall

すればmake zealも実行されるので次回のラップトップクリーンインストール時には これだけで作業は終わります。 Makefileについて詳しくはこちらの記事を参考にどうぞ。

タグ一覧

お仕事の依頼はこちらからどうぞ

お仕事の依頼はこちらからどうぞ