Skip to content

Features

BottyIvan edited this page Nov 2, 2025 · 1 revision

Features

Explore the comprehensive feature set of Launcher.

Table of Contents

Core Features

Modern GTK4 Interface

  • Native Linux Experience: Built with GTK4 for seamless integration
  • Adwaita Design: Follows GNOME design guidelines
  • Responsive UI: Smooth animations and transitions
  • HiDPI Support: Crisp rendering on high-resolution displays
  • Dark Mode: Automatic theme switching based on system preferences

Instant Search

  • Real-time Results: See results as you type
  • Fuzzy Matching: Find apps even with typos
  • Smart Ranking: Most relevant results first
  • Case Insensitive: No need to worry about capitalization
  • Fast Performance: Optimized database queries

Flatpak Support

  • Sandboxed Environment: Run safely with limited permissions
  • All Dependencies Included: No manual dependency management
  • Easy Updates: Simple update process
  • Portable: Works across different Linux distributions
  • Secure: Controlled filesystem and network access

User Interface

Dual View Modes

Compact Mode:

  • Grid layout with application icons
  • Minimal design for quick access
  • Icon-focused presentation
  • Perfect for fast launches

Extended Mode:

  • List view with detailed information
  • Application descriptions
  • Additional metadata
  • Better for browsing

Visual Design

  • SVG Icons: Scalable vector graphics for any size
  • Custom Icons: Support for custom application icons
  • Consistent Theming: Adapts to system theme
  • Smooth Animations: Polished user experience
  • Accessibility: Screen reader support

Window Management

  • Keyboard-first Design: Optimized for keyboard users
  • Mouse Support: Full mouse interaction available
  • Quick Dismiss: Press Esc to close instantly
  • Position Memory: Remembers window position
  • Size Adaptation: Responsive to window resizing

Search Capabilities

Application Discovery

  • Desktop File Scanning: Automatically finds installed applications
  • Multiple Sources: Scans system and user application directories
  • Live Updates: Detects newly installed applications
  • Icon Resolution: Finds and displays appropriate icons
  • Metadata Parsing: Extracts name, description, categories

Search Algorithms

  • Instant Search: Results appear as you type (no delay)
  • Prefix Matching: Prioritizes matches at word start
  • Substring Matching: Finds matches anywhere in name
  • Intelligent Ranking: Most relevant results first
  • Performance Optimized: Sub-millisecond search times

Filter Options

  • By Name: Search application names
  • By Category: Filter by application category
  • By Keywords: Match desktop file keywords
  • By Description: Search in app descriptions (extended mode)

Extension System

Architecture

  • YAML Configuration: Extensions defined in YAML files
  • Plug-and-Play: Easy to add and remove
  • Service Registration: Extensions can register custom services
  • Dynamic Loading: Load extensions on demand
  • Isolated Execution: Extensions run independently

Extension Management

  • Enable/Disable: Toggle extensions without restart
  • Search Extensions: Find extensions by name
  • Extension List: View all available extensions
  • Extension Info: See details about each extension
  • Configuration: Per-extension settings

Available Extensions

1. Application Search (Default)

  • Search for installed desktop applications
  • Access to all .desktop files
  • Icon resolution and display
  • Instant launch capability

2. Math Calculator

  • Evaluate mathematical expressions
  • Support for common functions
  • Constants (pi, e)
  • Real-time calculation

3. Command Runner (In Development)

  • Execute shell commands
  • Command history
  • Output display
  • Security controls

4. AI Assistant (In Development)

  • Natural language queries
  • Google Gemini integration
  • Context-aware responses
  • API key configuration required

5. File Manager (In Development)

  • Browse file system
  • Quick file search
  • Recent files
  • File actions (open, copy path)

6. Link Management (In Development)

  • Web bookmark management
  • Quick link access
  • Link organization
  • URL search

Built-in Services

ApplicationsService

Responsibilities:

  • Discover installed applications from .desktop files
  • Parse desktop entry specifications
  • Maintain application database
  • Provide search functionality
  • Handle icon resolution

Features:

  • Instant search across all applications
  • Dynamic, ordered list via Gio.ListStore
  • Caching for improved performance
  • Automatic refresh on application changes

ExtensionService

Responsibilities:

  • Manage extension lifecycle
  • Load/unload extensions dynamically
  • Track enabled/disabled state
  • Register extension services
  • Provide extension search

Features:

  • Add, remove, enable, disable extensions
  • Search and list extensions by name
  • Service registration for custom extensions
  • YAML-based configuration

MathService

Responsibilities:

  • Evaluate mathematical expressions
  • Provide calculator functionality
  • Support mathematical functions
  • Safe expression evaluation

Features:

  • Basic arithmetic: +, -, *, /, **
  • Functions: sqrt, sin, cos, tan, log, abs
  • Constants: pi, e
  • Safe evaluation (no code execution)
  • Error handling

CommandService (In Development)

Responsibilities:

  • Execute shell commands
  • Manage command history
  • Provide command output
  • Security and permission control

Planned Features:

  • Command execution with output
  • Command history and suggestions
  • Environment variable support
  • Permission-based execution

AIService (In Development)

Responsibilities:

  • Integration with AI APIs
  • Natural language query processing
  • Context management
  • Response formatting

Planned Features:

  • Google Gemini API integration
  • Conversation history
  • Context-aware responses
  • Customizable prompts

Performance Features

Caching

  • Desktop Entry Caching: Avoid repeated file parsing
  • Icon Caching: Store resolved icon paths
  • Database Connection Pooling: Reuse connections
  • Class Instance Caching: Avoid redundant instantiation
  • Regex Precompilation: Compile patterns once

Optimization

  • Lazy Loading: Load resources on demand
  • Background Processing: Non-blocking UI operations
  • Efficient Queries: Optimized SQLite queries
  • Memory Management: Careful resource cleanup
  • Thread Management: Background thread pool

Benchmarks

Typical performance metrics:

  • Startup Time: < 1 second (cold start)
  • Search Latency: < 50ms for instant results
  • Memory Usage: ~30-50MB resident
  • Database Queries: < 1ms for most operations

Integration Features

Desktop Integration

  • Desktop Files: Standard .desktop entry support
  • Icon Themes: Respects system icon themes
  • D-Bus Integration: System bus communication
  • Portal Support: XDG Desktop Portal integration
  • Application Launching: Proper process spawning

System Integration

  • Wayland Support: Native Wayland compositor support
  • X11 Fallback: Works on X11 when Wayland unavailable
  • Multi-monitor: Proper handling of multiple displays
  • HiDPI Aware: Scales correctly on high-DPI displays
  • Keyboard Layouts: Respects system keyboard settings

Platform Support

  • GNOME: First-class support and integration
  • KDE Plasma: Functional with Plasma desktop
  • XFCE: Compatible with XFCE environment
  • Other DEs: Works on most modern Linux desktops
  • Distribution Agnostic: No distro-specific code

Data Management

Persistent Storage

  • SQLite Database: Local data storage
  • User Preferences: Saved settings and configurations
  • Extension State: Enabled/disabled state
  • Search History: Recent searches (if enabled)
  • Window State: Position and size

Configuration

  • YAML Files: Extension and resource configuration
  • GSettings Support: Desktop environment integration
  • Environment Variables: Override default settings
  • Command-line Options: Launch-time configuration

Development Features

Code Quality

  • Type Annotations: Full type hints for IDE support
  • Docstrings: Comprehensive documentation
  • Testing: Unit test suite included
  • Linting: Flake8 configuration provided
  • Formatting: Black code style

Architecture

  • MVC Pattern: Clear separation of concerns
  • Service Layer: Business logic abstraction
  • Handler Pattern: Extensible input handling
  • Widget Components: Reusable UI elements
  • Helper Utilities: Common functionality

Upcoming Features

Features currently in development:

Short-term (Next Release)

  • ⏳ Command Service: Full command execution capability
  • ⏳ AI Integration: Complete Gemini API integration
  • ⏳ File Search: File system search and navigation
  • ⏳ Link Manager: Web bookmark management
  • ⏳ Keyboard Customization: Custom keyboard shortcut configuration

Mid-term (Future Releases)

  • 🔮 Plugin System: Third-party plugin support
  • 🔮 Web Search: Search engines integration
  • 🔮 Calculator History: Math calculation history
  • 🔮 Clipboard Manager: Clipboard history integration
  • 🔮 Window Manager: Quick window switching

Long-term (Roadmap)

  • 🎯 Cloud Sync: Sync settings across devices
  • 🎯 Mobile Companion: Mobile app integration
  • 🎯 Workflow Automation: Custom automation scripts
  • 🎯 AI Learning: Personalized suggestions
  • 🎯 Multi-language: Localization support

Feature Comparison

vs. GNOME Shell Search

  • ✅ Faster startup
  • ✅ More customizable
  • ✅ Extension system
  • ✅ Standalone application
  • ➖ Less integrated with system

vs. Rofi/dmenu

  • ✅ Modern GTK4 interface
  • ✅ Mouse support
  • ✅ Better visuals
  • ✅ Extension system
  • ➖ Higher resource usage

vs. Albert/Ulauncher

  • ✅ Native GTK4 (no Qt)
  • ✅ Flatpak support
  • ✅ Type-safe codebase
  • ✅ Modern design
  • ➖ Fewer extensions (currently)

Accessibility Features

  • Keyboard Navigation: Full keyboard control
  • Screen Reader: Compatible with screen readers
  • High Contrast: Support for high contrast themes
  • Large Text: Scales with system font settings
  • Focus Indicators: Clear keyboard focus indication

Security Features

  • Sandboxing: Flatpak provides isolated environment
  • Limited Permissions: Minimal required permissions
  • Safe Evaluation: Math expressions evaluated safely
  • No Code Execution: User input not executed as code
  • Read-only Access: Limited filesystem access

For detailed usage of these features, see the Usage Guide.

For technical implementation details, see the Architecture documentation.

Clone this wiki locally