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 = { function() bind.key( "XF86MonBrightnessUp", swayosd_client_cmd("--brightness raise"), "Increase brightness ", { long_press = true, locked = true } ) bind.key( "XF86MonBrightnessDown", swayosd_client_cmd("--brightness lower"), "Decrease brightness ", { long_press = true, locked = true } ) bind.key( "XF86AudioRaiseVolume", swayosd_client_cmd("--output-volume raise"), "Increase brightness ", { long_press = true, locked = true } ) bind.key( "XF86AudioLowerVolume", swayosd_client_cmd("--output-volume lower"), "Decrease brightness ", { long_press = true, locked = true } ) bind.key( "XF86AudioMute", swayosd_client_cmd("--output-volume mute-toggle"), "Toggle output mute", { long_press = true, locked = true } ) bind.key( "XF86AudioMicMute", swayosd_client_cmd("--input-volume mute-toggle"), "Toggle input mute", { long_press = true, locked = true } ) bind.key("XF86AudioPlay", swayosd_client_cmd("--playerctl play-pause"), "Player play/pause", { locked = true }) bind.key("XF86AudioPause", swayosd_client_cmd("--playerctl pause"), "Player pause", { locked = true }) bind.key("XF86AudioNext", swayosd_client_cmd("--playerctl next"), "Player next", { locked = true }) bind.key("XF86AudioPrev", swayosd_client_cmd("--playerctl prev"), "Player previous", { locked = true }) end, } return M