Solist Work Blog

Software engineer note

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

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について詳しくはこちらの記事を参考にどうぞ。

タグ一覧

お仕事のご相談などはこちらからどうぞ

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