fedora 33にソースからtruecolor対応のscreenをインストールする(screenrcの修正も)
わたくし、GNU screenを普段使っているのですが、fedoraやCentOS(epelリポジトリ)でdnfインストールできるscreenでは、256色表示しか対応していないようです。
というより、現在リリースされている最新版のv4.8.0でも対応していなさそう…
現在のところ、fedora 33でインストールできるscreenはv4.8.0、CentOS Stream 8(epelリポジトリ)でインストールできるscreenはv4.6.2のようです。
どうしてもtruecolor(24bit カラー)に対応したscreenを利用したく調べたところ、ソースから最新版をインストールするとどうやら利用できるようになる模様。
インストールの流れをまとめました。
インストール環境
- Fedora 33 (Server Edition)
- Screen version 4.99.0 (build on 2020-12-28 11:12:38)
インストール方法
今回は、gitからリポジトリをクローンしてインストールする方法にします。
その前にソースコンパイルするのに必要なパッケージをインストールしておきましょう。
$ sudo dnf install git automake autoconf ncurses-devel pam-devel texinfo
gitからソースを持ってきてコンパイル、インストールを行います。
$ git clone git://git.savannah.gnu.org/screen.git
$ cd screen/src
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
(..snip..)
if [ -d /usr/lib/terminfo ]; then \
PATH="$PATH:/usr/5bin" tic ./terminfo/screeninfo.src; \
chmod 644 /usr/lib/terminfo/s/screen*; \
fi
termcap entry (./terminfo/screencap) should be installed manually.
You may also want to install ./etc/etcscreenrc in
make installすると、最後に2行メッセージが表示されました。
termcapの処理はその前の出力を参考に、screenrcは画面の指示に従って入れておきます。
$ tic terminfo/screeninfo.src $ sudo chown root: ~/.terminfo/s/* $ sudo mv ~/.terminfo/s/* /usr/share/terminfo/s/ $ $ sudo cp etc/etcscreenrc /etc/screenrc
これでscreenをインストールできました。
.screenrcの修正
今回導入したscreenでは、過去のバージョンから.screenrcの記述が大きく変わっています。
私に影響があったのは以下の2点です。
truecolor対応hardstatusの書式変更
それぞれについて軽く触れておきます。
truecolor対応
今回の本題であるtruecolor対応についてです。
私の.screenrcでは、元々term screen-256colorを設定していました。
これに加えてtruecolor onを設定します。
term screen-256color truecolor on
hardstatusの書式変更
hardstatusは、screenに常時表示するインジケータです。
私は以前、どこかのサイトを参考にして日付時刻などを表示していましたが、これが表示されなくなってしまいました。
gitのlogを追ってみると、どうやらv4.6.0から使えなくなったものが多くあり、書式も変わったようです。
man screenを読み、以下の通り表現を書き換えました。
# 以前の設定
# hardstatus alwayslastline "[%Y/%02m/%02d %02c:%s] %`%-w%{=b bw}%n %t%{-}%+w | %h"
# 最新の設定
backtick 1 1 1 date "+%Y/%m/%d %H:%M:%S"
hardstatus alwayslastline "%{= 0;7}[%1`] %-w%{=b 7;4}%n %t%{-}%+w | %h"
エスケープ文字で日付時刻を表示できなくなったため、backtrickでコマンドを実行してその出力を&`(上記では%1`)に代入するようにしました。
そのほか、色指定がアルファベットから数字(またはカラーコード)へ変更となり、前景・背景の指定方法も変更しています。
以下の様な感じで表示されます。


最近のコメント