カテゴリー
【シェルコマンド】WezTermとlibsixelを使ってDebian&MacOSのターミナルで画像をそのまま表示してみる
※ 当ページには【広告/PR】を含む場合があります。
2023/07/10
2024/06/06
この記事を書いている頃の直近の話題で、VSCodeのv1.80以降の機能アップデートで、統合ターミナルから画像が表示できるようになったようです。
ターミナルに直接画像を表示させるという機能自体は割と昔からやられていたようで、有名どころでいうと、
このlibsixelを使えるようにしておくと、画像ビューアソフトがなくても写真をチェックできるので、シェル使いの人間にはなにかと手間が省けてとても重宝します。
ということで、今回は快適なソフトウェア開発環境作りに(きっと)役に立つ、ターミナルに直接画像を表示させるコマンド・
「WezTerm」をDebianとMacOSにインストール
まずlibsixelを使う前に、やっておきたいことが、「普段使いのターミナルのチェック」です。
どのOSにも標準となって、最初から使えるターミナル(エミュレータ)のほとんどが現在においても、
VT100がそもそも古すぎるビデオ端末で、画像の表示には使えず、libsixelに対応したターミナルは公式に明記されてある通り、それなりにモダンなアプリケーションを使う必要があります。
公式のリストには載っていないのですが、ここでは最近著者のお気に入りで、「Rustで開発&Luaで設定」というイカしたキャッチコピーの
DebianにWezTermを導入する
公式にもあるように、Debian linuxへのインストールの方法はいくつかあるようです。
ここでは説明されている手順に従って、Debian11向けのStable版パッケージファイルのURLリンクを利用したインストールしてみます。
$ curl -LO https://github.com/wez/wezterm/releases/download/20230408-112425-69ae8472/wezterm-20230408-112425-69ae8472.Debian11.deb
$ sudo apt install -y ./wezterm-20230408-112425-69ae8472.Debian11.deb
$ wezterm --version
wezterm 20230408-112425-69ae8472
これで、Debian向けのバイナリインストール自体は完了です。
Debian LinuxではないLinuxディストロでもWezTermを使いたい場合、
$ flatpak install flathub org.wezfurlong.wezterm
flatpakからインストールした場合、WezTermは以下のようにコマンド起動させます。
$ flatpak run org.wezfurlong.wezterm
ただこれだと毎度コマンドを直打ちして起動させるのが面倒なので、
.bashrc
#...中略
#WezTerm Alias
alias wezterm='flatpak run org.wezfurlong.wezterm'
編集内容を保存し、設定を有効にすると
wezterm
WezTermのアプリケーション設定
WezTermの設定は、従来的なやり方の.profileや.bashrcなどに書き込むというような作業も必要もなく、
~/.wezterm.lua
$ nano ~/.wezterm.lua
#👇以下はサンプル
local wezterm = require 'wezterm'
local config = {}
config.font = wezterm.font 'JetBrains Mono'
config.color_scheme = 'Batman'
return config
個人的にLuaはガッツリ使ったことがないものの、いろいろな言語を渡り歩いたせいか、文法上難解な点はほとんどなく、割とスッキリ理解できます。
またLuaの設定ファイルになったことにより、ターミナルのカスタマイズの自由度が格段に大きくなります。
より詳しい設定は以下のページをご参照ください。
さらに、ここからDebianのデフォルトのエミュレータを
WezTerm
#👇weztermの場所を確認
$ which wezterm
/usr/bin/wezterm
#👇優先順位度50でweztermをterminalとして登録
$ sudo update-alternatives --install \
/usr/bin/x-terminal-emulator x-terminal-emulator \
/usr/bin/wezterm 50
#👇terminalの設定を確認し、デフォルト(0)の切り替え
$ sudo update-alternatives --config x-terminal-emulator
alternative x-terminal-emulator (/usr/bin/x-terminal-emulator を提供) には 8 個の選択肢があります。
選択肢 パス 優先度 状態
------------------------------------------------------------
* 0 /usr/bin/wezterm 50 自動モード
1 /usr/bin/koi8rxterm 20 手動モード
2 /usr/bin/lxterm 30 手動モード
3 /usr/bin/mlterm 20 手動モード
4 /usr/bin/open-wezterm-here 20 手動モード
5 /usr/bin/uxterm 20 手動モード
6 /usr/bin/wezterm 50 手動モード
7 /usr/bin/xfce4-terminal.wrapper 40 手動モード
8 /usr/bin/xterm 20 手動モード
うまくいくと
WezTerm
余談〜WezTermから日本語入力できないときの対処法
どちらかというとWezTermではなく、Debian X11のシステムの設定に起因している問題ですが、新しくインストールしたターミナルでは
日本語対応のキーボードの場合、日本語入力の切り替えに
「半角/全角キー」
以下のGitHubのIssueページにも同じような症状が報告としてあがっているようで、対処法として
fcitx5
もし
fcitx5
Debian Wikiに
fcitx5
ちなみに著者が現在利用中のデスクトップ環境は「Xfce」ですので必要ないのですが、「Gnome」の場合は
gnome-shell-extension-kimpanel
kde-config-fcitx5
また、すでに
ibus
$ sudo apt remove ibus
ここから
fcitx5
$ sudo apt install fcitx5 fcitx5-mozc
$ sudo apt remove uim uim-mozc
その後ログインし直すか再起動すると、
fcitx
次に
im-config
fcitx5
$ im-config

また
fcitx5
設定は以下のコマンドを叩くと、手っ取り早く設定ダイアログが表示できます。
$ fcitx5-configtool
日本語キーボードやmozcが設定されているかをチェックしましょう。

問題がなければWezTermでも、「半角/全角キー」がきちんと認識されて、IME機能がON/OFFされるはずです。

MacOSにWezTermを導入する
公式のドキュメントでは
HomeBrewからだと一発インストールできます。
$ brew install --cask wezterm
さきほどのDebianのようなキーボードからの入力メソッドの問題もなく、素直に導入できます。
「libsixel」をDebianとMacOSにインストール
ようやく本題です。
ここからはDebianとMacOSに
ちなみに、一般の画像からターミナル上に表示させるフォーマットである
Debianにlibsixelをインストールする
Debianへのインストールはパッケージマネージャーから一発導入できます。
$ sudo apt install libsixel*
ではインストールされたので、
img2sixel

WezTerm
MacOSにlibsixelをインストールする
MacOSではこちらもHomeBrewからインストールできます。
$ brew install libsixel
こちらも問題なく画像が表示されるでしょう。
まとめ
ターミナルから画像を直接確認したい場合というのは、エンジニアのみならず研究者の方なら結構多いのではないでしょうか。
個人的に、「gnuplot」の作図した出力結果をサッと確認してみたり、「matplotlib」で数値計算した結果をグラフにまとめて並べてみたり....。
最近ではラズパイでカメラ撮影した画像を、ファイル転送なしにSSH越しから直接ターミナルに表示させるなど、いろいろ面白い応用もできます。
画像ビューアを開くのも面倒だという方は、是非とも「libsixel」を入れてターミナルで画像を覗いてみてはいかがかと思います。
参考サイト
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー