Compare commits
No commits in common. "358c228645fbbef0944037dcd12a59756715f4f2" and "8aca2bf331d82e6e6ea51f72aab48650384e4673" have entirely different histories.
358c228645
...
8aca2bf331
13
CHANGELOG.md
13
CHANGELOG.md
@ -3,19 +3,6 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
Format based on [Keep a Changelog](https://keepachangelog.com/).
|
Format based on [Keep a Changelog](https://keepachangelog.com/).
|
||||||
|
|
||||||
## [0.8.0] - 2026-03-30
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- Replace `canonicalize()` with `symlink_metadata` + `is_file` + `!is_symlink` for avatar lookup — prevents symlink traversal to arbitrary files
|
|
||||||
- Replace `canonicalize()` with same symlink-safe check in `resolve_background_path`
|
|
||||||
- Downscale wallpaper to `MAX_BLUR_DIMENSION` (1920px) before GPU blur — prevents excessive memory use on high-res images
|
|
||||||
- Validate `background_blur` per config source — invalid user value preserves system default instead of silently falling back to 0
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Fix blur padding offset from `(0,0)` to `(-pad,-pad)` to prevent edge darkening on blurred wallpaper
|
|
||||||
|
|
||||||
## [0.7.3] - 2026-03-29
|
## [0.7.3] - 2026-03-29
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "moonset"
|
name = "moonset"
|
||||||
version = "0.8.1"
|
version = "0.8.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "Wayland session power menu with GTK4 and Layer Shell"
|
description = "Wayland session power menu with GTK4 and Layer Shell"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
@ -22,10 +22,5 @@ systemd-journal-logger = "2.2"
|
|||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempfile = "3"
|
tempfile = "3"
|
||||||
|
|
||||||
[profile.release]
|
|
||||||
lto = "thin"
|
|
||||||
codegen-units = 1
|
|
||||||
strip = true
|
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
glib-build-tools = "0.22"
|
glib-build-tools = "0.22"
|
||||||
|
|||||||
@ -2,13 +2,6 @@
|
|||||||
|
|
||||||
Architectural and design decisions for Moonset, in reverse chronological order.
|
Architectural and design decisions for Moonset, in reverse chronological order.
|
||||||
|
|
||||||
## 2026-03-31 – Fourth audit: release profile, GResource compression, lock stderr, sync markers
|
|
||||||
|
|
||||||
- **Who**: Ragnar, Dom
|
|
||||||
- **Why**: Fourth triple audit found missing release profile (LTO/strip), uncompressed GResource assets, moonlock stderr suppressed (errors invisible), and duplicated code without sync markers.
|
|
||||||
- **Tradeoffs**: moonlock stderr now inherited instead of null — errors appear in moonset's journal context. Acceptable for debugging, no security leak since moonlock logs to its own journal identifier.
|
|
||||||
- **How**: (1) `[profile.release]` with LTO, codegen-units=1, strip. (2) `compressed="true"` on GResource entries. (3) `Stdio::inherit()` for moonlock stderr in lock(). (4) SYNC comments on duplicated blur/background functions.
|
|
||||||
|
|
||||||
## 2026-03-28 – Remove wallpaper from GResource bundle
|
## 2026-03-28 – Remove wallpaper from GResource bundle
|
||||||
|
|
||||||
- **Who**: Ragnar, Dom
|
- **Who**: Ragnar, Dom
|
||||||
|
|||||||
2
build.rs
2
build.rs
@ -1,5 +1,5 @@
|
|||||||
// ABOUTME: Build script for compiling GResource bundle.
|
// ABOUTME: Build script for compiling GResource bundle.
|
||||||
// ABOUTME: Bundles style.css and default-avatar.svg into the binary.
|
// ABOUTME: Bundles style.css, wallpaper.jpg, and default-avatar.svg into the binary.
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
glib_build_tools::compile_resources(
|
glib_build_tools::compile_resources(
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<gresources>
|
<gresources>
|
||||||
<gresource prefix="/dev/moonarch/moonset">
|
<gresource prefix="/dev/moonarch/moonset">
|
||||||
<file compressed="true">style.css</file>
|
<file>style.css</file>
|
||||||
<file compressed="true">default-avatar.svg</file>
|
<file>default-avatar.svg</file>
|
||||||
</gresource>
|
</gresource>
|
||||||
</gresources>
|
</gresources>
|
||||||
|
|||||||
@ -103,10 +103,6 @@ pub fn load_background_texture(bg_path: Option<&Path>) -> Option<gdk::Texture> {
|
|||||||
|
|
||||||
// -- GPU blur via GskBlurNode -------------------------------------------------
|
// -- GPU blur via GskBlurNode -------------------------------------------------
|
||||||
|
|
||||||
// SYNC: MAX_BLUR_DIMENSION, render_blurred_texture, and create_background_picture
|
|
||||||
// are duplicated in moonlock/src/lockscreen.rs and moongreet/src/greeter.rs.
|
|
||||||
// Changes here must be mirrored to the other two projects.
|
|
||||||
|
|
||||||
/// Maximum texture dimension before downscaling for blur.
|
/// Maximum texture dimension before downscaling for blur.
|
||||||
/// Keeps GPU work reasonable on 4K+ displays.
|
/// Keeps GPU work reasonable on 4K+ displays.
|
||||||
const MAX_BLUR_DIMENSION: f32 = 1920.0;
|
const MAX_BLUR_DIMENSION: f32 = 1920.0;
|
||||||
|
|||||||
@ -107,7 +107,7 @@ pub fn lock() -> Result<(), PowerError> {
|
|||||||
Command::new("/usr/bin/moonlock")
|
Command::new("/usr/bin/moonlock")
|
||||||
.stdin(Stdio::null())
|
.stdin(Stdio::null())
|
||||||
.stdout(Stdio::null())
|
.stdout(Stdio::null())
|
||||||
.stderr(Stdio::inherit())
|
.stderr(Stdio::null())
|
||||||
.spawn()
|
.spawn()
|
||||||
.map_err(|e| PowerError::CommandFailed {
|
.map_err(|e| PowerError::CommandFailed {
|
||||||
action: "lock",
|
action: "lock",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user