Whats New 0.2.0 - ArunPrakashG/native-launcher GitHub Wiki
What's New in v0.2.0
Native Launcher 0.2.0 is a major feature release with 16 new features, 32 new tests, and comprehensive enhancements to session management, development tools, and UI customization.
🎉 Major Features
🪟 Session Management
Session Switcher (@switch, @sw)
Switch between running windows and VS Code workspaces instantly.
Features:
- Auto-detects Hyprland/Sway compositor
- Aggregates running windows with titles and classes
- Scans VS Code workspace storage
- 3-second cache for fast repeated queries
- Focus windows via compositor commands
Usage:
@switch firefox # Find Firefox windows
@switch code # Find VS Code windows/workspaces
@sw terminal # Quick alias
Technical: 11 tests, lazy loading with OnceLock
Window Management (@wm, @window)
Control window layout and behavior from the launcher.
Available Actions:
- Move to Workspace 1-5
- Center Window
- Toggle Fullscreen
- Toggle Floating
- Pin/Sticky (all workspaces)
- Close Window
- Move Window (Left/Right/Up/Down)
Usage:
@wm workspace 2 # Move active window to workspace 2
@wm center # Center active window
@wm fullscreen # Toggle fullscreen
@window float # Toggle floating mode
Technical: 11 tests, Hyprland & Sway support
💻 Development Tools
Git Projects (@git, @repo)
Find and open git repositories in your default editor.
Features:
- Scans 4 common directories:
~/code,~/projects,~/dev,~/workspace - Depth-2 traversal to find nested repositories
- Displays current branch information
- Smart editor detection (VISUAL, EDITOR, common editors)
- Lazy loading with 10ms budget
Usage:
@git native-launcher # Find native-launcher repo
@repo website # Find website repo
@git my-project # Open in default editor
Technical: 7 tests, OnceLock caching
🎯 Enhanced User Experience
Inline Result Actions
Quick keyboard shortcuts for common operations.
Actions:
- Alt+Enter: Open containing folder
- Ctrl+Enter: Copy path to clipboard (window stays open)
Plugins:
- Works with Files plugin (
@files) - Works with Recent Documents plugin (
@recent)
Benefits:
- No mouse needed for common workflows
- Clipboard copy doesn't interrupt your work
- Faster folder navigation
Icon Badges
Visual indicators on result rows to quickly identify item types.
Badge Types:
| Badge | Icon | Used For |
|---|---|---|
| Terminal | 🖥️ | Terminal=true apps, SSH connections |
| Web | 🌐 | Web search results |
| Document | 📄 | File results |
| Folder | 📁 | Directories, git repositories |
Visual Design:
- 16px symbolic icons
- 60% opacity (default)
- 90% opacity (selected) with coral accent
- Smooth transitions (0.08s)
🎨 UI Customization
Density Toggle
Adjust UI spacing to your preference.
Modes:
- Compact: Tighter spacing (10px padding, smaller fonts)
- Comfortable: Default spacious layout (14px padding)
Configuration:
[ui]
density = "compact" # or "comfortable"
Technical: CSS-based, instant switching, zero overhead
Theme Accent Variants
Choose from 7 accent colors to personalize your launcher.
Available Accents:
| Color | Hex | Description |
|---|---|---|
| Coral (default) | #ff6363 |
Warm, energetic red |
| Teal | #5eead4 |
Cool, modern cyan |
| Violet | #a78bfa |
Rich, elegant purple |
| Blue | #60a5fa |
Classic, trustworthy |
| Green | #34d399 |
Fresh, natural |
| Orange | #fb923c |
Vibrant, friendly |
| Pink | #f472b6 |
Playful, warm |
Configuration:
[ui]
accent = "teal" # or coral, violet, blue, green, orange, pink
Technical: CSS variables, instant switching, no relaunch needed
Category-Based Icon Fallback
Intelligent icon resolution for apps without Icon= field.
Features:
- Maps 150+ freedesktop.org categories to appropriate icons
- Three-tier fallback: explicit → category-based → generic
- 100% local (no external APIs)
- Privacy-respecting
Examples:
| Category | Icon | Apps |
|---|---|---|
| Development | 🔧 | IDEs, debuggers |
| WebBrowser | 🌐 | Firefox, Chrome |
| TextEditor | 📝 | Vim, Nano |
| AudioVideo | 🎵 | VLC, MPV |
| Game | 🎮 | Steam games |
Technical: 9 new tests, cached lookups, <1ms per resolution
📸 Media & Screenshots
Screenshot Annotation (@ss annotate)
Edit screenshots before saving with Swappy integration.
Modes:
- Annotate Fullscreen
- Annotate Window
- Annotate Area
Workflow:
- Capture screenshot
- Pipe to Swappy for editing
- Optionally copy to clipboard
- Save to file
Usage:
@ss annotate # Show all modes
@ss annotate full # Annotate fullscreen
Technical: 6 tests, graceful degradation when swappy not installed
Recent Documents (@recent, @r)
Access recently opened files with human-readable timestamps.
Features:
- Parses
~/.local/share/recently-used.xbel - Top 200 recent entries
- File categorization (Text, Image, Video, PDF, etc.)
- Human-readable time ("5m ago", "3d ago", "2w ago")
- Opens with default handler (xdg-open)
Usage:
@recent config # Find recent config files
@r document # Find recent documents
Technical: 8 tests, lightweight XML parser
🚀 Performance Improvements
Usage Learning v2
Time-decay system that learns your app usage patterns.
Features:
- Hour-of-day boost: Up to 30% boost for frequently used hours
- Launch history: Tracks last 100 launches per app
- Exponential time decay: 7-day half-life
- Pattern recognition: Analyzes 24-hour usage patterns
How It Works:
If you often use VS Code at 9 AM:
- 9 AM: VS Code gets 30% boost
- Other hours: Normal scoring
If you launched Firefox 5 mins ago:
- Recent launch: High score
- 7 days old: 50% score
- 14 days old: 25% score
Technical: 9 tests, O(1) runtime with precomputed scores
Enhanced Fuzzy Search
Improved search scoring for better matches.
Enhancements:
- Acronym matching:
vsc→ Visual Studio Code - Word boundary detection:
studio→ Studio One (prioritized) - Case-sensitivity bonus: +2000 for exact case match
- Exec field matching:
google-chrome→ Chrome - Minimum score threshold: Filters low-quality matches
- Performance optimizations: Caching and early exits
Technical: 8 new tests, ~1ms additional overhead
Compiler Optimizations
Aggressive optimization for maximum performance.
Changes:
- Fat LTO (link-time optimization)
- panic = "abort" (smaller binary)
- Inline hints for hot paths
- Lazy loading with OnceLock
- Memory pre-allocation
Results:
- Startup: 34-35ms (maintained)
- Binary: 7.8MB (optimized)
- Build: 59s (with full optimizations)
📊 Statistics
Test Coverage
- 150 tests (up from 118)
- 32 new tests across new features
- Zero regressions in existing functionality
- All tests passing ✅
Performance
- Startup: 34-35ms (consistent)
- Search: <10ms for 500 apps
- Memory: ~20MB idle
- Binary Size: 7.8MB (stripped with fat LTO)
Code Quality
- Zero breaking changes
- Backward-compatible config
- Comprehensive documentation
- All warnings resolved
🔧 Configuration
New Config Options
[ui]
# Density mode (compact or comfortable)
density = "comfortable"
# Accent color (coral, teal, violet, blue, green, orange, pink)
accent = "coral"
[plugins]
# Enable session switcher (default: true)
session_switcher = true
# Enable git projects (default: true)
git_projects = true
# Enable recent documents (default: true)
recent_documents = true
# Enable window management (default: true)
window_management = true
📚 Documentation
New Documentation
- Category Icon Fallback - Icon resolution system
- Session Summary - Development session notes
- Performance Results - Optimization analysis
Updated Documentation
- README.md - New features and command prefixes
- CHANGELOG.md - Comprehensive release notes
- Wiki Home - Updated feature list and recent changes
🎯 Upgrade Path
From 0.1.x to 0.2.0
No breaking changes! Your existing config and setup will continue to work.
Optional: Add new config options to enable customization:
# Backup your config
cp ~/.config/native-launcher/config.toml ~/.config/native-launcher/config.toml.backup
# Edit config to add new options (optional)
# All new features work with defaults
New Plugins: All new plugins are enabled by default but can be disabled:
[plugins]
session_switcher = false # Disable if not using Hyprland/Sway
git_projects = false # Disable if not developing
window_management = false # Disable if not needed
🙏 Contributors
This release represents significant work across multiple areas:
- 16 new features
- 32 new tests
- 7 files modified for icons
- 150+ category mappings
- Comprehensive documentation
Thank you to all users who provided feedback and tested early versions!
🔮 What's Next
See TODO.md for planned features:
- Workflow chains (
@do) - Automation pipelines - Quick toggles (
@toggle) - WiFi/Bluetooth/DND - Icon cache v2 - Memory-mapped icon cache
- Installer improvements - Versioned binaries
- And more!
Ready to upgrade? Install the latest version:
curl -fsSL https://raw.githubusercontent.com/ArunPrakashG/native-launcher/main/install.sh | bash