diff --git a/README.md b/README.md index 46f9b7b..a717998 100644 --- a/README.md +++ b/README.md @@ -99,9 +99,9 @@ bindsym XF86MonBrightnessUp exec swayosd-client --brightness raise # Brightness lower bindsym XF86MonBrightnessDown exec swayosd-client --brightness lower -# Brightness raise with custom value -bindsym XF86MonBrightnessUp exec swayosd-client --brightness 10 -# Brightness lower with custom value +# Brightness raise with custom value('+' sign needed) +bindsym XF86MonBrightnessUp exec swayosd-client --brightness +10 +# Brightness lower with custom value('-' sign needed) bindsym XF86MonBrightnessDown exec swayosd-client --brightness -10 ``` diff --git a/src/brightness_backend/blight.rs b/src/brightness_backend/blight.rs index c1cc14f..9d3c1c8 100644 --- a/src/brightness_backend/blight.rs +++ b/src/brightness_backend/blight.rs @@ -16,6 +16,7 @@ impl BrightnessBackendConstructor for Blight { impl BrightnessBackend for Blight { fn get_current(&mut self) -> u32 { + self.device.reload(); self.device.current() } diff --git a/src/global_utils.rs b/src/global_utils.rs index 8552b11..0be55cb 100644 --- a/src/global_utils.rs +++ b/src/global_utils.rs @@ -68,9 +68,21 @@ pub(crate) fn handle_application_args( } "brightness" => { let value = child.value().str().unwrap_or(""); + + let coef: i32 = match value.get(..1) { + Some("+") => 1, + Some("-") => -1, + _ => 0, + }; + match (value, value.parse::()) { // Parse custom step values - (_, Ok(num)) => (ArgTypes::BrightnessSet, Some(num.abs().to_string())), + (_, Ok(num)) => match coef { + 1 => (ArgTypes::BrightnessRaise, Some(num.to_string())), + -1 => (ArgTypes::BrightnessLower, Some(num.abs().to_string())), + _ => (ArgTypes::BrightnessSet, Some(num.to_string())), + }, + ("raise", _) => (ArgTypes::BrightnessRaise, None), ("lower", _) => (ArgTypes::BrightnessLower, None), (e, _) => {