-- Module devices
local monitor = require("monitor")
local background = require("background")
local status_bar = require("status_bar")
local devices = require("devices")
local workspaces = require("workspaces")
local program_launcher = require("program_launcher")

-- On event
hl.on("hyprland.start", function()
	monitor.start()
	background.start()
	status_bar.start()
end)

-- Hyprlegacy code
-- ~/.config/hypr/hyprland.lua

hl.config({
	general = {
		gaps_in = 3,
		gaps_out = 10,
		border_size = 2,

		col = {
			active_border = {
				colors = {
					"rgba(33ccffee)",
					"rgba(00ff99ee)",
				},
				angle = 45,
			},

			inactive_border = "rgba(595959aa)",
		},

		layout = "dwindle",
	},

	decoration = {
		rounding = 10,

		blur = {
			enabled = true,
			size = 3,
			passes = 1,
		},
	},

	animations = {
		enabled = true,
	},

	dwindle = {
		-- Empty for no reason
	},

	master = {
		-- Empty for no reason
	},

	group = {
		focus_removed_window = true,

		groupbar = {
			font_family = "SpaceMono Nerd Font Mono",
		},
	},

	binds = {
		pass_mouse_when_bound = true,
	},
})

-- Hyprlang:
-- bezier = myBezier, 0.05, 0.9, 0.1, 1.05
--
-- Lua:
hl.curve("myBezier", {
	type = "bezier",
	points = {
		{ 0.05, 0.9 },
		{ 0.1, 1.05 },
	},
})

-- Hyprlang:
-- animation = windows, 1, 7, myBezier
-- animation = windowsOut, 1, 7, default, popin 80%
-- animation = border, 1, 10, default
-- animation = borderangle, 1, 8, default
-- animation = fade, 1, 7, default
-- animation = workspaces, 1, 6, default
--
-- Lua:
hl.animation({
	leaf = "windows",
	enabled = true,
	speed = 7,
	bezier = "myBezier",
})

hl.animation({
	leaf = "windowsOut",
	enabled = true,
	speed = 7,
	bezier = "default",
	style = "popin 80%",
})

hl.animation({
	leaf = "border",
	enabled = true,
	speed = 10,
	bezier = "default",
})

hl.animation({
	leaf = "borderangle",
	enabled = true,
	speed = 8,
	bezier = "default",
})

hl.animation({
	leaf = "fade",
	enabled = true,
	speed = 7,
	bezier = "default",
})

hl.animation({
	leaf = "workspaces",
	enabled = true,
	speed = 6,
	bezier = "default",
})
