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
6.2 KiB
6.2 KiB
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)
# Coming soon - will be available via DMS plugin manager
Manual Installation
# 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
- Open launcher (Ctrl+Space)
- Type
?followed by search query - Examples:
? rust tutorials- Search with default engine? linux kernel- General search
- 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:
- Open Settings → Plugins → Web Search
- Scroll to "Custom Search Engines"
- 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 withmaterial:to pull a Material Symbol (e.g.,material:travel_explore), or prefix withunicode:to use emoji/Nerd Font glyphs (e.g.,unicode:) - URL: Search URL with
%splaceholder - Keywords: Comma-separated keywords for quick access
- ID: Unique identifier (e.g.,
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-openfor system default browser
Tips & Tricks
-
Keyword Shortcuts: Type engine keywords first for direct search
github rustinstead of? github rust
-
Combine Keywords: Use multiple keywords to narrow results
stackoverflow rust async await
-
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
