Skip to content

Commit 3215587

Browse files
Initial release v1.0.0: Frameless UI, Multi-view, and resizable grids
1 parent 9f517ea commit 3215587

11 files changed

Lines changed: 6478 additions & 2 deletions

File tree

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules/
2+
dist/
3+
release/
4+
*.log
5+
.env

Assets/App logo.png

89.3 KB
Loading

PRD/Gemini-for-Windows.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Product Requirements Document (PRD): gemini-on-windows
2+
3+
## 1. Product Overview
4+
**Product Name:** gemini-on-windows
5+
**Description:** A production-grade Windows desktop application built as an Electron wrapper that encapsulates the Google Gemini web interface (`https://gemini.google.com/`).
6+
**Objective:** To provide a seamless, persistent, and highly accessible desktop experience for Gemini. It must function flawlessly as a background utility, handle edge cases gracefully, and be distributed as a standalone, portable `.exe` file.
7+
8+
## 2. Platform and Implementation
9+
10+
### 2.1. Technology Stack
11+
* **Framework:** Electron.
12+
* **Architecture:** Utilizes a custom frameless browser window with integrated webview/BrowserView components to render the Gemini interface.
13+
14+
### 2.2. Persistent Login
15+
* **Functionality:** The application must maintain session state and cookies across all restarts. Users should only need to sign in with their Google account once.
16+
* **Storage:** Authentication data must be securely stored within the application's user data directory (`AppData/Roaming/gemini-on-windows`) and must not clear upon exit.
17+
18+
### 2.3. Portable Executable & Updates
19+
* **Requirement:** The final build output must be a single, portable executable file (`.exe`).
20+
* **Auto-Updater Readiness:** The architecture must be built with `electron-updater` in mind to support future over-the-air updates.
21+
22+
### 2.4. Build Environment Isolation
23+
* **Requirement:** The entire development, dependency installation (`npm install`), and build process executed by the agent MUST occur within a strictly isolated local environment.
24+
* **Conflict Prevention:** The agent must NOT install any packages globally (`-g`). All Node dependencies must be confined to this project's local `node_modules` directory to prevent cache poisoning or conflicts with other local Electron builds.
25+
26+
### 2.5. Security Hardening
27+
* **Context Isolation:** All webviews must run with `contextIsolation: true` and `nodeIntegration: false`.
28+
* **Navigation Lockdown:** The Electron main process must intercept all `will-navigate` and `setWindowOpenHandler` events. Only URLs matching `*.google.com` or authentication flows should load internally; everything else must be pushed to the OS default browser.
29+
30+
## 3. Core Functional Requirements
31+
32+
### 3.1. Main Window
33+
* **Functionality:** Render the full Gemini web interface within a custom Electron window.
34+
* **Title Bar:** Custom themed title bar (see Section 5.3).
35+
36+
### 3.2. Multi-View Mode (Single, Dual, Quad)
37+
* **Functionality:** Provide a UI control in the title bar to switch between different viewing layouts.
38+
* **Layout Options:**
39+
* **Single View:** 1 full-screen webview instance.
40+
* **Dual View (Split):** 2 independent webview instances, splitting the window 50/50 vertically.
41+
* **Quad View:** 4 independent webview instances arranged in a 2x2 grid.
42+
* **Implementation:** All active webviews must share the same session cookie store, ensuring the user remains authenticated across all panes simultaneously.
43+
44+
## 4. Extended OS Integration & Usability
45+
46+
### 4.1. Global Keyboard Shortcut (Quick Summon)
47+
* **Functionality:** Register a system-wide global shortcut (`Ctrl + Alt + G`).
48+
* **Action:** Instantly brings the application window to the foreground and sets focus. Restores the app if minimized to the tray.
49+
* **Customization:** A settings option must allow the user to change or disable this shortcut.
50+
51+
### 4.2. Minimize to System Tray
52+
* **Functionality:** Provide an option to minimize to the Windows system tray rather than the taskbar.
53+
* **System Tray Icon:** Add an icon with a right-click context menu containing: `Open`, `Always on Top`, `Launch on Startup`, `Settings`, and `Exit`.
54+
55+
### 4.3. Always on Top & Run on Startup
56+
* **Always on Top:** A push-pin icon in the title bar to pin the app above other windows.
57+
* **Run on Startup:** A settings checkbox to add a registry key/startup shortcut so the portable `.exe` runs automatically when Windows boots.
58+
59+
### 4.4. Graceful Offline Handling
60+
* **Functionality:** Actively monitor `navigator.onLine` or Electron's `net.isOnline()`.
61+
* **Offline UI:** If the connection drops, hide the webview and display a branded HTML splash screen stating "Waiting for connection..." to prevent the default Chromium dinosaur error page. Auto-reload the webviews once the connection returns.
62+
63+
### 4.5. Hardware Acceleration Toggle
64+
* **Functionality:** Add a checkbox in the settings menu to "Disable Hardware Acceleration." When toggled, the app must prompt for a restart and append `app.disableHardwareAcceleration()` to the main process on the next boot.
65+
66+
## 5. UI/UX & Theming Requirements
67+
68+
### 5.1. Branding and Assets
69+
* **App Logo/Icon:** A specific `.png` file located in the working directory must be used as the application icon for the `.exe`, taskbar, and system tray.
70+
71+
### 5.2. Custom Accent Colors
72+
* **Source:** All UI highlights, focus states, title bar details, and the footer content must be derived directly from the provided brand logo `.png`.
73+
* **Specific Color Palette (Hex Codes):**
74+
* **Primary Accent (Magenta/Fuchsia):** Approx. `#D43F9B`.
75+
* **Secondary Accent (Dark Indigo/Violet):** Approx. `#43216E`.
76+
* **Tertiary Accent (Lavender/Light Purple):** Approx. `#D7BCFC`.
77+
* **Standard Text:** White (`#FFFFFF`).
78+
79+
### 5.3. Custom Title Bar & Footer
80+
* **Title Bar:** Frameless window implementation featuring the app logo, "gemini-on-windows," Settings gear, View Layout selector, Always on Top push-pin, and window controls.
81+
* **Footer:** A fixed status bar at the bottom displaying: `built with <3 by Gyanesh Samanta` (`#D7BCFC`).
82+
* **Hyperlinks:** Footer must contain links styled with `#D43F9B` that open in the default OS browser:
83+
* Newsletter: `https://www.linkedin.com/newsletters/gyanesh-on-product-6979386586404651008/`
84+
* LinkedIn: `https://www.linkedin.com/in/gyanesh-samanta/`
85+
* GitHub: `https://github.com/GyaneshSamanta`
86+
* Buy Me a Chai: `https://buymeachai.ezee.li/GyaneshOnProduct`
87+
88+
## 6. Performance and Optimization
89+
90+
### 6.1. System Footprint & Throttling
91+
* **Memory Management:** When the application is minimized to the system tray, implement logic to throttle webview background activity (e.g., lower frame rates, pause non-essential DOM rendering) to conserve RAM and battery, especially critical when utilizing Quad View.

README.md

Lines changed: 141 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,141 @@
1-
# Gemini-for-Windows
2-
It does what the title says.
1+
# Gemini-for-Windows Desktop
2+
3+
<p align="center">
4+
<img src="Assets/App logo.png" alt="Gemini-for-Windows Logo" width="128" height="128">
5+
</p>
6+
7+
<p align="center">
8+
<strong>A native Windows desktop app for Google Gemini</strong>
9+
</p>
10+
11+
<p align="center">
12+
<a href="#-quick-start">Quick Start</a> •
13+
<a href="#-features">Features</a> •
14+
<a href="#-for-developers">For Developers</a>
15+
</p>
16+
17+
<p align="center">
18+
<a href="https://github.com/GyaneshSamanta/Gemini-for-Windows/releases">
19+
<img src="https://img.shields.io/github/v/release/GyaneshSamanta/Gemini-for-Windows?style=for-the-badge&color=D43F9B" alt="Latest Release">
20+
</a>
21+
<a href="https://github.com/GyaneshSamanta/Gemini-for-Windows/releases">
22+
<img src="https://img.shields.io/github/downloads/GyaneshSamanta/Gemini-for-Windows/total?style=for-the-badge&logo=github&color=43216E" alt="GitHub downloads">
23+
</a>
24+
<a href="https://buymeachai.ezee.li/GyaneshOnProduct">
25+
<img src="https://buymeachai.ezee.li/assets/images/buymeachai-button.png" alt="Buy Me A Chai" height="28">
26+
</a>
27+
</p>
28+
29+
---
30+
31+
## 🚀 Quick Start
32+
33+
### Download & Run (No Installation Required!)
34+
35+
1. **Download** the latest release from the [**Releases Page**](../../releases).
36+
2. **Extract** the ZIP file to any folder.
37+
3. **Run** `gemini-on-windows.exe` inside the extracted folder.
38+
39+
That's it! No installation, no setup wizards. Just run and enjoy.
40+
41+
> **Tip:** Pin `gemini-on-windows.exe` to your taskbar for quick access!
42+
43+
---
44+
45+
## ✨ Key Features
46+
47+
This application transforms the Gemini web experience into a powerful, deeply integrated Windows utility:
48+
49+
- 🪟 **Multi-View Modes:** Why settle for one chat? Use the layout selector to work with Dual (2) or Quad (4) Gemini sessions simultaneously side-by-side in the same window, seamlessly sharing your login session.
50+
- 📐 **Resizable Grids:** Instantly resize any of the Dual and Quad layout panels by dynamically dragging the borders!
51+
-**Global Shortcut (Ctrl+Alt+G):** Found something interesting? Just press `Ctrl+Alt+G`, and Gemini will immediately jump to the foreground to answer your query.
52+
- 🖼️ **Frameless Custom UI:** Enjoy a sleek frameless window design with a custom title bar, beautiful gradients, and a glowing custom footer.
53+
- ⚙️ **Persistent Settings:** Keep the app minimized in the System Tray, configure it to run on Startup automatically, and pin it Always On Top over other windows!
54+
55+
---
56+
57+
## ✨ Full Feature List
58+
59+
| Feature | Description |
60+
|---------|-------------|
61+
| 🪟 **Multi-View** | Work on up to 4 different Gemini chats simultaneously |
62+
| 📐 **Draggable Panels** | Drag the borders in Multi-View to resize your workflow |
63+
|**Global Summon** | Hit `Ctrl+Alt+G` to Instantly summon the window anywhere |
64+
| 🖥️ **Native App** | Dedicated, frameless desktop app with custom window controls |
65+
| 🔐 **Persistent Login**| Stay signed in across sessions using secure AppData storage |
66+
| 📌 **Always on Top** | Pin the window above other applications |
67+
| 📥 **System Tray** | Minimize to tray to keep the app working quietly in the background |
68+
| 🚀 **Auto-Launch** | Configure the app to start when Windows boots |
69+
|**Support Me** | Support further development with **10 rs** via [Buy Me A Chai](https://buymeachai.ezee.li/GyaneshOnProduct) |
70+
71+
---
72+
73+
## 💻 For Developers
74+
75+
### Project Structure
76+
77+
```
78+
Gemini-for-Windows/
79+
├── Assets/App logo.png # App icon
80+
├── main.js # Electron main process
81+
├── preload.js # Secure IPC bridge
82+
├── renderer/ # UI frontend
83+
│ ├── renderer.js # Layout tracking and Webview manipulation
84+
│ ├── styles.css # Styling
85+
│ └── index.html # App container
86+
├── package.json # Dependencies & build scripts
87+
└── README.md
88+
```
89+
90+
### Tech Stack
91+
92+
- **[Electron](https://www.electronjs.org/)** - Windows application and `<webview>` framework.
93+
- **Vanilla JS/HTML/CSS** - Lightweight and lightning fast, without bloat.
94+
95+
### Build from Source
96+
97+
```bash
98+
# Clone the repository
99+
git clone https://github.com/GyaneshSamanta/Gemini-for-Windows.git
100+
cd Gemini-for-Windows
101+
102+
# Install dependencies
103+
npm install
104+
105+
# Run in development mode
106+
npm start
107+
108+
# Build portable app into /release folder
109+
npm run build
110+
```
111+
112+
The built app will be in `release/gemini-on-windows.exe`.
113+
114+
### Creating a GitHub Release
115+
116+
1. Run `npm run build`
117+
2. Compress the `release/gemini-on-windows.exe` file inside a ZIP
118+
3. Go to repo → **Releases****Draft a new release**
119+
4. Create tag (e.g., `v1.0.0`), upload ZIP, publish!
120+
121+
---
122+
123+
## 📜 License
124+
125+
GPL-3.0 License - see [LICENSE](LICENSE) for details.
126+
127+
---
128+
129+
<p align="center">
130+
Built with ♥ by <a href="https://www.linkedin.com/in/gyanesh-samanta/">Gyanesh Samanta</a>
131+
</p>
132+
133+
<p align="center">
134+
<a href="https://buymeachai.ezee.li/GyaneshOnProduct">
135+
<img src="https://buymeachai.ezee.li/assets/images/buymeachai-button.png" alt="Buy Me A Chai" width="200">
136+
</a>
137+
</p>
138+
139+
<p align="center">
140+
<em>Supporters can contribute as little as 10 rs! ☕</em>
141+
</p>

0 commit comments

Comments
 (0)