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


46

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


8
現在の回答はGtk2についてです。私はGtk3について尋ねています。
-neonboy

あなたが求めるものをよりよく反映するように質問を編集しました。申し訳ありませんが、私の研究から短い答えはノー、することはできません@Kushはこれ以上GTK2ような単純なようではありません:(説明したように、新たな「ハイブリッド」のテーマを作成するいくつかの努力を費やすことなく。
っぽい

回答:


32

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-filesなるだろうExec=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ファイルで変数を設定

いい返事ですが、どのテーマでもこれを機能させることはできません。ターミナルを使用find /usr/share/themes -type d -name 'gtk-3.0' | awk -F'/' '{print $5}'してgedit、デモ目的で例を挙げていただけますか?例えばGTK_THEME="HighContrast" geditenv GTK_THEME="HighContrast" geditまたはGTK_THEME=Adwaita:dark gedit...何もありません。
レッサンドロ

私はちょうどそれを変更し/usr/share/applications/<appname>.desktop、それは私のために働いた。
ドリューチャピン14

アプリ内のコードからこれを行う方法はありますか?
アノニムース

1
テーマ名では大文字と小文字が区別されることに注意してください。
セドリックライヘンバッハ

これは一部のアプリでは機能しますが、すべてでは機能しません。

10

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

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

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

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(その後のパスGTK_DATA_PREFIX=は、それを含むフォルダーへの(そしてそれだけ)でなければなりません。それが、ではなく、ただの理由です。) /share/themes/RENAMED_THEME path/to/MY_FOLDER/share/themes/RENAMED_THEMEpath/to/MY_FOLDER

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

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

1
今、これは私が試した他の答えとは異なり、Eclipseでも実際に機能します。
ルスラン

2
どのファイル/フォルダーを使用することを正確に指しGTK_DATA_PREFIXますか?
runDOSrun

1
これはかなり混乱しましたが、私はそれを理解し、答えを編集しました。

別の方法は、アプリ固有の名前が変更されたテーマを配置し~/.themes(現在のアクティブがである必要があります/usr/share/themes)、いくつかのパスGTK_DATA_PREFIX=path/to/nowhere を使用してそのアプリを起動し、アプリテーマを現在のテーマにリセットし ~/.themesます。そこに同じ名前のもの。

1
@runDOSrun -パスした後は、GTK_DATA_PREFIX=その(なければならないとだけというフォルダに)含まれてい /share/themes/RENAMED_THEME。それがそうではない 理由ですFOLDER/share/themes/RENAMED_THEMEが、ただFOLDER

8

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

あなたがテーマにアプリを言及した方法は、すべてのテーマは、アプリケーションの特定のスタイリングが行われているの上にベースファイルを持っているので、同時に雰囲気と基本作業の両方を有するように(行うべきいくつかの作業を必要とするかもしれないことに注意してください(ファイルgtkrcはGtk 2.0一方、Gtk3.0のgtk.css場合のファイル)。

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

また、GNOMEには、それだけで一つのテーマを持つことが可能であるあなたがUbuntuの12.04で使用される外観ウィンドウを持っている場合、あなたはあなたが使用している場合には、ドロップダウンリストから任意の単一のテーマを選択することができますすることができます知っている、例えば、一度に適用されgnome-tweak-tool、よりGtk、ウィンドウフレーム、アイコンに異なるテーマを設定できますが、それでも特定のアプリケーションをテーマにターゲットにすることはできません。したがって、前述のように、巧妙に作業すれば、異なるアプリケーションにまったく異なるテーマを設定できます。ベーステーマファイル、現在のところ、サードパーティのアプリケーションはそれ自体ではできません。

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

テンプレートを使用して独自のテーマを作成するためにこれを参照することもできます。また、Gtk +テーマに関する適切なドキュメントもあります。


7
新しいテーマを作成するのではなく、既存のテーマを割り当てます。
-neonboy

@neonboy:GTK3ではそれほど単純ではないが、テーマは複数のファイルに分散され、依存関係が満たされない場合、壊れたテーマだけが得られると言いました。そのため、GTK2ではなくGTK3で可能な解決策を示す回答を投稿しました(これを行うのはかなり簡単です)。
クシャル

5

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

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

inkscapeの12.04(これはまだGnome2 btwのままです)でこれが生成されます:

Windowsテーマのinkscapeウィンドウ

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


7
質問はGtk2ではなくGtk3についてです。ありがとう。
-neonboy

元の質問でそれを指定しませんでした。質問者に敵対しないでください。
マーティンオーウェンズ-doctormo-

5
もともとは、「個々のアプリに異なるGTK3テーマを使用できますか?」質問にまだGtk3の主題がありましたが、その後、自由の自由は無効な回答についてコメントを求め、必要であれば質問を編集するように頼みました。
ネオンボーイ

1

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

  1. テーマを変更するプログラムの正確な実行可能ファイルを探します。たとえば、oofficeで使用する場合which oofficeは、ターミナルに入力します。
  2. すべてのアプリケーションがバイナリ実行可能ファイルを配置するbinフォルダーを探します。echo $PATHターミナルに入力すると、パスが作成されます。次のように入力して、ホームディレクトリにbinフォルダーを作成することをお勧めします。mkdir ~/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 "$@"

GTK2_RC_FILES envを使用するGTK2アプリでは確かに可能です。変数。また、コンパイルのテーマは何ですか?問題は、Ubuntuで利用可能なシステム全体のGTKテーマに関するものです。
イッシュ

1
Ubuntu 12.04がテーマにGtk3.0を使用しているのに対して、あなたが述べた方法はGtk2.0をターゲットにしていると思います。
クシャル

6
申し訳ありませんが、それはGtk2の解決策であり、質問はGtk3に関するものです。
-neonboy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.