私は前の記事で、Terminalを黒っぽい色で運用するという経験をしました。 明るい画面が眩しい者にとって、其の経験は素晴らしいものでした。
でも、バックグラウンド色を暗くするだけでは、見やすくならないとも感じました。そこで『文字が見やすくなるような輝度と彩度の探索』を行いました。其の結果を図1に示します。
 |
図1. テーブル1: cehelp, テーブル2: fb2z_302. |
図1-テーブル 1は今回作成した「彩色したエスケープ・シークエンスを用いたecho関数群」の出力(カラー調整後)です。この時、Terminal.appでのPreferenceで全ての項目を出力を見ながら調節したRGB値を下表3に示します。図1-
表1 myTerminalColors2
「テーブル 2」は「From Bash to Z Shell, p302.」の連想配列の説明に出ていたスクリプトの出力です。どうやら、カラー名に基づく色指定はターミナルの調節とは連動していないようです。
「テーブル 1, 2」は、.zshrc」の中で直列に置かれた関数から生成されました。言い換えれば、同一のターミナルの色設定でを反映しています。しかし、文字色におおきな差が出ています;
- 文字の輝度は、「テーブル 1」で圧倒的に高くなった。その為に、明るいバックグラウンドの時はフォント・サイズが「18~22pt」だったのが、暗いバックグラウンドでは「16pt」で運用できるようになりました。
- 眩しさは明らかに軽減されました。当然、画面中のデータ量が増大した。
- あたかも、文字が浮かび上がって、目に飛び込んでくるような感触です。
- 文字の彩度は「赤とマゼンタの対」「緑とシアンの対」が識別をしやすくなるように調節した。
- 「赤-->橙」「緑-->明るい緑」「黄-->純色の黄」となった。
- 多色で切り分た多項目データで、項目把握が明確にできるようになった。
- これらのRGB調節の時に、「テーブル 1,2」の振る舞いの観察から、テーブル2はターミナルの調節に依存しないように見えた。其の理由は未だ判らない。
表3 Terminal.appでのカラー設定結果
-----» myTerminalColors2 «-----
Active Win. Inactive Win.
# setting color R G B Opacity Blur Opacity Blur
-----------------------------------------------------------------
01 Background 015 009 024 90 100 27 23
02 Text 230 230 230
03 BoldText 255 255 255
04 Selection 220 140 033
--------------------------------------
05 Black(0) 000 000 000
06 brightBlack(8) 102 102 102
- - - - - - - - - - - - - - - - - -
07 Red(1) 153 000 000
08 brightRed(9) 229 000 000
- - - - - - - - - - - - - - - - - -
09 Green(2) 000 166 000
10 brigtGreen(10) 000 217 000
- - - - - - - - - - - - - - - - - -
11 Yellow(3) 153 153 000
12 brigtYellow(11) 229 229 000
- - - - - - - - - - - - - - - - - -
13 Blue(4) 000 000 178
14 brigtBlue(12) 000 000 255
- - - - - - - - - - - - - - - - - -
15 Magenta(5) 199 000 209
16 brigtMagenta(13) 229 000 229
- - - - - - - - - - - - - - - - - -
17 Cyan(6) 119 194 203
18 brigtCyan(14) 087 239 255
- - - - - - - - - - - - - - - - - -
19 White(7) 191 191 191
20 brigtWhite(15) 229 229 229
--------------------------------------
21 Cursor 255 000 255
--------------------------------------
結論
- エスケープ・シーケンスのカラー・サンプルを見やすく調節出来た。
- この結果、高齢者の画面操作がとてもリラックス出来るようになった。
- 「彩色したエスケープ・シークエンスを用いたecho関数群」は情報を見やすく表示するのに有用だった。
- 他方、カラー名とエスケープ・シークエンスは連携していない。
図1でのスクリプトを示します。
スクリプト1. cehelp
#!/bin/zsh
# ColoringEchoes
#
# Usage: ColoringEchoes⏎
# 2015-04-12(日) 13:45:03
# 2015-04-27(月) 09:22:58 BoldColors: 全ての色の組み合わせ、エスケープ化。
# 2015-05-08(金) 11:11:26 --> ColoringEchoes
# 色文字、背景はディフォールト:バックグラウンド色
# Lightface
ek_(){echo -n "\e[30m${@}\e[m"}
er_(){echo -n "\e[31m${@}\e[m"}
eg_(){echo -n "\e[32m${@}\e[m"}
ey_(){echo -n "\e[33m${@}\e[m"}
eb_(){echo -n "\e[34m${@}\e[m"}
em_(){echo -n "\e[35m${@}\e[m"}
ec_(){echo -n "\e[36m${@}\e[m"}
ew_(){echo -n "\e[37m${@}\e[m"}
et_(){echo -n "\e[38m${@}\e[m"}
# Boldface
bk_(){echo -n "\e[30;1m${@}\e[m"}
br_(){echo -n "\e[31;1m${@}\e[m"}
bg_(){echo -n "\e[32;1m${@}\e[m"}
by_(){echo -n "\e[33;1m${@}\e[m"}
bb_(){echo -n "\e[34;1m${@}\e[m"}
bm_(){echo -n "\e[35;1m${@}\e[m"}
bc_(){echo -n "\e[36;1m${@}\e[m"}
bw_(){echo -n "\e[37;1m${@}\e[m"}
bt_(){echo -n "\e[38;1m${@}\e[m"}
# 色文字、背景は黒色
bkk(){echo -n "\e[1;30;40m${@}\e[m"}
brk(){echo -n "\e[1;31;40m${@}\e[m"}
bgk(){echo -n "\e[1;32;40m${@}\e[m"}
byk(){echo -n "\e[1;33;40m${@}\e[m"}
bbk(){echo -n "\e[1;34;40m${@}\e[m"}
bmk(){echo -n "\e[1;35;40m${@}\e[m"}
bck(){echo -n "\e[1;36;40m${@}\e[m"}
bwk(){echo -n "\e[1;37;40m${@}\e[m"}
btk(){echo -n "\e[1;38;40m${@}\e[m"}
# 色文字、背景は赤色
bkr(){echo -n "\e[1;30;41m${@}\e[m"}
brr(){echo -n "\e[1;31;41m${@}\e[m"}
bgr(){echo -n "\e[1;32;41m${@}\e[m"}
byr(){echo -n "\e[1;33;41m${@}\e[m"}
bbr(){echo -n "\e[1;34;41m${@}\e[m"}
bmr(){echo -n "\e[1;35;41m${@}\e[m"}
bcr(){echo -n "\e[1;36;41m${@}\e[m"}
bwr(){echo -n "\e[1;37;41m${@}\e[m"}
btr(){echo -n "\e[1;38;41m${@}\e[m"}
# 色文字、背景は緑色
bkg(){echo -n "\e[1;30;42m${@}\e[m"}
brg(){echo -n "\e[1;31;42m${@}\e[m"}
bgg(){echo -n "\e[1;32;42m${@}\e[m"}
byg(){echo -n "\e[1;33;42m${@}\e[m"}
bbg(){echo -n "\e[1;34;42m${@}\e[m"}
bmg(){echo -n "\e[1;35;42m${@}\e[m"}
bcg(){echo -n "\e[1;36;42m${@}\e[m"}
bwg(){echo -n "\e[1;37;42m${@}\e[m"}
btg(){echo -n "\e[1;38;42m${@}\e[m"}
bug(){echo -n "\e[1;39;42m${@}\e[m"}
# 色文字、背景は黄色
bky(){echo -n "\e[1;30;43m${@}\e[m"}
bry(){echo -n "\e[1;31;43m${@}\e[m"}
bgy(){echo -n "\e[1;32;43m${@}\e[m"}
byy(){echo -n "\e[1;33;43m${@}\e[m"}
bby(){echo -n "\e[1;34;43m${@}\e[m"}
bmy(){echo -n "\e[1;35;43m${@}\e[m"}
bcy(){echo -n "\e[1;36;43m${@}\e[m"}
bwy(){echo -n "\e[1;37;43m${@}\e[m"}
bty(){echo -n "\e[1;38;43m${@}\e[m"}
buy(){echo -n "\e[1;39;43m${@}\e[m"}
# 色文字、背景は青色
bkb(){echo -n "\e[1;30;1;44m${@}\e[m"}
brb(){echo -n "\e[1;31;1;44m${@}\e[m"}
bgb(){echo -n "\e[1;32;1;44m${@}\e[m"}
byb(){echo -n "\e[1;33;1;44m${@}\e[m"}
bbb(){echo -n "\e[1;34;1;44m${@}\e[m"}
bmb(){echo -n "\e[1;35;1;44m${@}\e[m"}
bcb(){echo -n "\e[1;36;1;44m${@}\e[m"}
bwb(){echo -n "\e[1;37;1;44m${@}\e[m"}
btb(){echo -n "\e[1;38;1;44m${@}\e[m"}
bub(){echo -n "\e[1;39;1;44m${@}\e[m"}
# 色文字、背景はマゼンタ色
bkm(){echo -n "\e[1;30;45m${@}\e[m"}
brm(){echo -n "\e[1;31;45m${@}\e[m"}
bgm(){echo -n "\e[1;32;45m${@}\e[m"}
bym(){echo -n "\e[1;33;45m${@}\e[m"}
bbm(){echo -n "\e[1;34;45m${@}\e[m"}
bmm(){echo -n "\e[1;35;45m${@}\e[m"}
bcm(){echo -n "\e[1;36;45m${@}\e[m"}
bwm(){echo -n "\e[1;37;45m${@}\e[m"}
btm(){echo -n "\e[1;38;45m${@}\e[m"}
# 色文字、背景はシアン色
bkc(){echo -n "\e[1;30;46m${@}\e[m"}
brc(){echo -n "\e[1;31;46m${@}\e[m"}
bgc(){echo -n "\e[1;32;46m${@}\e[m"}
byc(){echo -n "\e[1;33;46m${@}\e[m"}
bbc(){echo -n "\e[1;34;46m${@}\e[m"}
bmc(){echo -n "\e[1;35;46m${@}\e[m"}
bcc(){echo -n "\e[1;36;46m${@}\e[m"}
bwc(){echo -n "\e[1;37;46m${@}\e[m"}
btc(){echo -n "\e[1;38;46m${@}\e[m"}
buc(){echo -n "\e[1;39;46m${@}\e[m"}
# 色文字、背景は白(灰)
bkw(){echo -n "\e[1;30;47m${@}\e[m"}
brw(){echo -n "\e[1;31;47m${@}\e[m"}
bgw(){echo -n "\e[1;32;47m${@}\e[m"}
byw(){echo -n "\e[1;33;47m${@}\e[m"}
bbw(){echo -n "\e[1;34;47m${@}\e[m"}
bmw(){echo -n "\e[1;35;47m${@}\e[m"}
bcw(){echo -n "\e[1;36;47m${@}\e[m"}
bww(){echo -n "\e[1;37;47m${@}\e[m"}
btw(){echo -n "\e[1;38;47m${@}\e[m"}
# 色文字はdefault色?、背景は文字色の反転。
b_k(){echo -n "\e[1;7;30m${@}\e[0m"}
b_r(){echo -n "\e[1;7;31m${@}\e[0m"}
b_g(){echo -n "\e[1;7;32m${@}\e[0m"}
b_y(){echo -n "\e[1;7;33m${@}\e[0m"}
b_b(){echo -n "\e[1;7;34m${@}\e[0m"}
b_m(){echo -n "\e[1;7;35m${@}\e[0m"}
b_c(){echo -n "\e[1;7;36m${@}\e[0m"}
b_w(){echo -n "\e[1;7;37m${@}\e[0m"}
b_t(){echo -n "\e[1;7;38m${@}\e[0m"}
# 改行付き: e_n, b_n:
e_n(){echo "\e[38m${@}\e[m"} # Ligtface with white and \n: new-line.
b_n(){echo "\e[1;38m${@}\e[m"} # Boldface with white and \n: new-line.
# old representation by using colors
#eyk(){echo -n "$fg_bold[yellow]$bg_bold[black]${@}$reset_color"}
#eky(){echo -n "$bg_bold[yellow]$fg[black]${@}$reset_color"}
#ecb(){echo -n "$fg_bold[cyan]$bg_bold[blue]${@}$reset_color"}
#ebc(){echo -n "$bg_bold[cyan]$fg[blue]${@}$reset_color"}
#emk(){echo -n "$fg_bold[magenta]$bg_bold[black]${@}$reset_color"}
#ekm(){echo -n "$bg_bold[magenta]$fg[black]${@}$reset_color"}
#eck(){echo -n "$fg_bold[cyan]$bg_bold[black]${@}$reset_color"}
#ekc(){echo -n "$bg_bold[cyan]$fg[black]${@}$reset_color"}
cehelp(){ #ColoringEchoesHelp
btw "»»» Table 1: $(basename $0) «««";e_n
###bw_ '2015-05-08(金) 18:59:11 ';e_n
ew_ "# ";bt_ '• ';ew_ "ColoringEchoes "; br_ "without ⏎(return).";e_n
ew_ "# ";bt_ '• ';br_ Not ;ew_ " require 'autoload -U colors && colors -u'."; e_n
ew_ "# ";bt_ '• ';bg_ "Boldfaces"; ew_ ": 10rows for __,0a..7h,rv; ";bg_ Lightfaces; ew_ ": 1row. ";e_n
echo '# -----------------------------------------------------------------'
echo '# row\\col 0a 1b 2c 3d 4e 5f 6g 7h 8x col/row'
echo '# -----------------------------------------------------------------'
et_ '# __ ';bk_ ' bk_ ';br_ ' br_ ';bg_ ' bg_ '; by_ ' by_ ';\
bb_ ' bb_ ';bm_ ' bm_ ';bc_ ' bc_ '; bw_ ' bw_ '; bt_ ' bt_ ';\
e_n ' __'
et_ '# 0a ';bkk ' bkk ';brk ' brk ';bgk ' bgk '; byk ' byk ';\
bbk ' bbk ';bmk ' bmk ';bck ' bck '; bwk ' bwk '; btk ' btk ';\
et_ ' 0a';e_n
et_ '# 1b ';bkr ' bkr ';brr ' brr ';bgr ' bgr '; byr ' byr ';\
bbr ' bbr ';bmr ' bmr ';bcr ' bcr '; bwr ' bwr '; btr ' btr ';\
et_ ' 1b';e_n
et_ '# 2c ';bkg ' bkg ';brg ' brg ';bgg ' bgg '; byg ' byg ';\
bbg ' bbg ';bmg ' bmg ';bcg ' bcg '; bwg ' bwg '; btg ' btg ';\
et_ ' 2c';e_n
et_ '# 3d ';bky ' bky ';bry ' bry ';bgy ' bgy '; byy ' byy ';\
bby ' bby ';bmy ' bmy ';bcy ' bcy '; bwy ' bwy '; bty ' btr ';\
et_ ' 3d';e_n
et_ '# 4e ';bkb ' bkb ';brb ' brb ';bgb ' bgb '; byb ' byb ';\
bbb ' bbb ';bmb ' bmb ';bcb ' bcb '; bwb ' bwb '; btb ' btb ';\
et_ ' 4e';e_n
et_ '# 5f ';bkm ' bkm ';brm ' brm ';bgm ' bgm '; bym ' bym ';\
bbm ' bbm ';bmm ' bmm ';bcm ' bcm '; bwm ' bwm '; btm ' btm ';\
et_ ' 5f';e_n
et_ '# 6g ';bkc ' bkr ';brc ' brr ';bgc ' bgc '; byc ' byc ';\
bbc ' bbr ';bmc ' bmr ';bcc ' bcc '; bwc ' bwc '; btc ' btc ';\
et_ ' 6g';e_n
et_ '# 7h ';bkw ' bkw ';brw ' brw ';bgw ' bgw '; byw ' byw ';\
bbw ' bbw ';bmw ' bmw ';bcw ' bcw '; bww ' bww '; btw ' btw ';\
et_ ' 7h';e_n
et_ '# rv ';b_k ' b_k ';b_r ' b_r ';b_g ' b_g '; b_y ' b_y ';\
b_b ' b_b ';b_m ' b_m ';b_c ' b_c '; b_w ' b_w '; b_t ' b_t ';\
et_ ' rv';e_n
et_ '# light ';
ek_ ' ek_ ';er_ ' er_ ';eg_ ' eg_ '; ey_ ' ey_ ';\
eb_ ' eb_ ';em_ ' em_ ';ec_ ' ec_ '; ew_ ' ew_ '; et_ ' et_ ';\
et_ ' lightfaces';e_n
echo '# -----------------------------------------------------------------'
ew_ '# • ';ew_ "Commands "; br_ "with ⏎(return):";e_n ' e_n, b_n, echo and samples.'
echo '# -----------------------------------------------------------------'
}
# 通常文字:e_m:改行無し, e_n: 改行付き
#e_m(){echo -n "\e[38m${@}\e[m"} # Ligtface with white == et_
#b_m(){echo -n "\e[1;38m${@}\e[m"} # Boldface with white == bt_
e_n(){echo "\e[38m${@}\e[m"} # Ligtface with white and \n: new-line.
b_n(){echo "\e[1;38m${@}\e[m"} # Boldface with white and \n: new-line.
# old representation by using colors
#eyk(){echo -n "$fg_bold[yellow]$bg_bold[black]${@}$reset_color"}
#eky(){echo -n "$bg_bold[yellow]$fg[black]${@}$reset_color"}
#ecb(){echo -n "$fg_bold[cyan]$bg_bold[blue]${@}$reset_color"}
#ebc(){echo -n "$bg_bold[cyan]$fg[blue]${@}$reset_color"}
#emk(){echo -n "$fg_bold[magenta]$bg_bold[black]${@}$reset_color"}
#ekm(){echo -n "$bg_bold[magenta]$fg[black]${@}$reset_color"}
#eck(){echo -n "$fg_bold[cyan]$bg_bold[black]${@}$reset_color"}
#ekc(){echo -n "$bg_bold[cyan]$fg[black]${@}$reset_color"}
#set -x
#samples
cehelp
fb2z_302
スクリプト2. fb2z_p
#!/bin/zsh
# usage:
# % fb2z_302⏎
echo
#source $HOME/zsh/functions/ColoringEchoes
autoload ColoringEchoes
#
btw "»»» Table 2: $(basename $0) «««";e_n
ew_ ' • reference: "From Bash to Z Shell", p302.';e_n
ew_ ' • ';br_ require;ew_ ': "autoload -U colors && colors -u"'; e_n
autoload -U colors && colors -u
for bgc in ${(ko)bg}; do
print -n "$bg[$bgc]"
for fgc in ${(ko)fg}; do
printf '%s%-8s' $fg[$fgc] $fgc
done
print $rest_color
done
e_n
____
この記事の履歴
- 開始 2015-05-09(土) 00:53:25
- 修正 2015-05-09(土) 08:52:27 表示データのフォーマットを正しくした。