|
| 1 | +# xfetch Roadmap |
| 2 | + |
| 3 | +## Phase 1 · Foundation & Core |
| 4 | +<!-- phase:phase-1:foundation --> |
| 5 | + |
| 6 | +- [x] Initialize Rust project with dependencies |
| 7 | +- [x] Implement cross-platform OS detection (Linux, Windows, macOS) |
| 8 | +- [x] Create system information gathering module |
| 9 | +- [x] Implement configuration system with JSONC support |
| 10 | +- [x] Build UI rendering engine with crossterm |
| 11 | + |
| 12 | +## Phase 2 · System Information Modules |
| 13 | +<!-- phase:phase-2:system-modules --> |
| 14 | + |
| 15 | +- [x] OS Name & Architecture display |
| 16 | +- [x] Kernel version detection |
| 17 | +- [x] Hostname resolution |
| 18 | +- [x] Shell detection and display |
| 19 | +- [x] Terminal emulator detection |
| 20 | +- [x] CPU model & frequency information |
| 21 | +- [x] GPU detection (discrete & integrated) |
| 22 | +- [x] Memory and RAM usage display |
| 23 | +- [x] Disk usage statistics |
| 24 | +- [x] Battery status and percentage |
| 25 | +- [x] System uptime calculation |
| 26 | +- [x] Package count for multiple managers (pacman, dpkg, scoop) |
| 27 | +- [x] Desktop Environment / Window Manager detection |
| 28 | + |
| 29 | +## Phase 3 · Visual Customization & Layouts |
| 30 | +<!-- phase:phase-3:visual-features --> |
| 31 | + |
| 32 | +- [x] Custom ASCII art support from text files |
| 33 | +- [x] Image/SVG logo support via viuer |
| 34 | +- [x] ANSI color codes in ASCII logos |
| 35 | +- [x] Icon customization per module (Nerd Fonts) |
| 36 | +- [x] Color customization per module |
| 37 | +- [x] Default layout (side-by-side) |
| 38 | +- [x] Pac-Man layout with custom header/footer |
| 39 | +- [x] Side-block layout implementation |
| 40 | +- [x] Tree layout for hierarchical display |
| 41 | +- [x] Section layout for grouped information |
| 42 | +- [x] Color palette display with style options |
| 43 | + |
| 44 | +## Phase 4 · Documentation & Examples |
| 45 | +<!-- phase:phase-4:documentation --> |
| 46 | + |
| 47 | +- [x] Installation guide (INSTALLATION.md) |
| 48 | +- [x] Configuration guide (CONFIGURATION.md) |
| 49 | +- [x] Quick install script for Linux/macOS |
| 50 | +- [x] PowerShell install script for Windows |
| 51 | +- [x] Create 20+ example configurations |
| 52 | +- [x] Create sample logos (text and SVG) |
| 53 | +- [x] Setup uninstallation scripts |
| 54 | +- [x] Layout documentation (LAYOUTS.md) |
| 55 | + |
| 56 | +## Phase 5 · Package Manager Expansion |
| 57 | +<!-- phase:phase-5:package-managers --> |
| 58 | + |
| 59 | +- [ ] Add RPM package manager support (Fedora, RHEL) |
| 60 | +- [ ] Add APK package manager support (Alpine) |
| 61 | +- [ ] Add Nix package manager support |
| 62 | +- [ ] Add Homebrew package manager support (macOS/Linux) |
| 63 | +- [ ] Add Chocolatey package manager support (Windows) |
| 64 | +- [ ] Detect multiple installed package managers |
| 65 | +- [/] Optimize package count detection performance |
| 66 | + |
| 67 | +## Phase 6 · Network & Connectivity |
| 68 | +<!-- phase:phase-6:network --> |
| 69 | + |
| 70 | +- [ ] Implement local IP address detection |
| 71 | +- [ ] Fetch public IP address (with privacy option) |
| 72 | +- [ ] Add IPv6 support |
| 73 | +- [ ] Display network interface information |
| 74 | +- [ ] Add option to disable IP fetching for privacy |
| 75 | + |
| 76 | +## Phase 7 · Enhanced Modules |
| 77 | +<!-- phase:phase-7:enhanced-modules --> |
| 78 | + |
| 79 | +- [ ] Implement music player integration (MPD support) |
| 80 | +- [ ] Add Spotify current track display |
| 81 | +- [ ] Implement weather module with location API |
| 82 | +- [ ] Add timezone and world clock display |
| 83 | +- [ ] Implement user info and login status |
| 84 | +- [ ] Add display resolution and refresh rate |
| 85 | +- [ ] Add theme and color scheme detection |
| 86 | + |
| 87 | +## Phase 8 · Additional Layouts |
| 88 | +<!-- phase:phase-8:additional-layouts --> |
| 89 | + |
| 90 | +- [ ] Implement compact layout for minimal output |
| 91 | +- [ ] Implement horizontal layout variant |
| 92 | +- [ ] Implement bottom layout with logo below info |
| 93 | +- [ ] Implement minimal layout (text-only) |
| 94 | +- [ ] Add layout preview documentation |
| 95 | + |
| 96 | +## Phase 9 · Performance Optimization |
| 97 | +<!-- phase:phase-9:performance --> |
| 98 | + |
| 99 | +- [ ] Parallelize slow hardware probes |
| 100 | +- [ ] Implement caching for module data |
| 101 | +- [ ] Optimize GPU detection for multi-GPU systems |
| 102 | +- [ ] Add lazy loading for optional modules |
| 103 | +- [ ] Benchmark and profile performance |
| 104 | + |
| 105 | +## Phase 10 · CI/CD & Distribution |
| 106 | +<!-- phase:phase-10:cicd --> |
| 107 | + |
| 108 | +- [ ] Setup GitHub Actions for automated builds |
| 109 | +- [ ] Create binary releases for Linux x86_64 |
| 110 | +- [ ] Create binary releases for macOS (Intel & ARM) |
| 111 | +- [ ] Create binary releases for Windows |
| 112 | +- [ ] Setup AUR package for Arch Linux |
| 113 | +- [ ] Setup Homebrew tap for macOS |
| 114 | +- [ ] Setup PyPI or cargo registry for distribution |
| 115 | +- [ ] Setup automated changelog generation |
| 116 | + |
| 117 | +## Phase 11 · Community & Ecosystem |
| 118 | +<!-- phase:phase-11:ecosystem --> |
| 119 | + |
| 120 | +- [ ] Create themes repository / registry |
| 121 | +- [ ] Implement theme download manager |
| 122 | +- [ ] Create online theme preview tool |
| 123 | +- [ ] Setup community theme contributions process |
| 124 | +- [ ] Create plugin system for custom modules |
| 125 | +- [ ] Implement plugin configuration validation |
| 126 | +- [ ] Setup community issue templates |
| 127 | +- [ ] Create contribution guidelines (CONTRIBUTING.md) |
| 128 | + |
| 129 | +## Phase 12 · Testing & Quality Assurance |
| 130 | +<!-- phase:phase-12:testing --> |
| 131 | + |
| 132 | +- [ ] Implement unit tests for info module |
| 133 | +- [ ] Implement unit tests for config module |
| 134 | +- [ ] Implement integration tests for layouts |
| 135 | +- [ ] Setup linting with clippy |
| 136 | +- [ ] Setup code formatter (rustfmt) |
| 137 | +- [ ] Implement platform-specific tests for each OS |
| 138 | +- [ ] Add cross-platform testing suite |
| 139 | +- [ ] Setup code coverage reporting |
| 140 | + |
| 141 | +## Phase 13 · Advanced Features |
| 142 | +<!-- phase:phase-13:advanced --> |
| 143 | + |
| 144 | +- [ ] Implement custom module scripting language / support |
| 145 | +- [ ] Add conditional module display based on system state |
| 146 | +- [ ] Implement theme system with variables |
| 147 | +- [ ] Add animation support for transitional elements |
| 148 | +- [ ] Implement real-time stats updates / daemon mode |
| 149 | +- [ ] Add config hot-reload capability |
| 150 | +- [ ] Implement telemetry (optional, privacy-respecting) |
| 151 | +- [ ] Add accessibility features (high contrast themes) |
| 152 | + |
| 153 | +## Phase 14 · Documentation & Marketing |
| 154 | +<!-- phase:phase-14:marketing --> |
| 155 | + |
| 156 | +- [ ] Create comprehensive user manual |
| 157 | +- [ ] Create video tutorials |
| 158 | +- [ ] Setup project website with showcase |
| 159 | +- [ ] Create developer documentation |
| 160 | +- [ ] Publish blog posts about features |
| 161 | +- [ ] Create comparison guide with similar tools |
| 162 | +- [ ] Setup Discord/Slack community channel |
| 163 | +- [ ] Create contribution bounty program |
0 commit comments