local terminal = "ghostty" local fileManager = "dolphin" local menu = "wofi -G -I -i -n --show drun" local wallpaper = os.getenv("HOME") .. "/Pictures/wallhaven-8gdrq2_2560x1440.png" local font = "FiraCode Nerd Font" hl.monitor({ output = "", mode = "preferred", position = "auto", scale = "auto", }) hl.on("hyprland.start", function() hl.exec_cmd("waybar") hl.exec_cmd("mako") hl.exec_cmd("swaybg -m fill -i " .. wallpaper) hl.exec_cmd("hypridle") hl.exec_cmd("/usr/libexec/kf6/polkit-kde-authentication-agent-1") end) hl.env("XCURSOR_SIZE", "24") hl.env("HYPRCURSOR_SIZE", "24") hl.env("QT_QPA_PLATFORM", "wayland") hl.env("QT_WAYLAND_DISABLE_WINDOWDECORATION", "1") hl.env("MOZ_ENABLE_WAYLAND", "1") hl.config({ general = { gaps_in = 5, gaps_out = 0, border_size = 2, col = { active_border = "rgba(f4bb82ff)", inactive_border = "rgba(575757ff)", }, resize_on_border = false, allow_tearing = false, layout = "dwindle", }, decoration = { rounding = 0, active_opacity = 1.0, inactive_opacity = 1.0, shadow = { enabled = false }, blur = { enabled = false }, }, animations = { enabled = true, }, binds = { workspace_back_and_forth = true, }, dwindle = { preserve_split = true, }, misc = { force_default_wallpaper = 0, disable_hyprland_logo = true, }, }) hl.config({ group = { col = { border_active = "rgba(f4bb82ff)", border_inactive = "rgba(575757ff)", }, groupbar = { enabled = true, font_family = font, font_size = 11, col = { active = "rgba(2f337fff)", inactive = "rgba(575757ff)", }, }, }, }) hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } }) hl.animation({ leaf = "global", enabled = true, speed = 8, bezier = "easeOutQuint" }) hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" }) hl.animation({ leaf = "workspaces", enabled = true, speed = 4, bezier = "easeOutQuint", style = "slide" }) hl.config({ input = { kb_layout = "us", follow_mouse = 1, sensitivity = 0, }, }) local mod = "SUPER" local left, down, up, right = "H", "J", "K", "L" hl.bind(mod .. " + Return", hl.dsp.exec_cmd(terminal)) hl.bind(mod .. " + Q", hl.dsp.window.close()) hl.bind(mod .. " + D", hl.dsp.exec_cmd(menu)) hl.bind(mod .. " + E", hl.dsp.exec_cmd(fileManager)) hl.bind(mod .. " + SHIFT + C", hl.dsp.exec_cmd("hyprctl reload")) hl.bind(mod .. " + SHIFT + E", hl.dsp.exit()) hl.bind(mod .. " + Escape", hl.dsp.exec_cmd("hyprlock")) hl.bind(mod .. " + " .. left, hl.dsp.focus({ direction = "left" })) hl.bind(mod .. " + " .. down, hl.dsp.focus({ direction = "down" })) hl.bind(mod .. " + " .. up, hl.dsp.focus({ direction = "up" })) hl.bind(mod .. " + " .. right, hl.dsp.focus({ direction = "right" })) hl.bind(mod .. " + left", hl.dsp.focus({ direction = "left" })) hl.bind(mod .. " + down", hl.dsp.focus({ direction = "down" })) hl.bind(mod .. " + up", hl.dsp.focus({ direction = "up" })) hl.bind(mod .. " + right", hl.dsp.focus({ direction = "right" })) hl.bind(mod .. " + SHIFT + " .. left, hl.dsp.window.move({ direction = "left" })) hl.bind(mod .. " + SHIFT + " .. down, hl.dsp.window.move({ direction = "down" })) hl.bind(mod .. " + SHIFT + " .. up, hl.dsp.window.move({ direction = "up" })) hl.bind(mod .. " + SHIFT + " .. right, hl.dsp.window.move({ direction = "right" })) hl.bind(mod .. " + SHIFT + left", hl.dsp.window.move({ direction = "left" })) hl.bind(mod .. " + SHIFT + down", hl.dsp.window.move({ direction = "down" })) hl.bind(mod .. " + SHIFT + up", hl.dsp.window.move({ direction = "up" })) hl.bind(mod .. " + SHIFT + right", hl.dsp.window.move({ direction = "right" })) for i = 1, 10 do local key = i % 10 hl.bind(mod .. " + " .. key, hl.dsp.focus({ workspace = i })) hl.bind(mod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i })) end hl.bind(mod .. " + B", hl.dsp.layout("orientationright")) hl.bind(mod .. " + V", hl.dsp.layout("orientationbottom")) hl.bind(mod .. " + S", hl.dsp.layout("togglesplit")) hl.bind(mod .. " + T", hl.dsp.group.toggle()) hl.bind(mod .. " + Tab", hl.dsp.group.next()) hl.bind(mod .. " + SHIFT + Tab", hl.dsp.group.prev()) hl.bind(mod .. " + F", hl.dsp.window.fullscreen()) hl.bind(mod .. " + SHIFT + space", hl.dsp.window.float({ action = "toggle" })) hl.bind(mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) hl.bind(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) hl.bind("Print", hl.dsp.exec_cmd("grim - | wl-copy")) hl.bind("SHIFT + Print", hl.dsp.exec_cmd("grim -g \"$(slurp)\" - | wl-copy")) hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true }) hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true }) hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true }) hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true }) hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true }) hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true }) hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true }) hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true }) hl.window_rule({ name = "suppress-maximize-events", match = { class = ".*" }, suppress_event = "maximize", }) hl.window_rule({ name = "fix-xwayland-drags", match = { class = "^$", title = "^$", xwayland = true, float = true, fullscreen = false, pin = false, }, no_focus = true, }) hl.window_rule({ name = "float-pavucontrol", match = { class = "^(pavucontrol)$" }, float = true, }) hl.window_rule({ name = "float-polkit-agent", match = { class = "^(org\\.kde\\.polkit-kde-authentication-agent-1)$" }, float = true, })