d53bc5dadb
Replace hyprlang hyprland.d/ with Lua-based hyprland.d.lua/ modules: - theme.lua.tmpl: apex-neon + apex-aeon color tables, col.* bracket keys - general.lua: config, bezier curves, animations (bezier=/spring= fixed) - monitors.lua.tmpl, workspaces.lua.tmpl, input.lua.tmpl, rules.lua.tmpl - keybinds.lua.tmpl: +/SHIFT/CTRL format, monitor focus (Super+I/O), scroll binds for custom layouts - layout.lua: master-scroll, slave-master-scroll, center-master-scroll (peek-hint scrolling slave columns, focus-triggered auto-scroll) Entry point uses package.path + require() for per-file error isolation. Old hyprlang configs preserved under hyprland.conf.bak/. Add .luarc.json for hyprland stub autocompletion in editors.
83 lines
2.5 KiB
Cheetah
83 lines
2.5 KiB
Cheetah
{{- $tags := .chezmoi.config.data.tags -}}
|
|
|
|
hl.config({
|
|
group = {
|
|
auto_group = true,
|
|
insert_after_current = true,
|
|
focus_removed_window = true,
|
|
drag_into_group = 1,
|
|
merge_groups_on_drag = true,
|
|
merge_groups_on_groupbar = true,
|
|
merge_floated_into_tiled_on_groupbar = true,
|
|
group_on_movetoworkspace = false,
|
|
-- colors to be integrated via theme table
|
|
groupbar = {
|
|
enabled = true,
|
|
height = 12,
|
|
font_family = "GeistMono Nerd Font",
|
|
font_size = 8,
|
|
font_weight_active = "semibold",
|
|
font_weight_inactive = "normal",
|
|
stacked = false,
|
|
gradients = true,
|
|
gradient_rounding = 5,
|
|
indicator_height = 0,
|
|
rounding = 0,
|
|
gradient_round_only_edges = true,
|
|
render_titles = true,
|
|
scrolling = true,
|
|
priority = 3
|
|
}
|
|
}
|
|
})
|
|
|
|
-- Permissions (NEW in v0.55)
|
|
hl.permission({ binary = "/usr/bin/grim", type = "screencopy", mode = "allow" })
|
|
|
|
-- Window Rules
|
|
hl.window_rule({ match = { class = ".*" }, suppress_event = "maximize" })
|
|
|
|
-- XWayland fixes
|
|
hl.window_rule({
|
|
match = { class = "^$", title = "^$", xwayland = true, float = true, fullscreen = false, pin = false },
|
|
no_focus = true
|
|
})
|
|
hl.window_rule({ match = { xwayland = true }, no_initial_focus = true })
|
|
|
|
-- Communication
|
|
hl.window_rule({ match = { class = "^(info\\.mumble\\.Mumble|discord|vesktop|teamspeak-client|TeamSpeak|TeamSpeak 3|teamspeak3)$" }, workspace = "2" })
|
|
hl.window_rule({ match = { class = "^(Element)$" }, workspace = "3" })
|
|
|
|
-- Mail
|
|
hl.window_rule({ match = { class = "^(org\\.mozilla\\.Thunderbird)$" }, workspace = "1" })
|
|
|
|
-- Notes
|
|
hl.window_rule({ match = { class = "^(@joplin/app-desktop)$" }, workspace = "4" })
|
|
|
|
{{- if index $tags "entertainment" }}
|
|
-- Multimedia
|
|
hl.window_rule({ match = { class = "Spotify" }, workspace = "6" })
|
|
{{- end }}
|
|
|
|
{{- if index $tags "cs2" }}
|
|
-- Gaming
|
|
hl.window_rule({ match = { class = "^(steam)$" }, workspace = "5" })
|
|
{{- end }}
|
|
|
|
-- System
|
|
hl.window_rule({ match = { class = "com.saivert.pwvucontrol" }, float = true })
|
|
|
|
hl.window_rule({
|
|
match = { class = "scrrec" },
|
|
float = true, pin = true, idle_inhibit = "always",
|
|
rounding = 10, opacity = 0.6, border_size = 0,
|
|
size = { 300, 100 }, move = { "1%", "1%" }, monitor = 0,
|
|
no_initial_focus = true
|
|
})
|
|
|
|
hl.window_rule({ match = { class = "com.gabm.satty" }, float = true, min_size = { 700, 400 } })
|
|
|
|
-- Layer Rules
|
|
hl.layer_rule({ match = { namespace = "quickshell:.*" }, blur = true, ignore_alpha = 0.79 })
|
|
hl.layer_rule({ match = { namespace = "quickshell:popout" }, animation = "bouncy" })
|