Add Nix flake configuration

This commit is contained in:
2023-01-02 22:49:03 +00:00
parent df7e3734e0
commit 201a751382
24 changed files with 724 additions and 110 deletions

19
hosts/atlas/README.md Normal file
View File

@ -0,0 +1,19 @@
# Atlas
## Overview
A general purpose mini computer used for web browsing and multimedia.
## Specs
* CPU - Intel Core i7-4790K @ 4.00GHz
* Memory - 8 GB DDR3
* Motherboard - ASRock Z97M-ITX
* GPU - AMD Radeon R9 290X 4GB
### Disks
Device | Partitions _(filesystem, usage)_
--- | ---
Samsung SSD 850 | `/dev/sda1` (NTFS, Windows XP)
Samsung SSD 850 | `/dev/sdb1` (EFI, NixOS Boot) <br> `/dev/sdb2` (ext4, NixOS Root)
### Networks
DHCP on `10.0.1.0/24` subnet.

45
hosts/atlas/default.nix Normal file
View File

@ -0,0 +1,45 @@
{ config, lib, pkgs, ... }:
with lib.my;
{
imports = [
./hardware-configuration.nix
../desktop.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
networking.hostName = "atlas";
networking.networkmanager.enable = true;
nix.package = pkgs.nixFlakes;
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
users.defaultUserShell = pkgs.zsh;
system.stateVersion = "22.11";
modules = {
desktop = {
firefox.enable = true;
};
editors = {
neovim.enable = true;
vscode.enable = true;
};
security = {
gpg.enable = true;
pass.enable = true;
};
shell = {
fzf.enable = true;
git.enable = true;
nnn.enable = true;
zsh.enable = true;
};
};
}

View File

@ -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" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "wl" ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/db92d689-50d4-4301-90f9-122aab198e38";
fsType = "ext4";
};
fileSystems."/boot/efi" =
{ device = "/dev/disk/by-uuid/0720-9BE0";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/fb217be3-c5df-4e70-8032-78bfbe7325cb"; }
];
# 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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true;
}