forked from kclejeune/system
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.nix
executable file
·100 lines (89 loc) · 1.89 KB
/
common.nix
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
{
self,
inputs,
config,
pkgs,
...
}:
{
imports = [
./primaryUser.nix
./nixpkgs.nix
];
nixpkgs.overlays = builtins.attrValues self.overlays;
programs.zsh = {
enable = true;
enableCompletion = true;
enableBashCompletion = true;
};
user = {
description = "bri";
home = "${if pkgs.stdenvNoCC.isDarwin then "/Users" else "/home"}/${config.user.name}";
shell = pkgs.zsh;
};
# bootstrap home manager using system config
hm = {
imports = [
./home-manager
./home-manager/1password.nix
inputs.nix-index-database.hmModules.nix-index
];
};
# let nix manage home-manager profiles and use global nixpkgs
home-manager = {
extraSpecialArgs = {
inherit self inputs;
};
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
};
# environment setup
environment = {
systemPackages = [
# editors
pkgs.neovim
# standard toolset
pkgs.coreutils-full
pkgs.findutils
pkgs.diffutils
pkgs.curl
pkgs.wget
pkgs.git
pkgs.jq
# helpful shell stuff
pkgs.bat
pkgs.fzf
pkgs.ripgrep
pkgs.fswatch
# languages
pkgs.python3
pkgs.ruby
pkgs.shfmt
# nix stuff
pkgs.cachix
pkgs.nil
pkgs.nixd
pkgs.nixfmt-rfc-style
pkgs.home-manager
inputs.attic.packages.${pkgs.system}.attic-client
inputs.deploy-rs.packages.${pkgs.system}.deploy-rs
inputs.fh.packages.${pkgs.system}.default
];
etc = {
home-manager.source = "${inputs.home-manager}";
nixpkgs.source = "${inputs.nixpkgs}";
stable.source = "${inputs.stable}";
};
# list of acceptable shells in /etc/shells
shells = [
pkgs.bash
pkgs.zsh
pkgs.fish
];
};
fonts = {
fontDir.enable = true;
packages = [ pkgs.jetbrains-mono ];
};
}