Make every settings row reachable, and every accessibility switch honest
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -1022,9 +1022,14 @@ Singleton {
|
||||
// this app refuses to ship.
|
||||
{
|
||||
key: "magnifierFactor", type: "real", def: 1.0, min: 1.0, max: 5.0, step: 0.1,
|
||||
group: "accessibility",
|
||||
unit: "×", group: "accessibility",
|
||||
label: "Magnifier",
|
||||
detail: "Magnifies the screen around the pointer. 1.0 is off",
|
||||
// The readout is "1.00 ×", so the detail says "1.00 ×" too. It used
|
||||
// to say "1.0 is off" beside a slider reading 1.00, and the page
|
||||
// carried a `zeroLabel: "Off"` that could never fire: the minimum
|
||||
// IS 1.0, so the value is never 0 and the zero label was dead copy.
|
||||
// Off is a magnification of one, and that is what both lines say.
|
||||
detail: "Magnifies the screen around the pointer. 1.00 × is off",
|
||||
hypr: { path: ["cursor", "zoom_factor"], option: "cursor:zoom_factor", readAs: "float" }
|
||||
},
|
||||
{
|
||||
@@ -1054,6 +1059,16 @@ Singleton {
|
||||
detail: "How much darker unfocused windows are",
|
||||
hypr: { path: ["decoration", "dim_strength"], option: "decoration:dim_strength", readAs: "float" }
|
||||
},
|
||||
{
|
||||
key: "visualAlerts", type: "bool", def: false, group: "accessibility",
|
||||
label: "Flash the screen for notifications",
|
||||
// No hypr mapping and no gsettings mapping: the flash is drawn by
|
||||
// modules/notifications/VisualBell.qml, one per screen, and fires
|
||||
// on the same notifications the bell would ring for -- except that
|
||||
// it is deliberately NOT gated on the event-sounds switch, since a
|
||||
// visual alert exists for people who cannot hear the bell.
|
||||
detail: "A single flash at the edges of every screen when a notification arrives that would ring the bell"
|
||||
},
|
||||
|
||||
// ── Gaming ──────────────────────────────────────────────────────────
|
||||
// What Panama does while a game runs. gamemode tells us when that
|
||||
|
||||
@@ -86,6 +86,18 @@ Singleton {
|
||||
// services/Notifs.qml. Off means Do Not Disturb is absolute.
|
||||
readonly property bool criticalBreaksThrough: DesktopPreferences.get("criticalBreaksThrough")
|
||||
|
||||
// ── Accessibility ───────────────────────────────────────────────────────
|
||||
// Reduce motion. Theme.qml turns this into the dur* tokens, so every
|
||||
// Behavior and NumberAnimation in the shell obeys it without knowing it
|
||||
// exists. Read through here rather than from the store directly because
|
||||
// Theme reads it on every animated property in the shell.
|
||||
readonly property bool animationsEnabled: DesktopPreferences.get("animationsEnabled")
|
||||
|
||||
// Read on every notification that would ring the bell, by the per-screen
|
||||
// VisualBell overlay. Lives here rather than being read from the store
|
||||
// directly, like every other value the shell consults at speed.
|
||||
readonly property bool visualAlerts: DesktopPreferences.get("visualAlerts")
|
||||
|
||||
// ── Sound ───────────────────────────────────────────────────────────────
|
||||
// Over-amplification is the clamp ceiling for output volume: off means 1.0,
|
||||
// on means 1.5. Every slider and the volume keys read the same switch, so
|
||||
|
||||
@@ -204,14 +204,21 @@ Singleton {
|
||||
// ── Motion ──────────────────────────────────────────────────────────────
|
||||
// Event-driven only. Nothing in this shell animates while idle — no pulse,
|
||||
// no shimmer, no spinners. These durations are used for open/close/hover.
|
||||
readonly property int durFast: 120
|
||||
readonly property int durNormal: 200
|
||||
readonly property int durSlow: 320
|
||||
//
|
||||
// All of them collapse to zero when Reduce motion is on: the Accessibility
|
||||
// toggle used to still the compositor's windows while the shell's own bar,
|
||||
// dock and panels kept moving, which made it a half-truth. A duration of 0
|
||||
// is a completed animation, so every Behavior and NumberAnimation in the
|
||||
// shell obeys the switch without knowing it exists.
|
||||
readonly property bool motionEnabled: Settings.animationsEnabled
|
||||
readonly property int durFast: motionEnabled ? 120 : 0
|
||||
readonly property int durNormal: motionEnabled ? 200 : 0
|
||||
readonly property int durSlow: motionEnabled ? 320 : 0
|
||||
|
||||
// The dock revealing is the one animation that answers a live pointer
|
||||
// movement, so it gets its own (much shorter) duration. Anything slower
|
||||
// reads as the desktop lagging behind the cursor rather than as motion.
|
||||
readonly property int durDockReveal: 90
|
||||
readonly property int durDockReveal: motionEnabled ? 90 : 0
|
||||
|
||||
// Matches the "snappy" spring curve defined in hypr/looks.lua.
|
||||
readonly property list<real> easeStandard: [0.05, 0.9, 0.1, 1.0]
|
||||
|
||||
Reference in New Issue
Block a user