cleverca22
4/15/2017 - 12:28 AM

gistfile1.txt

{ config, pkgs, ... }:
let
  simgrid2 = pkgs.stdenv.mkDerivation {
    name = "simgrid2";
    buildInputs = with pkgs; [ simgrid ];
  };
in {
  imports = [
    ./hardware-configuration.nix    
  ];

  boot.loader.grub = {
    enable = true;
    version = 2;
    device = "/dev/sdb";
  };

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  boot.kernelPackages = pkgs.linuxPackages_4_9;

  # filesystems = {
  #   "/home/sophia/hdd/" = { 
  #     device = "dev/sda";
  #   };
  # };

  networking = {
    hostName = "nixos";
    networkmanager.enable = true;
  };

  i18n = {
    consoleFont = "Lat2-Terminus16";
    consoleKeyMap = "us";
    defaultLocale = "en_US.UTF-8";
  };

  time.timeZone = "America/New_York";

  nixpkgs.config = {
    allowUnfree = true;
    import = /root/.nixpkgs/config.nix;
    packageOverrides = super: let self = super.pkgs; in
    {
      myHaskellEnv = self.haskellPackages.ghcWithHoogle
                       (haskellPackages: with haskellPackages; [
                         # libraries
                         arrows
                         async 
                         cgi 
                         criterion 
                         ghc-core 
                         mueval
                         either-unwrap 
                         prelude-extras
                         # tools
                         cabal-install
                         haskintex
                       ]);
   };
  };

  environment.systemPackages = with pkgs; [
    simgrid2
    wget
    networkmanagerapplet
    dhcpcd
    gnumake
    pcre
    pkgconfig
    hfsprogs
    dmg2img
    p7zip
    firefox
    irssi
    gimp-with-plugins
    git
    vim
    brackets
    mitscheme
    guile
    chicken
    chez
    pltScheme
    clojure
    leiningen
    maven
    openjdk
    go
    myHaskellEnv
    cabal2nix
    less
    nodejs
    closurecompiler
    gcc
    llvm
    clang
    cmake
    boost
    dmd
    python3
    puredata
    arduino
    processing
    gnuplot
    libreoffice
    anki
    rlwrap
    findutils
    simgrid
    xorg.xf86inputsynaptics
    (emacsWithPackages (with emacs24PackagesNg; [
      powerline
      lush-theme
      clojure-mode
      haskell-mode
      geiser
      web-mode
      js-comint
      gnuplot-mode
      evil
    ])) 
    # unfree
    google-chrome
    dropbox
    spotify
    skype
    xflux
    (oraclejdk8distro true true)
  ];
  environment.shellAliases.ghci = "ghci -ghci-script
    ${pkgs.writeText "ghci.conf"
      '':def hoogle \s -> return $ ":! hoogle search -cl --count=15 \"" ++ s ++ "\""'
        :def doc \s -> return $ ":! hoogle search -cl --info \"" ++ s ++ "\""''
     }";

  # Enable the OpenSSH server.
  # services.openssh.enable = true;

  # Eable CUPS to print documents
  # services.printing.enable = true;

  services.xserver = {
    enable = true;
    layout = "us";
    xkbOptions = "eurosign:e";
    # synaptics.enable = true;
    desktopManager.default = "gnome3";

    # Gnome3 Desktop Environment
    desktopManager.gnome3 = {
      enable = true;
      sessionPath = [
        pkgs.gnome3.gnome_shell
        pkgs.gnome3.gnome-shell-extensions
      ];
    };

    # KDE Desktop Manager
    # displayManager.kdm.enable = true;
    # desktopManager.kde4.enable = true;
    
    # XMonad Window Manager
    windowManager.xmonad = {
      enable = true;
      enableContribAndExtras = true;
    };
  };

  fonts = {
     enableFontDir = true;
     enableGhostscriptFonts = true;
     fonts = with pkgs; [
       corefonts  # Micrsoft free fonts
       inconsolata  # monospaced
       ubuntu_font_family  # Ubuntu fonts
       unifont # some international languages
       dejavu_fonts
       vistafonts # contains Consolas
       emojione
     ];
   };

  users.extraUsers.guest = {
  };

  # The NixOS release to be compatible with for stateful data such as databases.
  system.stateVersion = "16.09";

}