diff --git a/modules/macos/default.nix b/modules/macos/default.nix index 57d92a7..23d44c7 100644 --- a/modules/macos/default.nix +++ b/modules/macos/default.nix @@ -13,8 +13,8 @@ ]; # make 'shared.linux' not an error to define. options.shared.linux = lib.mkOption { - type = lib.types.anything; - default = {}; - description = "no-op on darwin"; + type = lib.types.anything; + default = {}; + description = "no-op on darwin"; }; } diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index e8f99dd..cb547e4 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,4 +1,8 @@ -{ lib, pkgs, ... }: { +{ + lib, + pkgs, + ... +}: { imports = [ ./boot.nix ./ld.nix @@ -7,8 +11,8 @@ ]; # make 'shared.darwin' not an error to define. options.shared.darwin = lib.mkOption { - type = lib.types.anything; - default = {}; - description = "no-op on linux"; + type = lib.types.anything; + default = {}; + description = "no-op on linux"; }; } diff --git a/users/chloe/configuration.nix b/users/chloe/configuration.nix index 77debaf..4bbeb50 100644 --- a/users/chloe/configuration.nix +++ b/users/chloe/configuration.nix @@ -1,5 +1,5 @@ # Configuration applied to all of chloe's machines -{ pkgs, ... }: { +{pkgs, ...}: { # packages for all machines environment.systemPackages = with pkgs; [ neovim diff --git a/users/chloe/home.nix b/users/chloe/home.nix index e5a7181..561ff86 100644 --- a/users/chloe/home.nix +++ b/users/chloe/home.nix @@ -2,23 +2,67 @@ inputs, pkgs, lib, + host, ... -}: { +}: let + hostServer = false; +in { home = { stateVersion = "23.05"; # Please read the comment before changing. - packages = [ - pkgs.neovim - pkgs.nh - pkgs.ffmpeg - ]; + packages = with pkgs; let + # packages to always install + all = [ + ffmpeg + ripgrep + ]; + # packages to install for desktop environments (non-server) + desktop = [ + ]; + # packages to install on all servers + server = []; + # packages to install on macOS desktops + darwin = [ + raycast + ]; + # packages to install on linux desktops + linux = [ + reaper # TODO: why does this break on macOS + ]; + in + all + ++ ( + if host.darwin + then darwin + else linux + ) + ++ ( + if hostServer + then server + else desktop + ); }; programs = { # sort-lines:start + bat.enable = true; + btop.enable = true; + fd.enable = true; hyfetch.enable = true; zsh.enable = true; # sort-lines:end # use a git-specific email git.userEmail = "git@paperclover.net"; + + ssh = { + enable = true; + matchBlocks = rec { + zenith = { + hostname = "192.168.86.50"; + user = "clo"; + port = 222; + }; + "nas.paperclover.net" = zenith; + }; + }; }; } diff --git a/users/chloe/paperback/configuration.nix b/users/chloe/paperback/configuration.nix deleted file mode 100644 index d79cf59..0000000 --- a/users/chloe/paperback/configuration.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - reaper - ]; -} diff --git a/users/chloe/paperback/home.nix b/users/chloe/paperback/home.nix new file mode 100644 index 0000000..ce35b97 --- /dev/null +++ b/users/chloe/paperback/home.nix @@ -0,0 +1,14 @@ +{pkgs, ...}: { + # these programs are not globally installed to reduce distractions. + # most of these are needed for my work environment. + programs.bun.enable = true; + programs.zed-editor.enable = true; + home.packages = with pkgs; [ + doppler + nodejs_22 + rustup + typescript + pm2 + pnpm + ]; +} diff --git a/users/chloe/sandwich/configuration.nix b/users/chloe/sandwich/configuration.nix index 5ef1b72..c668657 100644 --- a/users/chloe/sandwich/configuration.nix +++ b/users/chloe/sandwich/configuration.nix @@ -1,9 +1,4 @@ {pkgs, ...}: { - environment.systemPackages = with pkgs; [ - ffmpeg - ripgrep - reaper - ]; shared.darwin = { macAppStoreApps = [ "final-cut-pro"