refactor(mac): converge animation/prefix.rs to the shared AnimationPrefix

macOS's AnimationPrefix gains Transparency (it had movement and workspace), so all three trees share the union {movement, transparency, workspace} (D15/D16); the macOS daemon ignores Transparency as before in practice. prefix.rs is now the Windows text plus module docs (this adds new_animation_key to macOS).

Intentional schema change: komorebi-for-mac/schema.json gets the same shape change as the KDE one (per-prefix animation settings become additionalProperties of the value type). Because a macOS komorebic cannot run here, the three PerAnimationPrefixConfig definitions were copied from the schema that the KDE komorebic generated from identical code (jq, the file round-trips byte-identically through jq --indent 2); not regenerated on macOS. The animation CLI docs list the three values.

Verified: fast-check macOS (fake CC) cargo check --workspace --all-targets: PASS. macOS tests and schema generation not run (cannot).
This commit is contained in:
LGUG2Z committed 2026-10-31 01:37:53 -07:00
1 parent ad2281de19
commit 975f007af2
5 files changed
+20 -35

No files matched your search

@@ -13,7 +13,7 @@ Options:
-a, --animation-type <ANIMATION_TYPE>
Animation type to apply the duration to. If not specified, sets global duration
[possible values: movement, workspace]
[possible values: movement, transparency, workspace]
-h, --help
Print help
+1 -1
View File
@@ -47,7 +47,7 @@ Options:
-a, --animation-type <ANIMATION_TYPE>
Animation type to apply the style to. If not specified, sets global style
[possible values: movement, workspace]
[possible values: movement, transparency, workspace]
-h, --help
Print help (see a summary with '-h')
+1 -1
View File
@@ -13,7 +13,7 @@ Options:
-a, --animation-type <ANIMATION_TYPE>
Animation type to apply the state to. If not specified, sets global state
[possible values: movement, workspace]
[possible values: movement, transparency, workspace]
-h, --help
Print help
@@ -15,6 +15,11 @@ use strum::EnumString;
#[serde(rename_all = "snake_case")]
pub enum AnimationPrefix {
Movement,
Transparency,
/// A workspace sliding in and out of a monitor when it is switched to
Workspace,
// Note: Transparency is not supported on macOS as there's no equivalent to Win32 layered windows
}
pub fn new_animation_key(prefix: AnimationPrefix, key: String) -> String {
format!("{prefix}:{key}")
}
+11 -31
View File
@@ -3239,15 +3239,9 @@
{
"description": "Animation configuration prefixed for a specific animation kind",
"type": "object",
"properties": {
"movement": {
"type": "boolean"
},
"workspace": {
"type": "boolean"
}
},
"additionalProperties": false
"additionalProperties": {
"type": "boolean"
}
},
{
"description": "Animation configuration for all animation kinds",
@@ -3261,19 +3255,11 @@
{
"description": "Animation configuration prefixed for a specific animation kind",
"type": "object",
"properties": {
"movement": {
"type": "integer",
"format": "uint64",
"minimum": 0
},
"workspace": {
"type": "integer",
"format": "uint64",
"minimum": 0
}
},
"additionalProperties": false
"additionalProperties": {
"type": "integer",
"format": "uint64",
"minimum": 0
}
},
{
"description": "Animation configuration for all animation kinds",
@@ -3289,15 +3275,9 @@
{
"description": "Animation configuration prefixed for a specific animation kind",
"type": "object",
"properties": {
"movement": {
"$ref": "#/$defs/AnimationStyle"
},
"workspace": {
"$ref": "#/$defs/AnimationStyle"
}
},
"additionalProperties": false
"additionalProperties": {
"$ref": "#/$defs/AnimationStyle"
}
},
{
"description": "Animation configuration for all animation kinds",