https://github.com/devnullvoid/dms-command-runner
Command Runner plugin for DankMaterialShell - Execute shell commands from the launcher
https://github.com/devnullvoid/dms-command-runner
Last synced: 30 days ago
JSON representation
Command Runner plugin for DankMaterialShell - Execute shell commands from the launcher
- Host: GitHub
- URL: https://github.com/devnullvoid/dms-command-runner
- Owner: devnullvoid
- License: mit
- Created: 2025-10-19T19:46:13.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-30T08:15:42.000Z (about 2 months ago)
- Last Synced: 2026-01-31T00:14:31.842Z (about 1 month ago)
- Language: QML
- Size: 143 KB
- Stars: 5
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Command Runner
A DankMaterialShell launcher plugin for executing shell commands directly from the launcher with history tracking and preset shortcuts.

## Features
- **Execute Commands** - Run any shell command in terminal or background
- **Command History** - Track and reuse recently executed commands
- **Common Shortcuts** - Quick access to frequently used commands (htop, btop, ncdu, etc.)
- **Terminal Support** - Auto-detect or configure your preferred terminal emulator
- **Background Execution** - Run commands silently without opening a terminal
- **Clipboard Copy** - Copy commands to clipboard before executing
- **Configurable Trigger** - Default `>` or set your own trigger
## Installation
### From Plugin Registry (Recommended)
```bash
# Coming soon - will be available via DMS plugin manager
```
### Manual Installation
```bash
# Copy plugin to DMS plugins directory
cp -r CommandRunner ~/.config/DankMaterialShell/plugins/
# Enable in DMS
# 1. Open Settings (Ctrl+,)
# 2. Go to Plugins tab
# 3. Click "Scan for Plugins"
# 4. Toggle "Command Runner" to enable
# 5. Configure your terminal emulator in plugin settings
```
## Configuration
**Important**: Configure your terminal before first use!
1. Open Settings → Plugins → Command Runner
2. Set **Terminal**: Your terminal emulator (e.g., `kitty`, `alacritty`, `foot`)
3. Set **Exec flag**: The flag for executing commands (e.g., `-e` for most terminals)
### Common Terminal Configurations
| Terminal | Command | Exec Flag |
|----------|---------|-----------|
| kitty | `kitty` | `-e` |
| alacritty | `alacritty` | `-e` |
| foot | `foot` | `-e` |
| wezterm | `wezterm` | `start` |
| gnome-terminal | `gnome-terminal` | `--` |
| konsole | `konsole` | `-e` |
| xterm | `xterm` | `-e` |
## Usage
### Execute Commands in Terminal
Note: Avoid triggers reserved by DMS or other plugins (e.g., `/` is used for file search).
1. Open launcher (Ctrl+Space)
2. Type `>` followed by command
3. Examples:
- `> htop` - System monitor
- `> btop` - Modern resource monitor
- `> ls -la` - List files with details
- `> journalctl -f` - View live system logs
4. Select "Run: command" and press Enter
### Execute Commands in Background
1. Type command as above
2. Select "Run in background: command"
3. Command executes silently without terminal window
### Copy Command to Clipboard
1. Type command
2. Select "Copy: command"
3. Command copied to clipboard for use elsewhere
### Use Command History
- Recent commands appear automatically in the list
- Click any historical command to re-execute
- History persists across sessions
### Common Command Shortcuts
Access pre-configured shortcuts without typing:
- `htop` - Interactive process viewer
- `btop` - Resource monitor
- `ncdu` - Disk usage analyzer
- `nmtui` - Network manager TUI
- `ranger` - File manager
- `neofetch` / `fastfetch` - System info
- And more!
## Settings
- **Trigger**: Set custom trigger (`>`, `$`, `!`, `run`, etc.) or disable for always-on
- Avoid triggers reserved by DMS or other plugins (e.g., `/` is used for file search).
- **Terminal Emulator**: Configure which terminal to use
- **Exec Flag**: Set the command execution flag for your terminal
- **Max History Items**: Configure history size (1-100 items)
- **Clear History**: Remove all stored commands
## Examples
### System Monitoring
```
> htop # Interactive process viewer
> btop # Modern resource monitor
> journalctl -f # Live system logs
> df -h # Disk usage
> free -h # Memory usage
```
### File Operations
```
> ls -la # List all files
> ncdu ~ # Analyze disk usage
> ranger # File manager
```
### Network
```
> nmtui # Network manager
> ip addr # Network interfaces
> ping 8.8.8.8 # Test connectivity
```
### Development
```
> vim config.txt # Edit file in vim
> git status # Check git status
> npm install # Install packages
```
## Requirements
- DankMaterialShell >= 0.1.0
- Terminal emulator (kitty, alacritty, foot, etc.)
- `wl-copy` (for clipboard support)
- Wayland compositor
## Compatibility
- **Compositors**: Niri and Hyprland
- **Distros**: Universal - works on any Linux distribution
- **Terminals**: Supports all major terminal emulators
## Technical Details
- **Type**: Launcher plugin
- **Trigger**: `>` (configurable)
- **Language**: QML (Qt Modeling Language)
- **Storage**: Command history stored in DMS settings
## Troubleshooting
### Commands not launching?
1. Verify terminal is configured in plugin settings
2. Check terminal is installed: `which kitty` (or your terminal)
3. Verify exec flag matches your terminal
### Terminal opens but command doesn't run?
- Ensure exec flag is correct for your terminal
- Most terminals use `-e`, but some (wezterm) use `start`
## Contributing
Found a bug or want to add features? Open an issue or submit a pull request!
## License
MIT License - See LICENSE file for details
## Author
Created for the DankMaterialShell community
## Links
- [DankMaterialShell](https://github.com/AvengeMedia/DankMaterialShell)
- [Plugin Registry](https://github.com/AvengeMedia/dms-plugin-registry)