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