# 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 # Cachix caches ./cachix.nix # Overlays ]; # Bootloader boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.configurationLimit = 64; boot.loader.efi.canTouchEfiVariables = true; console.earlySetup = true; console.keyMap = "us"; system.autoUpgrade.enable = true; networking = { hostName = "nixpad"; # Define your hostname. networkmanager = { enable = true; 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. useDHCP = false; interfaces = { enp0s25.useDHCP = true; wlp3s0.useDHCP = true; 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_4 aileron gohufont spleen tamsyn siji unscii ]; fontconfig = { enable = true; defaultFonts = { monospace = [ "Fira Code" ]; }; }; }; # Select internationalisation properties. i18n = { 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 git 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 = false; light.enable = true; nm-applet.enable = true; seahorse.enable = true; ssh = { startAgent = true; }; }; # List services that you want to enable: services = { fprintd = { enable = true; # package = pkgs.fprintd-thinkpad; }; openssh.enable = true; clipmenu.enable = true; geoclue2.enable = true; printing.enable = true; gnome3.gnome-keyring.enable = true; upower.enable = true; xserver = { enable = true; layout = "us"; videoDrivers = [ "intel" ]; deviceSection = '' Option "DRI" "3" Option "TearFree" "true" ''; useGlamor = true; # Enable touchpad support. libinput = { enable = true; naturalScrolling = true; disableWhileTyping = true; }; desktopManager = { session = [{ name = "home-manager"; start = '' ${pkgs.runtimeShell} $HOME/.hm-xsession & waitPID=$! ''; }]; }; displayManager = { defaultSession = "home-manager"; autoLogin = { enable = true; user = "mat"; }; }; }; }; # Enable sound. sound.enable = true; # Hardware switches hardware = { logitech.wireless = { enable = true; # enableGraphical = true; }; opengl = { driSupport32Bit = true; extraPackages32 = [ pkgs.pkgsi686Linux.libva ]; }; pulseaudio = { enable = true; support32Bit = 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"; nix = { binaryCaches = [ "https://hydra.iohk.io" ]; binaryCachePublicKeys = [ "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" ]; }; # 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? }