Files
nixos/flake.nix
T

234 lines
7.6 KiB
Nix

{
description = "NixOS configuration of Marc";
inputs = {
# darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-24.05";
# darwin.inputs.nixpkgs.follows = "nixpkgs";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
clawdbot.url = "github:clawdbot/nix-clawdbot";
clawdbot.inputs.nixpkgs.follows = "nixpkgs";
# hyprland.url = "github:hyprwm/Hyprland?ref=v0.50.0";
# hy3.url = "github:outfoxxed/hy3?ref=hl0.50.0";
# hy3.url = "github:outfoxxed/hy3";
# hy3.inputs.hyprland.follows = "hyprland";
# nix-search-tv.url = "github:3timeslazy/nix-search-tv";
catppuccin.url = "github:catppuccin/nix";
newt.url = "github:fosrl/newt";
claude-code.url = "github:sadjow/claude-code-nix";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
niri.url = "github:sodiboo/niri-flake";
niri.inputs.nixpkgs.follows = "nixpkgs";
disko.url = "github:nix-community/disko";
disko.inputs.nixpkgs.follows = "nixpkgs";
sops.url = "github:Mic92/sops-nix";
sops.inputs.nixpkgs.follows = "nixpkgs";
nixvim.url = "github:nix-community/nixvim/nixos-25.11";
nixvim.inputs.nixpkgs.follows = "nixpkgs";
zen-browser.url = "github:youwen5/zen-browser-flake";
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
spicetify.url = "github:Gerg-L/spicetify-nix";
spicetify.inputs.nixpkgs.follows = "nixpkgs";
# rycee-nurpkgs = {
# url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
# inputs.nixpkgs.follows = "nixpkgs";
# };
# hyprtasking = {
# url = "github:raybbian/hyprtasking";
# inputs.hyprland.follows = "hyprland";
# };
catppuccin-thunderbird = {
url = "github:catppuccin/thunderbird";
flake = false; # The repo isn't a flake; use as raw source
};
# On crée une entrée SPÉCIALE pour le téléphone
# nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-24.05";
nix-on-droid = {
url = "github:nix-community/nix-on-droid/master";
# url = "github:nix-community/nix-on-droid/release-24.05";
# C'EST LA LIGNE CRUCIALE :
# On lui dit de suivre la version Droid, pas la version Laptop.
# inputs.nixpkgs.follows = "nixpkgs-droid";
# On aligne aussi le home-manager interne de nix-on-droid
# inputs.home-manager.follows = "home-manager-droid";
};
# On définit aussi un home-manager compatible 24.05 pour le tel
# home-manager-droid = {
# url = "github:nix-community/home-manager/release-24.05";
# inputs.nixpkgs.follows = "nixpkgs-droid";
# };
# nixvim-droid.url = "github:nix-community/nixvim/nixos-24.05";
# nixvim-droid.inputs.nixpkgs.follows = "nixpkgs-droid";
# hyprland-plugins = {
# url = "github:hyprwm/hyprland-plugins";
# inputs.hyprland.follows = "hyprland";
# };
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
sopswarden = {
url = "github:pfassina/sopswarden";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix.url = "github:ryantm/agenix";
microvm.url = "github:astro/microvm.nix";
# nwg-dock-hyprland-pin-nixpkgs.url = "nixpkgs/2098d845d76f8a21ae4fe12ed7c7df49098d3f15";
nix-darwin.url = "github:nix-darwin/nix-darwin/master";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
# nixgl.url = "github:guibou/nixGL";
# nixgl.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {
self,
nixpkgs,
...
} @ inputs: {
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
inputs.disko.nixosModules.disko
inputs.nixvim.nixosModules.default
# inputs.catppuccin.nixosModules.catppuccin
# inputs.sops.nixosModules.sops # Inclus dans sopswarden
inputs.sopswarden.nixosModules.default
# inputs.microvm.nixosModules.microvm
inputs.home-manager.nixosModules.default
./hosts/laptop/disko.nix
./hosts/laptop/hardware-configuration.nix
./profiles/laptop/configuration.nix
./services
./users.nix
];
};
laptop-iso = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
./modules/nixos/iso
inputs.disko.nixosModules.disko
inputs.nixvim.nixosModules.default
inputs.sopswarden.nixosModules.default
inputs.home-manager.nixosModules.default
./hosts/laptop/disko.nix
./hosts/laptop/hardware-configuration.nix
./profiles/laptop/configuration.nix
./services
./users.nix
];
};
anywhere = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.default
inputs.sops.nixosModules.sops
# inputs.sopswarden.homeManagerModules.default
./profiles/anywhere/configuration.nix
./users.nix
# ./services
./services/traefik
./services/postgres
./services/vaultwarden
./services/nextcloud
./services/pangolin
./services/chhoto
./services/eternal-terminal
# ./services/stalwart
];
};
tower = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {inherit inputs;};
modules = [
inputs.disko.nixosModules.disko
inputs.home-manager.nixosModules.default
inputs.sops.nixosModules.sops
./hosts/tower/disko.nix
./hosts/laptop/hardware-configuration.nix
./profiles/laptop/configuration.nix
./users.nix
];
};
};
nixOnDroidConfigurations.default = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
# pkgs = import inputs.nixpkgs-droid {
pkgs = import inputs.nixpkgs {
system = "aarch64-linux";
};
extraSpecialArgs = {inherit inputs;};
# extraSpecialArgs = {
# inputs = inputs // {
# nixpkgs = inputs.nixpkgs-droid;
# home-manager = inputs.home-manager-droid;
# nixvim = inputs.nixvim-droid;
# };
# };
modules = [
# inputs.home-manager.nixosModules.default
./profiles/nix-on-droid/configuration.nix
# ./users.nix
];
};
homeConfigurations = {
"marc@laptop" = inputs.home-manager.lib.homeManagerConfiguration {
# system = "x86_64-linux";
# pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = {inherit inputs;};
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [inputs.nur.overlays.default inputs.clawdbot.overlays.default];
};
modules = [
# inputs.disko.homeModule.disko
inputs.catppuccin.homeModules.catppuccin
inputs.nixvim.homeModules.default
inputs.sops.homeManagerModules.sops
inputs.sopswarden.homeManagerModules.default
inputs.niri.homeModules.niri
inputs.nix-flatpak.homeManagerModules.nix-flatpak
# inputs.clawdbot.homeManagerModules.clawdbot
inputs.spicetify.homeManagerModules.spicetify
./users/marc/home.nix
];
};
};
darwinConfigurations."macos" = inputs.nix-darwin.lib.darwinSystem {
modules = [
./hosts/macos/configuration.nix
];
};
};
}