2025-05-18

WinScreeny との戯れ!ジャンクコマンドに癒やされる...

気分転換に、WinScreeny...
それは、Cygwin 版 ScreenFetch といったところ。そう、unix 系でお馴染みのアスキーアートだ。CLI 環境が手放せずにいるネアンデルタール人の憩いの場!
人生とは、無駄をいかに楽しむか!ということであろうか。それで、無駄も無駄ではなくなるような...

さて、こいつの良いところは、なんといっても bash で書かれていること。おかげで、いかようにもカスタマイズできる。つまり、Cygwin である必要もないのだ。これぞ自由感!
我が環境では、二つほど warning が出力されるが、コードを見れば一目瞭然!勉強にもなって、ありがたや!ありがたや!
尚、GitHub からダウンロードできる。


 1. 出力は、こんな感じ...
● WinScreeny for Cygwin

#! /bin/bash
screeny
figlet -w 110 -f slant -c "CYGWIN x64"



● ScreenFetch for Roccky Linux(参考まで)

#! /bin/bash
screenfetch-dev
figlet -w 110 -f slant -c "Rock Linux 9"



2. 押さえておきたいワザは、二つ...
● 一つは、変数 "display" で宣言した項目数でループをかけて、detect*() 関数をアクティブ化。

  ...
#display=( Host Cpu OS Arch Shell Motherboard HDD Memory Uptime Resolution DE WM WMTheme Font )
display=( Host Cpu OS Arch Shell Motherboard HDD Memory Uptime Resolution DE WM WMTheme Font GPU Kernel )
  ...

detectHost () { ... }
detectCpu () { ... }
  ...
detectGPU () { ... }
detectKernel () { ... }
  ...

# Loops :>
for i in "${display[@]}"; do
  [[ "${display[*]}" =~ "$i" ]] && detect${i}
done
  ...
尚、GPU と Kernel を追加してカスタマイズ。

● 二つは、文字色と背景色をエスケープシーケンスのカラーコードで抽象化。

  ...
f=3 b=4
for j in f b; do
  for i in {0..7}; do
    printf -v $j$i %b "\e[${!j}${i}m"
  done
done
  ...

cat << EOF
    ...
  ${f1}OS: ${f3}${os} ${arch}
  ${f1}CPU: ${f3}${cpu}
    ...
EOF

# ---- 文字色変数 $f* ----
# $f0 =>  "\e[30m  :Black
# $f1 =>  "\e[31m  :Red
# $f2 =>  "\e[32m  :Green
# $f3 =>  "\e[33m  :Yellow
# $f4 =>  "\e[34m  :Blue
# $f5 =>  "\e[35m  :Magenta
# $f6 =>  "\e[36m  :Cyan
# $f7 =>  "\e[37m  :White

# ---- 背景色変数 $b* ----
# $b0 =>  "\e[40m  :Black
# $b1 =>  "\e[41m  :Red
# $b2 =>  "\e[42m  :Green
# $b3 =>  "\e[43m  :Yellow
# $b4 =>  "\e[44m  :Blue
# $b5 =>  "\e[45m  :Magenta
# $b6 =>  "\e[46m  :Cyan
# $b7 =>  "\e[47m  :White
尚、printf 文は、-v オプションで変数に直接代入できるんだぁ...

0 コメント:

コメントを投稿