Add nixos-config

This commit is contained in:
Dave Gallant
2021-01-16 16:55:53 -05:00
parent 7927990d2f
commit 3e13f04043
7 changed files with 277 additions and 1 deletions

View File

@@ -0,0 +1,88 @@
{ config, pkgs, ... }:
{
imports = [ ./hardware.nix ];
nixpkgs.config.allowUnfree = true;
nix = {
package = pkgs.nixFlakes;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages_latest;
networking.hostName = "hephaestus"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Set your time zone.
time.timeZone = "America/Toronto";
# 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.enp34s0.useDHCP = true;
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
# Enable the GNOME 3 Desktop Environment.
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome3.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound.
sound.enable = true;
# Enable 32bit for steam
hardware.pulseaudio.enable = true;
hardware.opengl.driSupport32Bit = true;
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
hardware.pulseaudio.support32Bit = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.dave = {
isNormalUser = true;
extraGroups = [ "wheel" "docker" ];
shell = pkgs.zsh;
};
environment.systemPackages = with pkgs; [ gnome3.gnome-tweaks ];
virtualisation.docker.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Open ports in the firewall.
networking.firewall.enable = true;
system.stateVersion = "unstable";
system.autoUpgrade.enable = true;
# systemd.services.g810-led = {
# description = "Set Logitech G810 Led Profile";
# serviceConfig = {
# ExecStart = "${pkgs.g810-led}/bin/g810-led -p /etc/g610-led/profile";
# Type = "oneshot";
# };
# wantedBy = [ "multi-user.target" ];
# };
}