Stylix unconditionally imports all target modules, which expect certain program options to exist even when those programs aren't enabled. This causes evaluation errors. Add stylix-compat.nix with stub options for: - programs.neovim.initLua (maps to extraLuaConfig) - programs.opencode.tui/themes Also: - Disable neovim/neovide stylix targets (we deploy theme lua via theme-loader) - Set autoEnable = false to only enable explicitly listed targets - Enable programs.neovim to satisfy stylix's neovim target - Update stylix to latest version Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
{ 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;
|
|
};
|
|
}
|