Diff
diff --git a/justfile b/justfile
index 0cbb0a3..f492b61 100644
--- a/justfile
+++ b/justfile
@@ -23,8 +23,8 @@ test-clean:
test:
pkill Xephyr || true
- Xephyr -screen 1280x800 :1 & sleep 1
- DISPLAY=:1 cargo run --release -- --config resources/test-config.lua
+ Xephyr -screen 1280x800 :2 & sleep 1
+ DISPLAY=:2 cargo run --release -- --config resources/test-config.lua
test-multimon:
pkill Xephyr || true
diff --git a/resources/test-config.lua b/resources/test-config.lua
index 0ff7764..c56bbf7 100644
--- a/resources/test-config.lua
+++ b/resources/test-config.lua
@@ -154,6 +154,7 @@ oxwm.bar.set_blocks({
interval = 30,
color = colors.green,
underline = true,
+ battery_name = "BAT1"
}),
-- oxwm.bar.block.battery({
-- charging = " Bat: {}%",
diff --git a/src/bar/blocks/battery.rs b/src/bar/blocks/battery.rs
index 0ee67bb..ee647d8 100644
--- a/src/bar/blocks/battery.rs
+++ b/src/bar/blocks/battery.rs
@@ -19,6 +19,7 @@ impl Battery {
format_full: &str,
interval_secs: u64,
color: u32,
+ battery_name: Option<String>,
) -> Self {
Self {
format_charging: format_charging.to_string(),
@@ -26,7 +27,10 @@ impl Battery {
format_full: format_full.to_string(),
interval: Duration::from_secs(interval_secs),
color,
- battery_path: "/sys/class/power_supply/BAT0".to_string(),
+ battery_path: format!(
+ "/sys/class/power_supply/{}",
+ battery_name.unwrap_or_else(|| "BAT0".to_string())
+ ),
}
}
diff --git a/src/bar/blocks/mod.rs b/src/bar/blocks/mod.rs
index b941529..5c090f2 100644
--- a/src/bar/blocks/mod.rs
+++ b/src/bar/blocks/mod.rs
@@ -34,6 +34,7 @@ pub enum BlockCommand {
format_charging: String,
format_discharging: String,
format_full: String,
+ battery_name: Option<String>,
},
Ram,
Static(String),
@@ -58,12 +59,14 @@ impl BlockConfig {
format_charging,
format_discharging,
format_full,
+ battery_name,
} => Box::new(Battery::new(
format_charging,
format_discharging,
format_full,
self.interval_secs,
self.color,
+ battery_name.clone(),
)),
BlockCommand::Ram => Box::new(Ram::new(&self.format, self.interval_secs, self.color)),
BlockCommand::Static(text) => Box::new(StaticBlock::new(
diff --git a/src/config/lua_api.rs b/src/config/lua_api.rs
index cae6189..bfd6b17 100644
--- a/src/config/lua_api.rs
+++ b/src/config/lua_api.rs
@@ -451,11 +451,13 @@ fn register_bar_module(
let full: String = config.get("full").map_err(|_| {
mlua::Error::RuntimeError("oxwm.bar.block.battery: 'full' field is required".into())
})?;
+ let battery_name: Option<String> = config.get("battery_name").unwrap_or(None);
let formats_table = lua.create_table()?;
formats_table.set("charging", charging)?;
formats_table.set("discharging", discharging)?;
formats_table.set("full", full)?;
+ formats_table.set("battery_name", battery_name)?;
create_block_config(lua, config, "Battery", Some(Value::Table(formats_table)))
})?;
@@ -594,11 +596,13 @@ fn register_bar_module(
let charging: String = formats.get("charging")?;
let discharging: String = formats.get("discharging")?;
let full: String = formats.get("full")?;
+ let battery_name: Option<String> = formats.get("battery_name").unwrap_or(None);
BlockCommand::Battery {
format_charging: charging,
format_discharging: discharging,
format_full: full,
+ battery_name,
}
}
_ => {
diff --git a/src/window_manager.rs b/src/window_manager.rs
index 294deda..adaebe3 100644
--- a/src/window_manager.rs
+++ b/src/window_manager.rs
@@ -1455,8 +1455,7 @@ impl WindowManager {
for window in &windows {
self.connection.configure_window(
*window,
- &x11rb::protocol::xproto::ConfigureWindowAux::new()
- .border_width(0),
+ &x11rb::protocol::xproto::ConfigureWindowAux::new().border_width(0),
)?;
}