]> Git — Sourcephile - sourcephile-nix.git/blob - nixos/defaults.nix
fix .envrc
[sourcephile-nix.git] / nixos / defaults.nix
1 { pkgs, lib, config, ... }:
2 let inherit (lib) types;
3 in
4 {
5 imports = [
6 ./modules.nix
7 ./defaults/predictable-interface-names.nix
8 ];
9 config = {
10 nix = {
11 #binaryCaches = lib.mkForce [];
12 extraOptions = ''
13 '';
14 # Use gc.automatic to keep disk space under control.
15 gc = {
16 automatic = true;
17 dates = "weekly";
18 options = "--delete-older-than 30d";
19 };
20 nixPath = [
21 "nixpkgs=${pkgs.path}"
22 ];
23 };
24
25 nixpkgs = {
26 config = {
27 allowUnfree = false;
28 /*
29 packageOverrides = pkgs: {
30 postfix = pkgs.postfix.override {
31 withLDAP = true;
32 };
33 };
34 */
35 };
36 #overlays = import ../overlays.nix;
37 };
38
39 documentation.nixos = {
40 enable = false; # NOTE: useless on a server, and CPU intensive.
41 };
42
43 # Clean /tmp automatically on boot.
44 boot.cleanTmpDir = true;
45
46 time = {
47 timeZone = "Europe/Paris";
48 };
49
50 i18n = {
51 defaultLocale = "fr_FR.UTF-8";
52 };
53
54 console = {
55 font = "Lat2-Terminus16";
56 keyMap = "fr";
57 };
58
59 services = {
60 openssh = {
61 enable = true;
62 passwordAuthentication = false;
63 extraConfig = ''
64 '';
65 };
66 journald = {
67 extraConfig = ''
68 SystemMaxUse=50M
69 '';
70 };
71 };
72
73 environment = {
74 systemPackages = with pkgs; [
75 binutils
76 #dnsutils
77 dstat
78 htop
79 inetutils
80 iotop
81 lsof
82 mailutils
83 multitail
84 ncdu
85 pv
86 swaplist
87 tcpdump
88 tmux
89 tree
90 vim
91 which
92 ];
93
94 etc."inputrc".text = lib.readFile defaults/readline/inputrc;
95 };
96
97 programs = {
98 bash = {
99 interactiveShellInit = ''
100 bind '"\e[A":history-search-backward'
101 bind '"\e[B":history-search-forward'
102
103 # Ignore duplicate commands, ignore commands starting with a space
104 export HISTCONTROL=erasedups:ignorespace
105 export HISTSIZE=42000
106
107 # Append to the history instead of overwriting (good for multiple connections)
108 shopt -s histappend
109 '';
110 shellAliases = {
111 cl = "clear";
112 l = "ls -alh";
113 ll = "ls -l";
114 ls = "ls --color=tty";
115 mem = "ps -e -orss=,user=,args= | sort -b -k1,1n";
116
117 s="sudo systemctl";
118 s-u="systemctl --user";
119
120 nixos-clean="sudo nix-collect-garbage -d";
121 nixos-history="sudo nix-env --list-generations --profile /nix/var/nix/profiles/system";
122 nixos-rollback="sudo nixos-rebuild switch --rollback";
123 nixos-update="sudo nix-channel --update";
124 nixos-upgrade="sudo nixos-rebuild switch";
125 nixos-upstream="sudo nix-channel --list";
126 };
127 };
128 mtr.enable = true;
129 };
130 };
131 }