Add .config/DankMaterialShell/plugin_settings.json Add .config/DankMaterialShell/plugins/calculator/CalculatorLauncher.qml Add .config/DankMaterialShell/plugins/calculator/CalculatorSettings.qml Add .config/DankMaterialShell/plugins/calculator/README.md Add .config/DankMaterialShell/plugins/calculator/calculator.js Add .config/DankMaterialShell/plugins/calculator/.git/HEAD Add .config/DankMaterialShell/plugins/calculator/.git/config Add .config/DankMaterialShell/plugins/calculator/.git/index Add .config/DankMaterialShell/plugins/calculator/.git/objects/info/.keep Add .config/DankMaterialShell/plugins/calculator/.git/objects/pack/pack-67f644835e660794f65c9273e46788b0c3da57cf.idx Add .config/DankMaterialShell/plugins/calculator/.git/objects/pack/pack-67f644835e660794f65c9273e46788b0c3da57cf.rev Add .config/DankMaterialShell/plugins/calculator/.git/objects/pack/pack-67f644835e660794f65c9273e46788b0c3da57cf.pack Add .config/DankMaterialShell/plugins/calculator/.git/refs/heads/main Add .config/DankMaterialShell/plugins/calculator/.git/refs/remotes/origin/main Add .config/DankMaterialShell/plugins/calculator/.git/refs/remotes/origin/qalc Add .config/DankMaterialShell/plugins/calculator/.git/refs/tags/.keep Add .config/DankMaterialShell/plugins/calculator/plugin.json Add .config/DankMaterialShell/plugins/calculator/screenshot.png Add .config/DankMaterialShell/plugins/calculator/test_precision.js Add .config/DankMaterialShell/plugins/calculator/test_single.js Add .config/DankMaterialShell/plugins/commandRunner/CommandRunner.qml Add .config/DankMaterialShell/plugins/commandRunner/CommandRunnerSettings.qml Add .config/DankMaterialShell/plugins/commandRunner/LICENSE Add .config/DankMaterialShell/plugins/commandRunner/README.md Add .config/DankMaterialShell/plugins/commandRunner/.git/HEAD Add .config/DankMaterialShell/plugins/commandRunner/.git/config Add .config/DankMaterialShell/plugins/commandRunner/.git/index Add .config/DankMaterialShell/plugins/commandRunner/.git/objects/info/.keep Add .config/DankMaterialShell/plugins/commandRunner/.git/objects/pack/pack-5a720f795fd2994ef506cd867d86ca7df8a25a31.idx Add .config/DankMaterialShell/plugins/commandRunner/.git/objects/pack/pack-5a720f795fd2994ef506cd867d86ca7df8a25a31.rev Add .config/DankMaterialShell/plugins/commandRunner/.git/objects/pack/pack-5a720f795fd2994ef506cd867d86ca7df8a25a31.pack Add .config/DankMaterialShell/plugins/commandRunner/.git/refs/heads/main Add .config/DankMaterialShell/plugins/commandRunner/.git/refs/remotes/origin/main Add .config/DankMaterialShell/plugins/commandRunner/.git/refs/tags/.keep Add .config/DankMaterialShell/plugins/commandRunner/plugin.json Add .config/DankMaterialShell/plugins/commandRunner/screenshot.png Add .config/DankMaterialShell/plugins/dankActions.meta Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/DankActionsSettings.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/DankActionsWidget.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/plugin.json Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankBatteryAlerts/DankBatteryAlerts.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankBatteryAlerts/DankBatteryAlertsSettings.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankBatteryAlerts/plugin.json Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/DankHooks.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/DankHooksSettings.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/README.md Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/plugin.json Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankPomodoroTimer/DankPomodoroSettings.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankPomodoroTimer/DankPomodoroWidget.qml Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankPomodoroTimer/plugin.json Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/LICENSE Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/README.md Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/HEAD Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/config Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/index Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/info/.keep Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-3221a15c022ef4a7bb6bf2c47e40068b66b3588b.idx Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-3221a15c022ef4a7bb6bf2c47e40068b66b3588b.rev Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-3221a15c022ef4a7bb6bf2c47e40068b66b3588b.pack Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/heads/master Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/remotes/origin/master Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/tags/.keep Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.gitignore Add .config/DankMaterialShell/plugins/emojiLauncher/EmojiLauncher.qml Add .config/DankMaterialShell/plugins/emojiLauncher/EmojiLauncherSettings.qml Add .config/DankMaterialShell/plugins/emojiLauncher/LICENSE Add .config/DankMaterialShell/plugins/emojiLauncher/README.md Add .config/DankMaterialShell/plugins/emojiLauncher/catalog.js Add .config/DankMaterialShell/plugins/emojiLauncher/data/emojis.txt Add .config/DankMaterialShell/plugins/emojiLauncher/data/math.txt Add .config/DankMaterialShell/plugins/emojiLauncher/data/nerdfont.txt Add .config/DankMaterialShell/plugins/emojiLauncher/.git/HEAD Add .config/DankMaterialShell/plugins/emojiLauncher/.git/config Add .config/DankMaterialShell/plugins/emojiLauncher/.git/index Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/info/.keep Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/pack/pack-e04a5b1ea381dc3a792b8bf08cf70e735b195c0d.idx Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/pack/pack-e04a5b1ea381dc3a792b8bf08cf70e735b195c0d.rev Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/pack/pack-e04a5b1ea381dc3a792b8bf08cf70e735b195c0d.pack Add .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/heads/main Add .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/remotes/origin/main Add .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/tags/.keep Add .config/DankMaterialShell/plugins/emojiLauncher/plugin.json Add .config/DankMaterialShell/plugins/emojiLauncher/screenshot.png Add .config/DankMaterialShell/plugins/emojiLauncher/scripts/generate_catalog.py Add .config/DankMaterialShell/plugins/dankActions Add .config/DankMaterialShell/plugins/webSearch/LICENSE Add .config/DankMaterialShell/plugins/webSearch/README.md Add .config/DankMaterialShell/plugins/webSearch/WebSearch.qml Add .config/DankMaterialShell/plugins/webSearch/WebSearchSettings.qml Add .config/DankMaterialShell/plugins/webSearch/.git/HEAD Add .config/DankMaterialShell/plugins/webSearch/.git/config Add .config/DankMaterialShell/plugins/webSearch/.git/index Add .config/DankMaterialShell/plugins/webSearch/.git/objects/info/.keep Add .config/DankMaterialShell/plugins/webSearch/.git/objects/pack/pack-6a60c736f418e5b4b1f0505f66c1e2a371d46fed.idx Add .config/DankMaterialShell/plugins/webSearch/.git/objects/pack/pack-6a60c736f418e5b4b1f0505f66c1e2a371d46fed.rev Add .config/DankMaterialShell/plugins/webSearch/.git/objects/pack/pack-6a60c736f418e5b4b1f0505f66c1e2a371d46fed.pack Add .config/DankMaterialShell/plugins/webSearch/.git/refs/heads/main Add .config/DankMaterialShell/plugins/webSearch/.git/refs/remotes/origin/main Add .config/DankMaterialShell/plugins/webSearch/.git/refs/tags/.keep Add .config/DankMaterialShell/plugins/webSearch/plugin.json Add .config/DankMaterialShell/plugins/webSearch/screenshot.png Add .config/DankMaterialShell/settings.json
237 lines
6.2 KiB
Markdown
237 lines
6.2 KiB
Markdown
# 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
|
|
# Coming soon - will be available via DMS plugin manager
|
|
```
|
|
|
|
### 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
|
|
|
|
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`
|
|
|
|
### 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 (`?`, `/`, `/search`, etc.) or disable for always-on mode
|
|
- **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)
|