✨ refactor(launcher, emoji, websearch): simplify triggers, improve web search handling, and update emoji plugin configuration

This commit is contained in:
sankalp committed 2025-06-24 03:10:32 +05:45
1 parent f2090c1e53
commit d50ba1cee3
4 files changed
+14 -70

No files matched your search

+3 -42
View File
@@ -1,10 +1,6 @@
{
"launcher_config": {
"emoji": {
"icon": "emoji",
"description": "Emoji - Search and copy emojis"
},
";": {
"em": {
"icon": "emoji",
"description": "Emoji - Search and copy emojis"
},
@@ -42,45 +38,10 @@
"icon": "wallpapers",
"description": "Wallpapers - Set wallpapers, and tons of features"
},
"web": {
"icon": "world",
"description": "Web Search - Search the web using various search engines"
},
"?": {
"icon": "world",
"description": "Quick Web Search - Fast web search with question mark"
},
"google": {
"icon": "google",
"description": "Google Search - Search with Google"
},
"reddit": {
"icon": "reddit",
"description": "Reddit Search - Search discussions on Reddit"
},
"youtube": {
"icon": "youtube",
"description": "YouTube Search - Search videos on YouTube"
},
"github": {
"icon": "github",
"description": "GitHub Search - Search repositories on GitHub"
},
"duckduckgo": {
"icon": "duckduckgo",
"description": "DuckDuckGo Search - Privacy-focused search"
},
"stackoverflow": {
"icon": "stackoverflow",
"description": "Stack Overflow Search - Programming questions"
},
"wikipedia": {
"icon": "wikipedia",
"description": "Wikipedia Search - Search articles on Wikipedia"
},
"linkedin": {
"icon": "linkedin",
"description": "LinkedIn Search - Search professionals and jobs"
"description": "Quick Web Search - Fast web search with question mark",
"examples": ["? cats", "? google cats", "? youtube music"]
},
"kanban": {
"icon": "kanban",
+1 -1
View File
@@ -276,7 +276,7 @@ bind = {bind_vars.get("prefix_wallpapers", "SUPER")}, {bind_vars.get("suffix_wal
# Random Wallpaper
bind = {bind_vars.get("prefix_randwall", "SUPER")}, {bind_vars.get("suffix_randwall", "W")}, exec, $fabricSend "launcher.show_launcher('wall random', external=True)"
# Emoji Picker
bind = {bind_vars.get("prefix_emoji", "SUPER")}, {bind_vars.get("suffix_emoji", "E")}, exec, $fabricSend "launcher.show_launcher('emoji')"
bind = {bind_vars.get("prefix_emoji", "SUPER")}, {bind_vars.get("suffix_emoji", "E")}, exec, $fabricSend "launcher.show_launcher('em')"
# Power Menu
bind = {bind_vars.get("prefix_power", "SUPER")}, {bind_vars.get("suffix_power", "ESCAPE")}, exec, $fabricSend "launcher.show_launcher('power')"
# Toggle Caffeine
+1 -1
View File
@@ -31,7 +31,7 @@ class EmojiPlugin(PluginBase):
def initialize(self):
"""Initialize the emoji plugin."""
self.set_triggers(["emoji", ";"])
self.set_triggers(["em"])
self._load_emoji_data()
self._load_recent_emojis()
+9 -26
View File
@@ -75,12 +75,11 @@ class WebSearchPlugin(PluginBase):
def initialize(self):
"""Initialize the web search plugin."""
# Set up triggers for web search
triggers = ["web", "?"]
# Set up triggers for web search - only main triggers, not individual search engines
triggers = ["?"]
# Add search engine specific triggers
for engine in self.search_engines.keys():
triggers.extend([engine, f"{engine} "])
# Don't add individual search engine triggers to avoid cluttering trigger keywords
# Search engines can still be used within web search context (e.g., "web google cats")
self.set_triggers(triggers)
@@ -108,12 +107,11 @@ class WebSearchPlugin(PluginBase):
results.append(self._create_url_result(query_string))
return results
# Determine which search engine to use based on the active trigger
engine_name = self._get_engine_from_trigger()
# Parse query to check if it starts with a search engine name
engine_name, search_query = self._parse_engine_query(query_string)
if engine_name and engine_name in self.search_engines:
# Specific search engine triggered
search_query = query_string.strip()
# Specific search engine specified in query (e.g., "google cats")
if search_query:
# Search with specific engine
results.append(self._create_search_result(engine_name, search_query))
@@ -149,23 +147,7 @@ class WebSearchPlugin(PluginBase):
return "", query
def _get_engine_from_trigger(self) -> str:
"""Get the search engine name from the current trigger."""
if not self.current_trigger:
return ""
# Clean the trigger (remove spaces)
trigger_clean = self.current_trigger.strip().lower()
# Check if the trigger matches a search engine
if trigger_clean in self.search_engines:
return trigger_clean
# Handle general triggers
if trigger_clean in ["web", "?"]:
return "" # Use general search (multiple engines)
return ""
def _is_url(self, text: str) -> bool:
"""Check if the text is a URL."""
@@ -274,4 +256,5 @@ class WebSearchPlugin(PluginBase):
def _show_engine_help(self, engine_id: str):
"""Show help for a specific search engine."""
engine_info = self.search_engines.get(engine_id)
engine_info = self.search_engines.get(engine_id)
if engine_info:
print(f"Search engine: {engine_info['name']} - {engine_info['description']}")