diff --git a/flake.nix b/flake.nix index 563d9a0..87c20ab 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,17 @@ specialArgs = { inherit inputs; }; }; + kitchen = inputs.nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./modules/common.nix + ./modules/containers.nix + + ./machines/kitchen/configuration.nix + ]; + specialArgs = { inherit inputs; }; + }; + }; }; } diff --git a/machines/kitchen/configuration.nix b/machines/kitchen/configuration.nix new file mode 100644 index 0000000..c27d5f4 --- /dev/null +++ b/machines/kitchen/configuration.nix @@ -0,0 +1,92 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Auto cleanup + nix = { + package = pkgs.nixUnstable; + extraOptions = '' + experimental-features = nix-command flakes + ''; + autoOptimiseStore = true; + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + }; + }; + + nixpkgs.config = { + allowUnfree = true; + }; + + networking.hostName = "nixos"; # Define your hostname. + + # The global useDHCP flag is deprecated, therefore explicitly set to false here. + # Per-interface useDHCP will be mandatory in the future, so this generated config + # replicates the default behaviour. + networking.useDHCP = false; + networking.interfaces.enp37s0.useDHCP = true; + networking.interfaces.wlp36s0.useDHCP = true; + + # Set your time zone. + time.timeZone = "America/New_York"; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + wget + micro + firefox + pkgs.gnome.gnome-tweaks + ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # pinentryFlavor = "gnome3"; + # }; + + # List services that you want to enable: + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + programs.adb.enable = true; + + programs.zsh.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.michael = { + isNormalUser = true; + description = "Michael Thomas"; + extraGroups = [ "wheel" "docker" "adbusers" ]; # Enable ‘sudo’ for the user. + + shell = pkgs.zsh; + }; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "20.03"; # Did you read the comment? + +} \ No newline at end of file diff --git a/machines/kitchen/hardware-configuration.nix b/machines/kitchen/hardware-configuration.nix new file mode 100644 index 0000000..32d81e5 --- /dev/null +++ b/machines/kitchen/hardware-configuration.nix @@ -0,0 +1,37 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + boot.resumeDevice = "/dev/disk/by-uuid/9d98ce9b-236f-4a03-910a-84c5d5f12f03"; + boot.supportedFilesystems = [ "ntfs" ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/9d98ce9b-236f-4a03-910a-84c5d5f12f03"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/D725-6983"; + fsType = "vfat"; + }; + + swapDevices = [ + { + device = "/swapfile"; + priority = 0; + size = 2048; + } + ]; + + nix.maxJobs = lib.mkDefault 12; + # High-DPI console + console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz"; +} \ No newline at end of file diff --git a/user/machines/kitchen/config.nix b/user/machines/kitchen/config.nix new file mode 100644 index 0000000..1dd1750 --- /dev/null +++ b/user/machines/kitchen/config.nix @@ -0,0 +1,3 @@ +{ + allowUnfree = true; +} diff --git a/user/machines/kitchen/home.nix b/user/machines/kitchen/home.nix new file mode 100644 index 0000000..918fc12 --- /dev/null +++ b/user/machines/kitchen/home.nix @@ -0,0 +1,20 @@ +{ config, pkgs, ... }: + +{ + imports = [ + ../../modules/home-manager.nix + ../../modules/fonts.nix + ../../modules/git.nix + ../../modules/git_nixos.nix + ../../modules/gnome.nix + ../../modules/dev.nix + ../../modules/vscode.nix + ../../modules/zsh.nix + ]; + + home.packages = with pkgs; [ + neofetch + fortune + ]; + +} \ No newline at end of file