{ config, lib, ... }: # Compatibility shims for stylix target modules # Stylix unconditionally imports all target modules, which expect certain # program options to exist. This module defines stub options for programs # we don't use to prevent evaluation errors. { options = { # Neovim: stylix uses initLua but home-manager uses extraLuaConfig programs.neovim.initLua = lib.mkOption { type = lib.types.lines; default = ""; description = "Lua code to run at init (compatibility shim for stylix)"; }; # OpenCode: stylix expects programs.opencode options programs.opencode = { tui = lib.mkOption { type = lib.types.attrsOf lib.types.anything; default = {}; description = "OpenCode TUI settings (stylix compatibility shim)"; }; themes = lib.mkOption { type = lib.types.attrsOf lib.types.anything; default = {}; description = "OpenCode themes (stylix compatibility shim)"; }; }; }; config = lib.mkIf (config.programs.neovim.initLua != "") { programs.neovim.extraLuaConfig = config.programs.neovim.initLua; }; }