✨ refactor(launcher, emoji, websearch): simplify triggers, improve web search handling, and update emoji plugin configuration
This commit is contained in:
4 files changed
+14
-70
No files matched your search
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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']}")
|
||||
Reference in new issue
Block a user