Skip to content

feat(settings, bar, sounds): keystroke recorder, settings window modes, solid white bar contrast & sound effects - #155

Merged
berlin-566 merged 4 commits into
mainfrom
feat/ui-sound-effects
Oct 21, 2026
Merged

berlin-566 merged 4 commits into
mainfrom
feat/ui-sound-effects

Conversation

@berlin-566

@berlin-566 berlin-566 commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Summary

This pull request introduces key UX, customization, and audio enhancements across Agility Shell:

1. Light Mode & Solid White Bar Polish

  • Softer Solid White Bar: Reduced the harsh 100% white glare on the solid bar to a soft, eye-friendly off-white (rgba(0.965, 0.965, 0.972, 1.0) / #f6f6f8) across Pill, Convex, and Island bar styles.
  • Clock Contrast in Light Mode & Solid White:
    • Updated both ClockButton.qml (Pill & Convex styles) and IslandClock.qml (Island style) so the base time digits, seconds, AM/PM indicator, bullet dot, and date text use Theme.barFg (#141418) and Theme.barMuted for crisp readability.
    • Enhanced ClockContent.qml popup with dynamic contrast.
  • Universal Light Appearance Adaptation (Theme.isLightBar):
    • Unified solid white bar and global light mode toggle (!Theme.isDark) under Theme.isLightBar.
    • All bar components, applets (Battery, Network, DND, Active Window, Weather), media controls, workspace indicators, and tray items adapt cleanly to dark high contrast.

2. Interactive Keystroke Recorder & Shortcuts UI Fix

  • Keyboard Keystroke Capture: Created the KeyRecordPill component which captures physical keystrokes and modifier combinations directly from the keyboard (Mod, Ctrl, Alt, Shift, Return, letters, function keys, etc.) rather than requiring manual text typing.
  • Redesigned Add Custom Shortcut Form: Cleaned up the input alignment into a distinct, high-contrast card with dedicated labels for Shortcut Name, Shortcut Key, and Command to Execute.
  • Quick Re-recording: Integrated the KeyRecordPill into built-in Action Shortcuts and Custom Shortcuts, allowing single-click key re-binding.

3. Settings Window Presentation ('Settings Menu')

  • 3 Presentation Modes:
    • full: Maximized column / full-screen desktop app presentation.
    • half: Standard 50% split column (default).
    • boxed: Floating centered modal window.
  • Boxed Geometry Sliders: Adjustable width (640px – 1400px) and height (480px – 950px) with live Niri IPC geometry updates.
  • Settings Persistence: Stored and restored across shell sessions.

4. Material 3 Shapes & Custom Bar Accent Color

  • 15 Expressive Shapes: Added 8 new shapes (Clover, 8-Point Star, 4-Point Star, Diamond, Heart, Shield, Teardrop, Triangle) alongside existing shapes with single-pick chips and smooth rotating animation cycles.
  • Solid Tone & Custom Color Selector: Added custom color support and Black vs White tone selector.

5. Comprehensive System UI Sounds

  • Audio Feedback: Wired sound events for session start, battery plug-in/unplug, popup opening/closing, and volume/brightness changes.

Chintan Patel added 2 commits October 21, 2026 20:49
- Add SoundService singleton with debouncing and fallback playback (agl, pw-play, paplay)
- Play 'session-start' on shell startup
- Play 'session-quit' on lock, shutdown, and power menu actions
- Play 'battery-charge', 'battery-warning', and 'battery-low' on AC state and battery threshold changes
- Play 'widget-placed' and 'widget-removed' on widget/popup openings and dismissals
- Play 'notification' on desktop notifications and system alerts
- Play 'confirm' on successful screen capture, lock unlock, full charge, and actions
- Play 'error' on authentication failures
- Add System Sound Effects toggle in SettingsService and EffectsSettings
- Add fallback search path resolution in agilityd sounds module
… smart contrast

- Add 8 new Material 3 Expressive shapes (Clover, 8-Point Star, 4-Point Star, Diamond, Heart, Shield, Teardrop, Triangle) bringing total to 15 selectable shapes
- Update Bar Settings with flow chips for single shape selection and full 15-shape rotation in cycle mode
- Add Solid Tone selector (Black vs White) under Background Mode in Bar Applets Settings
- Implement smart contrast colors (barFg, barMuted, barBorder, barBgSecondary) ensuring perfect readability in both Black and White solid bar modes
@berlin-566 berlin-566 changed the title feat(sounds): integrate comprehensive UI sound effects across shell feat(sounds, bar): integrate UI sound effects, 8 new Material shapes & solid White/Black bar tone Oct 21, 2026
…ete dark monochrome bar

- Add interactive KeyRecordPill component that captures keystrokes directly from physical keyboard into standard Niri shortcuts
- Redesign Add Custom Shortcut form with aligned card layout, clear field labels, and keystroke recorder
- Wire KeyRecordPill across built-in action shortcuts and custom shortcuts for single-click key re-recording
- Add Settings Window Style setting ('full', 'half', 'boxed') with custom width and height controls in Window Settings
- Integrate dynamic window mode transitions via Niri IPC
- Complete dark monochrome high-contrast styling (#141418) for all bar applets, clock, icons, tray, and media controls when solid bar is set to white
@berlin-566 berlin-566 changed the title feat(sounds, bar): integrate UI sound effects, 8 new Material shapes & solid White/Black bar tone feat(settings, bar, sounds): keystroke recorder, settings window modes, solid white bar contrast & sound effects Oct 21, 2026
…ontrast in light mode

- Reduce harsh 100% white glare on solid bar to soft, premium off-white (rgba(0.965, 0.965, 0.972, 1.0) / #f6f6f8) across Pill, Convex, and Island styles
- Introduce Theme.isLightBar encompassing both solid white bar and global light theme toggle
- Fix bar clock elements (base time, seconds, AM/PM, bullet dot, and date) in ClockButton and IslandClock to use Theme.barFg and Theme.barMuted for crisp contrast
- Adapt all bar pill icons, active indicators, and tray items to Theme.isLightBar
@berlin-566
berlin-566 merged commit 8110192 into main Oct 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant