1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-07-01 18:51:04 +02:00

Merge pull request #373 from JakeStanger/feat/top-level-default

feat: use top-level config as fallback when using monitor-based config
This commit is contained in:
Jake Stanger 2023-12-11 21:36:47 +00:00 committed by GitHub
commit b784b7b0d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View file

@ -95,7 +95,11 @@ Create a map/object called `monitors` inside the top-level object.
Each of the map's keys should be an output name, Each of the map's keys should be an output name,
and each value should be an object containing the bar config. and each value should be an object containing the bar config.
To find your output names, run `wayland-info | grep wl_output -A1`. You can still define a top-level "default" config to use for unspecified monitors.
Alternatively, leave the top-level `start`, `center` and `end` keys null to hide bars on unspecified monitors.
> [!TIP]
> To find your output names, run `wayland-info | grep wl_output -A1`.
<details> <details>
<summary>JSON</summary> <summary>JSON</summary>

View file

@ -276,6 +276,9 @@ fn create_bars(app: &Application, display: &Display, config: &Config) -> Result<
let num_monitors = display.n_monitors(); let num_monitors = display.n_monitors();
let show_default_bar =
config.start.is_some() || config.center.is_some() || config.end.is_some();
let mut all_bars = vec![]; let mut all_bars = vec![];
for i in 0..num_monitors { for i in 0..num_monitors {
let monitor = display let monitor = display
@ -306,12 +309,13 @@ fn create_bars(app: &Application, display: &Display, config: &Config) -> Result<
.iter() .iter()
.map(|config| create_bar(app, &monitor, monitor_name.to_string(), config.clone())) .map(|config| create_bar(app, &monitor, monitor_name.to_string(), config.clone()))
.collect::<Result<_>>()?, .collect::<Result<_>>()?,
None => vec![create_bar( None if show_default_bar => vec![create_bar(
app, app,
&monitor, &monitor,
monitor_name.to_string(), monitor_name.to_string(),
config.clone(), config.clone(),
)?], )?],
None => vec![],
}; };
all_bars.append(&mut bars); all_bars.append(&mut bars);