diff --git a/Droidnix/README.org b/Droidnix/README.org index 1464556ae..23175f930 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -1317,57 +1317,62 @@ in options.mySystem.terminals.zsh.enable = lib.mkEnableOption "Enable Zsh terminal with Oh-My-Zsh"; - # Only evaluate Home Manager config if enabled - config = lib.mkIf (lib.getOption "mySystem.terminals.zsh.enable" or false) { + # Flake-style nixosModule + flake.nixosModules.zsh = { config, ... }: let + enableZsh = config.mySystem.terminals.zsh.enable or false; + in + { + config = lib.mkIf enableZsh { - # Home Manager scope - home-manager.users.${username} = { + # Home Manager scope for the user + home-manager.users.${username} = { - programs.zsh.enable = true; - programs.zsh.enableCompletion = true; + programs.zsh.enable = true; + programs.zsh.enableCompletion = true; - programs.zsh.ohMyZsh = { - enable = true; - theme = "catppuccin-mocha"; - plugins = [ - "git" - "docker" - "direnv" - "zsh-autosuggestions" - "zsh-completions" - "zsh-history-substring-search" - # zsh-syntax-highlighting will be sourced in initExtra - ]; + programs.zsh.ohMyZsh = { + enable = true; + theme = "catppuccin-mocha"; + plugins = [ + "git" + "docker" + "direnv" + "zsh-autosuggestions" + "zsh-completions" + "zsh-history-substring-search" + # zsh-syntax-highlighting will be sourced in initExtra + ]; + }; + + programs.zsh.initExtra = '' + # Catppuccin Mocha colors + local mocha_base="#1E1E2E" + local mocha_surface0="#313244" + local mocha_text="#CDD6F4" + local mocha_lavender="#B4BEFE" + local mocha_blue="#89B4FA" + local mocha_sapphire="#74C7EC" + local mocha_teal="#94D2D5" + local mocha_green="#A6E3A1" + local mocha_yellow="#F9E2AF" + local mocha_peach="#FAB387" + local mocha_maroon="#EBA0AC" + local mocha_red="#F38BA8" + local mocha_mauve="#CBA6F7" + local mocha_pink="#F5E2C7" + local mocha_flamingo="#F2CDCD" + local mocha_rosewater="#F5E0DC" + + # Prompt + PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} ' + RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}' + + # Source zsh-syntax-highlighting + if [ -f ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then + source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + fi + ''; }; - - programs.zsh.initExtra = '' - # Catppuccin Mocha colors - local mocha_base="#1E1E2E" - local mocha_surface0="#313244" - local mocha_text="#CDD6F4" - local mocha_lavender="#B4BEFE" - local mocha_blue="#89B4FA" - local mocha_sapphire="#74C7EC" - local mocha_teal="#94D2D5" - local mocha_green="#A6E3A1" - local mocha_yellow="#F9E2AF" - local mocha_peach="#FAB387" - local mocha_maroon="#EBA0AC" - local mocha_red="#F38BA8" - local mocha_mauve="#CBA6F7" - local mocha_pink="#F5E2C7" - local mocha_flamingo="#F2CDCD" - local mocha_rosewater="#F5E0DC" - - # Prompt - PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} ' - RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}' - - # Source zsh-syntax-highlighting - if [ -f ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then - source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh - fi - ''; }; }; } diff --git a/Droidnix/generated/modules/terminals/zsh.nix b/Droidnix/generated/modules/terminals/zsh.nix index dc31e20b4..2e51dee4a 100644 --- a/Droidnix/generated/modules/terminals/zsh.nix +++ b/Droidnix/generated/modules/terminals/zsh.nix @@ -8,57 +8,62 @@ in options.mySystem.terminals.zsh.enable = lib.mkEnableOption "Enable Zsh terminal with Oh-My-Zsh"; - # Only evaluate Home Manager config if enabled - config = lib.mkIf (lib.getOption "mySystem.terminals.zsh.enable" or false) { + # Flake-style nixosModule + flake.nixosModules.zsh = { config, ... }: let + enableZsh = config.mySystem.terminals.zsh.enable or false; + in + { + config = lib.mkIf enableZsh { - # Home Manager scope - home-manager.users.${username} = { + # Home Manager scope for the user + home-manager.users.${username} = { - programs.zsh.enable = true; - programs.zsh.enableCompletion = true; + programs.zsh.enable = true; + programs.zsh.enableCompletion = true; - programs.zsh.ohMyZsh = { - enable = true; - theme = "catppuccin-mocha"; - plugins = [ - "git" - "docker" - "direnv" - "zsh-autosuggestions" - "zsh-completions" - "zsh-history-substring-search" - # zsh-syntax-highlighting will be sourced in initExtra - ]; + programs.zsh.ohMyZsh = { + enable = true; + theme = "catppuccin-mocha"; + plugins = [ + "git" + "docker" + "direnv" + "zsh-autosuggestions" + "zsh-completions" + "zsh-history-substring-search" + # zsh-syntax-highlighting will be sourced in initExtra + ]; + }; + + programs.zsh.initExtra = '' + # Catppuccin Mocha colors + local mocha_base="#1E1E2E" + local mocha_surface0="#313244" + local mocha_text="#CDD6F4" + local mocha_lavender="#B4BEFE" + local mocha_blue="#89B4FA" + local mocha_sapphire="#74C7EC" + local mocha_teal="#94D2D5" + local mocha_green="#A6E3A1" + local mocha_yellow="#F9E2AF" + local mocha_peach="#FAB387" + local mocha_maroon="#EBA0AC" + local mocha_red="#F38BA8" + local mocha_mauve="#CBA6F7" + local mocha_pink="#F5E2C7" + local mocha_flamingo="#F2CDCD" + local mocha_rosewater="#F5E0DC" + + # Prompt + PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} ' + RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}' + + # Source zsh-syntax-highlighting + if [ -f ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then + source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + fi + ''; }; - - programs.zsh.initExtra = '' - # Catppuccin Mocha colors - local mocha_base="#1E1E2E" - local mocha_surface0="#313244" - local mocha_text="#CDD6F4" - local mocha_lavender="#B4BEFE" - local mocha_blue="#89B4FA" - local mocha_sapphire="#74C7EC" - local mocha_teal="#94D2D5" - local mocha_green="#A6E3A1" - local mocha_yellow="#F9E2AF" - local mocha_peach="#FAB387" - local mocha_maroon="#EBA0AC" - local mocha_red="#F38BA8" - local mocha_mauve="#CBA6F7" - local mocha_pink="#F5E2C7" - local mocha_flamingo="#F2CDCD" - local mocha_rosewater="#F5E0DC" - - # Prompt - PROMPT='%{$fg[$mocha_blue]%}%n%{$reset_color%}@%{$fg[$mocha_peach]%}%m%{$reset_color%} %{$fg[$mocha_lavender]%}%~%{$reset_color%} %{$fg[$mocha_red]%}$%{$reset_color%} ' - RPROMPT='%{$fg[$mocha_green]%}%T%{$reset_color%}' - - # Source zsh-syntax-highlighting - if [ -f ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then - source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh - fi - ''; }; }; }