/ modules / programs / nu.nix
nu.nix
 1  {
 2    pkgs,
 3    lib,
 4    config,
 5    ...
 6  }: let
 7    cfg = config.programs.nu;
 8    inherit (lib) mkEnableOption mkIf;
 9  in {
10    options.programs.nu.enable = mkEnableOption "nu";
11    config = mkIf cfg.enable {
12      os.users.defaultUserShell = pkgs.nushell;
13  
14      hm = {
15        programs.starship.enableNushellIntegration = true;
16  
17        programs = {
18          zoxide.enable = true;
19          atuin.enable = true;
20          broot.enable = true;
21          carapace.enable = true;
22        };
23  
24        programs.atuin.enableNushellIntegration = true;
25        programs.broot.enableNushellIntegration = true;
26        programs.zoxide.enableNushellIntegration = true;
27  
28        programs.zellij = {
29          enable = false;
30  
31          settings = {
32            default_shell = "nu";
33            simplified_ui = true;
34            pane_frames = false;
35            default_layout = "compact";
36          };
37        };
38        home.packages = [
39          pkgs.fish
40        ];
41  
42        programs.nushell = {
43          enable = true;
44          configFile.source = ./nushell/config.nu;
45          envFile.source = ./nushell/env.nu;
46  
47          shellAliases = {
48            sysupdate = "sudo nixos-rebuild switch --flake ~/.nixConfig/#Aethyr";
49          };
50        };
51      };
52    };
53  }