Development roadmap and improvement tracking for Kodra.
- 🔴 P0 - Critical for v0.2.0
- 🟡 P1 - Important for adoption
- 🟢 P2 - Nice to have
- Create
lib/backup.shwith backup utilities - Backup to
~/.kodra/backups/YYYY-MM-DD-HH-MM-SS/ - Back up:
.bashrc,.zshrc,.gitconfig,.config/ghostty/ - Create
kodra restorecommand - Add
KODRA_SKIP_BACKUP=1env var option - Auto-cleanup backups older than 30 days
- Directory structure under
install/ - Each script is idempotent
- Scripts source
lib/utils.sh - Scripts respect
KODRA_SKIPenv var
-
lib/utils.sh- Basic utilities -
lib/ui.sh- TUI components - Add
command_exists()function - Add
is_arm()architecture detection - Add
retry()for failed commands - Add
download_file()with verification - Create
lib/package.shfor apt/snap/deb helpers - Create
lib/checks.shfor pre-flight checks
- Trap handlers for errors
- Installation logging to file
- Track installed components in state
- Track failed components in state
- Save state to
~/.kodra/state.json - Create
kodra resumecommand - Add
--continue-on-errorflag (via--debug/--resilient) - Show installation summary on completion
- Create
uninstall/mirroringinstall/ - Each install has matching uninstall
- Interactive uninstall menu
- Options: uninstall all, by category, specific tool
- Option to keep or remove configs
- Restore backed up dotfiles
- Add
--dry-runflag
-
kodra doctorexists - Check all installed tools accessible
- Verify shell config loaded
- Check Azure CLI login status
- Check Docker daemon running
- Check kubectl cluster connection
- Check disk space
- Check internet connectivity
- Add
--fixflag for auto-remediation - Provide fix suggestions for failures
- Detect ARM architecture
- Use ARM-compatible packages
- Skip x86-only applications
- Test on Raspberry Pi 4/5
- Test on ARM cloud instances
- Document ARM limitations
-
tests/test.shfor local tests -
tests/test-full.shfor container tests - Add GitHub Actions CI workflow
- Test on Ubuntu 24.04
- Test on Ubuntu 22.04 LTS
- Add CI badge to README
- Implement gum-based interactive menu in boot.sh
- Menu options: Install, Update, Change Theme, Uninstall, Exit
- Handle TTY detection for piped vs direct execution
- Support both
curl | bashand direct./boot.shexecution - Graceful fallback when no TTY available
- Record 2-3 min demo video
- Show fresh Ubuntu → themed desktop
- Demo Azure CLI, Docker, k9s
- Host on YouTube
- Add "Watch Demo" button to site
- Create GIF preview for README
- Screenshots for each theme
- Desktop + terminal + VS Code per theme
- Azure CLI in action
- k9s dashboard
- lazydocker interface
- Add carousel to homepage
- Optimize as WebP with lazy loading
- Create
/docssection - Getting Started guide
- Installation guide
- Commands reference
- Troubleshooting guide
- FAQ section
- Search functionality
- Mobile responsive
- Add
/blogsection - RSS feed support
- Changelog page
- Launch announcement post
- sitemap.xml exists
- robots.txt exists
- Add meta tags (title, description, OG)
- Add structured data (JSON-LD)
- Submit to Google Search Console
- Add analytics (Plausible)
- Add testimonials section
- GitHub star count widget
- Discord member count
- "As used by" section
- Add hero section with video/screenshot
- "How It Works" 3-step section
- "Why Kodra?" benefits section
- FAQ section
- Improve mobile responsiveness
- gum installed during setup
- Interactive theme selection
- Multi-select for optional apps
- Confirmation before install
- Progress indicators during install
- Success screen with next steps
- Create
~/.kodra/profiles/directory - Profiles as JSON files
-
kodra profile save <name> -
kodra profile load <name> -
kodra profile list - Ship default profiles (Full, Minimal, AKS Dev)
- Bash completion for
kodra - Zsh completion for
kodra - Tab complete themes, commands
- Install completions during setup/repair
- Check for updates on shell startup (daily)
- Compare local vs GitHub release
- Non-intrusive notification
-
KODRA_CHECK_UPDATES=0to disable
- Opt-in during setup
- Anonymous: Ubuntu version, Kodra version, theme
- No PII
-
kodra telemetry on/off/status
-
kodra sync init- Create GitHub repo -
kodra sync push- Push config -
kodra sync pull- Pull config - Exclude secrets
- Handle conflicts
- Basic installation instructions
- Feature list
- Add badges (version, Ubuntu, license, CI)
- Add demo GIF
- Commands reference table
- Environment variables table
- Troubleshooting section
- Link to docs site
- Basic contributing guide exists
- How to report bugs
- How to add new tools
- How to create themes
- Code style guide
- Development setup
- Installation failures
- Azure CLI login issues
- Docker permission issues
- Theme not applying
- GNOME extension issues
- Link from error messages
- Add ShellCheck to CI
- Fix all ShellCheck warnings
- Standardize function naming
- Add comments to complex sections
- Remove duplicate code
- Follow Google Shell Style Guide
- Parallel installs where possible
- Cache apt package lists
- Download files concurrently
- Skip checks on re-install
- Reduce shell startup time
- Total installations (with consent)
- Ubuntu version distribution
- Popular themes
- Installation success rate
- Show public stats on website
- Basic colored output
- Consistent color scheme
- ASCII art headers
- Spinner animations
- Box drawing for sections
- 80-char width consistency
- Review all download URLs (HTTPS only)
- Verify GPG signatures on packages
- Don't run scripts with eval
- Sanitize user input
- Don't store credentials
- Add SECURITY.md
- Set up Dependabot
- Add
menu-completeto inputrc - Add
menu-complete-backwardfor Shift+Tab - Set
menu-complete-display-prefix on
- Ghostty
config-filedirective for theme import - Theme updates without terminal restart
- Create theme-specific ghostty configs
-
open()- Silent xdg-open wrapper with background -
n()- Smart nvim (dir or file) -
zd()- zoxide with visual feedback and icons -
t- tmux attach or new session -
fe()- Fuzzy edit file (implemented asfe())
-
fip- Forward local port to remote -
dip- Dynamic SOCKS proxy -
lip- List active port forwards
-
img2jpg- Convert images to JPEG -
img2png- Convert images to PNG -
img2webp- Convert images to WebP -
compress- Smart file/folder compression -
transcode-video-1080p- Video transcoding -
transcode-video-720p- Video transcoding
-
iso2sd- Write ISO to USB drive -
format-drive- Safe drive formatter with prompts
The following shell functions already exist in configs/shell/kodra.sh:
-
zz()- Fuzzy cd with zoxide + fzf -
fco()- Fuzzy git branch checkout -
fkill()- Fuzzy process kill -
dsh()- Fuzzy docker container shell -
fe()- Fuzzy edit file with bat preview -
fgl()- Fuzzy git log browser -
extract()- Universal archive extraction -
compress()- Folder compression to tar.gz -
gclone()- Clone and cd into repo -
aztemplate()- Azure template scaffolding -
kpod()- kubectl port-forward helper -
dps()- Docker ps with grep -
web2app()- Create web app desktop launcher - Zoxide integration with bash/zsh
- FZF with Tokyo Night colors
- FZF keybindings for ctrl-r, ctrl-t, alt-c
- Split pane resize keybinds (Super+Ctrl+Shift+Arrow)
- Mouse scroll multiplier (0.95)
- async-backend = epoll for performance
- Unbind conflicting keybinds for tmux
- Create themed
tmux.conf - Status bar top position with theme colors
- Vi mode for copy/paste
- Mouse support enabled
- Prefix key: Ctrl+Space
- Split keybinds: | for vertical, - for horizontal
-
tmlfunction - Create tmux layout (web/api/k8s) -
nicfunction - New session named after current directory -
nicxfunction - nic with web layout applied - Auto-attach or create session
Located in themes/ directory:
- Tokyo Night - Purple-blue dark theme (default)
- Ghostty colors (
ghostty.conf) - Starship prompt (
starship.toml) - VS Code settings (
vscode-settings.json)
- Ghostty colors (
- Ghostty Blue - Blue-focused dark theme
- Ghostty colors
- Starship prompt
- VS Code settings
- Ghostty colors
- Starship colors
- VS Code settings (Gruvbox extension)
- btop theme
- tmux theme
- Wallpapers (3+)
- GNOME accent color
- Ghostty colors (Mocha variant)
- Starship colors
- VS Code settings (Catppuccin extension)
- btop theme
- tmux theme
- Wallpapers (3+)
- GNOME accent color
- Ghostty colors
- Starship colors
- VS Code settings (Nord extension)
- btop theme
- tmux theme
- Wallpapers (3+)
- GNOME accent color
- Ghostty colors
- Starship colors
- VS Code settings (Rose Pine extension)
- btop theme
- tmux theme
- Wallpapers (3+)
- GNOME accent color
- Everforest - Nature-inspired greens
- Kanagawa - Japanese-inspired
- Miasma - Dark earthy tones
- Vantablack - Pure black OLED
- Flexoki - Warm neutral
- Flexoki Light - Light variant
- Catppuccin Latte - Light variant
- Osaka Jade - Jade/green focused
- Ristretto - Coffee browns
- Matte Black - Subtle blacks
- Ethereal - Dreamy pastels
- Refresh components without logout
-
kodra-refresh-terminalpost theme switch -
kodra-refresh-starshippost theme switch - Script to reload VS Code theme
- Reload btop with new theme
- Theme-specific wallpaper directories (wallpapers//)
-
kodra wallpaper next- Cycle wallpapers -
kodra wallpaper prev- Previous wallpaper -
kodra wallpaper list- Show available -
kodra wallpaper set <name>- Set specific -
kodra wallpaper theme- List theme-specific wallpapers
- Interactive wallpaper selection dialog
- Thumbnail previews (zenity/yad)
- Works with current theme wallpapers
- btop config exists with Tokyo Night theme
- Create btop theme for each Kodra theme
- Auto-apply btop theme on theme switch
- Match terminal color palette
- Auto-install nvim colorscheme plugins
- Set colorscheme on theme switch
- LazyVim integration
- Template files with color placeholders
-
colors.tomlper theme with palette - Generator script from template + colors
- Documentation for creating themes
The following commands exist in bin/kodra and bin/kodra-sub/:
-
kodra theme [name]- Switch themes (interactive if no name) -
kodra wallpaper [name]- Change wallpaper -
kodra desktop [cmd]- Configure desktop (setup, refresh, dock, extensions) -
kodra motd [style]- Set terminal banner (banner, minimal, none) -
kodra setup- Run first-time setup (GitHub, Azure, Git) -
kodra fetch- Show beautiful system info (fastfetch) -
kodra update- Update Kodra and installed packages -
kodra install <app>- Install additional applications -
kodra uninstall <app>- Remove applications -
kodra repair- Re-apply all configs without reinstalling -
kodra restore- Restore backed up dotfiles -
kodra resume- Resume incomplete installation -
kodra doctor- Check system health -
kodra welcome- Show first-run welcome screen -
kodra version- Show version and current theme -
kodra help- Show help message
- Interactive gum-based main menu
- Nested submenus for categories
- Options: Theme, Wallpaper, Install, Update, System
- Keyboard navigation
- Color-coded by category
- Display all GNOME keybindings
- Parse gsettings for custom shortcuts
- Format as readable table
- Group by category
- Search/filter option
-
kodra font list- Show available Nerd Fonts -
kodra font set <name>- Change all fonts - Update Ghostty font
- Update GNOME monospace font
- Verify font exists before applying
-
kodra screenshot- Full screen -
kodra screenshot region- Area selection -
kodra screenshot window- Active window -
kodra screenshot delay- Delayed capture - Use gnome-screenshot or scrot
- Copy to clipboard + save to file
-
kodra screenrecord start- Begin recording -
kodra screenrecord stop- End recording - Options: with/without audio
- Integration with OBS or simplescreenrecorder
- Pick color from screen
- Copy HEX to clipboard
- Use gpick or gcolor3
-
kodra power- Show current profile -
kodra power performance- Set performance -
kodra power balanced- Set balanced -
kodra power saver- Set power saver - Use powerprofilesctl
-
kodra nightlight- Toggle on/off -
kodra nightlight on- Enable -
kodra nightlight off- Disable -
kodra nightlight temp <K>- Set temperature - Use gsettings for GNOME Night Light
-
kodra lock- Lock screen -
kodra suspend- Suspend system -
kodra hibernate- Hibernate (if enabled) -
kodra restart- Restart system -
kodra shutdown- Shutdown system
-
kodra wifi list- Show networks -
kodra wifi connect <ssid>- Connect -
kodra wifi disconnect- Disconnect -
kodra wifi status- Show current - Use nmcli
-
kodra bluetooth list- Show devices -
kodra bluetooth connect <device>- Connect -
kodra bluetooth disconnect- Disconnect -
kodra bluetooth status- Show status - Use bluetoothctl
-
kodra brightness- Show current -
kodra brightness <0-100>- Set level -
kodra brightness up- Increase -
kodra brightness down- Decrease - Use brightnessctl or xrandr
-
kodra volume- Show current -
kodra volume <0-100>- Set level -
kodra volume up- Increase -
kodra volume down- Decrease -
kodra volume mute- Toggle mute - Use pactl/pamixer
- Show battery percentage
- Show charging status
- Show time remaining
- Use upower
- Clean apt cache
- Clean snap cache
- Clean flatpak unused runtimes
- Remove orphaned packages
- Clean journal logs
- Clean temp files
- Clean Docker unused data
- Clean Homebrew cache
- Show space reclaimed
- Backup system exists (
lib/backup.sh) -
kodra restorecommand exists - Backup dotfiles to tarball
- Include: shell, ghostty, starship, vscode settings
- Exclude secrets
- Timestamp filename
- System overview
- Show: CPU, RAM, Disk, Network
- Show: Kodra version, theme
- Show: OS version, uptime
- Show Kodra version
- Show current theme
- Show Git commit (if dev)
- Check for updates available
-
kodra dev setup ruby- mise + bundler -
kodra dev setup node- mise + npm -
kodra dev setup python- mise + pip -
kodra dev setup go- mise + go tools -
kodra dev setup rust- mise + cargo -
kodra dev setup java- mise + java -
kodra dev setup dotnet- .NET SDK via mise -
kodra dev setup deno- Deno via mise -
kodra dev setup bun- Bun via mise -
kodra dev list- Show installed runtimes - Interactive mode with gum
-
kodra db postgres- Start PostgreSQL container -
kodra db mysql- Start MySQL container -
kodra db redis- Start Redis container -
kodra db mongo- Start MongoDB container -
kodra db stop <name>- Stop container -
kodra db list- List running DBs -
kodra db stop-all- Stop all DBs -
kodra db clean- Remove containers and volumes - Persist data in Docker volumes
-
kodra new rails <name>- Rails project -
kodra new next <name>- Next.js project -
kodra new django <name>- Django project -
kodra new go <name>- Go project -
kodra new rust <name>- Rust project - Auto-initialize git repo
- Open in VS Code
- Custom Kodra branding/logo
- Sectioned layout (Hardware/Software/Cloud)
- Show current Kodra theme name
- Show system age (days since install)
- Show last apt update timestamp
- Show Kodra version
- Custom JSONC config exists
- Color swatches for current theme
- User-customizable logo/branding file
- Better GPU detection
- Better display/monitor info
- Package count (apt + snap + flatpak)
- Terminal detection improvement
- Themed starship configs per theme
- OS icons (Ubuntu, Linux, Windows, macOS)
- Directory truncation
- Docker context display
- Kubernetes context display
- Azure subscription display
- Minimal mode option (directory + git only)
- Better git status symbols (ahead/behind/diverged)
- Command timeout = 200ms
- AWS profile display
- Terraform workspace display
- AI coding agent style guide
- Code style conventions
- Command naming patterns
- File organization
- Testing requirements
- All GNOME shortcuts documented
- Kodra command reference
- Ghostty keybindings
- tmux keybindings
- Shell aliases and functions
- Printable PDF version
- How to create a new theme
- Required files
- Color palette format
- Testing themes
- Contributing themes
- Better extension auto-install
- Extension settings backup/restore
-
kodra extensions list -
kodra extensions enable <name> -
kodra extensions disable <name>
- Match GTK theme to Kodra theme
- Adwaita-based themes per color scheme
- Auto-apply on theme switch
- Match icon theme to Kodra theme
- Install compatible icon packs
- Auto-apply on theme switch
- Match login screen to Kodra theme
- Set login wallpaper
- Custom GDM styling
- Dynamic transparency
- Match panel to theme
- Custom panel layout
- Configure 3/4 finger gestures
- Workspace switching gestures
- App switching gestures
- Use libinput-gestures or touchegg
-
kodra shortcuts export- Export to file -
kodra shortcuts import- Import from file - Share shortcuts across installs
-
kodra dconf backup- Backup all settings -
kodra dconf restore- Restore settings - Include in full backup
- Bundle dependencies option
- Downloadable offline package
- Install from local cache
- Choose components interactively
- Skip categories (--skip-azure, --skip-docker)
- Minimal install profile
- Real-time progress bar
- Current step / total steps
- Estimated time remaining
- Component status (installing/done/failed)
- Migration tool from other dotfile managers
- Import Oh My Zsh config
- Import Prezto config
- Preserve user customizations
- Show weather in terminal
- Use wttr.in or openweathermap
- Cache results
- Simple task management
-
kodra todo add <task> -
kodra todo list -
kodra todo done <n> - Store in ~/.kodra/todo.txt
- Quick notes
-
kodra notes add <note> -
kodra notes list -
kodra notes search <query> - Store in ~/.kodra/notes/
- World clock / timezones
-
kodra time <city> -
kodra time list- Configured cities
- QR code generation
-
kodra qr <text>- Generate QR -
kodra qr scan- Scan QR from screen
- AI assistant integration
-
kodra ai ask <question> - Use GitHub Copilot CLI or opencode
- Shell command suggestions
- Performance when plugged in
- Balanced/saver on battery
- udev rule integration
- Desktop notification at low battery
- Configurable threshold (20%, 10%)
- Optional auto-hibernate at critical
-
kodra setup hibernate - Create swap file if needed
- Configure resume hook
- GRUB configuration
- #1 Backup system
- #4 Error handling + resume
- #10 Video demo
- #11 Screenshots
- #23 Enhanced README
- #5 Per-component uninstall
- #7 Enhanced doctor command
- #12 Documentation site
- #25 Troubleshooting guide
- #29 Code quality
- GNOME 46 compatibility (screenshot shortcuts schema fallback)
- Unified Copilot extension (
github.copilot-chatreplaces deprecatedgithub.copilot) - Resilient installer (component failures tracked, never kill install)
- Fixed needrestart non-interactive configuration
- Fixed progress bar rendering (ASCII-compatible)
- Auto-enable all installed GNOME extensions via gsettings
- 6 extensions enabled by default: Dash to Dock, Blur my Shell, Tactile, TopHat, Alphabetical Grid, Space Bar
- Disabled night light (user can re-enable)
- Disabled extension version validation (no update prompts)
- Improved dock favorites with dconf fallback
- VS Code Tokyo Night theme auto-applied with extensions
- #34 Tab-cycle completion
- #35 Dynamic theme loading
- #36 Enhanced shell aliases
- #40 Ghostty improvements
- #51 btop theme sync
- #43 Gruvbox theme
- #44 Catppuccin theme
- #45 Nord theme
- #46 Rose Pine theme
- #49 Multiple wallpapers per theme
- #54 kodra menu
- #55 kodra shortcuts
- #60 kodra power
- #61 kodra nightlight
- #71 kodra version
- #41 Tmux configuration
- #42 Tmux dev layouts
- #72 Dev environment installers
- #73 Docker database commands
- #8 ARM support
- #18 Configuration profiles
- #19 Shell completions
- #20 Update notifications
- #75 Enhanced fastfetch
- #47 Additional themes (5+)
- #56 kodra font
- #57 kodra screenshot
- #77 Starship improvements
- #78 AGENTS.md
- All P0/P1 complete
- Comprehensive docs
- Production-ready stability
- 10+ themes available
- Full command suite