laptop config, flakes config (#1)
Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
{ config, lib, pkgs, inputs, username, ... }:
|
||||
|
||||
{
|
||||
imports = [ ../modules/services/gpg.nix ];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
htop
|
||||
lsof
|
||||
tree
|
||||
unzip
|
||||
wget
|
||||
zip
|
||||
];
|
||||
|
||||
time.timeZone = "America/New_York";
|
||||
i18n.defaultLocale = "en_US.utf8";
|
||||
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
settings.auto-optimise-store = true;
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
};
|
||||
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
libinput.enable = true;
|
||||
|
||||
displayManager = {
|
||||
defaultSession = "xsession";
|
||||
|
||||
session = [{
|
||||
manage = "desktop";
|
||||
name = "xsession";
|
||||
start = ''
|
||||
exec $HOME/.xsession &
|
||||
waitPID=$!
|
||||
'';
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fonts.packages = [ pkgs.corefonts ];
|
||||
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
modules.gpg.enable = true;
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{ lib, inputs, nixpkgs, home-manager, username, ... }:
|
||||
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs { inherit system; config.allowUnfree = true; };
|
||||
lib = nixpkgs.lib;
|
||||
in
|
||||
{
|
||||
desktop = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs username; };
|
||||
modules = [
|
||||
./desktop
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit username; };
|
||||
home-manager.users.${username}.imports = [(import ./home.nix)] ++ [(import ./desktop/home.nix)];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
laptop = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs username; };
|
||||
modules = [
|
||||
./laptop
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit username; };
|
||||
home-manager.users.${username}.imports = [(import ./home.nix)] ++ [(import ./laptop/home.nix)];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{ pkgs, lib, username, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ./services.nix ];
|
||||
|
||||
networking.hostName = "desktop";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall.allowedTCPPorts = [ ];
|
||||
networking.firewall.allowedUDPPorts = [ ];
|
||||
|
||||
hardware.bluetooth.enable = false;
|
||||
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot/efi";
|
||||
};
|
||||
};
|
||||
|
||||
boot.initrd = {
|
||||
secrets."/crypto_keyfile.bin" = null;
|
||||
luks.devices."luks-3d0f669d-7bb4-49e4-abe2-03872cc1d507" = {
|
||||
device = "/dev/disk/by-uuid/3d0f669d-7bb4-49e4-abe2-03872cc1d507";
|
||||
keyFile = "/crypto_keyfile.bin";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
# 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 = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/f6edfa5b-399b-45d2-bc71-8f91ce6b78cf";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-345b2b05-ff46-438a-bc0e-033afd29b7d5".device = "/dev/disk/by-uuid/345b2b05-ff46-438a-bc0e-033afd29b7d5";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/1DDD-79E1";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/1ecc48d0-d935-4170-9708-784f5745cbea";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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.enp6s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../modules/home/git.nix
|
||||
../../modules/home/zsh.nix
|
||||
];
|
||||
|
||||
modules.git.enable = true;
|
||||
modules.zsh.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [];
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{ config, lib, pkgs, username, ... }:
|
||||
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
programs.keychain.enable = true;
|
||||
programs.keychain.enableZshIntegration = true;
|
||||
|
||||
programs.direnv.enable = true;
|
||||
programs.direnv.enableZshIntegration = true;
|
||||
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "23.05";
|
||||
|
||||
file.".config/nixpkgs/config.nix" = {
|
||||
text = ''
|
||||
{ allowUnfree = true; }
|
||||
'';
|
||||
};
|
||||
|
||||
sessionPath = [
|
||||
"$HOME/go/bin"
|
||||
"$HOME/.local/bin"
|
||||
"$HOME/bin"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{ pkgs, lib, username, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ./services.nix ];
|
||||
|
||||
networking.hostName = "laptop";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall.allowedTCPPorts = [ ];
|
||||
networking.firewall.allowedUDPPorts = [ ];
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot/efi";
|
||||
};
|
||||
};
|
||||
|
||||
boot.initrd = {
|
||||
secrets."/crypto_keyfile.bin" = null;
|
||||
luks.devices."luks-ff01c3e8-9da4-42d8-8be9-e92713f1bebf" = {
|
||||
device = "/dev/disk/by-uuid/dff01c3e8-9da4-42d8-8be9-e92713f1bebf";
|
||||
keyFile = "/crypto_keyfile.bin";
|
||||
};
|
||||
luks.devices."luks-7e6d719a-de54-44fe-a70b-6077a8a78003" = {
|
||||
device = "/dev/disk/by-uuid/7e6d719a-de54-44fe-a70b-6077a8a78003";
|
||||
keyFile = "/root/swap.key";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
# 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" "nvme" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/d4974532-75bd-468d-9128-a340ae38c6d5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/ADC9-9731";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/fdcdd6df-b1d5-45e2-9e2a-8249473868b3"; }
|
||||
];
|
||||
|
||||
# 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.wlp0s20f3.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../modules/home/git.nix
|
||||
../../modules/home/zsh.nix
|
||||
];
|
||||
|
||||
modules.git.enable = true;
|
||||
modules.zsh.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [];
|
||||
}
|
||||
Reference in New Issue
Block a user