blob: f8ef5241b8aaeb99e17e447cc4e6813ec349085b (
plain) (
blame)
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
|
{ config, pkgs, ... }:
{
# Kernel
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "firewire_ohci" ];
boot.kernelModules = [ "kvm-intel" ];
# Use the GRUB 2 boot loader.
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
# Define on which hard drive you want to install Grub.
boot.loader.grub.device = "/dev/sda";
boot.initrd.luks.devices = [ { device = "/dev/sda2"; name = "cryptroot"; } ];
hardware.trackpoint = {
enable = true;
emulateWheel = true;
speed = 250;
sensitivity = 140;
};
fileSystems."/" = {
device = "/dev/dm-0";
fsType = "btrfs";
};
fileSystems."/boot" = {
device = "/dev/sda1";
fsType = "ext3";
};
nix.maxJobs = 2;
networking.hostName = "katara";
networking.networkmanager.enable = true;
networking.firewall.enable = true;
# Programmer’s dilemma
networking.firewall.allowedTCPPortRanges = [
{ from = 8000; to = 8005; }
{ from = 8080; to = 8085; }
];
# Select internationalisation properties.
i18n = {
consoleFont = "lat9w-16";
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
};
# List packages installed in system profile. To search by name, run:
# -env -qaP | grep wget
environment.systemPackages =
let
haskellPkgs = with pkgs.haskellngPackages; [
ghc
cabal-install
cabal2nix
];
in with pkgs; [
ack
curl
emacs
nix-repl
fish
mkpasswd
git
tmux
vim
wget
zsh
] ++ haskellPkgs;
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
services.xserver.layout = "de";
services.xserver.xkbOptions = "eurosign:e";
# services.xserver.windowManager.xmonad.enable = true;
services.xserver.desktopManager.gnome3.enable = true;
# redshift
services.redshift = {
enable = true;
latitude = "48";
longitude = "10";
};
time.timeZone = "Europe/Berlin";
# locate
services.locate = {
enable = true;
extraFlags = ["--add-prunepaths /nix/store"];
};
# Nobody wants mutable state. :)
users.mutableUsers = false;
users.extraUsers =
let authKeys = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJhthfk38lzDvoI7lPqRneI0yBpZEhLDGRBpcXzpPSu+V0YlgrDix5fHhBl+EKfw4aeQNvQNuAky3pDtX+BDK1b7idbz9ZMCExy2a1kBKDVJz/onLSQxiiZMuHlAljVj9iU4uoTOxX3vB85Ok9aZtMP1rByRIWR9e81/km4HdfZTCjFVRLWfvo0s29H7l0fnbG9bb2E6kydlvjnXJnZFXX+KUM16X11lK53ilPdPJdm87VtxeSKZ7GOiBz6q7FHzEd2Zc3CnzgupQiXGSblXrlN22IY3IWfm5S/8RTeQbMLVoH0TncgCeenXH7FU/sXD79ypqQV/WaVVDYMOirsnh/ philip@nyx"];
in {
philip = rec {
name = "philip";
group = "users";
extraGroups = [ "wheel" "networkmanager" ];
uid = 1000;
createHome = true;
home = "/home/philip";
passwordFile = "${home}/.config/passwd";
# password = "test"; # in case of emergency, break glass
shell = "/run/current-system/sw/bin/bash";
openssh.authorizedKeys.keys = authKeys;
};
};
# fix for emacs
programs.bash.promptInit = "PS1=\"# \"";
}
|