refactor: implement component-based architecture for enhanced maintainability
- 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
This commit is contained in:
35
themes/engine/stylix-compat.nix
Normal file
35
themes/engine/stylix-compat.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ 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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user