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`
)に代入するようにしました。
そのほか、色指定がアルファベットから数字(またはカラーコード)へ変更となり、前景・背景の指定方法も変更しています。
以下の様な感じで表示されます。
最近のコメント