This commit is contained in:
Arkaprabha Chakraborty
2025-06-24 12:22:53 +05:30
parent 521c3155eb
commit e3000570f5
8 changed files with 70 additions and 8 deletions

View File

@@ -4,6 +4,7 @@ const { FuseV1Options, FuseVersion } = require('@electron/fuses');
module.exports = { module.exports = {
packagerConfig: { packagerConfig: {
asar: true, asar: true,
icon: 'src/assets/prodmon',
}, },
rebuildConfig: {}, rebuildConfig: {},
makers: [ makers: [

View File

@@ -1,6 +1,6 @@
{ {
"name": "monitor", "name": "prodmon",
"productName": "Monitor", "productName": "prodmon",
"version": "1.0.0", "version": "1.0.0",
"description": "Desktop monitoring application", "description": "Desktop monitoring application",
"main": "src/index.js", "main": "src/index.js",

1
src/assets/README.txt Normal file
View File

@@ -0,0 +1 @@
Place your app icon here as 'prodmon.png' (for development), and as 'prodmon.icns' (macOS) or 'prodmon.ico' (Windows) for packaging. The Electron app and packager will use this icon for branding.

BIN
src/assets/prodmon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@@ -78,6 +78,43 @@ body {
background-color: var(--text-secondary); background-color: var(--text-secondary);
} }
/* Model selector */
.model-selector {
margin-top: 1rem;
padding-top: 1rem;
border-top: 1px solid var(--border-color);
}
.model-selector label {
display: block;
font-size: 0.875rem;
font-weight: 500;
color: var(--text-secondary);
margin-bottom: 0.5rem;
}
.model-selector select {
width: 100%;
padding: 0.5rem;
border: 1px solid var(--border-color);
border-radius: 0.375rem;
background-color: var(--bg-primary);
font-size: 0.875rem;
color: var(--text-primary);
cursor: pointer;
transition: border-color 0.2s;
}
.model-selector select:hover {
border-color: var(--primary-color);
}
.model-selector select:focus {
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.1);
}
/* Stats and monitoring */ /* Stats and monitoring */
.monitoring-stats { .monitoring-stats {
display: flex; display: flex;

View File

@@ -2,18 +2,26 @@
<html> <html>
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<title>Screen Monitor Pro</title> <title>prodmon</title>
<link rel="stylesheet" href="index.css" /> <link rel="stylesheet" href="index.css" />
</head> </head>
<body> <body>
<div class="app-container"> <div class="app-container">
<div class="sidebar"> <div class="sidebar">
<div class="app-header"> <div class="app-header">
<h1>Screen Monitor Pro</h1> <h1>prodmon</h1>
<div class="status-indicator active"> <div class="status-indicator active">
<span class="status-dot"></span> <span class="status-dot"></span>
Monitoring Active Monitoring Active
</div> </div>
<div class="model-selector">
<label for="model-select">AI Model</label>
<select id="model-select">
<option value="gemini">Gemini</option>
<option value="gemma">Local Model</option>
</select>
</div>
</div> </div>
<div class="monitoring-stats"> <div class="monitoring-stats">
@@ -217,6 +225,13 @@
ipcRenderer.on("screenshot-error", (event, error) => { ipcRenderer.on("screenshot-error", (event, error) => {
showNotification(`Error: ${error}`, "error"); showNotification(`Error: ${error}`, "error");
}); });
// Add model selection handler
document.getElementById('model-select').addEventListener('change', (e) => {
const selectedModel = e.target.value;
ipcRenderer.send('model-changed', selectedModel);
showNotification(`AI model changed to ${selectedModel}`);
});
</script> </script>
</body> </body>
</html> </html>

View File

@@ -7,6 +7,9 @@ const { spawn, exec } = require("child_process");
const appName = require("../package.json").name; const appName = require("../package.json").name;
// Add model state
let currentModel = "gemini";
const screenshotsDir = path.join( const screenshotsDir = path.join(
os.homedir(), os.homedir(),
".cache", ".cache",
@@ -69,11 +72,18 @@ function createWindow() {
nodeIntegration: true, nodeIntegration: true,
contextIsolation: false, contextIsolation: false,
}, },
icon: path.join(__dirname, 'assets', 'prodmon.png'),
}); });
mainWindow.loadFile("src/index.html"); mainWindow.loadFile("src/index.html");
} }
// Add model selection handler
ipcMain.on("model-changed", (event, model) => {
currentModel = model;
console.log(`Model changed to: ${model}`);
});
async function takeScreenshot() { async function takeScreenshot() {
try { try {
const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
@@ -93,12 +103,10 @@ async function takeScreenshot() {
pythonScript, pythonScript,
"--single", "--single",
screenshotPath, screenshotPath,
"--prohibited",
prohibitedPath,
"--role", "--role",
"developer", "developer",
"--model", "--model",
"gemini", currentModel,
]); ]);
let outputData = ""; let outputData = "";

Submodule src/logic updated: 8f656db8d9...f6c548d7de