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>