# 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; # Define on which hard drive you want to install Grub. boot.loader.grub.devices = [ "/dev/sda" "/dev/sdb" ]; boot.loader.grub.extraEntriesBeforeNixOS = true; boot.loader.grub.extraEntries = '' menuentry "Windows" { chainloader (hd1,msdos1) } ''; # networking.hostName = "nixos"; # 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"; }; 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 dotfiles = pkgs.fetchgit (rec { name = "dotfiles-${rev}"; url = git://git.yggdrasil.li/dotfiles; rev = "377401ceefea6772915071267625cd02c066f86e"; sha256 = "258e15ff69afaa663541b1691e1385d43b74d086891e4a0009d3507ab6cfbbe8"; }); setupUsers = names : pkgs.lib.listToAttrs (builtins.map setupUser names); setupUser = name : { inherit name; value = '' cd ${dotfiles} ${pkgs.findutils}/bin/find . -type d -print0 | ${pkgs.findutils}/bin/xargs -0 -I '{}' -- mkdir -p "/home/${name}/{}" ${pkgs.findutils}/bin/find . -type f -print0 | ${pkgs.findutils}/bin/xargs -0 -I '{}' -- ln -s -f "${dotfiles}/{}" "/home/${name}/{}" ''; }; in setupUsers [ "gkleen" ]; }