システム全体に端末の色を適用するには? (/etc/profile.d などを使用してください)

システム全体に端末の色を適用するには? (/etc/profile.d などを使用してください)

私は使うシェル用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シェルテーマをシステム全体(すべてのユーザーに)に適用する方法を見つけました。しかし、私はこれを行うより良い方法があると思います。どんな提案でも大変感謝します。

  1. すべてのユーザーがアクセスできるフォルダ(たとえば/usr/share/base16-shell/)にBase16 Shellをダウンロードします。
$ sudo git clone https://github.com/chriskempson/base16-shell.git /usr/share/base16-shell/
  1. システム全体に~/.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")"
  1. /etc/skel(新しいユーザーのホームページフレーム)で、デフォルトの適用テーマへのシンボリックリンクを作成します。
$ sudo ln -s /usr/share/base16-shell/scripts/base16-material-darker.sh /etc/skel/.base16_theme
  1. 新しいユーザーを作成します(openSUSEでは、次のものを使用できます)。YaSTコントロールセンター)

  2. 新しいユーザーとしてログインし、GNOME端末を開きます。テーマが適用されていることがわかります。

ここに画像の説明を入力してください。

テストの使用openSUSE Leap 15.2ベータGNOMEライブミラー

メモ:

  1. で作業しているため、/etc/skelテーマは新規ユーザー(このプロセス以降に作成されたユーザー)にのみ適用されます。既存のユーザーは、テーマを適用するためにBase16 Shellを一度だけ呼び出す必要があります。しかし、前述したように、より良い方法があると信じています。
  2. AFAIK/etc/bash.bashrc.localはすべてのユーザー(既存のユーザーと新規ユーザーの両方)で動作するため、Base16 Shellは実際にすべてのユーザーに設定します。必要に応じて、誰でもBase16 Shellスクリプトを呼び出してテーマを変更できます。たとえば、
$ base16_material-lighter
  1. 私はたとえばGNOME端末を使用していますが、仮想コンソールでも動作します(たとえばtty1、Ctrl + Alt + F1)。ところで、仮想コンソールで奇妙な動作が観察されました。

ここに画像の説明を入力してください。

色はログイン後にのみ適用され、全画面には適用されません。

次に、次を実行します。

$ clear

すべてが大丈夫に見えます。

ここに画像の説明を入力してください。

(このスクリーンショットではclearコマンドが表示されず、ll再実行しました。)

別のテーマを使用すると、問題がより明確になります。

ここに画像の説明を入力してください。

次に、次clearll操作を行います。

ここに画像の説明を入力してください。

関連情報