@@ -112,16 +112,22 @@ function readSettings() {
112112 processSettings ( )
113113}
114114
115-
115+ let writeSettingsTimeout = false
116116function writeSettings ( newSettings = { } , processAfter = true ) {
117117 settings = Object . assign ( settings , newSettings )
118118
119- // Save new settings
120- try {
121- fs . writeFile ( settingsPath , JSON . stringify ( settings ) , ( e ) => { if ( e ) debug . error ( e ) } )
122- } catch ( e ) {
123- debug . error ( "Couldn't save settings." , settingsPath , e )
119+ if ( ! writeSettingsTimeout ) {
120+ writeSettingsTimeout = setTimeout ( ( ) => {
121+ // Save new settings
122+ try {
123+ fs . writeFile ( settingsPath , JSON . stringify ( settings ) , ( e ) => { if ( e ) debug . error ( e ) } )
124+ } catch ( e ) {
125+ debug . error ( "Couldn't save settings." , settingsPath , e )
126+ }
127+ writeSettingsTimeout = false
128+ } , 333 )
124129 }
130+
125131 if ( processAfter ) processSettings ( ) ;
126132}
127133
@@ -132,6 +138,7 @@ function processSettings() {
132138 }
133139 updateStartupOption ( ( settings . openAtLogin || false ) )
134140 applyOrder ( )
141+ applyRemaps ( )
135142 if ( settings . killWhenIdle && mainWindow && mainWindow . isAlwaysOnTop ( ) === false ) {
136143 mainWindow . close ( )
137144 }
@@ -148,6 +155,20 @@ function applyOrder() {
148155 }
149156}
150157
158+ function applyRemaps ( ) {
159+ for ( let monitor of monitors ) {
160+ if ( settings . remaps ) {
161+ for ( let remapName in settings . remaps ) {
162+ if ( remapName == monitor . name ) {
163+ let remap = settings . remaps [ remapName ]
164+ monitor . min = remap . min
165+ monitor . max = remap . max
166+ }
167+ }
168+ }
169+ }
170+ }
171+
151172function determineTheme ( themeName ) {
152173 theme = themeName . toLowerCase ( )
153174 if ( theme === "dark" || theme === "light" ) return theme ;
@@ -463,18 +484,7 @@ refreshNames = (callback = () => { debug.log("Done refreshing names") }) => {
463484 }
464485 }
465486 }
466- // Apply remaps
467- for ( let monitor of monitors ) {
468- if ( settings . remaps ) {
469- for ( let remapName in settings . remaps ) {
470- if ( remapName == monitor . name ) {
471- let remap = settings . remaps [ remapName ]
472- monitor . min = remap . min
473- monitor . max = remap . max
474- }
475- }
476- }
477- }
487+ applyRemaps ( )
478488 callback ( out )
479489 } else {
480490 callback ( [ ] )
0 commit comments