First time using WM and Waybar and I can’t for the life of me find a good OSD for volume and brightness, so I created one using Waybar and Niri keybind spawn function

  • ColdWater@lemmy.caOP
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    11 days ago

    basically every time I change volume or brightness Niri will call Waybar to spawn with its own config and style (it has to be a separate config and style or it will be a nightmare manage) to show up and use flock to stop Waybar from spamming/running again if it already running with the same spawn command here is my Niri keybind (if you wanna make your own you only have to edit file path to your waybar osd config and waybar style css and change “1%” for how much you want volume to change each time) :

    XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+ -l 1.0 && flock -n /tmp/waybar_vol.lock -c 'timeout 7s waybar -c ~/.config/waybar/configvolumeosd -s ~/.config/waybar/style2osd.css'"; }
    
    XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%- && flock -n /tmp/waybar_vol.lock -c 'timeout 7s waybar -c ~/.config/waybar/configvolumeosd -s ~/.config/waybar/style2osd.css'"; }
    
    XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && flock -n /tmp/waybar_mic.lock -c 'timeout 7s waybar -c ~/.config/waybar/configvolumeosd -s ~/.config/waybar/style2osd.css'"; }
    

    —this is my waybar config for osd (you can use any module you want):

    { “layer”: “overlay”, “position”: “bottom”, “margin-bottom”: 100, “height”: 33, “spacing” : 0, “exclusive”: false, “passthrough”: false, “width”: 200,

    “modules-left”: [

    ],

    “modules-center”: [

    ],

    “modules-right”: [

    	"custom/exit",
    	"custom/playerctlprevious",
    	"custom/playerctlplaypause",
    	"custom/playerctlnext",
    	"pulseaudio/slider",
    	"wireplumber",
    

    ],

    “pulseaudio/slider”: { “min”: 0, “max”: 100, “orientation”: “horizontal” },

    “wireplumber”: { “format”: “{icon} {volume}%”, “format-muted”: “”, “format-icons”: { “default”: [“”, “”, " "] }, “on-click”: “easyeffects”, },

    “mpris”: { “format”: “{player_icon} {dynamic}”, “format-paused”: “{status_icon} <i>{dynamic}</i>”, “player-icons”: { “default”: “▶”, “mpv”: “🎵” }, “status-icons”: { “paused”: “󰏤”, }, // “ignored-players”: [“firefox”] “interval”: 1, },

    "custom/playerctlplaypause": {
    	"format": "󰐎",
    	"on-click": "playerctl play-pause",
    	"tooltip": false,
    

    },

    "custom/playerctlnext": {
    	"format": "󰒭",
    	"on-click": "playerctl next",
    	"tooltip": false,
    

    },

    	"custom/playerctlprevious": {
    	"format": "󰒮",
    	"on-click": "playerctl previous",
    	"tooltip": false,
    

    },

    “custom/exit”: { “format”: “󰅗”, “on-click”: “sh /home/coldwater/.config/waybar/scripts/exit.sh”, },

    “custom/name”: { “format”: “Media Control”, },

    “mpris”: { “format”: “{player_icon} {artist} - {title}”, “format-paused”: “{player_icon} <i>{artist} - {title}</i>”, “max-length”: 40, },

    }