Update docs for new Meson build system
Switch the primary build system from shell scripts to Meson.
Switch the primary build system from shell scripts to Meson.
by roundabout, Saturday, 11 April 2020, 09:39:42 (1586597982), pushed by roundabout, Sunday, 11 May 2025, 13:22:52 (1746969772)
Author identity: nana-4 <hnmaigo@gmail.com>
574b7043b6ae41b998202c5a5c2c0298c731e3f8
## Summary
- Do not edit the CSS directly, edit the source SCSS files and run `./parse-sass.sh`.
- Do not edit the CSS directly, edit the source SCSS files and the CSS files
will be generated automatically when building with `meson` + `ninja`.
- You'll need to have `sassc` installed.
- Do not edit `foo.<theme-name>.scss` auto-generated by `meson`.
- Do not edit the PNG directly, edit the source SVG files and run `./render-assets.sh`.
- You'll need to have `inkscape` and `optipng` installed.
- To change the colors of SVG files, use a text editor instead of a image editor.
`_apps*.scss` <br> `_extensions.scss` | App/extension specific stylings.
You can read about Sass on its [web page](http://sass-lang.com/documentation/).
Once you make your changes to the SCSS files, run the `./parse-sass.sh` script
to rebuild the CSS files.
Once you make your changes to the SCSS files, you can run `ninja` to generate the
final CSS files.
### SVG
- `src/_sass/_color-palette.scss`
- `src/_sass/_colors.scss`
> Note: Do not forget to run `./parse-sass.sh` after changing the colors of SCSS
files.
#### SVG
- `src/gtk/assets.svg`
> Note: The colors of `manifest.json` are defined in RGB format, so you need to
convert your colors from HEX format to RGB format.
After all the steps, run `./install.sh` to rebuild the themes.
After all the steps, run `ninja` to rebuild the themes.
## Useful Links
- `gtk-murrine-engine` on Fedora
- `gtk2-engine-murrine` on openSUSE
- `gtk2-engines-murrine` on Debian, Ubuntu, etc.
- `bc` — build dependency
- `sassc` — build-time dependency
## Package Installation
## Manual Installation
Run the following commands in the terminal:
1. Clone the repository and move into the project directory in the terminal:
```sh
git clone --depth 1 https://github.com/nana-4/materia-theme
cd materia-theme
```
2. Build and install it using Meson:
```sh
meson "build" --prefix=/usr
sudo ninja -C "build" install
```
> NOTE: The default prefix is `/usr`, but you can optionally specify `$HOME/.local`.
Alternatively, you can use `./install.sh` script instead:
```sh
sudo ./install.sh
```
> Tip: `./install.sh` allows the following options:
> NOTE: `./install.sh` requires additional build-time dependency, `bc`.
#### Build Options for Meson
Option | Default Value | Description
--- | --- | ---
`colors` | `default,light,dark` | Choose color variant(s)
`sizes` | `default,compact` | Choose size variant(s)
`gnome_shell_version` | n/a (auto) | Manually set gnome-shell version
Example of usage:
```sh
meson "build" -Dcolors=default,dark -Dsizes=compact
```
#### Build Options for `./install.sh`
```
-d, --dest DIR Specify destination directory (Default: /usr/share/themes)
-h, --help Show help
```
> For more information, run: `./install.sh --help`
Run `./install.sh --help` for more information.
## Manual Uninstallation
- Yauhen Kirylau (@actionless) who is oomox author polished scripts and supported Materia with [oomox](https://github.com/themix-project/oomox).
- @n3oxmind who helped improve the installation script.
- @smurphos who made and provided the Cinnamon theme for Materia.
- Meson code/implementation in Materia was heavily influenced by @monday15's [lounge-gtk-theme](https://github.com/monday15/lounge-gtk-theme).
Also thank you to all contributors and upstream developers.
## General
- Use `make` or `meson` for building? (`help wanted`)
## Supports
- GTK 4