blob: 2052c12f48371261f390cda341f2321bc5dd624d (
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
127
128
129
130
|
{ inputs, config, lib, pkgs, nurpkgs, user, stateVersion, ... }:
{
imports = (
import ../modules/desktop ++
import ../modules/editor ++
import ../modules/web ++
import ../modules/shell ++
import ../modules/terminal ++
import ../modules/programs ++
import ../modules/games ++
import ../modules/vpn ++
import ../modules/music
);
users.users.${user} = {
isNormalUser = true;
extraGroups = [
"wheel"
"video"
"audio"
"camera"
"networkmanager"
"libvirtd"
];
};
#Timezone
time.timeZone = "America/New_York";
#Locale
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
#Fonts
fonts.packages = with pkgs; [
fira-code
fira-code-symbols
font-awesome
liberation_ttf
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
(nerdfonts.override { fonts = [ "FiraCode" ]; } )
];
#Security
security.rtkit.enable = true;
security.polkit.enable = true;
#Default Packages
environment.systemPackages = with pkgs; [
#Terminal utils
btop #Resource monitor
coreutils #GNU Utils
git #VC
pciutils #PCI
usbutils #USB
gnutar
unzip
zip
wget
#Devtools
binutils
clang-tools
gcc
gnumake
gdb
];
programs = {
dconf.enable = true;
neovim.enable = true;
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
};
services = {
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
#SSH
services.openssh.enable = true;
environment.shellInit = ''
gpg-connect-agent /bye
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
'';
#Nix package manager configs.
nix = {
registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
settings = {
experimental-features = "nix-command flakes";
auto-optimise-store = true;
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
system.stateVersion = stateVersion;
home-manager.users.${user} = {
home.username = user;
home.homeDirectory = "/home/${user}";
home.stateVersion = stateVersion;
};
}
|