From 086e0f60c01730cacd716f14115bef99774f6957 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Sun, 21 Oct 2018 14:55:27 +0200 Subject: Setup trillian (MacBook) --- modules/development/base.nix | 15 ++++-- modules/development/javascript.nix | 18 +++++--- modules/programs/dotfiles.nix | 9 +++- modules/programs/shell.nix | 10 ++-- trillian.nix | 93 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 129 insertions(+), 16 deletions(-) create mode 100644 trillian.nix diff --git a/modules/development/base.nix b/modules/development/base.nix index 12145a5..b0ab4e3 100644 --- a/modules/development/base.nix +++ b/modules/development/base.nix @@ -10,18 +10,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 1d25ae8..37b7865 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 467665f..2e3f44a 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 b7bbd8f..d59f9fb 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 0000000..07bcb5d --- /dev/null +++ b/trillian.nix @@ -0,0 +1,93 @@ +{ 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; + + 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 -- cgit 1.4.1