oxwm

https://git.tonybtw.com/oxwm.git git://git.tonybtw.com/oxwm.git

updated justfile for easier Xephyr testing, added default value for battery.

Commit
0415a482935dce9bd1553d8ecba82202819d7a17
Parent
9dfc76d
Author
tonybtw <tonybtw@tonybtw.com>
Date
2025-12-14 04:57:46

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),
                 )?;
             }