メニュー 閉じる

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を利用したく調べたところ、ソースから最新版をインストールするとどうやら利用できるようになる模様。
インストールの流れをまとめました。

インストール環境

インストール方法

今回は、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`)に代入するようにしました。
そのほか、色指定がアルファベットから数字(またはカラーコード)へ変更となり、前景・背景の指定方法も変更しています。

以下の様な感じで表示されます。

コメントを残す