コマンドラインでイメージファイルを.edj形式に変換するには?

コマンドラインでイメージファイルを.edj形式に変換するには?

最近、Sabayon LinuxコンピュータにE17四半期のMokshaをインストールしましたが、問題は壁紙をJPGまたはPNGファイルに変更するグラフィックツールが私に悲しみを与えてくれることです(例えば、Bodhi Linuxでこれをサポートしようとしました) 。コミュニティをご覧ください。このフォーラムの投稿)が、.edj形式の壁紙(アニメーションの壁紙を含む)をかなり簡単に使用できるようです。だから誰かがシェルスクリプト(私が使用するのに十分簡単です)を持っているか、コマンドラインから実行して私のJPGとPNGの壁紙を.edjファイル形式に変換できることを願っています。

答え1

これを行うさまざまなコードの抜粋を提供します。このバージョンのコードには、edjファイルに画像を含めるのではなく、画像パスのみが含まれています。

OUTPUT_DIR="$HOME/.e/e/backgrounds"

TEMPLATE='
images { image: "@IMAGE@" USER; }
collections {
  group {
  name: "e/desktop/background";
  data { item: "style" "4"; item: "noanimation" "1"; }
  max: @WIDTH@ @HEIGHT@;
  parts {
    part {
    name: "bg";
    mouse_events: 0;
    description {
      state: "default" 0.0;
      aspect: @ASPECT@ @ASPECT@;
      aspect_preference: NONE;
      image { normal: "@IMAGE@"; scale_hint: STATIC; }
    }
    }
  }
  }
}
'

OFILE="$OUTPUT_DIR/variety_wallpaper_$RANDOM"

DIMENSION="$(identify -format "%w/%h" "$WP")"

if [ ! -z "$DIMENSION" ]; then
    WIDTH=$(echo $DIMENSION | cut -d/ -f1)
    HEIGHT=$(echo $DIMENSION | cut -d/ -f2)
    IMAGE="$(echo "$WP" | sed 's/[^[:alnum:]_-]/\\&/g')"

    if [ -z "$HEIGHT" -o "$HEIGHT" = "0" ]; then
        ASPECT="0.0"
    else
        ASPECT=$(echo "scale=9; $DIMENSION" | bc)
    fi
fi

printf "%s" "$TEMPLATE" | \
sed "s/@ASPECT@/$ASPECT/g; s/@WIDTH@/$WIDTH/g; s/@HEIGHT@/$HEIGHT/g; s|@IMAGE@|$IMAGE|g" > "$OFILE.edc"
edje_cc "$OFILE.edc" "$OFILE.edj" 2>/dev/null
rm "$OFILE.edc"

完全なソースはhttp://bazaar.launchpad.net/~peterlevi/variety/trunk/view/head:/data/scripts/set_wallpaper

画像を挿入するには、次の操作を行います。 UIにインスピレーションを与えて壁紙を作成し、edje_deccを使用してデコンパイルして得たものです。

images { image: "1920x1080.png" LOSSY 90; }
collections {
  group { name: "e/desktop/background";
  data { item: "style" "4"; }
    data.item: "noanimation" "1";
    parts {
      part { name: "bg"; mouse_events: 0;
        description { state: "default" 0.0;
          aspect: 1.777777778 1.777777778; aspect_preference: NONE;
          image { normal: "1920x1080.png";  scale_hint: STATIC; }
        }
      } 
    } 
  }
}

edje_cc -id . -fd . e_bgdlg_new.edc -o 1920x1080.edj次に、上記の内容がファイルにあり、イメージがスクリプトをe_bgdlg_new.edc呼び出すのと同じディレクトリにあると仮定してテーマを構築します。

関連情報