Skip to content

v1.4.0 — Layered XDG config, CLI redesign

Latest

Choose a tag to compare

@sanohiro sanohiro released this 07 May 10:01

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 path

Legacy --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