# 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 = false; boot.loader.grub.extraEntries = '' set timeout=5 menuentry "Windows" { insmod chain insmod ntfs search --set=root --fs-uuid 72AEB04AAEB0089D set root=(hd1,msdos1) chainloader +1 } ''; time.timeZone = "Europe/Berlin"; 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 ntfs3g sshfsFuse pavucontrol ]; # 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.mutableUsers = false; users.extraUsers.root = let template = (import users/gkleen.nix); in { inherit (template) shell; openssh.authorizedKeys.keyFiles = template.openssh.authorizedKeys.keyFiles; }; users.extraGroups.media = { gid = 498; members = [ "gkleen" ]; }; 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"; }; 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; hardware.pulseaudio.enable = true; sound = { enable = false; extraConfig = '' defaults.pcm.!card 1 ''; }; boot.blacklistedKernelModules = [ "snd_hda_intel" ]; nixpkgs.config.allowUnfree = true; nix = { binaryCaches = [ "https://cache.nixos.org" ]; binaryCachePublicKeys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ]; extraOptions = '' binary-caches-parallel-connections = 10 ''; }; environment.etc."systemd/sleep.conf" = { enable = true; text = '' [Sleep] HibernateMode=shutdown platform ''; }; # systemd.automounts = [ # { enable = true; # where = "/var/media"; # automountConfig = { # DirectoryMode = "555"; # }; # wantedBy = [ "remote-fs.target" ]; # } # ]; # systemd.mounts = [ # { enable = true; # where = "/var/media"; # what = "media@hel.asgard.yggdrasil:/var/media"; # type = "fuse.sshfs"; # options = "idmap=user,IdentityFile=/home/gkleen/.ssh/media@hel,allow_other,reconnect,_netdev"; # mountConfig = { # Environment = "PATH=/run/current-system/sw/bin:/run/current/system/sw/sbin"; # DirectoryMode = "555"; # }; # } # ]; services.wakeonlan.interfaces = [ { interface = "enp2s0"; } ]; }