Skip to content

Commit 006f9ba

Browse files
committed
v1.0.3: Add Start Menu shortcut, fix copyright, improve installer documentation
1 parent 0fca145 commit 006f9ba

5 files changed

Lines changed: 64 additions & 8 deletions

File tree

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div align="center">
44

5-
![Version](https://img.shields.io/badge/version-1.0.2-blue.svg)
5+
![Version](https://img.shields.io/badge/version-1.0.3-blue.svg)
66
![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey.svg)
77
![License](https://img.shields.io/badge/license-MIT-green.svg)
88

@@ -58,7 +58,12 @@ Simply download the installer for your platform and run it:
5858

5959
**That's it!** No coding knowledge needed. Download, install, and start creating amazing videos with your teleprompter.
6060

61-
> **Note for Windows:** The installer may look minimal/different - that's normal! Just follow the prompts to install.
61+
> **📝 Note for Windows Users:**
62+
> - The installer uses **Squirrel** (same technology as Slack, Discord, GitHub Desktop, and Microsoft Teams)
63+
> - It has a **minimal, fast installer** - don't be surprised if it looks different from traditional Windows installers!
64+
> - Installation is quick and automatic
65+
> - After installation, find "Script Scroller" in your Start Menu
66+
> - The app auto-updates seamlessly in the background
6267
6368
---
6469

forge.config.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ module.exports = {
33
asar: true,
44
name: 'Script Scroller',
55
executableName: 'script-scroller',
6-
icon: './icon' // Forge will automatically append .ico, .icns, or .png
6+
icon: './icon', // Forge will automatically append .ico, .icns, or .png
7+
appCopyright: 'Copyright © 2025 byScript Scroller'
78
},
89
rebuildConfig: {},
910
makers: [
@@ -12,7 +13,10 @@ module.exports = {
1213
config: {
1314
name: 'script_scroller',
1415
setupIcon: './icon.ico',
15-
iconUrl: 'https://raw.githubusercontent.com/SQLtattoo/scriptScroller/main/icon.ico'
16+
iconUrl: 'https://raw.githubusercontent.com/SQLtattoo/scriptScroller/main/icon.ico',
17+
loadingGif: undefined,
18+
setupExe: 'Script.Scroller-Setup.exe',
19+
noMsi: true
1620
}
1721
},
1822
{

main.js

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,54 @@
1-
const { app, BrowserWindow, ipcMain, Menu } = require('electron');
1+
const { app, BrowserWindow, ipcMain, Menu, shell } = require('electron');
22
const path = require('path');
33
const fs = require('fs');
44

5+
// Handle Windows Squirrel events manually for Start Menu shortcut
6+
if (process.platform === 'win32') {
7+
const squirrelCommand = process.argv[1];
8+
9+
if (squirrelCommand === '--squirrel-install' || squirrelCommand === '--squirrel-updated') {
10+
// Create Start Menu shortcut
11+
const updateDotExe = path.resolve(path.dirname(process.execPath), '..', 'update.exe');
12+
const exeName = path.basename(process.execPath);
13+
const startMenuDir = path.join(process.env.APPDATA, 'Microsoft', 'Windows', 'Start Menu', 'Programs');
14+
const shortcutPath = path.join(startMenuDir, 'Script Scroller.lnk');
15+
16+
shell.writeShortcutLink(shortcutPath, 'create', {
17+
target: updateDotExe,
18+
args: '--processStart "' + exeName + '"',
19+
description: 'Beautiful transparent teleprompter for video creators',
20+
icon: process.execPath,
21+
iconIndex: 0,
22+
appUserModelId: 'com.scriptscroller.app'
23+
});
24+
25+
app.quit();
26+
return;
27+
}
28+
29+
if (squirrelCommand === '--squirrel-uninstall') {
30+
// Remove Start Menu shortcut
31+
const startMenuDir = path.join(process.env.APPDATA, 'Microsoft', 'Windows', 'Start Menu', 'Programs');
32+
const shortcutPath = path.join(startMenuDir, 'Script Scroller.lnk');
33+
34+
try {
35+
if (fs.existsSync(shortcutPath)) {
36+
fs.unlinkSync(shortcutPath);
37+
}
38+
} catch (err) {
39+
console.error('Error removing shortcut:', err);
40+
}
41+
42+
app.quit();
43+
return;
44+
}
45+
46+
if (squirrelCommand === '--squirrel-obsolete' || squirrelCommand === '--squirrel-firstrun') {
47+
app.quit();
48+
return;
49+
}
50+
}
51+
552
let mainWindow;
653
const stateFile = path.join(app.getPath('userData'), 'window-state.json');
754

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "script-scroller",
33
"productName": "Script Scroller",
4-
"version": "1.0.2",
4+
"version": "1.0.3",
55
"description": "Beautiful transparent teleprompter app for video creators",
66
"main": "main.js",
77
"scripts": {

0 commit comments

Comments
 (0)