From 6eee9f4418b1cd498c116fdc42a548dd8956789f Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Mon, 8 Apr 2024 18:11:35 +0700 Subject: [PATCH] add ask gemini button in search --- .config/ags/modules/overview/searchbuttons.js | 15 ++++++++++++++- .config/ags/modules/overview/windowcontent.js | 7 +++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/.config/ags/modules/overview/searchbuttons.js b/.config/ags/modules/overview/searchbuttons.js index 480d2283d..86d2ffbc0 100644 --- a/.config/ags/modules/overview/searchbuttons.js +++ b/.config/ags/modules/overview/searchbuttons.js @@ -5,6 +5,7 @@ import * as Utils from 'resource:///com/github/Aylur/ags/utils.js'; const { execAsync, exec } = Utils; import { searchItem } from './searchitem.js'; import { execAndClose, couldBeMath, launchCustomCommand } from './miscfunctions.js'; +import GeminiService from '../../services/gemini.js'; export const DirectoryButton = ({ parentPath, name, type, icon }) => { const actionText = Widget.Revealer({ @@ -160,4 +161,16 @@ export const SearchButton = ({ text = '' }) => searchItem({ App.closeWindow('overview'); execAsync(['bash', '-c', `xdg-open '${userOptions.search.engineBaseUrl}${text} ${['', ...userOptions.search.excludedSites].join(' -site:')}' &`]).catch(print); }, -}); \ No newline at end of file +}); + +export const AiButton = ({ text }) => searchItem({ + materialIconName: 'chat_paste_go', + name: 'Ask Gemini', + actionName: 'Ask', + content: `${text}`, + onActivate: () => { + GeminiService.send(text); + App.closeWindow('overview'); + App.openWindow('sideleft'); + }, +}); diff --git a/.config/ags/modules/overview/windowcontent.js b/.config/ags/modules/overview/windowcontent.js index 675464d01..e4ef22e9e 100644 --- a/.config/ags/modules/overview/windowcontent.js +++ b/.config/ags/modules/overview/windowcontent.js @@ -8,9 +8,10 @@ const { execAsync, exec } = Utils; import { execAndClose, expandTilde, hasUnterminatedBackslash, couldBeMath, launchCustomCommand, ls } from './miscfunctions.js'; import { CalculationResultButton, CustomCommandButton, DirectoryButton, - DesktopEntryButton, ExecuteCommandButton, SearchButton + DesktopEntryButton, ExecuteCommandButton, SearchButton, AiButton } from './searchbuttons.js'; import { checkKeybind } from '../.widgetutils/keybind.js'; +import GeminiService from '../../services/gemini.js'; // Add math funcs const { abs, sin, cos, tan, cot, asin, acos, atan, acot } = Math; @@ -140,8 +141,9 @@ export const SearchAndWindows = () => { } else { + GeminiService.send(text); App.closeWindow('overview'); - execAsync(['bash', '-c', `xdg-open '${userOptions.search.engineBaseUrl}${text} ${['', ...userOptions.search.excludedSites].join(' -site:')}' &`]).catch(print); + App.openWindow('sideleft'); } }, onChange: (entry) => { // this is when you type @@ -200,6 +202,7 @@ export const SearchAndWindows = () => { } // Add fallback: search + resultsBox.add(AiButton({ text: entry.text })); resultsBox.add(SearchButton({ text: entry.text })); resultsBox.show_all(); },