https://github.com/devnullvoid/dms-web-search
Web Search plugin for DankMaterialShell - Search the web with 23+ built-in search engines
https://github.com/devnullvoid/dms-web-search
Last synced: 29 days ago
JSON representation
Web Search plugin for DankMaterialShell - Search the web with 23+ built-in search engines
- Host: GitHub
- URL: https://github.com/devnullvoid/dms-web-search
- Owner: devnullvoid
- License: mit
- Created: 2025-10-19T19:46:16.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-01-30T08:15:22.000Z (about 2 months ago)
- Last Synced: 2026-01-31T00:14:27.011Z (about 1 month ago)
- Language: QML
- Size: 313 KB
- Stars: 8
- Watchers: 1
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Web Search
A DankMaterialShell launcher plugin for searching the web with 23+ built-in search engines and support for custom search engines.

## Features
- **23+ Built-in Search Engines** - Google, DuckDuckGo, GitHub, Stack Overflow, and more
- **Custom Search Engines** - Add your own search engines with URL templates
- **Keyword-Based Selection** - Type keywords to use specific engines (e.g., `github rust`)
- **Configurable Default Engine** - Set your preferred search engine
- **One-Click Search** - Select and press Enter to open browser
- **Toast Notifications** - Visual feedback for every search
- **Configurable Trigger** - Default `@` or set your own trigger
## Installation
### From Plugin Registry (Recommended)
```bash
dms plugins install webSearch
```
### Manual Installation
```bash
# Copy plugin to DMS plugins directory
cp -r WebSearch ~/.config/DankMaterialShell/plugins/
# Enable in DMS
# 1. Open Settings (Ctrl+,)
# 2. Go to Plugins tab
# 3. Click "Scan for Plugins"
# 4. Toggle "Web Search" to enable
```
## Usage
### Basic Search
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 search query
3. Examples:
- `@ rust tutorials` - Search with default engine
- `@ linux kernel` - General search
4. Select engine and press Enter to open browser
### Engine-Specific Search
Use keywords to search specific engines directly:
- `@ github awesome-linux` - Search GitHub
- `@ youtube music video` - Search YouTube
- `@ wiki quantum physics` - Search Wikipedia
- `@ stackoverflow async rust` - Search Stack Overflow
## Built-in Search Engines
### General Search
- **Google** - Keywords: `google`, `search`
- **DuckDuckGo** - Keywords: `ddg`, `duckduckgo`, `privacy`
- **Brave Search** - Keywords: `brave`, `privacy`
- **Bing** - Keywords: `bing`, `microsoft`
- **Kagi** - Keywords: `kagi`, `privacy`
### Development
- **GitHub** - Keywords: `github`, `code`, `git`
- **Stack Overflow** - Keywords: `stackoverflow`, `stack`, `coding`
- **npm** - Keywords: `npm`, `node`, `javascript`
- **PyPI** - Keywords: `pypi`, `python`, `pip`
- **crates.io** - Keywords: `crates`, `rust`, `cargo`
- **MDN Web Docs** - Keywords: `mdn`, `mozilla`, `web`, `docs`
### Linux & Packages
- **Arch Linux Wiki** - Keywords: `arch`, `linux`, `packages`
- **AUR** - Keywords: `aur`, `arch`, `packages`
### Social & Media
- **YouTube** - Keywords: `youtube`, `video`, `yt`
- **Reddit** - Keywords: `reddit`
- **Twitter/X** - Keywords: `twitter`, `x`, `social`
- **LinkedIn** - Keywords: `linkedin`, `job`, `professional`
### Reference
- **Wikipedia** - Keywords: `wikipedia`, `wiki`
- **Google Translate** - Keywords: `translate`, `translation`
- **IMDb** - Keywords: `imdb`, `movies`, `tv`
### Shopping
- **Amazon** - Keywords: `amazon`, `shop`, `shopping`
- **eBay** - Keywords: `ebay`, `shop`, `auction`
### Utilities
- **Google Maps** - Keywords: `maps`, `location`, `directions`
- **Google Images** - Keywords: `images`, `pictures`, `photos`
## Custom Search Engines
Add your own search engines via Settings:
1. Open Settings → Plugins → Web Search
2. Scroll to "Custom Search Engines"
3. Fill in the form:
- **ID**: Unique identifier (e.g., `myengine`)
- **Name**: Display name (e.g., `My Search Engine`)
- **Icon**: Material icon name (e.g., `search`), prefix with `material:` to pull a Material Symbol (e.g., `material:travel_explore`), or prefix with `unicode:` to use emoji/Nerd Font glyphs (e.g., `unicode:`)
- **URL**: Search URL with `%s` placeholder
- **Keywords**: Comma-separated keywords for quick access
### Example Custom Engines
**Rust Documentation:**
```
ID: rustdoc
Name: Rust Docs
Icon: unicode:🦀
URL: https://doc.rust-lang.org/std/?search=%s
Keywords: rust,docs,documentation
```
**Arch Wiki:**
```
ID: archwiki
Name: Arch Wiki
Icon: material:menu_book
URL: https://wiki.archlinux.org/index.php?search=%s
Keywords: arch,wiki,documentation
```
**GitLab:**
```
ID: gitlab
Name: GitLab
Icon: material:code
URL: https://gitlab.com/search?search=%s
Keywords: gitlab,code
```
## Configuration
Access settings via DMS Settings → Plugins → Web Search:
- **Trigger**: Set custom trigger (`@`, `!`, `ws`, etc.) or disable for always-on mode
- Avoid triggers reserved by DMS or other plugins (e.g., `/` is used for file search).
- **Default Search Engine**: Choose your preferred engine (Google, DuckDuckGo, Brave, Bing)
- **Custom Search Engines**: Add/manage your own search engines
## Search Examples
### General Queries
```
@ rust programming # Search with default engine
@ how to install arch # General search
```
### Development
```
@ github awesome-linux # Search GitHub
@ stackoverflow async rust # Search Stack Overflow
@ npm react hooks # Search npm packages
@ pypi requests # Search Python packages
```
### Linux
```
@ arch firefox # Search Arch packages
@ aur brave-bin # Search AUR
@ wiki systemd # Search Wikipedia
```
### Media
```
@ youtube rust tutorial # Search YouTube
@ reddit linux gaming # Search Reddit
@ imdb inception # Search IMDb
```
## Requirements
- DankMaterialShell >= 0.1.0
- Web browser (default system browser via `xdg-open`)
- Wayland compositor
## Compatibility
- **Compositors**: Niri and Hyprland
- **Distros**: Universal - works on any Linux distribution
- **Browsers**: Works with any default browser
## Technical Details
- **Type**: Launcher plugin
- **Trigger**: `@` (configurable)
- **Language**: QML (Qt Modeling Language)
- **Browser Launch**: Uses `xdg-open` for system default browser
## Tips & Tricks
1. **Keyword Shortcuts**: Type engine keywords first for direct search
- `github rust` instead of `@ github rust`
2. **Combine Keywords**: Use multiple keywords to narrow results
- `stackoverflow rust async await`
3. **Custom Engines**: Add frequently-used sites for quick access
- Add your company's internal documentation
- Add specialized search engines for your workflow
## Contributing
Want to add more built-in search engines? 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)