# 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 ]; 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"; }; 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; []); }; }; synaptics.enable = false; }; ntp.enable = false; timesyncd.enable = true; customTinc.networks = (pkgs.callPackage ./custom/tinc/yggdrasil.nix { name = "hel"; ipConf = { ip4 = [ { address = "10.141.5.1"; prefixLength = 16; } ]; }; }); }; users = { extraUsers.root = let template = (import users/gkleen.nix); in { inherit (template) 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; }; }