2015-05-11

ダーク・カラーで動かすFirefox.appでの色設定

前回の記事で、Terminal.appの色設定を紹介しました。

此れまでに ダーク・カラーで動作しているのは;
  1. Xcoden ⇐ 元からか。
  2. TerxtWrangler ⇐ 不思議と直ぐにできた。此れで病みつきになった。  
  3. Terminal ⇐色調整には苦労した。

でも、使用頻度の高いブラウザー、ファインダー、メイラーには手が出ていません。取っ付きやすそうな「資料検索のブラウザ(Firefox 37.0.2)」から手を出すことにしました。紆余曲折ののち、安定に動作する組み合わせが判ったので、ご紹介します。


 図1. ダーク・カラーのFirefox.app

Figure 1.  My blogger in Firefox with dark color.

上から順に
  • Yosemite 10.10.2 using dark menu bar. 
  • Dark Wood: theme 
  • NoSquint 2.1.9: extention 

私のサイトでは伝統的に「バックグラウンドで紙の画像」を使っていたので、図1のような標示には違和感が強かったです。でも使い慣れると、意外と気に入りました。ある意味、Yosemite自体が昔のKT7.5での「非力ゆえのフラットなデザイン」の系統に回帰しているのかもしれません。

 # 私も、フラットな雰囲気のダーク・カラーのbloggerを作りたいと考えました。


 図2. NoSquintの設定のスタート




 図3. NoSquintの「Global setting」

Figure 3. "Global Setting" of NoSquit.



 図4. NoSquintのサイト毎の設定呼び出し

Figure 4. Operation to call  "Settin Setting" of NoSquit:
require two clics.


図5. NoSquintの「Site Setting」 

Figure 5. "Site Setting" of NoSquit.


図6a. NoSquintもまだ完全ではない! 

エディタでの「作成画面」: アイコンがよく見えない。でも、入力画面は楽に操作できるようになった、感謝。

Figure 6a.  My bloggers'e editor has wrong isons.



図6b. NoSquintも「HTML画面」は修正できない! 

エディタでの「HTML画面」: 投稿画面が眩しすぎる!!!

Figure 6b.  My bloggers'e editor in HTML mode showes too much bririant! 



____
この記事の履歴
  1.  開始 2015-05-11(月) 17:11:32 
  2.  追加 2015-05-11(月) 19:52:10  Googleに図6a,bの問題点を提示。



dark color setting for Firefox.app, Yosemite 10.10.2, Dark Wood, NoSquint 2.1.9,blogger editor,

2015-05-09

zsh: ダーク・カラーで動かすTerminal.appでの'ls出力'の色設定



高齢者にとって「ダーク・カラーで動かすTerminal.app」は目が楽になる!問題は「directoryが濃い紫色で出力される」ので、殆どdirectoryがバックグラウンド・カラーに埋没して読めないのだ。

検索すると「LSCOLORS」と「LS_LOROS」の設定法が多数ある。zsh初心者としては、しっかりと整備したくなった。チュニーングをした結果、下の図1~3に示すように、「単純なlsの場合」でも「lsにTAB補完を施した場合」でも、概ね同じ出力で、視認性も良好だ。

図1 「/」






図2 「/dev」






図3 自作のサンプル・ディレクトリ


  


.zshrcの色設定の部分



########## start: Setup ls-color and it's completion color  & prompt ##########
# 2015-04-20(月) 19:38:51 
#========================
#
##---- Step 1/4) Colors at ls-command: $LSCOLORS #-----------------------------
#         file type:DIlnSOpiexBDCDsusgTWOW
 export LSCOLORS=EGFeFcHdxBDhGhAbAgxCxD
#    •[a-hA-Hx]: cation! 'X(bright default)' not defined
#    •example: fore/back=blue/cyan with normal font --> eg
#              fore/back=blue/cyan with bold font ----> Eg | eG | EG
#----- Step 2/4) Colors at ls-completion: $LS_COLORS #--------------------------
#
 LS_COLORS='di=1;34;46:ln=1;35;44:so=1;32;45:pi=1;33;39:ex=1;39;41:'
 LS_COLORS=$LS_COLORS'bd=1;33;47:cd=1;36;47:su=1;30;41:sg=1;30;46:'
 LS_COLORS=$LS_COLORS'tw=1;39;42:ow=1;39;43:st=1;7;39'
 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
#  in this command,  '$ZLS_COLORS=$LS_COLORS' 
#
##---- Step 3/4) Prompt: -------------------------------------------------------
# tune the preference of the terminal.app manually.
# -----» myTerminalColors2 «----- (2015-05-03(日) 12:39:41)
#            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 
# --------------------------------------
#
##---- Step 4/4) Prompt: -------------------------------------------------------
# 2014-11-08(土) 11:12:35 
#------------------------
# %n=UserName, %m=MachineName, "%4~"='compact dir display'
#
 export PROMPT='%B%F{cyan}%K{blue}%n@%m[%4~]%#%k%f%b '
 export RPROMPT='%B%F{cyan}%K{blue}%D{%H:%M:%S}%k%f%b'
#
########## end: Setup ls-color and it's completion color  & prompt #############





「LSCOLORS」と「LS_COLOROS」に関するノート


Note on LSCOLORS and LS_COLORS


関連記事







____
この記事の履歴
  1. 開始 2015-05-09(土) 13:38:17
  2. 追加 2015-06-16(火) 14:02:25  関連記事

zsh: 彩色するecho関数群の制作と評価

私は前の記事で、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
 ____
この記事の履歴
  1. 開始 2015-05-09(土) 00:53:25 
  2. 修正 2015-05-09(土) 08:52:27 表示データのフォーマットを正しくした。

2015-04-27

swift on terminal?

このところ、「OS X 10.10.2」で「Terminal」の運用を黒っぽい色に変更してみた。結構使い良くなったのでホッとした。ふと、「swift」を「Terminal」から呼び出せないかと思ったたので、打ってみた;



取り敢えず「書き出し」とか「算数」なら対応しそうだ。言うならば、小学生低学年のレベルだな。今後の発展が期待できる。むしろ「Playgrond」を飛び出して、「Swift as a shell script on Terminal」なんて運用ができるといいのだが。

追伸:

「Xcode -> terminal」と来ると、エディターの色も黒色系にしたくなってきた。


____
この記事の履歴
  1. 開始 2015-04-27(月) 08:30:06

2015-04-17

zshで「空白行を除去」をする方法

• 状況

テキストから「空白行の除去」が必要になったので、bashの時から使ってきた「sed ’s/^$//g’」を適用したが、上手くいかない;
  • エラーは出ないが、
  • 入力ファイルがそのままでてきてしまう。

私は「grep」コマンドに親しんでいるので、「grep」で工夫をしてみた;


• ターミナルでのトライ状況






















• 結論

「空白行の除去」には「grep -v ‘^$’」を使うことにしよう。


• 感想

そろそろ、zsh特有の「=~」に挑戦するかなぁ。


•展開

どうせ使うなら、Zshらしい使い方が無いかと思って検索した。その結果、コメントに記入した2つの参考資料に従って、ダイレクトな正規表現を使えた。

#!/bin/zsh

# d0l: Delete blank(0) Line from file.
#
# References:
#    1) "From Bash to Z Shell", Oliver Kiddle et.al., Chapter 13, p331-2.
#    2) "試験運用中なLinux備忘録: ファイルの内容を1行ずつ処理"
#        http://d.hatena.ne.jp/kakurasan/20100112/p1
#
# Usage: d0l «file name»
#
# 2015-04-18(土) 14:21:07 by mNeji
#

file="$1"

cat "$file" | \
while read line; do
    [[ "$line" =~ '^$' ]] && : || echo "$line"
done
簡単な処理なら、「grep」「sed」「awk」の様な難しい文法を利用しないでも、何とかなりそうだ。

____
このページの履歴
  1. 開始 2015-04-17(金) 22:46:21  
  2. 追加 2015-04-18(土) 16:58:16 展開

2015-04-16

Yosemiteで「Wi-Fiのオン・オフ状態」をトグルするスクリプト

このスクリプトの基本動作は「Wi-Fiのオン・オフ状態」をトグルすることです。特にターミナルでWi-Fiを操作するスクリプトを開発しているしている時に、メニューバー中のWi-Fiのアイコンまでマウスを持っていくのは億劫です。

さらに、同時に使うことがあるコマンド、「aiport -I, airporl -s」も簡単に呼び出せるようにしました。Mavericksでこのスクリプトを制作して重宝していました。

残念なことにYosemiteで動作不良が起こったので、それを修正しました。Yosemiteではネットワーク環境が大幅に変更される模様ですので、このスクリプトを紹介します。

ターミナルでの実施例



スクリプトのソース

#!/bin/zsh 

# we: "Wifi state Exchanger" script for Yosemite

# Usage:
#  • we⏎  : normal opration: exchange state(on/off) of Wi-Fi.
#  • we n⏎: normal operation with no output.
#  • we i⏎: airport -I 
#  • we s⏎: airport -s 

# 2015-04-15 11:12:27 from won/wof, by mNeji.

# variables
local Pctrol a api apa inp etp
local pre_status chg_status 
local my_initial my_now nsec cen1


# input parameter
Pctrol="$1"

# direct definition to the command 'airport' for general purose
a="/System/Library/PrivateFrameworks/Apple80211.framework/Versions/"
a=${a}Current/Resources/airport

# airport call & finish
if [[ "$Pctrol" = "i" ]]; then
 $a -I; return
elif [[ "$Pctrol" = "s" ]]; then
 $a -s; return
fi

# set status for previous and changed
pre_status=$([[ "$(ipconfig getifaddr en1 )" = "" ]] && echo "off" || echo "on")
 #echo $pre_status
[[ "$pre_status" = "off" ]] && chg_status="on" || chg_status="off" 
 #echo $pre_status
 #echo $chg_status

# Change Airport status
networksetup -setairportpower en1 $chg_status 

# set initial date in unit of 'sec' 
my_initial=$(date +%s)

# main waiting loop until 'netstat' contain en1 conpornents.
while : ; do
 my_now=$(date +%s) 
 nsec=$(($my_now-$my_initial))

 if [[ "$Pctrol" = ""  ]]; then
  printf "\rWi-Fi:$pre_status → passed(sec): %d" $nsec
 fi 
 cen1=$(netstat -r -f inet | grep en1)
 # s=$(ipconfig getifaddr en1) # it was worked at Mavericks.
 
 [[ "$cen1" = "" ]] && continue || break
done

if [[ "$Pctrol" = ""  ]]; then
 echo -n "\rWi-Fi[$pre_status→(${nsec}sec)→$chg_status] "
fi

# list up status for wifi
api=$($a -I |grep "^  *SSID: " |sed 's/^  *//g' |cut -d' ' -f2)
apa=$($a -I |grep "^  *BSSID: " |sed 's/^  *//g' |cut -d' ' -f2)
inp=$(ifconfig en1 | grep 'inet ' | cut -d' ' -f2)
etp=$(ifconfig en1 | grep ether | cut -d' ' -f2)

if [[ "$Pctrol" = ""  ]]; then
 if [[ "$chg_status" = "on" ]]; then
  echo "$api($apa)⥢⥤ $inp($etp)"
 else
  echo "AccessPoint is idle."
 fi
fi

____
このページの履歴
  1. 開始 2015-04-16(木) 20:04:55 
  2. 修正 2015-04-17(金) 00:32:09 図の修正

2015-04-12

動作中のMacの基礎的ホスト情報を表示するスクリプト

現在、「OS X Yosemite 10.10.2」のクリーン・インストールの準備で四苦八苦しています。特に、これまで「Lion --> Mavericks」までは上書きインストールしか経験がないので。
 
「Mavericks 10.9.5」と「Yosemite 10.10.2」とを交互に立ち上げて比較しています。何度かしていると、自分がどの環境にいるか、混乱します。

ふと、以前ネットワークの整備した時に、LANの設定を表示するスクリプトを書いていたのを思い出しました。それにホスト情報を加えた「zshスクリプト」を作りました。これが結構役にたつので、紹介します。

 ターミナルでの使用例をお示しします;




 スクリプトをお示しします;

#!/bin/zsh
#
# myHost: 
#
# Usage & outputs: 
#  % myHost⏎
#   •System Version: Mac OS X: 10.10.2(14C1514)
#   •Host Name: MmM11.local
#   •Boot Volume: sh3X10.2
#   •LAN Ports: (1) Ether:"*" 10.9.8.100  
#               (2) Wi-Fi:"*" 10.9.8.101  

getHostInfo() {
 sysName=$(sw_vers -productName)
 sysVersion=$(sw_vers -productVersion)
 sysBuild=$(sw_vers -buildVersion)
 
 hostName=$(hostname)
 etherIP=$(ipconfig getifaddr en0)
 wifiIP=$(ipconfig getifaddr en1)
 myd=$( ls -l /Volumes/ | grep " -> " |\
   sed -e "s%.* \([a-zA-Z0-9._-]*\) -> /$%\1%")
 echo " •System Version: $sysName $sysVersion($sysBuild)"
 echo "      •Host Name: $hostName"
 echo "    •Boot Volume: $myd"
 echo "      •LAN Ports: (1) $LAN_Name[1]:\"$LAN_State[1]\" $LAN_IP[1]"
 echo "                  (2) $LAN_Name[2]:\"$LAN_State[2]\" $LAN_IP[2]"
 return
}

getLANportsOrder(){
 set -a LAN_Name=()
 set -a LAN_IP=()
 set -a LAN_State=()
 
 local portOrder, wifiIP, wifiState, etherIP, etherState
 
 # 「(数字 )の行を切り出す。
 portOrder=$(networksetup -listnetworkserviceorder | grep "(\d) ")
  #echo "$portOrder"

 # Wi-Fi setting 
 Nwifi=$(( $(echo $portOrder | grep "Wi-Fi$" | cut -c2) ))
 LAN_Name=( Wi-Fi )
 wifiIP=$(ipconfig getifaddr en1)
 if [[ $wifiIP = "" ]]; then 
  wifiIP="not active: turned off"
  wifiState="_"
 else
  wifiState="*"
 fi 
 LAN_IP=( $wifiIP )
 LAN_State=( $wifiState ) 
  #echo "Nwifi=$Nwifi"

 # Ethernet setting
 Nether=$(( $(echo $portOrder | grep "Ethernet$" | cut -c2) ))
 etherIP=$(ipconfig getifaddr en0)
 if [[ $etherIP = "" ]]; then 
  etherIP="not active: turned off"
  etherState="_"
 else
  etherState="*"
 fi   
  

 if [[ $Nwifi -gt $Nether ]] ; then
  LAN_Name=( Ether $LAN_Name )
  LAN_IP=( $etherIP $LAN_IP )
  LAN_State=( $etherState $LAN_State )
 else
  LAN_Name=( $LAN_Name Ether )
  LAN_IP=( $LAN_IP $etherIP )
  LAN_State=( $LAN_State $etherState )
 fi
 
 #echo $LAN_Name
 #echo $LAN_IP  
 #echo $LAN_State  
 #
 #echo "    (1) $LAN_Name[1]:\"$LAN_State[1]\" $LAN_IP[1]  "
 #echo "    (2) $LAN_Name[2]:\"$LAN_State[2]\" $LAN_IP[2]  "
 
}

# 実行
getLANportsOrder
getHostInfo





 ____ このページの履歴
  1.  開始 2015-04-12(日) 22:47:56 
  2.  修正 2015-04-13(月) 13:42:55 スクリプト: 不要部分を削除。


注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...