# 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. ./hel/hw.nix ./hel/boot.nix ./users.nix ./custom/zsh.nix ./custom/tinc/def.nix ]; system.stateVersion = "16.09"; networking = { hostName = "hel"; wireless = { enable = true; userControlled = { enable = true; group = "network"; }; }; firewall = { enable = true; allowedTCPPorts = [ 22 # ssh ]; }; }; powerManagement.enable = true; i18n = { consoleFont = "lat9w-16"; consoleKeyMap = "dvp"; defaultLocale = "en_US.UTF-8"; }; nixpkgs.config = { packageOverrides = super: let self = super.pkgs; in { linux_4_5 = pkgs.linux_4_5.override { kernelPatches = super.linux_4_5.kernelPatches ++ [ { patch = ./hel/wacom.patch; name = "wacom-fix"; } ]; }; }; }; environment.systemPackages = with pkgs; [ git slock ]; services = { logind.extraConfig = '' HandleLidSwitch=suspend ''; openssh.enable = true; xserver = { enable = true; layout = "us"; xkbVariant = "dvp"; xkbOptions = "compose:caps"; displayManager.slim = { enable = true; defaultUser = "gkleen"; }; desktopManager = { default = "none"; xterm.enable = false; }; windowManager = { default = "xmonad"; xmonad = { enable = true; enableContribAndExtras = true; extraPackages = haskellPackages: (with haskellPackages; []); }; }; wacom.enable = true; multitouch.enable = true; }; ntp.enable = false; timesyncd.enable = true; customTinc.networks = ((import ./custom/tinc/yggdrasil.nix) { inherit (pkgs) stdenv nettools openresolv; name = "hel"; ipConf = { ip4 = [ { address = "10.141.5.1"; prefixLength = 16; } ]; }; }); }; users = { extraUsers.root = { inherit (import ./users/gkleen.nix) shell hashedPassword; }; }; users.extraGroups = { network = {}; }; security = { sudo.extraConfig = '' Cmnd_Alias SYSCTRL = /run/current-system/sw/sbin/shutdown, /run/current-system/sw/sbin/reboot, /run/current-system/sw/sbin/halt, /run/current-system/sw/bin/systemctl %wheel ALL=(ALL) NOPASSWD: SYSCTRL ''; setuidPrograms = ["slock" "mount" "mount.nfs" "umount"]; }; time.timeZone = "Europe/Berlin"; hardware.pulseaudio = { enable = true; }; sound.enable = true; nix.gc = { automatic = true; dates = "daily"; options = "--delete-older-than 30d"; }; }