local settings = require("lua.lib.settings") local systemd = require("lua.lib.systemd") local utils = require("lua.lib.utils") local bind = require("lua.lib.bind") require("lua.lib.globals") local M = {} local function start_swayosd() if settings["systemd"] then local unit = "swayosd.service" local source = CONFIG_HOME .. "hypr/systemd/" .. unit if systemd.ensure_user_unit(unit, source) then hl.exec_cmd("systemctl --user start swayosd") else hl.exec_cmd("swayosd-server") end else hl.exec_cmd("swayosd-server") end end local function stop_swayosd() if settings["systemd"] and utils.command_success("systemctl --user status swayosd") then hl.exec_cmd("systemctl --user stop swayosd") else hl.exec_cmd("pkill -9 swayosd-server") end end M.autostart = { start_swayosd, } M.autostop = { stop_swayosd, } local function swayosd_client_cmd(args) return hl.dsp.exec_cmd("swayosd-client " .. args) end M.binds = { { keys = "XF86MonBrightnessUp", dispatcher = function() swayosd_client_cmd("--brightness raise") end, dosc = "Increase brightness ", opts = { long_press = true, locked = true }, }, { keys = "XF86MonBrightnessDown", dispatcher = swayosd_client_cmd("--brightness lower"), desc = "Decrease brightness ", opts = { long_press = true, locked = true }, }, { keys = "XF86AudioRaiseVolume", dispatcher = swayosd_client_cmd("--output-volume raise"), desc = "Increase brightness ", opts = { long_press = true, locked = true }, }, { keys = "XF86AudioLowerVolume", dispatcher = swayosd_client_cmd("--output-volume lower"), desc = "Decrease brightness ", opts = { long_press = true, locked = true }, }, { keys = "XF86AudioMute", dispatcher = swayosd_client_cmd("--output-volume mute-toggle"), desc = "Toggle output mute", opts = { long_press = true, locked = true }, }, { keys = "XF86AudioMicMute", dispatcher = swayosd_client_cmd("--input-volume mute-toggle"), desc = "Toggle input mute", opts = { long_press = true, locked = true }, }, { keys = "XF86AudioPlay", dispatcher = swayosd_client_cmd("--playerctl play-pause"), desc = "Player play/pause", opts = { locked = true }, }, { keys = "XF86AudioPause", dispatcher = swayosd_client_cmd("--playerctl pause"), desc = "Player pause", opts = { locked = true }, }, { keys = "XF86AudioNext", dispatcher = swayosd_client_cmd("--playerctl next"), desc = "Player next", opts = { locked = true }, }, { keys = "XF86AudioPrev", dispatcher = swayosd_client_cmd("--playerctl prev"), desc = "Player previous", opts = { locked = true }, }, } return M