SpaceSniffer Feature Parity Checklist
🎯 Goal: Near 1:1 Clone of SpaceSniffer for Unix
✅ Completed (Phase 1-2)
- GTK4 window with Cairo rendering
- Real directory scanning
- Squarified treemap layout algorithm
- Basic color coding
- Handles large directories (32GB tested)
- Window resize/redraw
🚧 In Progress (Phase 3-4)
- Directory Chooser - Command-line argument support (GUI dialog deferred)
- File Names on Rectangles - Show names when space permits
- Toolbar - Scan and Quit buttons
- Status Bar - Show ready status
- Top-Level Rendering - Show only direct children (no deep nesting)
- Size Labels - Display MB/GB on large rectangles
📋 Critical Features (Phase 5-6)
- Click to Select - Highlight selected rectangle
- Double-click to Zoom - Navigate into directories
- Breadcrumb Bar - Show current path, allow navigation back
- Hover Tooltips - Show full path and details on hover
- Context Menu - Right-click: Open, Delete, Properties
- Keyboard Navigation - Arrow keys, Enter, Backspace
- Delete with Confirmation - Safe deletion workflow
🎨 Visual Enhancements (Phase 7)
- Cushioned Treemap - 3D shading effect (Van Wijk algorithm)
- Better Color Schemes - By file type, age, or extension
- Smart Label Placement - Only show when readable
- Selection Highlight - Clear visual feedback
- Hover Effect - Lighten/darken on mouse over
- Smooth Animations - Fade in/out, zoom transitions
🔍 Advanced Features (Phase 8)
- Search Bar - Find files by name (regex)
- Filter Panel - By type, size, date
- Real-time Scanning - Animate growth as files are found
- Pause/Resume Scan - Control during scanning
- Free Space Display - Show available disk space
- Multiple Color Modes - Switch between schemes
📊 Information Display
- Status Bar Items:
- Currently scanning: /path/to/dir
- Items scanned: 1,234 / 5,678
- Total size: 32.5 GB
- Selected: filename.ext (1.2 MB)
- Free space: 128 GB
🖱️ Mouse & Keyboard
-
Mouse:
- Left click: Select
- Double-click: Zoom in
- Right-click: Context menu
- Hover: Show tooltip
-
Keyboard:
- Arrow keys: Navigate siblings
- Enter: Zoom into selected
- Backspace: Zoom out to parent
- Delete: Delete selected (with confirmation)
- Ctrl+F: Search
- Ctrl+Q: Quit
- /: Focus search
- Escape: Clear selection
🎨 Visual Polish
-
Colors:
- Directories: Blue family
- Documents: Green family
- Images: Orange family
- Videos: Red family
- Audio: Purple family
- Code: Cyan family
- Archives: Brown family
-
Fonts:
- Names: System font, bold for directories
- Sizes: Monospace for alignment
- Min size: 10pt readable
🔧 Settings/Preferences
- Configurable:
- Layout algorithm (Squarified vs Cushioned)
- Color scheme
- Animation speed
- Font size
- Skip directories (.git, node_modules, etc.)
- Scan depth limit
📈 Current Progress: ~45% Complete
What Works Now:
✅ Scanning (4GB+ tested, scans entire tree) ✅ Layout calculation (squarified treemap algorithm) ✅ Smart rendering (shows only top-level, not nested) ✅ Window resizing with proper layout recalculation ✅ Directory selection (via command-line argument) ✅ File/directory names on rectangles (when space permits) ✅ Toolbar with Scan and Quit buttons ✅ Status bar showing scan status
Immediate Priorities (Next 3 Commits):
- Click-to-select - Highlight selected rectangle
- Double-click navigation - Zoom into directories
- Breadcrumbs - Show current path and navigate back
Next Week Goals:
- Click selection
- Zoom navigation
- Breadcrumbs
- Tooltips
🎯 Success Criteria
A successful SpaceSniffer clone must:
- ✅ Scan and visualize any directory
- ⏳ Show file names and sizes clearly
- ⏳ Allow navigation (click, zoom, back)
- ⏳ Provide deletion with safety
- ⏳ Look professional (toolbar, status bar)
- ⏳ Handle large directories (millions of files)
- ⏳ Be as fast or faster than SpaceSniffer
We're making great progress, but we're just getting started! 🚀
View source
| 1 | # SpaceSniffer Feature Parity Checklist |
| 2 | |
| 3 | ## 🎯 Goal: Near 1:1 Clone of SpaceSniffer for Unix |
| 4 | |
| 5 | ### ✅ Completed (Phase 1-2) |
| 6 | - [x] GTK4 window with Cairo rendering |
| 7 | - [x] Real directory scanning |
| 8 | - [x] Squarified treemap layout algorithm |
| 9 | - [x] Basic color coding |
| 10 | - [x] Handles large directories (32GB tested) |
| 11 | - [x] Window resize/redraw |
| 12 | |
| 13 | ### 🚧 In Progress (Phase 3-4) |
| 14 | - [x] **Directory Chooser** - Command-line argument support (GUI dialog deferred) |
| 15 | - [x] **File Names on Rectangles** - Show names when space permits |
| 16 | - [x] **Toolbar** - Scan and Quit buttons |
| 17 | - [x] **Status Bar** - Show ready status |
| 18 | - [x] **Top-Level Rendering** - Show only direct children (no deep nesting) |
| 19 | - [ ] **Size Labels** - Display MB/GB on large rectangles |
| 20 | |
| 21 | ### 📋 Critical Features (Phase 5-6) |
| 22 | - [ ] **Click to Select** - Highlight selected rectangle |
| 23 | - [ ] **Double-click to Zoom** - Navigate into directories |
| 24 | - [ ] **Breadcrumb Bar** - Show current path, allow navigation back |
| 25 | - [ ] **Hover Tooltips** - Show full path and details on hover |
| 26 | - [ ] **Context Menu** - Right-click: Open, Delete, Properties |
| 27 | - [ ] **Keyboard Navigation** - Arrow keys, Enter, Backspace |
| 28 | - [ ] **Delete with Confirmation** - Safe deletion workflow |
| 29 | |
| 30 | ### 🎨 Visual Enhancements (Phase 7) |
| 31 | - [ ] **Cushioned Treemap** - 3D shading effect (Van Wijk algorithm) |
| 32 | - [ ] **Better Color Schemes** - By file type, age, or extension |
| 33 | - [ ] **Smart Label Placement** - Only show when readable |
| 34 | - [ ] **Selection Highlight** - Clear visual feedback |
| 35 | - [ ] **Hover Effect** - Lighten/darken on mouse over |
| 36 | - [ ] **Smooth Animations** - Fade in/out, zoom transitions |
| 37 | |
| 38 | ### 🔍 Advanced Features (Phase 8) |
| 39 | - [ ] **Search Bar** - Find files by name (regex) |
| 40 | - [ ] **Filter Panel** - By type, size, date |
| 41 | - [ ] **Real-time Scanning** - Animate growth as files are found |
| 42 | - [ ] **Pause/Resume Scan** - Control during scanning |
| 43 | - [ ] **Free Space Display** - Show available disk space |
| 44 | - [ ] **Multiple Color Modes** - Switch between schemes |
| 45 | |
| 46 | ### 📊 Information Display |
| 47 | - [ ] **Status Bar Items:** |
| 48 | - Currently scanning: /path/to/dir |
| 49 | - Items scanned: 1,234 / 5,678 |
| 50 | - Total size: 32.5 GB |
| 51 | - Selected: filename.ext (1.2 MB) |
| 52 | - Free space: 128 GB |
| 53 | |
| 54 | ### 🖱️ Mouse & Keyboard |
| 55 | - [ ] **Mouse:** |
| 56 | - Left click: Select |
| 57 | - Double-click: Zoom in |
| 58 | - Right-click: Context menu |
| 59 | - Hover: Show tooltip |
| 60 | |
| 61 | - [ ] **Keyboard:** |
| 62 | - Arrow keys: Navigate siblings |
| 63 | - Enter: Zoom into selected |
| 64 | - Backspace: Zoom out to parent |
| 65 | - Delete: Delete selected (with confirmation) |
| 66 | - Ctrl+F: Search |
| 67 | - Ctrl+Q: Quit |
| 68 | - /: Focus search |
| 69 | - Escape: Clear selection |
| 70 | |
| 71 | ### 🎨 Visual Polish |
| 72 | - [ ] **Colors:** |
| 73 | - Directories: Blue family |
| 74 | - Documents: Green family |
| 75 | - Images: Orange family |
| 76 | - Videos: Red family |
| 77 | - Audio: Purple family |
| 78 | - Code: Cyan family |
| 79 | - Archives: Brown family |
| 80 | |
| 81 | - [ ] **Fonts:** |
| 82 | - Names: System font, bold for directories |
| 83 | - Sizes: Monospace for alignment |
| 84 | - Min size: 10pt readable |
| 85 | |
| 86 | ### 🔧 Settings/Preferences |
| 87 | - [ ] **Configurable:** |
| 88 | - Layout algorithm (Squarified vs Cushioned) |
| 89 | - Color scheme |
| 90 | - Animation speed |
| 91 | - Font size |
| 92 | - Skip directories (.git, node_modules, etc.) |
| 93 | - Scan depth limit |
| 94 | |
| 95 | --- |
| 96 | |
| 97 | ## 📈 Current Progress: ~45% Complete |
| 98 | |
| 99 | ### What Works Now: |
| 100 | ✅ Scanning (4GB+ tested, scans entire tree) |
| 101 | ✅ Layout calculation (squarified treemap algorithm) |
| 102 | ✅ Smart rendering (shows only top-level, not nested) |
| 103 | ✅ Window resizing with proper layout recalculation |
| 104 | ✅ Directory selection (via command-line argument) |
| 105 | ✅ File/directory names on rectangles (when space permits) |
| 106 | ✅ Toolbar with Scan and Quit buttons |
| 107 | ✅ Status bar showing scan status |
| 108 | |
| 109 | ### Immediate Priorities (Next 3 Commits): |
| 110 | 1. **Click-to-select** - Highlight selected rectangle |
| 111 | 2. **Double-click navigation** - Zoom into directories |
| 112 | 3. **Breadcrumbs** - Show current path and navigate back |
| 113 | |
| 114 | ### Next Week Goals: |
| 115 | 4. Click selection |
| 116 | 5. Zoom navigation |
| 117 | 6. Breadcrumbs |
| 118 | 7. Tooltips |
| 119 | |
| 120 | --- |
| 121 | |
| 122 | ## 🎯 Success Criteria |
| 123 | |
| 124 | A successful SpaceSniffer clone must: |
| 125 | - ✅ Scan and visualize any directory |
| 126 | - ⏳ Show file names and sizes clearly |
| 127 | - ⏳ Allow navigation (click, zoom, back) |
| 128 | - ⏳ Provide deletion with safety |
| 129 | - ⏳ Look professional (toolbar, status bar) |
| 130 | - ⏳ Handle large directories (millions of files) |
| 131 | - ⏳ Be as fast or faster than SpaceSniffer |
| 132 | |
| 133 | --- |
| 134 | |
| 135 | **We're making great progress, but we're just getting started!** 🚀 |