From 12b08e19cbd65988c51de40ffd06ce01418c2bb6 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:37 +0100 Subject: feat(desktop): xdg-desktop-portal pinning, wob OSD, mako DND toggle - xdg-desktop-portal: pin wlr for ScreenCast/Screenshot, gtk for the rest, so flatpak browsers (Meet, Slack, Discord) get a working screen-share path instead of whatever the portal frontend happens to pick first. - wob: small wayland overlay bar fed via a fifo. New vol-osd.sh / brightness-osd.sh wrappers replace the bare pactl/brightnessctl invocations in keybinds so adjusting volume or backlight flashes a bar at the bottom of the screen. wob.service owns the fifo lifecycle (mkfifo before, rm after). - mako: add a [mode=do-not-disturb] section that hides notifications while the mode is active, plus a Super+x n submode binding to toggle it. Notifications still accumulate in history; just no popups. --- dot_config/sway/executable_vol-osd.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 dot_config/sway/executable_vol-osd.sh (limited to 'dot_config/sway/executable_vol-osd.sh') diff --git a/dot_config/sway/executable_vol-osd.sh b/dot_config/sway/executable_vol-osd.sh new file mode 100644 index 0000000..46f35b7 --- /dev/null +++ b/dot_config/sway/executable_vol-osd.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Print 0–100 to wob's fifo to flash a volume bar overlay. +# Usage: vol-osd.sh up|down|mute (mute toggles) +set -eu + +fifo=${XDG_RUNTIME_DIR:-/tmp}/wob.sock +sink='@DEFAULT_SINK@' + +case "${1:-}" in + up) pactl set-sink-volume "$sink" +5% ;; + down) pactl set-sink-volume "$sink" -5% ;; + mute) pactl set-sink-mute "$sink" toggle ;; + *) echo "usage: $0 up|down|mute" >&2; exit 2 ;; +esac + +muted=$(pactl get-sink-mute "$sink" | awk '{print $2}') +if [ "$muted" = "yes" ]; then + printf '0\n' >"$fifo" +else + pactl get-sink-volume "$sink" | + awk '/Volume:/ { for (i=1;i<=NF;i++) if ($i ~ /%/) { gsub(/%/,"",$i); print $i; exit } }' \ + >"$fifo" +fi -- cgit v1.3.1