私は使うシェル用Base16シェルのデフォルト ANSI 色を変更するスクリプトです。たとえば、
$ wget https://github.com/chriskempson/base16-shell/raw/master/scripts/base16-nord.sh
$ sh base16-nord.sh
このスクリプトは端末の色を次のように変更します(私はopenSUSE Leap 15.1とGNOME 3.26.2を使用しています)。
これに関して:
GNOME端末だけでなく、すべての仮想コンソール(たとえば)でも機能しますtty1
。
ただし、新しいターミナルウィンドウ/セッションを開始するたびに、または~/.bashrc
。
問題は、このカラーテーマシステムをどのように広く使用できるかということです。 (すべてのユーザーが同じ色のテーマを適用するように)
ほとんどのページでは、またはをカスタマイズする方法について説明しますPS1
が、LS_COLORS
これは私が望むものではありません。だから私は新しい質問を始めました。
答え1
同じBase16シェルテーマをシステム全体(すべてのユーザーに)に適用する方法を見つけました。しかし、私はこれを行うより良い方法があると思います。どんな提案でも大変感謝します。
- すべてのユーザーがアクセスできるフォルダ(たとえば
/usr/share/base16-shell/
)にBase16 Shellをダウンロードします。
$ sudo git clone https://github.com/chriskempson/base16-shell.git /usr/share/base16-shell/
- システム全体に
~/.bashrc
対応する/etc/bash.bashrc.local
。
/etc/bash.bashrc.local
必要に応じてこのファイルを作成します。
以下を追加します。
# Base16 Shell
BASE16_SHELL="/usr/share/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
/etc/skel
(新しいユーザーのホームページフレーム)で、デフォルトの適用テーマへのシンボリックリンクを作成します。
$ sudo ln -s /usr/share/base16-shell/scripts/base16-material-darker.sh /etc/skel/.base16_theme
新しいユーザーを作成します(openSUSEでは、次のものを使用できます)。YaSTコントロールセンター)
新しいユーザーとしてログインし、GNOME端末を開きます。テーマが適用されていることがわかります。
テストの使用openSUSE Leap 15.2ベータGNOMEライブミラー。
メモ:
- で作業しているため、
/etc/skel
テーマは新規ユーザー(このプロセス以降に作成されたユーザー)にのみ適用されます。既存のユーザーは、テーマを適用するためにBase16 Shellを一度だけ呼び出す必要があります。しかし、前述したように、より良い方法があると信じています。 - AFAIK
/etc/bash.bashrc.local
はすべてのユーザー(既存のユーザーと新規ユーザーの両方)で動作するため、Base16 Shellは実際にすべてのユーザーに設定します。必要に応じて、誰でもBase16 Shellスクリプトを呼び出してテーマを変更できます。たとえば、
$ base16_material-lighter
- 私はたとえばGNOME端末を使用していますが、仮想コンソールでも動作します(たとえば
tty1
、Ctrl + Alt + F1)。ところで、仮想コンソールで奇妙な動作が観察されました。
色はログイン後にのみ適用され、全画面には適用されません。
次に、次を実行します。
$ clear
すべてが大丈夫に見えます。
(このスクリーンショットではclear
コマンドが表示されず、ll
再実行しました。)
別のテーマを使用すると、問題がより明確になります。
次に、次clear
のll
操作を行います。