cleverca22
7/16/2015 - 9:39 PM

configuration.nix

{ lib, config, pkgs, ... }:

let 
        commonPackages = with pkgs; [ wget screen vim nix-repl usbutils nox ];
        perArchConfig = if builtins.currentSystem == "armv6l-linux" then {
                FS = {
                        "/nix/var/nix/profiles" = { device="/nix/var/nix/profiles.arm"; options="bind"; };
                };
        } else {
                FS = {
                        "/nix/var/nix/profiles" = { device="/nix/var/nix/profiles.x86"; options="bind"; };
                };
        };
in

lib.recursiveUpdate {
        services = {
                openssh = {
                        enable = true;
                        permitRootLogin = "yes";
                };
                locate.enable = true;
                ntp.enable = true;
                avahi = {
                        enable = true;
                        nssmdns = true;
                };
        };
        fileSystems = {
                "/" = { device = "UUID=a270b863-9e3e-4812-adf8-215e695de3d8"; fsType = "ext4"; };
                "/boot" = { device = "UUID=2178-694E"; };
                "/media/videos/4tb/" = { device="c2d:/media/videos/4tb"; fsType = "nfs"; };
        } // perArchConfig.FS;
} (if builtins.currentSystem != "armv6l-linux" then {
        boot = {
                loader.grub = {
                        memtest86.enable = true;
                        version = 2;
                        enable = true;
                        device = "nodev";
                };
                initrd.availableKernelModules = [ "ata_piix" "xen_blkfront" ];
        };
        environment.systemPackages = with pkgs; [ firefox firefoxWrapper gnome3.eog mplayer ] ++ commonPackages;
} else {
        imports = [<nixos/modules/profiles/minimal.nix>];
        services.nixosManual.enable = false; # FIXME: workaround SANE not evaluating on ARM
        services.xserver = {
                enable = true;
                displayManager.slim.enable = true;
                desktopManager.xfce.enable = false;
                desktopManager.xterm.enable = true;
        };
        hardware.opengl.enable = false;
        boot = {
                loader = {
                        grub.enable = false;
                        generic-extlinux-compatible.enable = true;
                };
                kernelPackages = pkgs.linuxPackages_rpi;
        };
        hardware.sane.enable = false;
        environment.systemPackages = with pkgs; [ ] ++ commonPackages;
})