Chienomi

FontConfig, Zsh compilation, Zsh prompt

zsh

FontConfig

うまく動かないといっていたlocal.conf及びUser configだが、どうも/etc/fonts/conf.d/のリンクをmvして戻すと有効になるようだ。理由はわからず、競合するリンクを削除しても変わらない。

また、それでもなぜかUserに対してのserifだけが適用されない。謎だ。

Zsh Compilation

以下の設定を追加してみた。

# Complation options setopt auto_menu setopt glob_complete setopt auto_list setopt list_beep setopt list_types setopt rec_exact menu_complete

menu_completeは使いにくかったのでやめた。

Zsh Prompt

Momonga Linuxのzshrcサンプルを流用していて、これが結構いかしたプロンプトなのだが、Manjaroのetc版と比べてGitが有効になっていないので、有効にすると同時にちょっといじってみた。

zshのプロンプトにgitのステータスをシンプル可愛くを参考にしたのだが、これをそのまま追加するとRPROMPTと競合してしまう。どうやら、プロンプトの設定自体を動的に行うとRPROMPTの文字数が計算できなくなるようだ。

RPROMPT込みで流用できるのはきたけーさんのブログだが、これだと情報量が少ない。

そこでこれを合体させ、さらに色使いを変更し、終了ステータスで変更するのをプロンプト全体ではなくプロンプト($)のみにした。

## prompt # USER --> # For git. I referred http://kitak.hatenablog.jp/entry/2013/05/25/103059 and http://yoshiko.hatenablog.jp/entry/2014/04/02/zshのプロンプトにgitのステータスをシンプル可愛く. Thank you. # VCSの情報を取得するzshの便利関数 vcs_infoを使う autoload -Uz vcs_info # 表示フォーマットの指定 # %b ブランチ情報 # %a アクション名(mergeなど) zstyle ':vcs_info:*' formats '[%b]' zstyle ':vcs_info:*' actionformats '[%b|%a]' precmd () { psvar=() LANG=en_US.UTF-8 vcs_info if [[ -n "$vcs_info_msg_0_" ]] then psvar[1]="$vcs_info_msg_0_" if [[ -n "$vcs_info_msg_1_" ]] then psvar[2]="$vcs_info_msg_1_" elif [[ -n "$vcs_info_msg_2_" ]] then psvar[2]="$vcs_info_msg_2_" elif [[ -n `echo "$st" | grep "^Untracked"` ]] then psvar[2]="Untracked" else psvar[2]="Clean" fi fi } # バージョン管理されているディレクトリにいれば表示,そうでなければ非表示 #RPROMPT="%1(v|%F{green}%1v%f|)" # <-- USER PROMPT='%F{cyan}[%n@%m${WINDOW:+[$WINDOW]} %.] %1(v|%F{yellow}%1v|)%2(v|(%2v) |)%{%(?.$fg[green].$fg[red])%}%(!.#.$)%{$reset_color%} ' RPROMPT=[%~] SPROMPT='zsh: replace '\''%R'\'' to '\''%r'\'' ? [Yes/No/Abort/Edit] '

結構イケる。