🌈

ScreenFetchでターミナルにかっこいいスクリーンアートを表示しよう

2021/03/10に公開
2

はじめに

今回は小ネタ記事になります。

エンジニアが日常的によく見る画面の1つにLinuxやUNIXのターミナル(CLI)があります。
LinuxやUNIXには数多くのパッケージが存在しますが、中にはCLIの利点をうまく生かした小ネタ的なパッケージも多く存在します。

Ubuntu系のOSを使っている人がターミナルに以下のようなロゴを表示しているのを見たことがあるという人も多いのではないでしょうか。

Ubuntuのロゴ
有名なUbuntuのスクリーンアート

これはscreenfetchを使って表示しているUbuntuロゴのスクリーンアートになります。コマンドを実行することでディストリビューションのロゴと、端末の詳細が合わせて表示されます。開発に使用するコマンドではないため、小ネタ的な立ち位置のコマンドにはなりますが、ターミナル上でカラフルなロゴがアスキーアートとして大きく表示されているのはかっこいいですよね。

私がもしエンジニアではなかったとして、カフェで作業している人のPC画面でこんなスクリーンアートを見たら気になって思わず2度見してしまいそうです笑。

今回はLinuxやUNIXの環境で使用しているディストリビューションのロゴをスクリーンアートで表示するコマンド「screenFetch」を紹介します。

インストール

GitHubリポジトリはこちらです。
https://github.com/KittyKatt/screenFetch

screenfetchコマンドはパッケージマネージャーから簡単にインストールできます。
ここでは多数のDebian系のLinuxディストリビューションにて採用されているaptとMacユーザーに親しまれているHomebrewを使ったインストール方法をご紹介します。

その他のパッケージマネージャーを使う場合は、Installing screenFetchに詳しくインストール方法がまとめられているので環境に応じてその都度参照をお願いします。

aptを使う場合は以下のコマンド。

$ apt install screenfetch

Homebrewを使う場合は以下のコマンド。
Apple Silicon搭載(M1チップ以降)のMacシリーズではBig Sur以降のバージョンで正常動作しない不具合あるため、最新版を明示的にインストールするため--HEADを指定します。

$ brew install --HEAD screenfetch

でコマンドをインストールできます。

コマンドの実行

インストールしパスが通った後は以下のコマンドですぐに実行できます。

$ screenfetch

このコマンドを入力することで、使用しているディストリビューションのロゴと端末情報がターミナル上に表示されます。オプションをつけることで表示するロゴを指定できます。
何もオプションをつけずに実行した場合は、コマンドを実行しているディストリビューションのロゴがデフォルトで表示されます。

Ubuntu

例えば、Ubuntu-20.04 LTSをインストールしているWSL2上で実行した場合はおなじみのUbuntuのロゴがカラフルに表示されます。

Ubuntu上で実行している様子

画面の左には、ロゴのアスキーアート、右にはコマンドを実行している端末の詳細情報が表示されます。ユーザー名は隠していますが、端末の詳細についてかなり細かく表示されるのが驚きです。

macOS

macOS上で実行している様子

ターミナル上にAppleのロゴであるリンゴのアスキーアートが表示されます。すごくおしゃれですね。

以前は、不具合でUNIXのアスキーアートが表示されていましたが、screenfetchの最新版をインストールしなおすことで解決しました。

Termux(Androidアプリ)

Android OS上で動作するターミナル環境Termuxにコマンドをインストールして実行しました。

Termux上で実行している様子
端末の機種名やOS、搭載メモリまでしっかりと表示されている

TermuxはAndroid端末で動作するターミナルエミュレータになります。

Termuxでは、デフォルトのパッケージマネージャとしてaptが使えるため、apt経由でscreenfetchのインストールを行いました。コマンドを実行したターミナル上にはAndroidのキャラクターであるドロイド君が表示されています。ちょこんとターミナルに表示されている姿がなんともかわいいですね。

オプションをつけた実行

前述したとおり、screenfetchは現在使っているディストリビューションのロゴだけでなく、他のディストリビューションのロゴもスクリーンアートとして表示できます。

やり方はとても簡単で、screenfetchコマンドにオプションと文字列を渡すことで表示できます。

例として、有名なCentOSのロゴを表示してみます。screenfetchコマンドに-Dオプションをつけ引数にディストリビューション名(CentOS)を指定します。

$ screenfetch -D 'CentOS'

CentOS上で実行している様子

オプションを付けたことでUbuntuが動作する環境でもCentOSのロゴと端末情報を表示できました。
引数のディストリビューション名にはCentOSの他にもおなじみのRed Hatやdebian、Arch Linux、Mintなどを指定できます。
ここで指定するディストリビューション名を色々と変えてみることでどのような結果が得られるのかを試すのもおすすめです。

ロゴが変わったのは視覚的にわかりますが、注目してほしいのが画面右に表示されている端末情報のOSもオプションへ指定したディストリビューションに変わっているといった点です。その他の情報も指定したディストリビューションに沿ったものへと再現する形で変化しています。

ロゴを変えたまま端末の情報を合わせて表示したい場合また-Aオプションを使用できます。こちらは-Dオプションに似ていますが、端末情報のOS部分やその他情報を書き換えることなく指定したディストリビューションのロゴを表示します。ロゴを変えつつ端末の情報をそのまま表示するといったイメージです。一部のディストリビューション、OSは-Aオプションを付けないとうまく表示できないため注意が必要です。

Androidのロゴ(ドロイド君)は-Aオプションを付けないとうまく表示できませんでした。


またコマンド実行時にエラーがでてロゴが見えにくい場合は -Dの前に-Eオプションでエラーを取り除いて出力できます。
端末情報だけを表示したい場合は-nオプション、単色表示したい場合は-Nオプションなどscreenfetchコマンドには数多くのオプションがあります。

使用できる全てのオプションはGitHubリポジトリのREADME - Running screenfetchにまとめられているので覗いてみてください。

おわりに

今回は「screenfetch」というコマンドをご紹介しました。

小ネタ的なコマンドにはなりますが、画面上にかっこいいスクリーンアートと端末の詳細情報を一度に表示できるのでおすすめです。

豊富なオプションが用意されており、他のディストリビューションでの表示を再現したりとなかなか作り込まれているコマンドだと感じました。
端末の情報を共有する、息抜きに使用するなど、使い方次第ではなかなか使えるコマンドだと感じます。この記事内で紹介した他にも指定できるオプションが存在するのでぜひ、ReadMeを参考にいろいろと試してみてください。

最後まで読んでいただきありがとうございました。

GitHubで編集を提案

Discussion

あんのたん®️あんのたん®️

Big Sur以降のMacで正常に動作しないのはバグです。
HEADをインストールすれば、正しくリンゴが出ます。

brew unlink screenfetch
brew install --HEAD screenfetch

あーるあーる

きれいなリンゴが表示されることを確認しました。
情報提供ありがとうございます。

やはりバグだったのですね... 。
引き続きよろしくお願いいたします。