web-dev-qa-db-ja.com

メインテーマとは異なるGTK3テーマを個々のアプリケーションに適用できますか?

たとえば、Ambianceをメインテーマとして維持しながら、小学校のテーマを小学校のアプリに割り当てることはできますか?

45
Rossi

GTK環境変数GTK_THEME=elementaryを使用して、基本テーマでアプリを起動できます。たとえば、GTK_THEME=elementary pantheon-filesを実行すると、基本のGTKテーマを使用して基本のファイルアプリが起動します。

特定のアプリを起動するたびにこれを適用するには、カスタム.desktopファイル(ランチャー)を作成するのが最善の方法です。

カスタム.desktopファイルを作成する

  1. ファイルブラウザを開きます
  2. /usr/share/applications/に移動します
  3. 基本テーマで起動するアプリのランチャー(ハイライトおよびCtrl + C)をコピーします
  4. ~/.local/share/applications/に移動し、ランチャーを貼り付けます(Ctrl + V)
  5. テキストエディターでランチャーを右クリックして開きます
  6. Exec=で始まる行を変更して、Exec=env GTK_THEME=elementaryを含め、次に行の以前の既存の内容を含めます。 (つまり、Exec=pantheon-filesExec=env GTK_THEME=elementary pantheon-filesになります)
  7. ファイルを保存して閉じます

次回Unity(または選択したアプリランチャー)からアプリを起動すると、基本テーマが使用されます。

ボーナス:コマンドラインを使用するときに機能する

コマンドラインから起動するときに、アプリを基本テーマで起動することもできます。そうするために:

  1. ターミナルアプリを開きます
  2. alias pantheon-files="GTK_THEME=elementary pantheon-files"と入力します(pantheon-filesを目的のアプリに置き換えます)
  3. Enterを押す

警告:

  1. これにより、ウィンドウマネージャーのテーマが基本テーマに変更されることはありません。
  2. これは(設計上)アカウントにのみ適用され、rootまたはマシン上の他のユーザーには適用されません。
  3. テーマ名はcAsE-sEnsItiVeであり、テーマフォルダー名と一致する必要があります。

ソース:

  1. 私は初歩的な貢献者です;)
  2. GTK + 3リファレンスマニュアル:GTK +アプリケーションの実行
  3. 。desktopファイルに変数を設定
29
Cassidy James

質問はまだ有効であり、私は方法を見つけました:

  • 任意のフォルダを作成しますpath/to/MY_FOLDER
  • その中に/share/themes/フォルダーを作成します(つまり、path/to/MY_FOLDER/share/themes)。
  • 後者の内部にGTK3テーマを配置します
  • renameテーマを現在アクティブなテーマの名前に。

    最後に、このコマンドは、アプリが現在アクティブなテーマではなく、名前が変更されたテーマを使用するようにします。

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

GTK_DATA_PREFIX=の後のパスは、を含む)である必要がありますを含む/share/themes/RENAMED_THEMEであるため、ではなくpath/to/MY_FOLDER/share/themes/RENAMED_THEMEが、path/to/MY_FOLDERのみ)

それをランチャー内に入れるには、それに応じて置き換えます:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'
9
Tsu Jan

確かに可能ですが、テーマ設定の経験はあまりありませんが、/usr/share/themes/*Theme Name*/gtk-3.0/apps/ディレクトリに移動すると、.cssファイルが見つかります。これらのファイルにはテーマをターゲットとするアプリが含まれているため、アプリ固有のテーマを作成できます。

アプリのテーマに言及した方法では、何らかの作業が必要になる場合があります(すべてのテーマにはアプリ固有のスタイリングが行われるベースファイルがあるため、AmbianceとElementaryの両方を同時に使用するなど)(ファイルgtkrc inGtk 2.0一方、Gtk3.0)の場合はファイルgtk.css

このベーステーマファイルには、特定のテーマを明確にターゲットとするスタイリングルールが含まれているため、大きな変更を加えることなくAmbianceのベーステーマファイルからElementaryのようなルックアンドフィールを作成することはできません。

また、GNOMEでは、一度に1つのテーマのみを適用できます。たとえば、Ubuntu 12.04で外観ウィンドウを使用した場合、gnome-Tweak-toolを使用した場合、ドロップダウンから任意のテーマを選択できます。 Gtk、ウィンドウフレーム、アイコンに異なるテーマを設定できますが、それでも特定のアプリケーションをテーマにターゲットにすることはできないため、先ほど言ったように、巧妙に作業すれば、アプリケーションごとにまったく異なるテーマを設定できますベーステーマファイルでは、現在のところ、サードパーティのアプリケーションはそれ自体ではできません。

自分でそれを行う方法の1つは、ベーステーマファイル(gtk.css)に、テーマに依存しない、暗いまたは明るい基本的なルールのみを持たせることです。上記のディレクトリにあるアプリ固有のファイルに実際のテーマデザインを記述します。つまり、Nautilusをスタイリングするために、nautilus.cssファイルに必要なすべてのプロパティを記述できます。ターゲットにするすべてのアプリで同じです。明らかに、そのためにはある程度のGtkテーマ設定の経験が必要です。

this を参照して、テンプレートを使用して独自のテーマを作成することもできます。また、Gtk +のテーマ設定には、まともな documentation があります。

7
Kushal

はい、簡単な方法は、アプリケーションを実行するコマンドで、rcファイルが存在する必要なパスにアプリケーションを向けることです。

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape

これは、inkscapeの12.04(これはまだGnome2 btwです)でこれを生成します。

inkscape window with windows theme

here を実行しているGtk2テーマの詳細を参照してください。

はい、できます、実際にグーグルで検索して、いくつかの答えを得ました:

  1. テーマを変更するプログラムの正確な実行可能ファイルを探します。たとえば、oofficeで使用する場合は、ターミナルにwhich oofficeと入力します。
  2. すべてのアプリケーションがバイナリ実行可能ファイルを配置するbinフォルダーを探します。ターミナルでecho $PATHと入力すると、パスが取得されます。 mkdir ~/binと入力して、ホームディレクトリにbinフォルダーを作成することをお勧めします
  3. gedit ~/.bashrcと入力して、bash rcファイルを開きます。
  4. このファイルの最後に移動して、この行を追加しますexport PATH=~/bin:${PATH}

次に、カスタムテーマでプログラムを実行するスクリプトを作成します。

  1. 次のように入力して、アプリケーションのスクリプトファイルを作成します。gedit ~/bin/ooffice
  2. 開いたファイルに次の行を入力します。

    #!/bin/bash
    env GTK2_RC_FILES=/usr/share/themes/SlicknessX/gtk-2.0/gtkrc /usr/bin/ooffice "$@"
    
  3. chmod +x ~/bin/oofficeと入力して、ファイルのモードを実行可能に変更します。

これがお役に立てば幸いです。覚えておかなければならないのは、以下に示すスクリプトの形式です。

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "$@"
0
Ravi Raj