Organize a growing config
Keep the entry point short and group settings by the kind of change you make.
For example, let init.lua load your local fragments first, then your
appearance and shortcut overrides. Packages that ship system defaults need no
line here; Gnoblin loads them before init.lua
(see system drop-ins):
gnoblin.load("conf.d/**/*.lua")
gnoblin.load("appearance.lua")
gnoblin.load("bindings.lua")Put window rules in appearance.lua:
gnoblin.window_rule {
match = {type = "window"},
corners = {radius = 12, smoothing = 0.5},
}Put shortcuts in bindings.lua:
gnoblin.configure {
shortcuts = {
launcher = {binding = "<Super>d", command = {"fuzzel"}},
},
}Loaded files share the same Gnoblin API; they do not need require or a return
statement. Keep includes before your personal overrides. Calls such as
gnoblin.window_rule append rules, while supplying a complete window_rules
list replaces the previous list. Arrays such as xkb_options also replace the
active array, so list all values you intend to keep.
Use gnoblinctl config path to find the active entry point and
gnoblinctl config reload to apply changes. Read file loading and order
before adding overlapping files or globs.