- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
<!--
Copyright 2025 Shota FUJI
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SPDX-License-Identifier: Apache-2.0
-->
# Plac for GTK4
Third-party [Roon](https://roon.app/) client application using GTK4 and GNOME widgets.

## Runtime Dependencies
- gtk4
- libadwaita
- libjpeg
- librsvg
- libgee
- libsoup 3.x
## License
This project is licensed under [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).
This project contains asset files licensed under [CC0-1.0](https://creativecommons.org/publicdomain/zero/1.0/legalcode.en).
Every file has [REUSE][reuse-license] annotation for copyright and license.
## Development
### System Dependencies
This project has `flake.nix` for development environment setup.
To start development shell, run:
```
nix develop
```
To develop without [Nix](https://nixos.org/) [Flakes](https://wiki.nixos.org/wiki/Flakes), install these softwares manually:
- Zig compiler v0.15
- Vala compiler v0.56
- pkg-config
- Runtime dependencies
### Running application
```
zig build run
```
### Enable debug logging
Add `Plac` to `G_MESSAGES_DEBUG` environment variable:
```
G_MESSAGES_DEBUG=Plac zig build run
```
### Code Formatting
This project uses [treefmt](https://treefmt.com) as a code formatter frontend.
In addition to system dependencies, you need these formatter softwares:
- dprint
- Uncrustify
- nixfmt
After installing required softwares, you can format source code by:
```
treefmt
```
### Build Flatpak bundle
This project provides Zig build script for building Flatpak single-file bundle.
Enter `nix develop .#flatpak` or install `flatpak` and `flatpak-builder`, then run:
```
zig build flatpak
```
This will produce `jp.pocka.plac.gtk-adwaita.flatpak` inside `zig-out` directory.
### License Checking
This project adheres to [REUSE][reuse-license] framework.
You can check files have valid REUSE annotations by:
```
reuse lint
```
[reuse-license]: https://reuse.software/