What's New
Layered XDG-style config discovery (contributed by @kay-ws, #13 #14 #15)
Config files are now merged in layers, matching helix/mpv/neovim conventions:
| Layer | Path | Notes |
|---|---|---|
| Built-in | Config::default() |
Always loaded |
| System | /etc/bcon/config.toml |
Installed by package manager |
| User | ~/.config/bcon/config.toml |
Per-user overrides (wins) |
Tables merge recursively; scalars and arrays replace wholesale. Users only need to specify the keys they want to override.
BCON_CONFIG env var — bypass all layers and load a single file (useful for debugging: BCON_CONFIG=/dev/null bcon gives pure defaults).
--init-config CLI redesign (contributed by @kay-ws)
Explicit target token eliminates the root-shadow trap:
sudo bcon --init-config=system # → /etc/bcon/config.toml
bcon --init-config=user,vim,jp # → ~/.config/bcon/config.toml
bcon --init-config=/tmp/test.toml,vim # → custom pathLegacy --init-config=vim,jp continues to work unchanged.
Distributors API
Config::default_template() — renders the built-in defaults as TOML for packaging. Distributors can ship /etc/bcon/config.toml without running the bcon binary at package time.
Also included
- Arch Linux installation docs (#12, @kay-ws)
- libinput udev hotplug support (#10, @kay-ws)
- Lenient Kitty graphics base64 decode (fixes mpv v0.40, #7)
Contributors
- @kay-ws — config layered merge, CLI redesign, Arch docs, libinput udev, AUR package
What's Changed
- docs: add Arch Linux appendix to installation guides by @kay-ws in #12
- config: layered XDG-style config discovery (engine + distributors API) by @kay-ws in #14
- config: --init-config CLI redesign + documentation rewrite (CLI half of #13) by @kay-ws in #15
Full Changelog: v1.3.4...v1.4.0