Files
Hyprdots/lua/modules/swayosd.lua
T
2026-05-29 20:17:27 -04:00

109 lines
2.6 KiB
Lua

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