電力線フォントが正しく表示される必要がある宇宙船プロンプトzshテーマをインストールしました。したがって、DEのターミナルエミュレータ内で実行されるシェルではなく、tty(私が知っている限りビットマップフォントのみを使用できます)で直接実行されるシェルでこれを無効にしたいと思います。
私はこれを私の.zshrcに入れてみました。
if [[ -o login ]] ; then
return
fi
ログインシェルで設定の読み込みを無効にしますが、suを使用するとターミナルエミュレータ(Konsole)で実行しても、ルートシェルもログインとして表示されます。
➜ su
Password:
n750jv# echo $-
569XZilms
関係があるかどうかはわかりませんが、実際には/rootにある.zshrcへのシンボリックリンクを作成し、構成が同期状態を維持します。
注:ttyでecho $ -を実行すると、まったく同じ出力が表示されます。569XZilms
ベストアンサー1
zshを実行している端末に特定の文字が正しく表示されるかどうかを知りたいことがわかりました。 (しかし、これはフォントの種類には関係ありません。文字エンコーディングとフォントに使用する文字が含まれているかどうかに関連しています。)
環境変数を使用して、シェルがTERM
実行されている端末を確認してください。これはフォントオーバーレイのための良い経験的な方法です。
すべてをスキップしないでください.zshrc
。エイリアス、完成など、シェルの実行場所に関係なく、ほとんどの設定が意味があります。プロンプトの内容のみが変更されます。
case $TERM in
xterm*|konsole*)
set_fancy_prompt;;
*)
set_less_fancy_prompt;;
esac
あるいは、端末がUnicodeを使用するのか8ビットのエンコーディングを使用するのかは、十分に優れた経験的方法かもしれません。ロケールカテゴリはLC_CTYPE
良い経験的方法でなければなりません。
case ${(L)LC_ALL:-${LC_CTYPE:-$LANG}} in
*UTF*)
set_fancy_prompt;;
*)
set_less_fancy_prompt;;
esac
これはログインシェルかどうかには関係ありません。たとえば、SSH経由でログインしている場合は、ログイン場所によっては、テキストコンソール、GUI端末、または他の種類の端末(または端末なし)に表示されるログインシェルが表示されます。