Skip to content

Commit 34bba09

Browse files
committed
fix(macOS): Fix launch Franz on start override
1 parent 6d6878c commit 34bba09

File tree

3 files changed

+47
-49
lines changed

3 files changed

+47
-49
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"license": "Apache-2.0",
2828
"dependencies": {
2929
"@paulcbetts/system-idle-time": "^1.0.4",
30+
"auto-launch": "https://github.com/meetfranz/node-auto-launch.git",
3031
"babel-polyfill": "^6.23.0",
3132
"babel-runtime": "^6.23.0",
3233
"classnames": "^2.2.5",

src/stores/AppStore.js

Lines changed: 24 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,23 @@ import { remote, ipcRenderer, shell } from 'electron';
22
import { action, observable } from 'mobx';
33
import moment from 'moment';
44
import key from 'keymaster';
5-
import path from 'path';
5+
// import path from 'path';
66
import idleTimer from '@paulcbetts/system-idle-time';
7+
import AutoLaunch from 'auto-launch';
78

89
import Store from './lib/Store';
910
import Request from './lib/Request';
1011
import { CHECK_INTERVAL } from '../config';
11-
import { isMac, isLinux } from '../environment';
12+
import { isMac } from '../environment';
1213
import locales from '../i18n/translations';
1314
import { gaEvent } from '../lib/analytics';
1415
import Miner from '../lib/Miner';
1516

1617
const { app, powerMonitor } = remote;
1718
const defaultLocale = 'en-US';
19+
const autoLauncher = new AutoLaunch({
20+
name: 'Franz',
21+
});
1822

1923
export default class AppStore extends Store {
2024
updateStatusTypes = {
@@ -41,7 +45,7 @@ export default class AppStore extends Store {
4145
miner = null;
4246
@observable minerHashrate = 0.0;
4347

44-
constructor(...args: any) {
48+
constructor(...args) {
4549
super(...args);
4650

4751
// Register action handlers
@@ -157,28 +161,17 @@ export default class AppStore extends Store {
157161
ipcRenderer.send('updateAppIndicator', { indicator });
158162
}
159163

160-
@action _launchOnStartup({ enable, openInBackground }) {
164+
@action _launchOnStartup({ enable }) {
161165
this.autoLaunchOnStart = enable;
162166

163-
let settings = {
164-
openAtLogin: enable,
165-
};
166-
167-
// For Windows
168-
if (process.platform === 'win32') {
169-
settings = Object.assign({
170-
openAsHidden: openInBackground,
171-
path: app.getPath('exe'),
172-
args: [
173-
'--processStart', `"${path.basename(app.getPath('exe'))}"`,
174-
],
175-
}, settings);
176-
177-
if (openInBackground) {
178-
settings.args.push(
179-
'--process-start-args', '"--hidden"',
180-
);
167+
try {
168+
if (enable) {
169+
autoLauncher.enable();
170+
} else {
171+
autoLauncher.disable();
181172
}
173+
} catch (err) {
174+
console.warn(err);
182175
}
183176

184177
gaEvent('App', enable ? 'enable autostart' : 'disable autostart');
@@ -287,31 +280,19 @@ export default class AppStore extends Store {
287280
}
288281

289282
async _autoStart() {
290-
if (!isLinux) {
291-
this._checkAutoStart();
292-
293-
// we need to wait until the settings request is resolved
294-
await this.stores.settings.allSettingsRequest;
283+
this.autoLaunchOnStart = await this._checkAutoStart();
295284

296-
// We don't set autostart on first launch for macOS as disabling
297-
// the option is currently broken
298-
// https://github.com/meetfranz/franz/issues/17
299-
// https://github.com/electron/electron/issues/10880
300-
if (process.platform === 'darwin') return;
285+
// we need to wait until the settings request is resolved
286+
await this.stores.settings.allSettingsRequest;
301287

302-
if (!this.stores.settings.all.appStarts) {
303-
this.actions.app.launchOnStartup({
304-
enable: true,
305-
});
306-
}
288+
if (!this.stores.settings.all.appStarts) {
289+
this.actions.app.launchOnStartup({
290+
enable: true,
291+
});
307292
}
308293
}
309294

310-
_checkAutoStart() {
311-
const loginItem = app.getLoginItemSettings({
312-
path: app.getPath('exe'),
313-
});
314-
315-
this.autoLaunchOnStart = loginItem.openAtLogin;
295+
async _checkAutoStart() {
296+
return autoLauncher.isEnabled() || false;
316297
}
317298
}

yarn.lock

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ anymatch@^1.3.0:
151151
micromatch "^2.1.5"
152152
normalize-path "^2.0.0"
153153

154+
applescript@^1.0.0:
155+
version "1.0.0"
156+
resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317"
157+
154158
aproba@^1.0.3:
155159
version "1.1.2"
156160
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
@@ -319,6 +323,16 @@ asynckit@^0.4.0:
319323
version "0.4.0"
320324
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
321325

326+
"auto-launch@https://github.com/meetfranz/node-auto-launch.git":
327+
version "5.0.1"
328+
resolved "https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61"
329+
dependencies:
330+
applescript "^1.0.0"
331+
mkdirp "^0.5.1"
332+
path-is-absolute "^1.0.0"
333+
untildify "^3.0.2"
334+
winreg "1.2.2"
335+
322336
aws-sign2@~0.6.0:
323337
version "0.6.0"
324338
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
@@ -1998,12 +2012,6 @@ electron-spellchecker@^1.2.0:
19982012
rxjs-serial-subscription "^0.1.1"
19992013
spawn-rx "^2.0.7"
20002014

2001-
electron-squirrel-startup@^1.0.0:
2002-
version "1.0.0"
2003-
resolved "https://registry.yarnpkg.com/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz#19b4e55933fa0ef8f556784b9c660f772546a0b8"
2004-
dependencies:
2005-
debug "^2.2.0"
2006-
20072015
electron-to-chromium@^1.3.18:
20082016
version "1.3.20"
20092017
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5"
@@ -5949,6 +5957,10 @@ universalify@^0.1.0:
59495957
version "0.1.1"
59505958
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
59515959

5960+
untildify@^3.0.2:
5961+
version "3.0.2"
5962+
resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1"
5963+
59525964
unzip-response@^2.0.1:
59535965
version "2.0.1"
59545966
resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
@@ -6133,6 +6145,10 @@ window-size@^0.1.4:
61336145
version "0.1.4"
61346146
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
61356147

6148+
winreg@1.2.2:
6149+
version "1.2.2"
6150+
resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.2.tgz#8509afa3b71c5bbd110a6d7c6247ec67736c598f"
6151+
61366152
word-wrap@^1.0.3:
61376153
version "1.2.3"
61386154
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"

0 commit comments

Comments
 (0)