nix/flake.nix

163 lines
4.3 KiB
Nix

{
description = "A flake using my config";
inputs = {
# nixpkgs.url = "nixpkgs/nixos-unstable";
musnix.url = "github:musnix/musnix";
nixpkgs.follows = "nixos-cosmic/nixpkgs";
nixpkgs-stable.url = "nixpkgs/nixos-24.05";
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
hm-cosmic.url = "github:tristanbeedell/hm-cosmic/master";
stylix.url = "github:danth/stylix";
sops-nix.url = "github:Mic92/sops-nix";
nixos-cosmic = {
url = "github:lilyinstarlight/nixos-cosmic";
# inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
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/mpd.nix
./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/mpd.nix
./home/programs/work.nix
./home/programs/graphical.nix
./home/desktop/cosmic/laptop.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/mpd.nix
./nixos/services/prometheus.nix
./nixos/services/grafana.nix
./nixos/services/synapse.nix
./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
];
};
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;
};
};
}