- Global Hotkey Access: Launch instantly with
Ctrl+Space(configurable) - Real-time Search: Find applications, files, and commands as you type
- Terminal-First Workflow: Direct command execution with persistent sessions
- Application Launcher: Launch desktop applications seamlessly
x: <command>Syntax: Execute commands directly withx: ls -la,x: htop, etc.- Persistent Sessions: Interactive terminals that stay active across toggles
- Session Management: Real-time counter showing running terminal count
- Multi-Session Support: Run multiple terminals simultaneously
- Material Design 3: Google's latest design system with dynamic theming
- Tron-Style Accents: Electric blue highlights for terminal and AI elements
- Responsive Interface: Smooth animations and keyboard-driven navigation
- Dark Theme: Optimized for low-light coding sessions
- Natural Language Queries: Ask AI questions directly from the search bar
- Context-Aware Responses: AI understands your current directory and workflow
- Command Suggestions: Get help with complex terminal operations
- Linux: Fedora, Ubuntu, or any modern distribution
- Go: Version 1.20 or later
- Node.js: Version 16+ with npm
- Wails v2:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
-
Clone the repository:
git clone https://github.com/clmurray/xmd.git cd xmd/desktop -
Install dependencies:
wails build
-
Run XMD:
./build/bin/xmd-desktop
For the best experience on GNOME:
- Open Settings β Keyboard β View and Customize Shortcuts
- Add a Custom Shortcut:
- Name:
XMD Terminal Navigator - Command:
/path/to/xmd-desktop --toggle - Shortcut:
Super+Space(or your preference)
- Name:
- Open XMD: Press your configured hotkey (default:
Ctrl+Space) - Search: Start typing to find apps, files, or commands
- Select: Use arrow keys or mouse, press
Enterto execute - Close: Press
Escor click outside the window
- Direct Execution: Type
x: ls -laand press Enter - Interactive Sessions: Commands like
x: python3orx: htopremain interactive - Session Tracking: See running terminal count in the search window
- Multi-Tasking: Launch multiple terminals and switch between them
- Applications:
firefox,code,gimp- Launch desktop applications - Commands:
x: git status,x: docker ps- Execute in terminal - Files:
/home/user/project- Navigate to directories - AI Queries:
ask how to use git rebase- Get AI assistance (coming soon)
| Key | Action |
|---|---|
Ctrl+Space |
Toggle XMD window |
β β |
Navigate results |
Enter |
Execute selected item |
Esc |
Close window |
Tab |
Cycle through UI elements |
See docs/ARCHITECTURE.md for detailed technical documentation.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β XMD Desktop β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Frontend (Svelte + Material Design 3) β
β βββ SpotlightWindow (Main UI) β
β βββ CommandInput (Search & Command Entry) β
β βββ ResultsList (Search Results Display) β
β βββ TerminalView (Interactive Terminal) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Backend (Go + Wails) β
β βββ App (Main Application Logic) β
β βββ Terminal Manager (PTY Session Handling) β
β βββ Search Engine (Application & File Indexing) β
β βββ AI Client (OpenAI Integration) β
β βββ Hotkey Handler (Global Keyboard Shortcuts) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β System Integration β
β βββ Desktop Files (.desktop parsing) β
β βββ PTY/Shell Integration β
β βββ IPC (Single Instance Management) β
β βββ Platform-Specific Hotkeys β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
xmd/desktop/
βββ app.go # Main application logic
βββ main.go # Application entry point
βββ wails.json # Wails configuration
βββ frontend/ # Svelte frontend
β βββ src/
β β βββ components/ # UI components
β β βββ styles/ # Material Design 3 styles
β β βββ App.svelte # Root component
β βββ package.json # Frontend dependencies
βββ pkg/ # Go packages
β βββ terminal/ # Terminal session management
β βββ search/ # Search and indexing
β βββ ai/ # AI integration
βββ internal/ # Internal packages
β βββ hotkeys/ # Global hotkey handling
βββ docs/ # Documentation
XMD uses a comprehensive Makefile build system for all development tasks:
# Show all available commands
make help
# Development
make dev # Development server with hot reload
make dev-frontend # Frontend development server only
make dev-debug # Development server with debug logging
# Building
make build # Build complete application
make build-wails # Build using Wails build system
make build-all # Clean, test, and build everything
make build-release # Build optimized release version
# Cross-platform builds
make build-linux # Build for Linux
make build-darwin # Build for macOS
make build-windows # Build for Windows
make build-multiplatform # Build for all platforms
# Testing
make test # Run all tests
make test-go # Run Go tests only
make test-frontend # Run frontend tests only
make test-go-coverage # Run Go tests with coverage
# Code quality
make fmt # Format all code
make lint # Run all linters
make check # Format, lint, and test
# Dependencies
make deps # Install all dependencies
make deps-update # Update all dependencies
# Installation
make install # Install to system (/usr/local/bin)
make install-user # Install to user directory (~/.local/bin)
# Environment
make setup # Set up development environment
make doctor # Check environment health- Go: Follow standard Go conventions, use
gofmt - Svelte: TypeScript-first, reactive patterns
- CSS: Material Design 3 tokens, utility-first approach
- Git: Conventional commits with emoji prefixes
XMD uses Material Design 3 with customizable color schemes:
- Primary Colors: Purple-based palette (customizable)
- Tron Accents: Electric blue for terminal/AI elements
- Dark Theme: Optimized for developer workflows
- Typography: Roboto for UI, JetBrains Mono for terminal
Configuration is managed through:
- Wails Config:
wails.jsonfor build settings - Environment Variables: Runtime configuration
- CSS Variables: Theme customization in
styles/md3-tokens.css
We welcome contributions! Please see our Contributing Guide for details.
- AI Integration: Enhance OpenAI client and context awareness
- Platform Support: macOS and Windows compatibility
- Terminal Features: Advanced PTY features, session persistence
- UI/UX: Animation improvements, accessibility features
- Performance: Search optimization, memory management
This project is licensed under the MIT License - see the LICENSE file for details.
- Wails: Fantastic Go + Web framework
- Material Design 3: Google's design system
- Svelte: Reactive UI framework
- PTY Library: Terminal session handling
- Contributors: Thanks to all who have contributed to this project
- Project Repository: GitHub
- Bug Reports: Issues
- Feature Requests: Discussions
- Documentation: Wiki
Built with β€οΈ by developers, for developers
Making terminal navigation beautiful and efficient