# 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 # Overlays ]; # Use the GRUB 2 boot loader. # boot.loader.grub.enable = true; # boot.loader.grub.version = 2; # boot.loader.grub.efiSupport = true; # boot.loader.grub.efiInstallAsRemovable = true; # boot.loader.efi.efiSysMountPoint = "/boot/efi"; # Define on which hard drive you want to install Grub. # boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only # systemd-boot boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.configurationLimit = 64; boot.loader.efi.canTouchEfiVariables = true; boot.earlyVconsoleSetup = true; system.autoUpgrade.enable = true; networking.hostName = "nixpad"; # Define your hostname. networking.networkmanager.enable = true; networking.networkmanager.wifi.scanRandMacAddress = false; # 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.enp0s25.useDHCP = true; networking.interfaces.wlp3s0.useDHCP = true; networking.interfaces.wwp0s20u4c2i12.useDHCP = true; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; fonts = { enableDefaultFonts = true; fonts = with pkgs; [ source-code-pro fira-code fira-code-symbols font-awesome_5 ]; fontconfig = { enable = true; defaultFonts = { monospace = [ "Fira Code" ]; }; }; }; # Select internationalisation properties. i18n = { consoleKeyMap = "us"; defaultLocale = "en_US.UTF-8"; }; # 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; [ # System utilities curl fish git htop tmux tree vim wget ]; # 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; }; programs = { fish.enable = true; seahorse.enable = true; light.enable = true; }; # List services that you want to enable: services = { fprintd.enable = true; openssh.enable = true; clipmenu.enable = true; geoclue2.enable = true; printing.enable = true; gnome3.gnome-keyring.enable = true; xserver = { enable = true; layout = "us"; config = '' Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection ''; # Enable touchpad support. libinput = { enable = true; naturalScrolling = true; }; desktopManager = { default = "home-manager"; session = [{ name = "home-manager"; start = '' ${pkgs.runtimeShell} $HOME/.hm-xsession & waitPID=$! ''; }]; }; displayManager = { lightdm = { enable = true; autoLogin = { enable = true; user = "mat"; }; }; }; }; }; # Enable sound. sound.enable = true; # Hardware switches hardware = { pulseaudio.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.mat = { isNormalUser = true; shell = pkgs.fish; extraGroups = [ "wheel" # Enable ‘sudo’ for the user. "networkmanager" "audio" "video" ]; }; home-manager.users.mat = import ./home.nix; # Don't ask for my password *quite* as often. security.sudo.extraConfig = "Defaults timestamp_timeout=60"; # This value determines the NixOS release with which your system is to be # compatible, in order to avoid breaking some software such as database # servers. You should change this only after NixOS release notes say you # should. system.stateVersion = "19.09"; # Did you read the comment? }