Skip to content

Commit f025a5e

Browse files
committed
update workflows
1 parent cd4100f commit f025a5e

1 file changed

Lines changed: 163 additions & 0 deletions

File tree

ROADMAP.md

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
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

Comments
 (0)