feat: rewrite moonset in Rust (gtk4-rs + gtk4-layer-shell)

Feature-parity with Python v0.2.0. Same CSS, same UI, same actions.
Single 3.1 MB binary with embedded resources (CSS, wallpaper, avatar).

Modules: power.rs, i18n.rs, config.rs, users.rs, panel.rs, main.rs
45 unit tests passing. Python sources retained as reference.
This commit is contained in:
2026-03-27 16:09:51 +01:00
parent 9deaaacc33
commit e66ef76b4d
18 changed files with 3002 additions and 33 deletions
+4 -9
View File
@@ -7,20 +7,16 @@ pkgname=moonset-git
pkgver=0.1.0.r8.g934a923
pkgrel=1
pkgdesc="A Wayland session power menu with GTK4 and Layer Shell"
arch=('any')
arch=('x86_64')
url="https://gitea.moonarch.de/nevaforget/moonset"
license=('MIT')
depends=(
'python'
'python-gobject'
'gtk4'
'gtk4-layer-shell'
)
makedepends=(
'git'
'python-build'
'python-installer'
'python-hatchling'
'cargo'
)
provides=('moonset')
conflicts=('moonset')
@@ -34,13 +30,12 @@ pkgver() {
build() {
cd "$srcdir/moonset"
rm -rf dist/
python -m build --wheel --no-isolation
cargo build --release --locked
}
package() {
cd "$srcdir/moonset"
python -m installer --destdir="$pkgdir" dist/*.whl
install -Dm755 target/release/moonset "$pkgdir/usr/bin/moonset"
# Example config
install -Dm644 config/moonset.toml "$pkgdir/etc/moonset/moonset.toml.example"