-
Notifications
You must be signed in to change notification settings - Fork 220
/
Copy pathflake.nix
130 lines (110 loc) · 4.39 KB
/
flake.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
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
{
description = "NixOS systems and tools by mitchellh";
inputs = {
# Pin our primary nixpkgs repository. This is the main nixpkgs repository
# we'll use for our configurations. Be very careful changing this because
# it'll impact your entire system.
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
# Used to get ibus 1.5.29 which has some quirks we want to test.
nixpkgs-old-ibus.url = "github:nixos/nixpkgs/e2dd4e18cc1c7314e24154331bae07df76eb582f";
# We use the unstable nixpkgs repo for some packages.
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
# Build a custom WSL installer
nixos-wsl.url = "github:nix-community/NixOS-WSL";
nixos-wsl.inputs.nixpkgs.follows = "nixpkgs";
# snapd
nix-snapd.url = "github:nix-community/nix-snapd";
nix-snapd.inputs.nixpkgs.follows = "nixpkgs";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
darwin = {
url = "github:nix-darwin/nix-darwin/nix-darwin-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
# I think technically you're not supposed to override the nixpkgs
# used by neovim but recently I had failures if I didn't pin to my
# own. We can always try to remove that anytime.
neovim-nightly-overlay = {
url = "github:nix-community/neovim-nightly-overlay";
};
# Other packages
jujutsu.url = "github:martinvonz/jj";
zig.url = "github:mitchellh/zig-overlay";
# Non-flakes
nvim-codecompanion.url = "github:olimorris/codecompanion.nvim";
nvim-codecompanion.flake = false;
nvim-conform.url = "github:stevearc/conform.nvim/v7.1.0";
nvim-conform.flake = false;
nvim-dressing.url = "github:stevearc/dressing.nvim";
nvim-dressing.flake = false;
nvim-gitsigns.url = "github:lewis6991/gitsigns.nvim/v0.9.0";
nvim-gitsigns.flake = false;
nvim-lspconfig.url = "github:neovim/nvim-lspconfig";
nvim-lspconfig.flake = false;
nvim-lualine.url ="github:nvim-lualine/lualine.nvim";
nvim-lualine.flake = false;
nvim-nui.url = "github:MunifTanjim/nui.nvim";
nvim-nui.flake = false;
nvim-plenary.url = "github:nvim-lua/plenary.nvim";
nvim-plenary.flake = false;
nvim-telescope.url = "github:nvim-telescope/telescope.nvim/0.1.8";
nvim-telescope.flake = false;
nvim-treesitter-context.url = "github:nvim-treesitter/nvim-treesitter-context";
nvim-treesitter-context.flake = false;
nvim-web-devicons.url = "github:nvim-tree/nvim-web-devicons";
nvim-web-devicons.flake = false;
vim-copilot.url = "github:github/copilot.vim/v1.41.0";
vim-copilot.flake = false;
vim-misc.url = "github:mitchellh/vim-misc";
vim-misc.flake = false;
};
outputs = { self, nixpkgs, home-manager, darwin, ... }@inputs: let
# Overlays is the list of overlays we want to apply from flake inputs.
overlays = [
inputs.jujutsu.overlays.default
inputs.zig.overlays.default
(final: prev: rec {
# gh CLI on stable has bugs.
gh = inputs.nixpkgs-unstable.legacyPackages.${prev.system}.gh;
# Want the latest version of these
nushell = inputs.nixpkgs-unstable.legacyPackages.${prev.system}.nushell;
ibus = ibus_stable;
ibus_stable = inputs.nixpkgs.legacyPackages.${prev.system}.ibus;
ibus_1_5_29 = inputs.nixpkgs-old-ibus.legacyPackages.${prev.system}.ibus;
ibus_1_5_31 = inputs.nixpkgs-unstable.legacyPackages.${prev.system}.ibus;
})
];
mkSystem = import ./lib/mksystem.nix {
inherit overlays nixpkgs inputs;
};
in {
nixosConfigurations.vm-aarch64 = mkSystem "vm-aarch64" {
system = "aarch64-linux";
user = "mitchellh";
};
nixosConfigurations.vm-aarch64-prl = mkSystem "vm-aarch64-prl" rec {
system = "aarch64-linux";
user = "mitchellh";
};
nixosConfigurations.vm-aarch64-utm = mkSystem "vm-aarch64-utm" rec {
system = "aarch64-linux";
user = "mitchellh";
};
nixosConfigurations.vm-intel = mkSystem "vm-intel" rec {
system = "x86_64-linux";
user = "mitchellh";
};
nixosConfigurations.wsl = mkSystem "wsl" {
system = "x86_64-linux";
user = "mitchellh";
wsl = true;
};
darwinConfigurations.macbook-pro-m1 = mkSystem "macbook-pro-m1" {
system = "aarch64-darwin";
user = "mitchellh";
darwin = true;
};
};
}