# 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, ... }: rec { imports = [ # Include the results of the hardware scan. ./vali-hw.nix ./custom/zsh.nix ./users.nix ]; # Use the GRUB 2 boot loader. boot.loader.grub.enable = true; boot.loader.grub.version = 2; boot.loader.grub.extraEntriesBeforeNixOS = true; boot.loader.grub.extraEntries = '' set timeout=-1 menuentry "Windows" { insmod chain insmod ntfs search --set=root --fs-uuid 72AEB04AAEB0089D set root=(hd1,msdos1) chainloader +1 } ''; networking.hostName = "vali"; # Define your hostname. networking.hostId = "03dda86d"; # networking.wireless.enable = true; # Enables wireless. # Select internationalisation properties. i18n = { consoleFont = "lat9w-16"; # consoleKeyMap = pkgs.fetchurl { # url = https://f.141.li/f569c4afc6/dvp.map.gz; # sha256 = "0e859211cfe16a18a3b9cbf2ca3e280a23a79b4e40b60d8d01d0fde7336b6d50"; # }; consoleKeyMap = custom/dvp.map.gz; defaultLocale = "en_US.UTF-8"; }; # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget environment.systemPackages = with pkgs; [ git zsh vim tmux mosh ]; # List services that you want to enable: # Enable the OpenSSH daemon. services.openssh.enable = true; # Enable CUPS to print documents. # services.printing.enable = true; # Enable the X11 windowing system. # services.xserver.enable = true; # services.xserver.layout = "us"; # services.xserver.xkbOptions = "eurosign:e"; # Enable the KDE Desktop Environment. # services.xserver.displayManager.kdm.enable = true; # services.xserver.desktopManager.kde4.enable = true; users.extraUsers.root = let template = (import users/gkleen.nix); in { inherit (template) shell; openssh.authorizedKeys.keyFiles = template.openssh.authorizedKeys.keyFiles; }; system.activationScripts = let setupUsers = pkgs.callPackage custom/dotfiles.nix {}; toRec = name : { dir = "/home/${name}"; owner = name; group = "users"; }; in setupUsers (builtins.map toRec [ "gkleen" ]); services.xserver = { xrandrHeads = [ "DP-4" "DP-2" "DP-0" ]; windowManager.xmonad = { enable = true; enableContribAndExtras = true; extraPackages = hsPkgs: [ hsPkgs.hostname ]; }; windowManager.default = "xmonad"; displayManager = { slim = { enable = true; defaultUser = "gkleen"; }; desktopManagerHandlesLidAndPower = false; sessionCommands = '' ${pkgs.xorg.xrandr}/bin/xrandr --output DP-2 --primary --mode '2560x1440' # services.xserver.xrandrHeads is proving unreliable ${pkgs.xorg.xrandr}/bin/xrandr --output DP-4 --left-of DP-2 ${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --right-of DP-2 ${pkgs.xlibs.xset}/bin/xset -dpms ${pkgs.xlibs.xset}/bin/xset s off ${pkgs.xlibs.xsetroot}/bin/xsetroot -mod 10 10 -bg black -fg '#222' ${pkgs.autocutsel}/bin/autocutsel -selection CLIPBOARD -fork ${pkgs.autocutsel}/bin/autocutsel -selection PRIMARY -fork ''; }; desktopManager.xterm = { enable = false; }; desktopManager.default = "none"; enable = true; autorun = true; layout = "us"; xkbVariant = "dvp"; xkbOptions = "compose:caps"; videoDrivers = [ "nvidia" ]; }; hardware.opengl.driSupport32Bit = true; sound = { enable = true; extraConfig = '' defaults.pcm.!card 2 ''; }; nixpkgs.config.allowUnfree = true; nix = { binaryCaches = [ "https://hydra.nixos.org" "https://cache.nixos.org" ]; binaryCachePublicKeys = [ "hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs=" ]; }; }