- Reorganize directory structure into core/, features/, and themes/ - Colocate application Nix logic, configs, scripts, and theme overrides - Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts - Update flake.nix and shared library paths to match the new structure - Document the new Feature-Centric architecture in README.md
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;
|
|
};
|
|
}
|