I don’t know if this is a bug or maybe a request for a new feature.
I want Mailspring to launch at startup and minimized (in the background) to the notification area in Windows 10. At the moment it always starts open in my screen. I then have to click ‘x’ to send it to the notification area.
I’ve tried ‘run minimized’ in the properties of the shortcut but that doesn’t work. I’ve also created a task in Task Scheduler to ‘\background’ but still it doesn’t stop it launching.
I may be missing something but it would be nice for it to go straight to the notification area at startup.
Thanks for a great email client!
Running: Mailspring 1.7.6 (latest version)
Windows 10 Home
Hey folks! It looks like the --background / -b option doesn’t help much on Windows… there doesn’t seem to be a way to pass command line flags to the applications listed in Task Manager > Startup, which is what you’d need to do. I wonder if you could create a cmd / bat file of some sort that just launched Mailspring and passed the --background flag? I’m not much of a Windows user unfortunately.
If anyone has a better solution here I’d be happy to try to incorporate it into the app. I think similar to your eMClient example, you could do:
cd "~\AppData\Local\Mailspring"
start mailspring.exe --background
This --background simply doesn’t work on Windows - when I execute above in the shell, it still didnt minimize.
This has nothing to do with Windows startup features (ofc there is a way to pass args to the startup entry on Windows)
The only way I found is to automate it via Autohotkey script:
This can be compiled to small exe and could be added to startup instead of mailspring itself. This can be easily replicated inside mailspring itself upon startup, although one may need to call WIN32 API directly.
Other way would be to actually start with hidden window (not minimized) and unhide it once user clicks tray icon.
I think, I figured out what is the issue. On Linux, when the Mailspring window is maximized, when Mailspring is closed, on the next start, the maximize() method is called in app-env.ts line 566. This will automatically show the Mailspring window even if it was started in the background correctly. This does not happen on MacOS, as this is only called when the OS type does not equal darwin.
Code in question – app-env.ts:
restoreWindowDimensions() {
let dimensions = this.savedState.windowDimensions;
if (!this.isValidDimensions(dimensions)) {
dimensions = this.getDefaultWindowDimensions();
}
this.setWindowDimensions(dimensions);
if (dimensions.maximized && process.platform !== 'darwin') {
this.maximize();
}
if (dimensions.fullScreen) {
this.setFullScreen(true);
}
}
I am going to provide a bugfix which will work on Linux and may also work on Windows machines: