New Features:
- Created settings-schema.json with customizable options:
* Zone appearance (border width, colors, opacity)
* Show/hide zone numbers
* Enable/disable Shift+Drag snapping
* Enable/disable keyboard snapping (Super+Ctrl+1-9)
* Notification on window snap
- Created settings.js with custom UI:
* View all saved custom layouts
* Delete custom layouts with confirmation dialog
* Export layouts to JSON files
* Visual list with layout info (name, zone count, ID)
* Empty state when no custom layouts exist
Extension Integration:
- Integrated Settings API into extension.js
- Zone overlay now respects user-configured colors and opacity
- Border width is customizable
- Zone numbers can be toggled on/off
- Shift-drag and keyboard snap can be disabled via settings
- Optional notifications when windows snap to zones
- Settings properly cleaned up on extension destroy
UI/UX Improvements:
- Professional settings panel accessible from System Settings → Extensions
- Layout management without editing JSON files manually
- Real-time application of visual settings
- Destructive actions (delete) require confirmation
- Export functionality for sharing layouts
Fixes TODO item #12 - Settings Panel
Fixes TODO item #13 - Update Metadata (already done)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Features:
- Custom layouts now saved to ~/.local/share/gridsnap/layouts.json
- Layouts automatically loaded on extension initialization
- Layouts persist across Cinnamon restarts and extension reloads
- Only custom layouts saved to file (default layouts remain in code)
- Added GLib and Gio imports for file operations
- Error handling for file read/write operations
Technical implementation:
- _loadLayouts(): Merges default layouts with saved custom layouts on startup
- _saveLayouts(): Extracts and saves only custom-* layouts to JSON file
- Automatically creates storage directory if it doesn't exist
- Called when user saves a layout in the graphical editor
Fixes TODO item #1 - Custom Layout Persistence
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Create TODO.md with all remaining issues and planned features
- Update metadata.json with repository URL to fix warning
- Update author name to Keith Smith
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>