trillian.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | { config, pkgs, ... }:
let emacsPackage = import ./packages/emacs.nix {
pkgs = pkgs.unstable;
emacs = pkgs.unstable.emacs;
};
in
{
imports = [
./private/default.nix
./modules/development/base.nix
./modules/development/javascript.nix
./modules/programs/accounting.nix
./modules/programs/dotfiles.nix
./modules/programs/shell.nix
];
nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
unstable = import <nixpkgs-unstable> {
config = config.nixpkgs.config;
};
};
};
networking = {
hostName = "trillian";
knownNetworkServices = [ "Wi-Fi" "USB 10/100/1000 LAN" ];
dns = [
"::1"
"127.0.0.1"
];
};
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs;
[
mosh
emacsPackage
aspell
aspellDicts.en
darwin-zsh-completions
];
# 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;
services.activate-system.enable = true;
# programs.nix-index.enable = true;
programs.vim = {
enable = true;
enableSensible = true;
};
programs.zsh.enable = true;
programs.zsh.enableBashCompletion = 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;
nixpkgs.overlays = [
(self: super: {
darwin-zsh-completions = super.runCommandNoCC "darwin-zsh-completions-0.0.0"
{ preferLocalBuild = true; }
''
mkdir -p $out/share/zsh/site-functions
cat <<-'EOF' > $out/share/zsh/site-functions/_darwin-rebuild
#compdef darwin-rebuild
#autoload
_nix-common-options
local -a _1st_arguments
_1st_arguments=(
'switch:Build, activate, and update the current generation'\
'build:Build without activating or updating the current generation'\
'check:Build and run the activation sanity checks'\
'changelog:Show most recent entries in the changelog'\
)
_arguments \
'--list-generations[Print a list of all generations in the active profile]'\
'--rollback[Roll back to the previous configuration]'\
{--switch-generation,-G}'[Activate specified generation]'\
'(--profile-name -p)'{--profile-name,-p}'[Profile to use to track current and previous system configurations]:Profile:_nix_profiles'\
'1:: :->subcmds' && return 0
case $state in
subcmds)
_describe -t commands 'darwin-rebuild subcommands' _1st_arguments
;;
esac
EOF
'';
})
];
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
# You should generally set this to the total number of logical cores in your system.
# $ sysctl -n hw.ncpu
nix.maxJobs = 4;
nix.buildCores = 2;
}
# vim: sw=2 sts=2 expandtab autoindent smarttab
|