nix/flake.nix
2025-06-05 00:48:38 +01:00

177 lines
4.6 KiB
Nix

{
description = "A flake using my config";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05";
musnix.url = "github:musnix/musnix";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim/nixos-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser = {
url = "github:youwen5/zen-browser-flake";
};
};
outputs = {nixvim, ...} @ inputs: let
system = "x86_64-linux";
pkgs = import inputs.nixpkgs {inherit system;};
user = "tristan";
userFullname = "Tristan Beedell";
auto-login = import ./nixos/programs/auto-login.nix;
mkConf = import ./lib/mkconf.nix {inherit inputs system user userFullname;};
in {
formatter.${system} = pkgs.alejandra;
nixosConfigurations = {
zenix = mkConf {
nixos-modules = [
./hardware/zenix.nix
./nixos/programs/cosmic.nix
./nixos/programs/gamer.nix
./nixos/programs/personal.nix
./nixos/services/musnix.nix
./nixos/workstation.nix
./nixos/programs/hyprland.nix
];
home-modules = [
./home/programs/graphical.nix
./home/programs/gamer.nix
./home/programs/personal/.
];
};
FCS-Tristan-Nixbook = mkConf {
nixos-modules = [
./hardware/fcs-tristan-nixbook.nix
./nixos/workstation.nix
./nixos/modules/work.nix
./nixos/programs/cosmic.nix
./nixos/programs/libvertd.nix
./nixos/programs/hyprland.nix
];
home-modules = [
./home/programs/work.nix
./home/programs/graphical.nix
./home/desktop/cosmic/laptop.nix
];
};
framework-13 = mkConf {
nixos-modules = [
./hardware/framework-13.nix
./nixos/workstation.nix
./nixos/modules/work.nix
./nixos/programs/cosmic.nix
];
home-modules = [
./home/programs/work.nix
./home/programs/graphical.nix
];
};
alpine = mkConf {
nixos-modules = [
./hardware/alpine.nix
./nixos/services/anki.nix
./nixos/services/forgejo.nix
./nixos/services/vaultwarden.nix
./nixos/services/jellyfin.nix
./nixos/services/prometheus.nix
./nixos/services/grafana.nix
./nixos/services/loki.nix
./nixos/services/synapse/.
./nixos/services/mautrix/whatsapp.nix
./nixos/services/mautrix/signal.nix
./nixos/services/nextcloud.nix
./nixos/services/ntfy.nix
./nixos/services/authentik.nix
./nixos/services/monero.nix
./nixos/services/arr.nix
];
};
vm-sway =
builtins.trace ''
use super+enter to start a terminal.
use super+d to launch applications
start the vm with '-vga qxl' or '-vga virtio'
''
mkConf
{
nixos-modules = [
./hardware/vm.nix
(auto-login "sway")
./nixos/workstation.nix
];
home-modules = [
./home/desktop/sway/.
./home/workstation.nix
];
};
vm-cosmic =
mkConf
{
nixos-modules = [
./hardware/vm.nix
./nixos/workstation.nix
./nixos/programs/cosmic.nix
];
home-modules = [
./home/workstation.nix
];
};
vm-hyprland =
builtins.trace ''
use super+enter to start a terminal.
use super+d to launch applications
Hyprland is VERY SLOW in the VM.
start with '-vga virtio'
''
mkConf
{
nixos-modules = [
./hardware/vm.nix
(auto-login "Hyprland")
./nixos/programs/hyprland.nix
];
};
vm-tty =
mkConf
{
nixos-modules = [
./hardware/vm.nix
];
};
};
packages.${system} = {
nixvim = let
nixvim' = nixvim.legacyPackages.${system};
nixvimModule = {
inherit pkgs;
module = import ./lib/nixvim.nix;
};
nvim = nixvim'.makeNixvimWithModule nixvimModule;
in
nvim;
};
};
}