From d50ba1cee37eedd2075a99a631a986c0faba795e Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Tue, 24 Jun 2025 03:10:32 +0545 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20refactor(launcher,=20emoji,=20webse?= =?UTF-8?q?arch):=20simplify=20triggers,=20improve=20web=20search=20handli?= =?UTF-8?q?ng,=20and=20update=20emoji=20plugin=20configuration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/json/launcher.json | 45 ++------------------------- config/settings/utils.py | 2 +- modules/launcher/plugins/emoji.py | 2 +- modules/launcher/plugins/websearch.py | 35 ++++++--------------- 4 files changed, 14 insertions(+), 70 deletions(-) diff --git a/config/json/launcher.json b/config/json/launcher.json index c685035..4d63a17 100644 --- a/config/json/launcher.json +++ b/config/json/launcher.json @@ -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", diff --git a/config/settings/utils.py b/config/settings/utils.py index 80283fb..ae53239 100644 --- a/config/settings/utils.py +++ b/config/settings/utils.py @@ -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 diff --git a/modules/launcher/plugins/emoji.py b/modules/launcher/plugins/emoji.py index ad2323a..956f5b8 100644 --- a/modules/launcher/plugins/emoji.py +++ b/modules/launcher/plugins/emoji.py @@ -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() diff --git a/modules/launcher/plugins/websearch.py b/modules/launcher/plugins/websearch.py index edbf54b..d8b8dd2 100644 --- a/modules/launcher/plugins/websearch.py +++ b/modules/launcher/plugins/websearch.py @@ -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']}")