diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-02-09 23:35:27 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-02-09 23:35:27 +0100 |
| commit | e93dec56bbe5c1b94cd5b35ee07e3807c5ba0433 (patch) | |
| tree | 661cf1e89aa222b1a187da02e4dbbc1480c16ef4 /roles | |
| parent | bff72840e9c69b3e5bec7264c95b3ac245a70fc0 (diff) | |
Fix notification showing empty due to race condition
Co-Authored-By: Claude.ai
Diffstat (limited to 'roles')
| -rwxr-xr-x | roles/hyprland/files/scripts/brightness.sh | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/roles/hyprland/files/scripts/brightness.sh b/roles/hyprland/files/scripts/brightness.sh index f25495f6..1d935f28 100755 --- a/roles/hyprland/files/scripts/brightness.sh +++ b/roles/hyprland/files/scripts/brightness.sh @@ -17,13 +17,12 @@ set_brightness_ddcutil() { local display_serial="$1" local step="$2" local direction="$3" - flock -n /tmp/ddcutil-brightness.lock \ - ddcutil \ - --noconfig \ - --skip-ddc-checks \ - --sleep-multiplier=0.1 \ - --sn="$display_serial" \ - setvcp 10 $direction "$step" + ddcutil \ + --noconfig \ + --skip-ddc-checks \ + --sleep-multiplier=0.1 \ + --sn="$display_serial" \ + setvcp 10 $direction "$step" } set_brightness_brightnessctl() { @@ -34,14 +33,13 @@ set_brightness_brightnessctl() { get_brightness_ddcutil() { local display_serial="$1" - flock -n /tmp/ddcutil-brightness.lock \ - ddcutil \ - --noconfig \ - --skip-ddc-checks \ - --sleep-multiplier=0.1 \ - --sn="$display_serial" \ - --terse getvcp 10 \ - | awk '{print $4}' + ddcutil \ + --noconfig \ + --skip-ddc-checks \ + --sleep-multiplier=0.1 \ + --sn="$display_serial" \ + --terse getvcp 10 \ + | awk '{print $4}' } get_brightness_brightnessctl() { @@ -69,13 +67,17 @@ set_brightness() { if [ "$display_name" = "eDP-1" ]; then set_brightness_brightnessctl "$step" "$direction" + local value=$(get_brightness_brightnessctl) elif [ -n "$display_serial" ]; then + # Hold a single lock across both set and get to prevent races + exec 9>/tmp/ddcutil-brightness.lock + flock -n 9 || return set_brightness_ddcutil "$display_serial" "$step" "$direction" + local value=$(get_brightness_ddcutil "$display_serial") + exec 9>&- else return fi - - local value=$(get_current_brightness "$display_name" "$display_serial") notify "$display_serial" "$display_name" "$value" } |
