plac

Roon remote in GTK4

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
<!--
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.

![Screenshot of Plac for GTK4](./assets/screenshot-gtk-adwaita.png)

## 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.14
- 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
```

### 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/