| author | |
| committer | |
| log | 8bd9e070d076cb96c0c404b4ec3371f2696f7089 |
| tree | c0d47a6364bda49bbb8c95ded34a310935012c37 |
| parent | c0cfb69f27c9caf3e3dd21e3a0d530fa27898f95 |
21 files changed, 210 insertions(+), 152 deletions(-)
flake.nix+13-22| ... | ... | @@ -2,7 +2,6 @@ |
| 2 | 2 | description = "New Modular flake!"; |
| 3 | 3 | inputs = { |
| 4 | 4 | nixpkgs.url = "nixpkgs/nixos-unstable"; |
| 5 | # nixpkgs.url = "github:NixOS/nixpkgs/master"; | |
| 6 | 5 | nixpkgs-stable.url = "nixpkgs/nixos-23.11"; |
| 7 | 6 | |
| 8 | 7 | home-manager.url = "github:nix-community/home-manager/master"; |
| ... | ... | @@ -77,35 +76,19 @@ |
| 77 | 76 | ) |
| 78 | 77 | ]; |
| 79 | 78 | |
| 80 | # ----- USER SETTINGS ----- # | |
| 81 | users.nmarks = rec { | |
| 82 | #enable if you want to use a tiling wm on macos | |
| 83 | darwinTiling = true; | |
| 84 | ||
| 85 | username = "nmarks"; # username | |
| 86 | name = "Natalie"; # name/identifier | |
| 87 | email = "nmarks413@gmail.com"; # email (used for certain configurations) | |
| 88 | dotfilesDir = "~/.dotfiles"; # absolute path of the local repo | |
| 89 | theme = "catppuccin-mocha"; #name of theme that stylix will use | |
| 90 | browser = "firefox"; # Default browser; must select one from ./user/app/browser/ | |
| 91 | term = "ghostty"; # Default terminal command; | |
| 92 | font = "iosevka"; # Selected font | |
| 93 | editor = "neovim"; # Default editor; | |
| 94 | spawnEditor = "exec" + term + " -e " + editor; | |
| 95 | timeZone = "America/Los_Angeles"; | |
| 96 | sexuality = "bisexual"; | |
| 97 | }; | |
| 98 | 79 | mkSystem = import ./lib/mkSystem.nix { |
| 99 | 80 | inherit overlays nixpkgs inputs; |
| 100 | 81 | }; |
| 101 | in { | |
| 82 | in rec { | |
| 83 | # "nix run .#darwin-rebuild" | |
| 102 | 84 | packages.aarch64-darwin.darwin-rebuild = darwin.packages.aarch64-darwin.darwin-rebuild; |
| 85 | # "nix fmt ." | |
| 103 | 86 | formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra; |
| 104 | 87 | formatter.aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.alejandra; |
| 105 | 88 | |
| 106 | 89 | # natalie's desktop computer |
| 107 | 90 | nixosConfigurations.nixos = mkSystem "nixos" { |
| 108 | user = "nmarks"; | |
| 91 | user = "natalie"; | |
| 109 | 92 | host = "desktop"; |
| 110 | 93 | system = "x86_64-linux"; |
| 111 | 94 | extraModules = [ |
| ... | ... | @@ -114,7 +97,7 @@ |
| 114 | 97 | }; |
| 115 | 98 | # natalie's laptop |
| 116 | 99 | darwinConfigurations."Natalies-MacBook-Air" = mkSystem "Natalies-MacBook-Air" { |
| 117 | user = "nmarks"; | |
| 100 | user = "natalie"; | |
| 118 | 101 | host = "laptop"; |
| 119 | 102 | system = "aarch64-darwin"; |
| 120 | 103 | }; |
| ... | ... | @@ -131,5 +114,13 @@ |
| 131 | 114 | host = "paperback"; |
| 132 | 115 | system = "aarch64-darwin"; |
| 133 | 116 | }; |
| 117 | ||
| 118 | # generate checks for "nix flake check --all-systems --no-build" | |
| 119 | checks.aarch64-darwin = builtins.listToAttrs (builtins.map (name: let | |
| 120 | d = darwinConfigurations.${name}.system; | |
| 121 | in { | |
| 122 | name = "darwinConfiguration-" + d.name; | |
| 123 | value = d; | |
| 124 | }) (builtins.attrNames darwinConfigurations)); | |
| 134 | 125 | }; |
| 135 | 126 | } |
lib/mkSystem.nix+17-16| ... | ... | @@ -44,24 +44,25 @@ |
| 44 | 44 | currentSystem = system; |
| 45 | 45 | # Details about the host machine |
| 46 | 46 | host = { |
| 47 | inherit darwin; | |
| 47 | inherit darwin name; | |
| 48 | 48 | }; |
| 49 | 49 | user = ({ |
| 50 | # This acts as formal documentation for what is allowed in user.nix | |
| 51 | username, # unix username | |
| 52 | name, # your display name | |
| 53 | email, # for identity in programs such as git | |
| 54 | dotfilesDir, # location to `../.` | |
| 55 | timeZone ? "America/Los_Angeles", | |
| 56 | ||
| 57 | # Stylix/Theming | |
| 58 | theme ? null, # theme name for stylix | |
| 59 | sexuality ? null, # pride flag for hyfetch | |
| 60 | ||
| 61 | term, # preferred $TERM | |
| 62 | editor, # preferred $EDITOR | |
| 63 | browser ? null, # preferred $BROWSER | |
| 64 | }@user: user) userConfig; | |
| 50 | # This acts as formal documentation for what is allowed in user.nix | |
| 51 | username, # unix username | |
| 52 | name, # your display name | |
| 53 | email, # for identity in programs such as git | |
| 54 | dotfilesDir, # location to `../.` | |
| 55 | timeZone ? "America/Los_Angeles", | |
| 56 | # Stylix/Theming | |
| 57 | theme ? null, # theme name for stylix | |
| 58 | sexuality ? null, # pride flag for hyfetch | |
| 59 | font ? null, # font to use | |
| 60 | term, # preferred $TERM | |
| 61 | editor, # preferred $EDITOR | |
| 62 | browser ? null, # preferred $BROWSER | |
| 63 | } @ user: | |
| 64 | user) | |
| 65 | userConfig; | |
| 65 | 66 | }; |
| 66 | 67 | systemSettings = rec { |
| 67 | 68 | inherit darwin; |
modules/home-manager.nix+2-1| ... | ... | @@ -69,7 +69,8 @@ in { |
| 69 | 69 | } |
| 70 | 70 | ]; |
| 71 | 71 | shellAliases = |
| 72 | { } // lib.optionalAttrs (!host.darwin) { | |
| 72 | {} | |
| 73 | // lib.optionalAttrs (!host.darwin) { | |
| 73 | 74 | reboot-windows = "sudo efibootmgr --bootnext 0000; sudo reboot -h now"; |
| 74 | 75 | }; |
| 75 | 76 | shellInit = '' |
modules/macos/default.nix+7| ... | ... | @@ -8,6 +8,13 @@ |
| 8 | 8 | ./mac-app-store.nix |
| 9 | 9 | ./system.nix |
| 10 | 10 | ./icons.nix |
| 11 | ./tiling | |
| 11 | 12 | # sort-lines: end |
| 12 | 13 | ]; |
| 14 | # make 'shared.linux' not an error to define. | |
| 15 | options.shared.linux = lib.mkOption { | |
| 16 | type = lib.types.anything; | |
| 17 | default = {}; | |
| 18 | description = "no-op on darwin"; | |
| 19 | }; | |
| 13 | 20 | } |
modules/macos/system.nix+5-3| ... | ... | @@ -3,7 +3,9 @@ |
| 3 | 3 | pkgs, |
| 4 | 4 | lib, |
| 5 | 5 | ... |
| 6 | }: { | |
| 6 | }: let | |
| 7 | tiling = config.shared.darwin.tiling.enable; | |
| 8 | in { | |
| 7 | 9 | # Use touchid or watch to activate sudo |
| 8 | 10 | security.pam.services.sudo_local = { |
| 9 | 11 | enable = true; |
| ... | ... | @@ -51,8 +53,8 @@ |
| 51 | 53 | NSDocumentSaveNewDocumentsToCloud = false; |
| 52 | 54 | AppleICUForce24HourTime = true; |
| 53 | 55 | |
| 54 | #Autohide menu bar | |
| 55 | #_HIHideMenuBar = config.shared.darwin.tiling; | |
| 56 | # Autohide menu bar for tiling window manager | |
| 57 | _HIHideMenuBar = tiling; | |
| 56 | 58 | }; |
| 57 | 59 | # minimal dock |
| 58 | 60 | dock = { |
modules/macos/tiling/aerospace.nix+2-2| ... | ... | @@ -1,6 +1,6 @@ |
| 1 | {pkgs, ...}: { | |
| 1 | {config,pkgs, ...}: { | |
| 2 | 2 | services.aerospace = { |
| 3 | enable = true; | |
| 3 | enable = config.shared.darwin.tiling.enable; | |
| 4 | 4 | settings = { |
| 5 | 5 | # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization |
| 6 | 6 | enable-normalization-flatten-containers = true; |
modules/macos/tiling/default.nix+15-1| ... | ... | @@ -1,2 +1,16 @@ |
| 1 | {pkgs, ...}: { | |
| 1 | { lib, ... }: let | |
| 2 | inherit (lib) types; | |
| 3 | in { | |
| 4 | imports = [ | |
| 5 | ./sketchybar.nix | |
| 6 | ./aerospace.nix | |
| 7 | ]; | |
| 8 | options = { | |
| 9 | shared.darwin.tiling.enable = lib.mkOption { | |
| 10 | type = types.bool; | |
| 11 | default = false; | |
| 12 | example = true; | |
| 13 | description = "Enable tiling window management."; | |
| 14 | }; | |
| 15 | }; | |
| 2 | 16 | } |
modules/macos/tiling/sketchybar.nix+2-2| ... | ... | @@ -1,6 +1,6 @@ |
| 1 | {pkgs, ...}: { | |
| 1 | {config,pkgs, ...}: { | |
| 2 | 2 | services.sketchybar = { |
| 3 | enable = true; | |
| 3 | enable = config.shared.darwin.tiling.enable; | |
| 4 | 4 | config = '' |
| 5 | 5 | # This is a demo config to showcase some of the most important commands. |
| 6 | 6 | # It is meant to be changed and configured, as it is intentionally kept sparse. |
modules/nixos/default.nix+7-1| ... | ... | @@ -1,8 +1,14 @@ |
| 1 | {pkgs, ...}: { | |
| 1 | { lib, pkgs, ... }: { | |
| 2 | 2 | imports = [ |
| 3 | 3 | ./boot.nix |
| 4 | 4 | ./ld.nix |
| 5 | 5 | ./nvidia.nix |
| 6 | 6 | ./services.nix |
| 7 | 7 | ]; |
| 8 | # make 'shared.darwin' not an error to define. | |
| 9 | options.shared.darwin = lib.mkOption { | |
| 10 | type = lib.types.anything; | |
| 11 | default = {}; | |
| 12 | description = "no-op on linux"; | |
| 13 | }; | |
| 8 | 14 | } |
modules/shared/user-system-settings.nix+14-7| ... | ... | @@ -1,14 +1,21 @@ |
| 1 | 1 | # applies user settings for the system |
| 2 | { pkgs, user, lib, ... }: { | |
| 2 | { | |
| 3 | pkgs, | |
| 4 | user, | |
| 5 | lib, | |
| 6 | ... | |
| 7 | }: { | |
| 3 | 8 | # Set your time zone. |
| 4 | 9 | time.timeZone = user.timeZone; |
| 5 | 10 | |
| 6 | home-manager.users.${user.username}.home.sessionVariables = { | |
| 7 | EDITOR = user.editor; | |
| 8 | TERMINAL = user.term; | |
| 9 | } // lib.optionalAttrs (user ? "browser") { | |
| 10 | BROWSER = user.browser; | |
| 11 | }; | |
| 11 | home-manager.users.${user.username}.home.sessionVariables = | |
| 12 | { | |
| 13 | EDITOR = user.editor; | |
| 14 | TERMINAL = user.term; | |
| 15 | } | |
| 16 | // lib.optionalAttrs (user ? "browser") { | |
| 17 | BROWSER = user.browser; | |
| 18 | }; | |
| 12 | 19 | |
| 13 | 20 | stylix = { |
| 14 | 21 | enable = false; |
readme.md+27-2| ... | ... | @@ -1,10 +1,35 @@ |
| 1 | 1 | # nix config |
| 2 | 2 | |
| 3 | meow. | |
| 3 | this setup allows natalie and chloe to share common configuration between their machines, but also share useful modules between each other. | |
| 4 | ||
| 5 | ``` | |
| 6 | lib/ # reusable functions | |
| 7 | modules/ # reusable modules | |
| 8 | +-- macos/ # nix-darwin configurations | |
| 9 | +-- nixos/ # linux configurations | |
| 10 | +-- nixvim/ # neovim configurations | |
| 11 | +-- shared/ # shared between nixos-rebuild & nixos-rebuild | |
| 12 | +-- home-manager.nix # home program presets | |
| 13 | users/ | |
| 14 | +-- chloe/ | |
| 15 | | +-- user.nix # info about her | |
| 16 | | +-- configuration.nix # for all hosts | |
| 17 | | +-- home.nix # for all hosts | |
| 18 | | +-- sandwich/ | |
| 19 | | | +-- configuration.nix # per host | |
| 20 | | | +-- home.nix | |
| 21 | | +-- paperback/ | |
| 22 | | ... | |
| 23 | +-- natalie/ | |
| 24 | +-- user.nix # info about her | |
| 25 | ... | |
| 26 | ``` | |
| 27 | ||
| 28 | A new machine can be added by adding a new definition in `flake.nix`. Note that the user and host `configuration.nix` and `home.nix` files are | |
| 4 | 29 | |
| 5 | 30 | ## macOS installation instructions |
| 6 | 31 | |
| 7 | Install Nix using the upstream nix (Pick "no" then "yes): | |
| 32 | Install Nix using the upstream Nix (Pick "no" then "yes): | |
| 8 | 33 | |
| 9 | 34 | ``` |
| 10 | 35 | curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \ |
users/chloe/configuration.nix+5-5| ... | ... | @@ -1,18 +1,18 @@ |
| 1 | 1 | # Configuration applied to all of chloe's machines |
| 2 | { | |
| 3 | pkgs, | |
| 4 | userSettings, | |
| 5 | ... | |
| 6 | }: { | |
| 2 | { pkgs, ... }: { | |
| 3 | # packages for all machines | |
| 7 | 4 | environment.systemPackages = with pkgs; [ |
| 8 | 5 | neovim |
| 9 | 6 | ]; |
| 7 | # configuration for shared modules. | |
| 8 | # all custom options in 'shared' for clarity. | |
| 10 | 9 | shared.darwin = { |
| 11 | 10 | macAppStoreApps = [ |
| 12 | 11 | "adguard" |
| 13 | 12 | "magnet" |
| 14 | 13 | ]; |
| 15 | 14 | }; |
| 15 | # system preferences | |
| 16 | 16 | system.defaults = { |
| 17 | 17 | NSGlobalDomain = { |
| 18 | 18 | KeyRepeat = 1; |
users/chloe/user.nix+1-1| ... | ... | @@ -14,5 +14,5 @@ |
| 14 | 14 | |
| 15 | 15 | # Default terminal command. NOTE: ghostty is not installed for you |
| 16 | 16 | term = "ghostty"; # preferred $TERMINAL |
| 17 | editor = "nvim"; # preferred $EDITOR | |
| 17 | editor = "nvim"; # preferred $EDITOR | |
| 18 | 18 | } |
users/natalie/configuration.nix+17-1| ... | ... | @@ -1 +1,17 @@ |
| 1 | services.tailscale.enable = true; | |
| 1 | # Applied to all systems | |
| 2 | {pkgs, ...}: { | |
| 3 | services.tailscale.enable = true; | |
| 4 | fonts.packages = with pkgs; [ | |
| 5 | nerd-fonts.fira-code | |
| 6 | nerd-fonts.iosevka | |
| 7 | iosevka | |
| 8 | nerd-fonts.symbols-only | |
| 9 | nerd-fonts.iosevka | |
| 10 | ]; | |
| 11 | ||
| 12 | # configuration for shared modules. | |
| 13 | # all custom options in 'shared' for clarity. | |
| 14 | shared.darwin = { | |
| 15 | tiling.enable = true; # use tiling window manager | |
| 16 | }; | |
| 17 | } |
users/natalie/desktop/configuration.nix+7-7| ... | ... | @@ -1,7 +1,7 @@ |
| 1 | 1 | { |
| 2 | 2 | pkgs, |
| 3 | userSettings, | |
| 4 | systemSettings, | |
| 3 | user, | |
| 4 | host, | |
| 5 | 5 | ... |
| 6 | 6 | }: { |
| 7 | 7 | imports = [ |
| ... | ... | @@ -16,7 +16,7 @@ |
| 16 | 16 | enable = true; |
| 17 | 17 | # Certain features, including CLI integration and system authentication support, |
| 18 | 18 | # require enabling PolKit integration on some desktop environments (e.g. Plasma). |
| 19 | polkitPolicyOwners = [userSettings.username]; | |
| 19 | polkitPolicyOwners = [user.username]; | |
| 20 | 20 | }; |
| 21 | 21 | |
| 22 | 22 | noisetorch.enable = true; |
| ... | ... | @@ -75,7 +75,7 @@ |
| 75 | 75 | libvirtd.enable = true; |
| 76 | 76 | }; |
| 77 | 77 | |
| 78 | nix.settings.trusted-users = ["root" userSettings.username]; | |
| 78 | nix.settings.trusted-users = ["root" user.username]; | |
| 79 | 79 | systemd = { |
| 80 | 80 | targets = { |
| 81 | 81 | sleep.enable = false; |
| ... | ... | @@ -129,10 +129,10 @@ |
| 129 | 129 | |
| 130 | 130 | # Define a user account. Don't forget to set a password with ‘passwd’. |
| 131 | 131 | # users.defaultUserShell = pkgs.fish; |
| 132 | users.users.${userSettings.username} = { | |
| 132 | users.users.${user.username} = { | |
| 133 | 133 | shell = pkgs.fish; |
| 134 | 134 | isNormalUser = true; |
| 135 | description = "Natalie Marks"; | |
| 135 | description = user.name; | |
| 136 | 136 | extraGroups = ["networkmanager" "wheel" "docker"]; |
| 137 | 137 | # openssh.authorizedKeys.keyFiles = ["~/.ssh/id_ed25519.pub"]; |
| 138 | 138 | packages = with pkgs; [ |
| ... | ... | @@ -153,7 +153,7 @@ |
| 153 | 153 | }; |
| 154 | 154 | |
| 155 | 155 | networking = { |
| 156 | hostName = systemSettings.host; # Define your hostname. | |
| 156 | hostName = host.name; # Define your hostname. | |
| 157 | 157 | # wireless.enable = true; # Enables wireless support via wpa_supplicant. |
| 158 | 158 | networkmanager.enable = true; |
| 159 | 159 | firewall = { |
users/natalie/desktop/home.nix+39-49| ... | ... | @@ -6,9 +6,7 @@ |
| 6 | 6 | userSettings, |
| 7 | 7 | systemSettings, |
| 8 | 8 | ... |
| 9 | }: let | |
| 10 | shared-programs = import ../../modules/shared/homeManagerPrograms.nix {inherit inputs config pkgs lib userSettings systemSettings;}; | |
| 11 | in { | |
| 9 | }: { | |
| 12 | 10 | imports = [ |
| 13 | 11 | inputs.nixvim.homeManagerModules.nixvim |
| 14 | 12 | #set up nixvim |
| ... | ... | @@ -17,56 +15,48 @@ in { |
| 17 | 15 | home = { |
| 18 | 16 | stateVersion = "23.05"; # Please read the comment before changing. |
| 19 | 17 | |
| 20 | packages = with pkgs; let | |
| 21 | shared-packages = import ../../modules/shared/packages.nix {inherit pkgs systemSettings;}; | |
| 22 | in | |
| 23 | shared-packages | |
| 24 | ++ [ | |
| 25 | #building macos apps hard :( | |
| 26 | ghostty | |
| 27 | stremio | |
| 28 | julia | |
| 29 | qbittorrent | |
| 18 | packages = with pkgs; [ | |
| 19 | #building macos apps hard :( | |
| 20 | ghostty | |
| 21 | stremio | |
| 22 | julia | |
| 23 | qbittorrent | |
| 30 | 24 | |
| 31 | #gaming | |
| 32 | bottles | |
| 33 | lutris | |
| 34 | mangohud | |
| 35 | dxvk_2 | |
| 36 | steam-run | |
| 37 | vulkan-tools | |
| 38 | path-of-building | |
| 39 | wineWowPackages.stable | |
| 40 | winetricks | |
| 41 | (prismlauncher.override {gamemodeSupport = true;}) | |
| 25 | #gaming | |
| 26 | bottles | |
| 27 | lutris | |
| 28 | mangohud | |
| 29 | dxvk_2 | |
| 30 | steam-run | |
| 31 | vulkan-tools | |
| 32 | path-of-building | |
| 33 | wineWowPackages.stable | |
| 34 | winetricks | |
| 35 | (prismlauncher.override {gamemodeSupport = true;}) | |
| 42 | 36 | |
| 43 | #window manager stuff | |
| 44 | wofi | |
| 45 | xorg.xauth | |
| 46 | #linux tools | |
| 47 | legcord | |
| 48 | pavucontrol | |
| 49 | ethtool | |
| 50 | grub2 | |
| 51 | efibootmgr | |
| 52 | distrobox | |
| 53 | xdg-desktop-portal-gtk | |
| 54 | xclip | |
| 55 | kdePackages.dolphin | |
| 56 | #broken on macos | |
| 57 | calibre | |
| 58 | mpv | |
| 59 | wireguard-tools | |
| 60 | signal-desktop | |
| 61 | ] | |
| 62 | ++ [ | |
| 63 | inputs.zls.packages.x86_64-linux.zls | |
| 64 | rust-bin.stable.latest.default | |
| 65 | ]; | |
| 37 | #window manager stuff | |
| 38 | wofi | |
| 39 | xorg.xauth | |
| 40 | #linux tools | |
| 41 | legcord | |
| 42 | pavucontrol | |
| 43 | ethtool | |
| 44 | grub2 | |
| 45 | efibootmgr | |
| 46 | distrobox | |
| 47 | xdg-desktop-portal-gtk | |
| 48 | xclip | |
| 49 | kdePackages.dolphin | |
| 50 | #broken on macos | |
| 51 | calibre | |
| 52 | mpv | |
| 53 | wireguard-tools | |
| 54 | signal-desktop | |
| 55 | inputs.zls.packages.x86_64-linux.zls | |
| 56 | rust-bin.stable.latest.default | |
| 57 | ]; | |
| 66 | 58 | # programs.mangohud.enable = true; |
| 67 | 59 | }; |
| 68 | 60 | |
| 69 | programs = shared-programs; | |
| 70 | ||
| 71 | 61 | # xdg.mimeApps.defaultApplications."inode/directory" = "dolphin.desktop"; |
| 72 | 62 | } |
users/natalie/home.nix+11-14| ... | ... | @@ -1,19 +1,16 @@ |
| 1 | 1 | { |
| 2 | 2 | pkgs, |
| 3 | 3 | lib, |
| 4 | }: { | |
| 5 | # sort-lines:start | |
| 6 | atuin.enable = true; | |
| 7 | bat.enable = true; | |
| 8 | hyfetch.enable = true; | |
| 9 | direnv.enable = true; | |
| 10 | # sort-lines:end | |
| 4 | ... | |
| 5 | } @ args: { | |
| 6 | programs = { | |
| 7 | # sort-lines:start | |
| 8 | atuin.enable = true; | |
| 9 | bat.enable = true; | |
| 10 | hyfetch.enable = true; | |
| 11 | direnv.enable = true; | |
| 12 | # sort-lines:end | |
| 13 | }; | |
| 11 | 14 | |
| 12 | fonts.packages = with pkgs; [ | |
| 13 | nerd-fonts.fira-code | |
| 14 | nerd-fonts.iosevka | |
| 15 | iosevka | |
| 16 | nerd-fonts.symbols-only | |
| 17 | nerd-fonts.iosevka | |
| 18 | ]; | |
| 15 | home.packages = import ./packages.nix args; | |
| 19 | 16 | } |
users/natalie/laptop/configuration.nix+1-5| ... | ... | @@ -1,8 +1,4 @@ |
| 1 | { | |
| 2 | pkgs, | |
| 3 | userSettings, | |
| 4 | ... | |
| 5 | }: { | |
| 1 | {pkgs, ...}: { | |
| 6 | 2 | environment.systemPackages = with pkgs; [ |
| 7 | 3 | neovim |
| 8 | 4 | pinentry_mac |
users/natalie/laptop/home.nix+3-8| ... | ... | @@ -3,8 +3,8 @@ |
| 3 | 3 | config, |
| 4 | 4 | pkgs, |
| 5 | 5 | lib, |
| 6 | userSettings, | |
| 7 | systemSettings, | |
| 6 | user, | |
| 7 | host, | |
| 8 | 8 | ... |
| 9 | 9 | } @ args: { |
| 10 | 10 | imports = [ |
| ... | ... | @@ -12,14 +12,9 @@ |
| 12 | 12 | #set up nixvim |
| 13 | 13 | # ../../modules/nixvim |
| 14 | 14 | ]; |
| 15 | programs = import ./home-programs.nix args; | |
| 16 | ||
| 17 | 15 | home = { |
| 18 | inherit (userSettings) username; | |
| 19 | # shell = pkgs.fish; | |
| 20 | 16 | stateVersion = "23.05"; # Please read the comment before changing. |
| 21 | ||
| 22 | packages = pkgs.callPackage ../../modules/shared/packages.nix {inherit systemSettings;}; | |
| 17 | # shell = pkgs.fish; | |
| 23 | 18 | |
| 24 | 19 | sessionPath = [ |
| 25 | 20 | "$HOME/.emacs.d/bin" |
users/natalie/packages.nix+2-5| ... | ... | @@ -1,8 +1,5 @@ |
| 1 | { | |
| 2 | pkgs, | |
| 3 | systemSettings, | |
| 4 | ... | |
| 5 | }: | |
| 1 | # Packages installed with home-manager | |
| 2 | {pkgs, ...}: | |
| 6 | 3 | with pkgs; [ |
| 7 | 4 | #general development |
| 8 | 5 | just |
users/natalie/user.nix created+13| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | rec { | |
| 2 | username = "nmarks"; # username | |
| 3 | name = "Natalie"; # name/identifier | |
| 4 | email = "nmarks413@gmail.com"; # email (used for certain configurations) | |
| 5 | dotfilesDir = "~/.dotfiles"; # absolute path of the local repo | |
| 6 | theme = "catppuccin-mocha"; #name of theme that stylix will use | |
| 7 | browser = "firefox"; # Default browser; must select one from ./user/app/browser/ | |
| 8 | term = "ghostty"; # Default terminal command; | |
| 9 | font = "iosevka"; # Selected font | |
| 10 | editor = "neovim"; # Default editor; | |
| 11 | timeZone = "America/Los_Angeles"; | |
| 12 | sexuality = "bisexual"; | |
| 13 | } |