diff --git a/.config/ags/modules/.configuration/user_options.js b/.config/ags/modules/.configuration/user_options.js index 5cb9a279..3ab37048 100644 --- a/.config/ags/modules/.configuration/user_options.js +++ b/.config/ags/modules/.configuration/user_options.js @@ -221,6 +221,11 @@ let configOptions = { 'cycleTab': "Ctrl+Tab", } }, + 'bar': { + // Array of bar styles for each monitor. + // Example for four monitors: ["normal", "focus", "normal", "nothing"] + 'monitors': ["normal"] + }, } // Override defaults with user's options diff --git a/.config/ags/variables.js b/.config/ags/variables.js index e1bc3f6e..c26f16e6 100644 --- a/.config/ags/variables.js +++ b/.config/ags/variables.js @@ -15,11 +15,23 @@ globalThis['openMusicControls'] = showMusicControls; globalThis['openColorScheme'] = showColorScheme; globalThis['mpris'] = Mpris; -// Mode switching -const numberOfMonitors = Gdk.Display.get_default()?.get_n_monitors() || 1; -const initialMonitorShellModes = Array.from({ length: numberOfMonitors }, () => 'normal'); -export const currentShellMode = Variable(initialMonitorShellModes, {}) // normal, focus +// load monitor shell modes from userOptions +const initialMonitorShellModes = () => { + const numberOfMonitors = Gdk.Display.get_default()?.get_n_monitors() || 1; + const monitorBarConfigs = []; + for (let i = 0; i < numberOfMonitors; i++) { + if (userOptions.bar.monitors[i]) { + monitorBarConfigs.push(userOptions.bar.monitors[i]) + } else { + monitorBarConfigs.push('normal') + } + } + return monitorBarConfigs; +} +export const currentShellMode = Variable(initialMonitorShellModes(), {}) // normal, focus + +// Mode switching const updateMonitorShellMode = (monitorShellModes, monitor, mode) => { const newValue = [...monitorShellModes.value]; newValue[monitor] = mode;