web-dev-qa-db-ja.com

Ubuntuのテーマを開発する正しい方法は何ですか?

Ambianceテーマを分岐して、維持する独自のテーマを作成しました。 Ubuntuテーマを開発する最良の方法は何だろうか。

私の現在のソリューションは次のとおりです。

  1. テーマディレクトリを~/Documents/foo
  2. CSSファイルを編集します。
  3. Sudo rm -rf /usr/share/themes/foo && cp -r ~/Documents/foo /usr/share/themes/
  4. Ambianceを選択し、Unity Tweak ToolでFooを選択します。

ほとんどの場合、これを行うためのより良い方法があります。

推奨される方法は何ですか? Ambiance開発者はどうやってそれを行うのだろうか。

4
Ionică Bizău

このプロセスを自動化するには、シンボリックリンクを使用します。..fooディレクトリを削除し、シンボリックリンクを作成します。

ln -s -T /home/youruser/Documents/foo /usr/share/themes/foo

この方法で行う必要があるのは、常に最新のビルドで作業するため、ステップ4だけです。これにより、権限が正しくなり、アカウントにgit Pushできます。不明な点がある場合は、コメントを書いてください。詳しく説明します。私は公式の情報源を持っていません、それは私がそれをするだけの方法です...そしておそらくあなたがこれについてオンラインで何かを見つけることができない理由です。これがセットアップされると、ポイント4 Inotify を実行するファイル変更の監視プロセスを作成できます。

編集作業テーマの自動再読み込み:これにより、すべてのテーマ設定が再読み込みされます

まず、ディスクの変更とunity-Tweak-toolを確認するためにいくつかのパッケージが必要です

Sudo apt-get install inotify-tools unity-Tweak-tool

既存のテーマフォルダーを削除し、すべてのテストでWinXPテーマをテストとして使用したことを忘れないでください。

Sudo mv /usr/share/themes/WinXP/ /usr/share/themes/WinXP-backup/

Githubテーマフォルダーをリンクする

Sudo ln -s -T /home/snapo/Downloads/WinXP/ /usr/share/themes/WinXP/

セキュリティ上の理由から、ソフトウェアセンターのコピーを作成します

Sudo cp -a /usr/share/software-center /usr/share/software-center-backup

/home/snapo/autothemechange.shにあったように、ホームフォルダーにこのコンテンツを含むファイルを作成します

#! /bin/bash
##############################################################################################
DIRECTORY_TO_OBSERVE="/usr/share/themes/WinXP/"     ###### might want to change this #########
MYTHEMENAME="WinXP"                                 ###### your theme directory name #########
LOGFILE="/home/snapo/log-theme-change.log"          ###### Logfile to see when change happen #
##############################################################################################

function detect_theme_change {
  inotifywait -r \
    -e modify,move,create,delete \
    $DIRECTORY_TO_OBSERVE
}
while detect_theme_change; do
  now="$(date)"
  echo "Theme has been changed $now" >> $LOGFILE ;
  /usr/bin/gtk-update-icon-cache
  /usr/bin/gtk-update-icon-cache-3.0
  /usr/bin/xdg-user-dirs-gtk-update

  # reset GTK COLOR SCHEME (Unity, GNOME3, Cinnamon, MATE, GNOME2)
  gsettings set org.gnome.desktop.interface gtk-color-scheme ""
  # mateconftool-2 --type=string --set /desktop/mate/interface/gtk_color_scheme ""
  gconftool-2 --type=string --set /desktop/gnome/interface/gtk_color_scheme ""
  gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.loadTheme();' ;

    # change gtk theme (Unity, GNOME3, Cinnamon, MATE, GNOME2)
  gsettings set org.gnome.desktop.interface gtk-theme "$MYTHEMENAME"
  # mateconftool-2 --type=string --set /desktop/mate/interface/gtk_theme "$MYTHEMENAME"
  gconftool-2 --type=string --set /desktop/gnome/interface/gtk_theme "$MYTHEMENAME"

  # reset / change window theme (Unity, GNOME3, Cinnamon, MATE, GNOME2)
  gsettings set org.gnome.desktop.wm.preferences theme "$MYTHEMENAME"
  gconftool --type=string --set /desktop/cinnamon/windows/theme "$MYTHEMENAME"
  gconftool-2 --type=string --set /apps/metacity/general/theme "$MYTHEMENAME"
  # mateconftool-2 --type=string --set /apps/marco/general/theme "$MYTHEMENAME"

  # change Shell theme
  gsettings set org.gnome.Shell.extensions.user-theme name "$MYTHEMENAME"
  gsettings set org.cinnamon.theme name "$MYTHEMENAME"

done

これが完了したら、chmod 755に設定します

chmod 755 /home/snapo/autothemechange.sh

ほとんどのテーマエンジンをリロードするため、スクリプトは多くのエラーを出力します。つまり、gtk3を使用すると、他のすべてのエンジンがエラーを出力します。

最初に実行する前に編集する必要がある変数が3つあります。各変数の説明は変数の右側にあります。

ログイン時にスクリプトが自動的に起動するようにしたい場合(inotifyにはお勧めしません)、次のことができます:

[システム]> [設定]> [起動アプリケーション]:

bash /home/snapo/autothemeupdate.sh

デスクトップにリンクを作成することをお勧めします。そのため、開発を開始するときに、リンクをダブルクリックします。

2
snapo