«GLMatrix»のハッキング

私にとって XNUMX番目の投稿.. ..私はあなたに(一部の人はまったく役に立たないと思うかもしれない何か)を 色を変える 私のお気に入りのスクリーンセーバー(スクリーンセーバー、スクリーンセーバー)の xscreensaver, GLマトリックス、あなたが知らない場合は、美しい3D効果を備えたマトリックススタイルでモニターを通過する典型的なシンボルのシミュレーターです。 これが画像です:

私はかなり迷惑です、そして私のコンピュータは黒と特徴的な青の色でカスタマイズされています アーチのLinux (これは私の青いバックライト付きキーボードxDで見栄えがします)....典型的な 緑色 マトリックスの、それは私を結合しません(またはそれがこのあたりでそして子供たちの間で言われるように、それは粘液でさえヒットしません)。

これを達成するために、 干渉する xscreensaverのソースコードでは、経験の浅い人を慌てる必要はありません。簡単です。 ステップバイステップガイド 彼らがそれを達成するために; これで私はあなたに言いたいのですが、私はすでに噛んだものを残すつもりはありませんが、それは アイデアは彼らが飲み物を飲んで手を置くということです..恐れずに。

注:私はまったく専門家ではありません...だから私が犯した間違いは何でも私に教えてください...

やってみましょう..

1-xscreensaverのソースコードをダウンロードします。

xscreensaverページに入ることができます。 ダウンロードします の最新バージョン ソースコード (ソースコード)。

www.jwz.org/xscreensaver/download.html

または私たちはすることができます 直接ダウンロード から ターミナル とともに wgetの、常に知っている それのバージョン、 この場合 5.20:

 $ wget http://www.jwz.org/xscreensaver/xscreensaver-5.20.tar.gz

解凍します:

 $ tar -xf xscreensaver-5.20.tar.gz

 2-依存関係を確認します。

を持っていることを確認します 必要なパッケージ xscreensaverを使用できるように、 このために、「configure」を使用します。 しなければならない 注意を払う 出口で(出力)彼らが私たちに与えること、私たちが 一部のパッケージがありません、またはいくつかあります エラー。 パッケージが見つからない場合は、それを探してダウンロードします(synaptics、apt、pacmanなどを介して行うことができます-好みやディストリビューションによって異なります)。

-新しく解凍したフォルダに入ります:

 $ cd xscreensaver-5.20/

以下を実行します。

 $ ./configure

3-正しい動作を確認します。

不足しているパッケージがない場合、または 間違いありません; に進みます インストール xscreensaver、正しく機能することを確認します。

実行します:

 $ make
注:makeは、すべてのファイルを.c(コード)から.o(実行可能)で生成するため、通常は数分かかります。つまり、パッケージをコンパイルします。

メーカーとして、メーカーとしてエラーがない場合 'ルート' インストールします:

 # make install
注意: いいえ これらのコマンドの機能を理解していない人のために詳細に説明します。詳細については、コンパイルとMakefileを参照してください。

テスト:

 $ xscreensaver-demo

4- / hacks / glx / glmatrix.cを変更します

彼らは彼らと話します テキストエディター 私が見た私の場合のお気に入り(vim、nano、geditなど)、この場合に変更するファイル:

 $ vi ./hacks/glx/glmatrix.c

彼らは見つける必要があります ブロック 次のように 形状:
{
unsigned long p = XGetPixel (xi, x, y);
unsigned char r = (p >> rpos) & 0xFF;
unsigned char g = (p >> gpos) & 0xFF;
unsigned char b = (p >> bpos) & 0xFF;
unsigned char a = g;
g = 0xFF;
p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
XPutPixel (xi, x, y, p);
}

およそ760行目にありますが、「a = g」を検索すると、すぐに見つかります。

Y 我々が追加します 次のように希望の色:
{
unsigned long p = XGetPixel (xi, x, y);
unsigned char r = (p >> rpos) & 0xFF;
unsigned char g = (p >> gpos) & 0xFF;
unsigned char b = (p >> bpos) & 0xFF;
unsigned char a = g;
r = 0x71;
g = 0x93;
b = 0xD1;

p = (r << rpos) | (g << gpos) | (b << bpos) | (a << apos);
XPutPixel (xi, x, y, p);
}

にいる RGBヘキサデシマル (赤-緑-青)

例えば、の特徴的な青 アーチのLinux 彼は: #1793D1、残り:

r=0x71;
g=0x93;
b = 0xD1;

私たちは保つ 変更。

5-変更されたglmatrixを使用して新しいxscreensaverを再コンパイルします。

この時点で、実質的に同じことを行います。 ポイント2、しかし今回は私たちが行った変更をキャプチャします。

実行します:

 $ make clean

次に:

 $ make

makeでエラーが発生しなかった場合、ユーザーとして 'ルート' 実行します:

 # make install

6-実行、検証、構成、および楽しみます。

実行します:

 $ xscreensaver-demo

リストから選択します GLマトリックス:

GLMatrixプレビュー

そして、プレゼンテーションでは、それは彼らが選んだ色ですでに見られるはずです。

注:場合によっては、プレビューと実行時の両方で変更を有効にするために、コンピューターを再起動する必要があります。

味わうように設定..と 楽しい 😉

7-異なる色のいくつかの例。 (+ヒント)

六角形の色:#9F03D9

六角形の色:#D41213

六角形の色:#E5E311

先端: 知るために カラー en 16進数 私が使う GIMP、カラーパレットと図を開きます。 「HTML表記」。 'を押すこともできますo'そして、画像の色を取得して、その色がXNUMX進数で何であるかを確認します。

私が試したり書いたりしたのと同じくらい楽しんでいただけたと思います。ご不明な点がございましたら、お気軽にお問い合わせください。

ハッピーハッキング..


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   デビアナイトのマーリン

    まあ、それがきれいに見えてすべてであるならば、しかし古典的な緑色のようなものは何もありません。

    1.    RAW-基本

      コメントありがとうございます....クラシックがクラシックであることは明らかです..

      しかし、これについて(少なくとも私にとって)最も面白いことと、それを実行するように促した理由は、ソースコードが目の前にあることは、「Linuxを持っているので、どのように変更したいのか」と言っているようなものだということです。 。..mayl!.. "。。

      読んでくれてありがとう..😉

  2.   Linuxさん

    スクリーンセーバーのような初歩的または単純な主題について、私たちはそれのコンパイル、変更、およびインストールのクラス全体を行うことになると想像したであろう優れた記事。

    1.    RAW-基本

      ありがとう!....興味を持ってくれてうれしいです..

      私にとって、それはかなりの学習のオデッセイでもありました;)..

  3.   rots87

    使用との違いはありますか?

    $ sudo pacman -S xscreensaver

    1.    RAW-基本

      どの部分について?.. ..ポイント2と3を参照して、それが機能するかどうかを確認する場合.. Archを使用する場合は、同じです..常に最新バージョンを使用しているため、.. ..他のディストリビューションは同じではないかもしれません..

      一方、ソースコードをダウンロードしないと、この投稿の目的である色の変更を行うことができませんでした。

      私はあなたの質問に答えましたか?

      1.    rots87

        ヒントをありがとう^ _ ^

  4.   ラファGCG

    誠にありがとうございます。
    手順は非常に興味深いものです。

    ご挨拶!

  5.   KZKG ^我愛羅

    貢献してくれてありがとう😀

  6.   BOLD

    変更したモデルを赤で共有することはできますか? ありがとう