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 = {
packagerConfig: {
asar: true,
icon: 'src/assets/prodmon',
},
rebuildConfig: {},
makers: [

View File

@@ -1,6 +1,6 @@
{
"name": "monitor",
"productName": "Monitor",
"name": "prodmon",
"productName": "prodmon",
"version": "1.0.0",
"description": "Desktop monitoring application",
"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);
}
/* 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 */
.monitoring-stats {
display: flex;

View File

@@ -2,18 +2,26 @@
<html>
<head>
<meta charset="UTF-8" />
<title>Screen Monitor Pro</title>
<title>prodmon</title>
<link rel="stylesheet" href="index.css" />
</head>
<body>
<div class="app-container">
<div class="sidebar">
<div class="app-header">
<h1>Screen Monitor Pro</h1>
<h1>prodmon</h1>
<div class="status-indicator active">
<span class="status-dot"></span>
Monitoring Active
</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 class="monitoring-stats">
@@ -217,6 +225,13 @@
ipcRenderer.on("screenshot-error", (event, 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>
</body>
</html>

View File

@@ -7,6 +7,9 @@ const { spawn, exec } = require("child_process");
const appName = require("../package.json").name;
// Add model state
let currentModel = "gemini";
const screenshotsDir = path.join(
os.homedir(),
".cache",
@@ -69,11 +72,18 @@ function createWindow() {
nodeIntegration: true,
contextIsolation: false,
},
icon: path.join(__dirname, 'assets', 'prodmon.png'),
});
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() {
try {
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
@@ -93,12 +103,10 @@ async function takeScreenshot() {
pythonScript,
"--single",
screenshotPath,
"--prohibited",
prohibitedPath,
"--role",
"developer",
"--model",
"gemini",
currentModel,
]);
let outputData = "";

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