w3m(w3m-img)をfbterm対応にして,インライン画像表示.ついでにrangerのサムネイルも
- ubuntu16.04LTS
- w3m-0.5.3
- fbterm1.7-2
w3mとは
- CUIで動くブラウザ.
- なのにインライン画像表示ができる.
- 軽い.
- なんかかっこいい.
しかし,w3mはfbtermに対応していない.
仮想コンソール(tty)の日本語の文字化けは耐え難いので,
fbtermを導入しないのはきつい.
日本語入力もしたい...
\(^o^)/ < オワタ
で終われるわけがない.
考えた.
(。´・ω・) < なんで?
w3mは古いソフトjfbtermに対応しているのだ.
後継であるfbtermに対応できないわけがない.(?)
時間がない人向け
事前準備
- apt sourceの有効化
- /etc/apt/source.listを編集
- debuildを使えるようにする
- sudo apt install devscripts
w3mの導入手順
- $sudo apt source w3m
- $sudo apt build-dep w3m
- $cd w3m-0.5.3
- w3mimg/fb/fb_w3mimg.cを編集
- __jfbterm__を__fbterm__に置換
- read_onlyなのでsudoかchmodで適当にする - $sudo debuild -us -uc -b
- $cd ../
- $sudo dpkg -i w3m_0.5.3-26ubuntu0.1_amd64.deb
- $sudo dpkg -i w3m-img_0.5.3-26ubuntu0.1_amd64.deb
終わり.
次からはもう少し詳しく解説していく.
apt sourceを有効にする
Ubuntu16.04の場合,通常は
sudo apt source
ができない仕様になっている.
これはaptで探索するべき場所がコメントアウトされているからだ.
less /etc/apt/sources.list
これで見てみると,
#deb-src
という感じでコメントアウトされていることがわかるだろう.
このコメントアウトされているところを外して,有効にすればよい.
sedを使って華麗にやりたいところだが,怖いので
sudo vim /etc/apt/source.list
:%s/^#dev-src/deb-src/gc
これでポチポチやった.
後は,
sudo apt update
でもしておこう.
w3mのインストール
ubuntuやdebianなどの場合,
w3mといった古いソフトでもパッチが当てられ更新されていることがある.
だから,通常のインストールで大丈夫と思うとそうではない.
sudp apt install w3m
を使ってインストールしていたのでは,fbterm上ではインライン画像表示が使えない.
そもそもw3mが対応しているのは以下のものだ.(これはconfigureのhelpの--enable-images=DEVSのところに書いてある.)
- x11
- fb
- fb+s
- win
なんでfb対応なのにfbtermでうまくいかないのかというと,
環境変数TERMがjfbtermのときだけ有効になるよう設定されているからだ.
(ソースコードの中で)
かといって,
export TERM=jfbterm
export TERM=xterm-256colors
とやったって,まともに動いてくれない.
仕方がないからソースをちょちょっと書き換えてからコンパイルする必要がある.
patchを読んでみると,環境変数TERMを読み込み判断するif文が,丁寧に書き換えられている.
__jfbterm__かどうかを判断するようにしたまま...
(・д・) < パッチ当ててんのに何でjfbtermやね〜ん
w3mをfbterm対応にする.
aptで導入されるパッケージのソースをダウンロードすればいいやんと思い,
sudo apt source w3m
これに辿り着いた時,
(´・ω・) < 今までの苦労は何だったんだ...
(´・ω・`) < ねぇ...
それはさておき,
色々ファイルがダウンロードされるけど,すでにパッチを当てて解凍されているディレクトリがある.
これをいじればいい.
cd w3m-0.5.3
fgrep -r jfbterm *
でちゃちゃっと検索.
それっぽいファイルの__jfbterm__を__fbterm__に変更する.
パッチも検索に引っかかるけど,c言語のソースだけ書き変えればいい.
目当てのものは,
- w3mimg/fb/fb_w3mimg.c
ここにあるようだ.環境変数TERMを読み込んでるところを書き換える.
これらのファイルはread onlyなのでchmod u+w
するとか,sudo権限で開く必要がある.
sudo vim w3mimg/fb/fb_w3mimg.c
:%s/jfbterm/fbterm/gc
依存関係の解決
ここあたりで,依存関係を解決しておこう.
これでw3mが動作するのに必要なライブラリがインストールされる.
sudo apt build-dep w3m
別に他のライブラリはfbtermに依存していないので問題ない.
コンパイルとインストール
apt source で持ってきたコードはdebuildで簡単にコンパイルできちゃう.
まず,debuildを使えるようにするために
sudo apt install devscripts
そして肝心のコマンド
sudo debuild -uc -us -b
オプションは,署名の省略とバイナリパッケージのみの作成を指定しているらしい.
これで一つ上のディレクトリに__deb__ファイルができているはずだ.(w3mとw3m-imgの二つ)
後は
cd ../
sudo dpkg -i w3m_0.5.3-26ubuntu0.1_amd64.deb
sudo dpkg -i w3m-img_0.5.3-26ubuntu0.1_amd64.deb
で成功するはず.
これで君もw3mユーザーだ.
( ´∀`)人(´∀` )ナカーマ
ついでにrangerのサムネイルで画像がみれるよ
rangerというファイラーではサムネイルに画像が表示できる.
w3m-imgを使って...
ということはfbterm上でも使えるようになる.
W3MIMGDISPLAYとかいう環境変数にw3mimgdisplayの場所を指定する必要があるけれど,
debuildだとデフォルトの位置に入れてくれる.
checkinstallだとインストールされる場所が違うから自分で指定しないといけなかった.
便利だよねえ__debuild__
w3mのkeymapをvim仕様に
最後にw3mのkeymapを変えておこう.
ちょっと使いにくいので,馴染みのvim仕様に!
設定ファイルを置く場所は
- ~/.w3m/keymap
なかったら作成しよう.
設定方法は,ソースファイルの
doc-jp/README.func
doc-jp/README.keymap
doc-jp/keymap.default
doc-jp/keymap.lynx
辺りを参考にしつつカスタマイズしていこう.
ついでに,
menu.default
menu.submenu
も余力があれば.
(´・ω・) < 後はまあ...
(´・ω・) < インライン表示も乱れたりして見難いことが多いけど.
(´・ω・) < CUIで画像が見れるだけで感動もんっしょ.
(´・ω・`) < ネッ!