diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2016-05-12 23:04:51 +0200 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2016-05-12 23:04:51 +0200 |
commit | b79e59b6a89b5053460a2c72fdf05fe475a50f37 (patch) | |
tree | 163b51cec2eb4e24dc39fd20dd7f78308fa83fe0 /hel.nix | |
parent | 5370b5df1431cb295dc4ef551c59296418f25a6a (diff) | |
download | nixos-b79e59b6a89b5053460a2c72fdf05fe475a50f37.tar nixos-b79e59b6a89b5053460a2c72fdf05fe475a50f37.tar.gz nixos-b79e59b6a89b5053460a2c72fdf05fe475a50f37.tar.bz2 nixos-b79e59b6a89b5053460a2c72fdf05fe475a50f37.tar.xz nixos-b79e59b6a89b5053460a2c72fdf05fe475a50f37.zip |
Hel
Diffstat (limited to 'hel.nix')
-rw-r--r-- | hel.nix | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/hel.nix b/hel.nix new file mode 100644 index 00000000..815d283a --- /dev/null +++ b/hel.nix | |||
@@ -0,0 +1,126 @@ | |||
1 | # Edit this configuration file to define what should be installed on | ||
2 | # your system. Help is available in the configuration.nix(5) man page | ||
3 | # and in the NixOS manual (accessible by running ‘nixos-help’). | ||
4 | |||
5 | { config, pkgs, ... }: | ||
6 | |||
7 | { | ||
8 | imports = | ||
9 | [ # Include the results of the hardware scan. | ||
10 | ./hel/hw.nix | ||
11 | ./hel/boot.nix | ||
12 | ./users.nix | ||
13 | ./custom/zsh.nix | ||
14 | ./custom/tinc/def.nix | ||
15 | ]; | ||
16 | |||
17 | networking = { | ||
18 | hostName = "hel"; | ||
19 | wireless = { | ||
20 | enable = true; | ||
21 | userControlled = { | ||
22 | enable = true; | ||
23 | group = "network"; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | firewall = { | ||
28 | enable = true; | ||
29 | allowedTCPPorts = [ 22 # ssh | ||
30 | ]; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | powerManagement.enable = true; | ||
35 | |||
36 | i18n = { | ||
37 | consoleFont = "lat9w-16"; | ||
38 | consoleKeyMap = "dvp"; | ||
39 | defaultLocale = "en_US.UTF-8"; | ||
40 | }; | ||
41 | |||
42 | environment.systemPackages = with pkgs; [ | ||
43 | git | ||
44 | slock | ||
45 | ]; | ||
46 | |||
47 | services = { | ||
48 | logind.extraConfig = '' | ||
49 | HandleLidSwitch=suspend | ||
50 | ''; | ||
51 | |||
52 | openssh.enable = true; | ||
53 | |||
54 | xserver = { | ||
55 | enable = true; | ||
56 | |||
57 | layout = "us"; | ||
58 | xkbVariant = "dvp"; | ||
59 | xkbOptions = "compose:caps"; | ||
60 | |||
61 | displayManager.slim = { | ||
62 | enable = true; | ||
63 | defaultUser = "gkleen"; | ||
64 | }; | ||
65 | |||
66 | desktopManager = { | ||
67 | default = "none"; | ||
68 | xterm.enable = false; | ||
69 | }; | ||
70 | |||
71 | windowManager = { | ||
72 | default = "xmonad"; | ||
73 | xmonad = { | ||
74 | enable = true; | ||
75 | enableContribAndExtras = true; | ||
76 | extraPackages = haskellPackages: (with haskellPackages; []); | ||
77 | }; | ||
78 | }; | ||
79 | |||
80 | synaptics.enable = false; | ||
81 | }; | ||
82 | |||
83 | ntp.enable = false; | ||
84 | timesyncd.enable = true; | ||
85 | |||
86 | customTinc.networks = (pkgs.callPackage ./custom/tinc/yggdrasil.nix { | ||
87 | name = "hel"; | ||
88 | ipConf = { | ||
89 | ip4 = [ { address = "10.141.5.1"; prefixLength = 16; } ]; | ||
90 | }; | ||
91 | }); | ||
92 | }; | ||
93 | |||
94 | users = { | ||
95 | extraUsers.root = let template = (import users/gkleen.nix); | ||
96 | in { inherit (template) shell hashedPassword; } | ||
97 | }; | ||
98 | |||
99 | users.extraUsers.gkleen = { | ||
100 | name = "gkleen"; | ||
101 | extraGroups = [ "wheel" "wlan" "lp" "scanner" "dialout" "vboxusers" ]; | ||
102 | group = "users"; | ||
103 | uid = 1000; | ||
104 | createHome = true; | ||
105 | home = "/home/gkleen"; | ||
106 | shell = "/run/current-system/sw/bin/zsh"; | ||
107 | }; | ||
108 | |||
109 | users.extraGroups = { network = {}; }; | ||
110 | |||
111 | security = { | ||
112 | sudo.extraConfig = '' | ||
113 | Cmnd_Alias SYSCTRL = /run/current-system/sw/sbin/shutdown, /run/current-system/sw/sbin/reboot, /run/current-system/sw/sbin/halt, /run/current-system/sw/bin/systemctl | ||
114 | %wheel ALL=(ALL) NOPASSWD: SYSCTRL | ||
115 | ''; | ||
116 | |||
117 | setuidPrograms = ["slock" "mount" "mount.nfs" "umount"]; | ||
118 | }; | ||
119 | |||
120 | time.timeZone = "Europe/Berlin"; | ||
121 | |||
122 | hardware.pulseaudio = { | ||
123 | enable = true; | ||
124 | }; | ||
125 | } | ||
126 | |||