summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--modules/development/base.nix15
-rw-r--r--modules/development/javascript.nix18
-rw-r--r--modules/programs/dotfiles.nix9
-rw-r--r--modules/programs/shell.nix10
-rw-r--r--trillian.nix95
5 files changed, 131 insertions, 16 deletions
diff --git a/modules/development/base.nix b/modules/development/base.nix
index 777f8bef..5c474ac4 100644
--- a/modules/development/base.nix
+++ b/modules/development/base.nix
@@ -11,18 +11,23 @@
     go
     gocode
 
-    ldns
-    httping
     wrk
-    whois
 
     ag
     ripgrep
 
     httpie
-    http-prompt
     jq
 
     discount
-  ];
+  ] ++ (
+    if !stdenv.isDarwin
+    then [
+      whois
+      ldns
+      httping
+      http-prompt
+    ] else [
+    ]
+  );
 }
diff --git a/modules/development/javascript.nix b/modules/development/javascript.nix
index 1d25ae85..37b78656 100644
--- a/modules/development/javascript.nix
+++ b/modules/development/javascript.nix
@@ -2,8 +2,6 @@
 
 { environment.systemPackages = with pkgs.unstable; [
     nodejs-8_x
-    phantomjs2
-    yarn
 
     nodePackages.tern
     nodePackages.node2nix
@@ -11,13 +9,21 @@
     nodePackages.javascript-typescript-langserver
     nodePackages.eslint_d
 
+    nodePackages.node-gyp
+    nodePackages.node-gyp-build
+    nodePackages.node-pre-gyp
+  ] ++ (
+    if stdenv.isDarwin
+    then
+    [
+    ]
+    else
+    [
     # npm install may use any of these
     binutils
     gcc
     gnumake
     python2
-    nodePackages.node-gyp
-    nodePackages.node-gyp-build
-    nodePackages.node-pre-gyp
-  ];
+    ]
+  );
 }
diff --git a/modules/programs/dotfiles.nix b/modules/programs/dotfiles.nix
index 467665ff..2e3f44aa 100644
--- a/modules/programs/dotfiles.nix
+++ b/modules/programs/dotfiles.nix
@@ -1,9 +1,14 @@
 { config, pkgs, ... }:
 
 { environment.systemPackages = with pkgs; [
-    git
     stow
     fzf
     ghq
-  ];
+  ] ++ (
+    if stdenv.isDarwin
+    then [
+    ] else [
+      git
+    ]
+  );
 }
diff --git a/modules/programs/shell.nix b/modules/programs/shell.nix
index b7bbd8fb..d59f9fb5 100644
--- a/modules/programs/shell.nix
+++ b/modules/programs/shell.nix
@@ -5,9 +5,9 @@
     promptInit = "";
   };
   programs.bash.enableCompletion = true;
+  programs.vim.enable = pkgs.stdenv.isDarwin;
 
   environment.systemPackages = with pkgs; [
-    vim
     pv
     fd
     entr
@@ -23,7 +23,11 @@
     zip
     unzip
     telnet
-
+  ] ++ (
+  if !stdenv.isDarwin
+  then [
+    vim
     unar
-  ];
+  ] else [
+  ]);
 }
diff --git a/trillian.nix b/trillian.nix
new file mode 100644
index 00000000..c2fc05e3
--- /dev/null
+++ b/trillian.nix
@@ -0,0 +1,95 @@
+{ config, pkgs, ... }:
+
+let emacsPackage = import ./packages/emacs.nix {
+  inherit pkgs;
+  emacs = pkgs.emacs25Macport;
+};
+in
+{
+  imports = [
+    ./modules/development/base.nix
+    ./modules/development/javascript.nix
+    ./modules/programs/accounting.nix
+    ./modules/programs/dotfiles.nix
+    ./modules/programs/shell.nix
+  ];
+
+  nixpkgs.config = {
+    packageOverrides = pkgs: {
+      unstable = pkgs;
+    };
+  };
+
+  networking = {
+    hostName = "trillian";
+    knownNetworkServices = [ "Wi-Fi" ];
+    dns = [
+      "2606:4700:4700::1001"
+      "2606:4700:4700::1111"
+      "1.0.0.1"
+      "1.1.1.1"
+    ];
+  };
+
+  # List packages installed in system profile. To search by name, run:
+  # $ nix-env -qaP | grep  wget
+  environment.systemPackages = with pkgs;
+    [
+      mosh
+      emacsPackage
+    ];
+
+  # Use a custom configuration.nix location.
+  # $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
+  # environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix";
+
+  # Auto upgrade nix package and the daemon service.
+  services.nix-daemon.enable = true;
+  services.nix-daemon.enableSocketListener = true;
+  # nix.package = pkgs.nix;
+
+  # programs.nix-index.enable = true;
+
+  programs.vim = {
+    enable = true;
+    enableSensible = true;
+  };
+
+  # Create /etc/bashrc that loads the nix-darwin environment.
+  programs.bash.enable = true;
+  programs.zsh.enable = true;
+  programs.fish.enable = true;
+
+  environment.variables.LANG = "en_GB.UTF-8";
+
+  programs.gnupg = {
+    agent = {
+      enable = true;
+      enableSSHSupport = false;
+    };
+  };
+
+  # launchd.user.agents.emacs-daemon = {
+  #   command = "${emacsPackage}/bin/emacs --daemon";
+  #   serviceConfig = {
+  #     KeepAlive = true;
+  #   };
+  # };
+  # 
+  nix.gc = {
+    automatic = true;
+    options = "--max-freed $((25 * 1024**3 - 1024 * $(df -P -k /nix/store | tail -n 1 | awk '{ print $4 }')))";
+  };
+  nix.daemonNiceLevel = 10;
+  nix.daemonIONice = true;
+
+  # Used for backwards compatibility, please read the changelog before changing.
+  # $ darwin-rebuild changelog
+  system.stateVersion = 3;
+
+  # You should generally set this to the total number of logical cores in your system.
+  # $ sysctl -n hw.ncpu
+  nix.maxJobs = 2;
+  nix.buildCores = 4;
+}
+# vim: sw=2 sts=2 expandtab autoindent smarttab