commit 0c8d4ae178e3b42af62dcfa47cb5c091a4ac98a3 Author: biscuit Date: Mon May 5 21:03:01 2025 -0500 initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..57ba80b --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Getting Started + +`nixos-rebuild switch --flake /etc/nixos#HOST_NAME` diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..6e49a16 --- /dev/null +++ b/flake.lock @@ -0,0 +1,65 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746413188, + "narHash": "sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "8a318641ac13d3bc0a53651feaee9560f9b2d89a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1746328495, + "narHash": "sha256-uKCfuDs7ZM3QpCE/jnfubTg459CnKnJG/LwqEVEdEiw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgsveryold": { + "locked": { + "lastModified": 1659446231, + "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-21.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nixpkgsveryold": "nixpkgsveryold" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..bd636f7 --- /dev/null +++ b/flake.nix @@ -0,0 +1,49 @@ +{ + description = "A very basic flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + nixpkgsveryold.url = "github:nixos/nixpkgs?ref=nixos-21.11"; + + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + }; + + #outputs = { self, nixpkgs, nixpkgsveryold }: + #let + # pkgs = nixpkgs.legacyPackages.x86_64-linux; + # pkgsold = nixpkgsveryold.legacyPackages.x86_64-linux; + #in + #{ + #packages.x86_64-linux.hello = pkgs.hello; + #packages.x86_64-linux.default = pkgs.hello; + #devShells.x86_64-linux-default = pkgs.mkShell { + # buildInputs = [ pkgs.neovim pkgsold.vim ]; + # }; + #}; + + outputs = { self, nixpkgs, home-manager, ... } @ inputs: + let + system = "x86_64-linux"; + lib = nixpkgs.lib; + extraSpecialArgs = { inherit system inputs; }; + specialArgs = { inherit system inputs; }; + in { + nixosConfigurations = { + biscuit = lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = extraSpecialArgs; + modules = [ + ./nixos/configuration.nix + home-manager.nixosModules.home-manager { + home-manager = { + useGlobalPkgs = true; + users.lsoriano = import ./home-manager/home.nix; + }; + } + ]; + }; + + }; + }; +} diff --git a/home-manager/home.nix b/home-manager/home.nix new file mode 100644 index 0000000..0a34753 --- /dev/null +++ b/home-manager/home.nix @@ -0,0 +1,10 @@ +{ inputs, config, pkgs, ... }: + +{ + home.username = "lsoriano"; + home.homeDirectory = "/home/lsoriano"; + + programs.bash.enable = true; + home.stateVersion = "23.11"; # Adjust to your system version +} + diff --git a/nixos/configuration.nix b/nixos/configuration.nix new file mode 100644 index 0000000..4de289a --- /dev/null +++ b/nixos/configuration.nix @@ -0,0 +1,66 @@ +{ config, pkgs, inputs, ... }: { + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "America/Chicago"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.lsoriano = { + isNormalUser = true; + description = "Lee Roi Daniel Soriano"; + extraGroups = [ "networkmanager" "wheel" ]; + packages = with pkgs; + []; + }; + + # List packages installed in system profile. + environment.systemPackages = with pkgs; [ + vim # Default editor + wget + git + ]; + + # Enable the OpenSSH daemon. + services.openssh.enable = true; + + # Enable experimental features + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # System state version + system.stateVersion = "24.11"; # Ensure this matches your NixOS version +} + diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix new file mode 100644 index 0000000..0170a82 --- /dev/null +++ b/nixos/hardware-configuration.nix @@ -0,0 +1,41 @@ +# 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 = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/8552e23a-af9f-4af8-947f-9ea6ff1e7195"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/00BB-80E9"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/2a916b88-8039-481b-9c30-4edd0f329eb3"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.eno1.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}