GTKのテーマとアイコンを整える(GTKで遊ぶ第3回) | ハッピーコンピューティングのブログ

ハッピーコンピューティングのブログ

東京都小平市の小さなプログラミング教室のブログです。

ピュアなC言語(非C++)でGUIアプリを作りたくて

どうせならおもしろそうなのがいいのでGTKにしようと思って

いっそGTKライブラリそのものをビルドするところからやっちゃおうということで

調べてみたら Windows10 の上で VisualStudio 2019 を使ってビルドする方法があったので

やってみたのが前々回。

 

 

出来上がったライブラリを使って

サンプルアプリをビルドしてみたのが前回。

 

 

ここで「アイコンが見つからないんですけど」というような警告が出てましたがとりあえずアプリは動きました。

 

今回はこの警告をやっつけるためにアイコンとテーマを整えたいと思います。

 

1.Windows 10 Theme for Linuxを取ってくる

とりあえずWindows10な見た目のテーマを取ってきます。下記にアクセスして

 

 

「Code」ボタンをクリックしたのち「Download ZIP」をクリック

 

ダウンロードされたファイルを展開します。

 

2.テーマフォルダを配置

展開された「Windows-10-master」の中の「gtk-3.20」フォルダを右クリックして「コピー」

 

エクスプローラで C:\gtk-build\gtk\x64\release\share\themes フォルダを開く。

これまでの手順通りの人はこの場所になるはず。

違った手順でGTKをビルドした人は適宜パスを読み替えてください。

 

ここで右クリックして「新規作成」→「フォルダー」

 

できたフォルダの名前は「Windows10」にしてください。

 

作ったばかりのWindows10フォルダの中へ入り、右クリックして貼り付け


gtk-3.20フォルダが貼り付けられますがこれを右クリックして「名前の変更」

 

 

「gtk-3.0」にします。

 

 

3.Adwaitaのアイコンテーマをダウンロード

ウェブブラウザで下記のウェブページにアクセスする。
adwaita-icon-theme の最新バージョン(2020年12月3日時点では 3.38)」のフォルダをクリック。
 
次のページで「adwaita-icon-theme-*.**.*.tar.xz」のリンクをクリックしてダウンロードする。
 

4.Adwaitaアイコンをmsys環境で展開

ダウンロードしたadwaita-icon-theme-3.38.0.tar.xzファイルを右クリック→コピー。
 
エクスプローラで msys の homeフォルダ、私の環境だと「C:\msys64\home\admin」を開いて、右クリック→貼り付け。
3.でダウンロードしたadwaita-icon-theme-3.38.0.tar.xzファイルがコピーされる。
 
msysのコンソールを立ち上げる。
 
msysのコンソール上で 下記のコマンドを実行して展開する。 
$ xz -dc adwaita-icon-theme-3.38.0.tar.xz | tar xfv -
 

5. Adwaitaアイコンをnmakeで作成

msysコンソールは閉じて、Windowsのスタートメニューから VisualStudio 2019 → Developer Command Prompt for VS2019 を立ち上げる。
 
下記のコマンドを実行する
cd C:\msys64\home\admin\adwaita-icon-theme-3.38.0\win32
nmake /f adwaita-msvc.mak

 

C:\msys64\home\admin\adwaita-icon-theme-3.38.0\win32の中に index.theme ファイルができていることを確認する。

 

6. AdwaitaアイコンをGTKフォルダへコピー

msysコンソールは閉じて、エクスプローラで C:\msys64\home\admin\adwaita-icon-theme-3.38.0\Adwaita を開いて、内容をすべて選択してコピーする。
 
"C:\gtk-build\gtk\x64\release\share\icons\Adwaita" というパスができるように、icons、Adwaitaというフォルダを作り、中へ入る。
 
右クリックして貼り付ける。
 
また同様に、"C:\msys64\home\admin\adwaita-icon-theme-3.38.0\win32\index.theme" ファイルも "C:\gtk-build\gtk\x64\release\share\icons\Adwaita"にコピーする。
 

7.hicolorアイコンをダウンロードする

hicolorのアイコンテーマをダウンロードするために下記のページにアクセスする。

 

hicolor-icon-theme-0.17.tar.gzのリンクをクリックしてダウンロードする。

このとき、Google Chromeだと「安全にダウンロードできません」とか言われますが「保存」ボタンを押す。

 

8.hicolorアイコンをmsys環境で作成

ダウンロードしたhicolor-icon-theme-0.17.tar.xzファイルを右クリック→コピー。

 

エクスプローラで msys の homeフォルダ、私の環境だと「C:\msys64\home\admin」を開いて、右クリック→貼り付け。
6.でダウンロードした hicolor-icon-theme-0.17.tar.xz ファイルがコピーされる。

 

msysのコンソールを立ち上げる。

 

msysのコンソール上で 下記のコマンドを実行して展開する。 
$  xz -dc hicolor-icon-theme-0.17.tar.xz | tar xfv -
 
下記のコマンドを順番に実行する
$ cd hicolor-icon-theme-0.17/
$ ./configure --prefix=/home/admin/hicolor-icon-theme-0.17
$ make
$ make install


9. hicolorアイコンをGTKフォルダへコピー

msysコンソールは閉じて、C:\msys64\home\admin\hicolor-icon-theme-0.17\share\icons を開いて、hicolorフォルダをコピーする。
 
"C:\gtk-build\gtk\x64\release\share\icons" に移動後、貼り付け。
 

10. settings.iniファイルの作成

エクスプローラで C:\gtk-build\gtk\x64\release\etc\gtk-3.0 に移動して、settings.iniというテキストファイルを作る。

 

メモ帳でsettings.ini を開いて (右クリックして「編集」でメモ帳で開ける)、下記のように書き込んで保存する。

[Settings]
gtk-theme-name=Windows10
gtk-font-name=Segoe UI 9

 

11. セッティングスキーマをコンパイル

コマンドプロンプトを立ち上げて、下記のコマンドで セッティングスキーマをコンパイルする。

cd C:\gtk-build\gtk\x64\release

glib-compile-schemas share/glib-2.0/schemas

 

お疲れさまでした。下記のGTK公式ページで書かれていることは一通りできたかな。

 

 

 

前回のテストアプリをビルドしなおして、テストしてみましょう。

 

 

Warningはでなくなりました。見た目もちょっと良くなりました。

でも、ウィンドウの最小化ボタンと最大化ボタンがなんかヘンですね。やれやれ。

次回以降、解決を目指したいなと思います。

 

※ 2021年1月9日追記

ブログをハッピーコンピューティングのウェブサイトに統合したので、次回はこちらに書いています