dotfiles/flake.nix

122 lines
5.4 KiB
Nix
Raw Normal View History

2024-05-31 12:41:57 +02:00
{
2024-09-13 10:46:49 +02:00
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-11-04 23:50:38 +01:00
nixos-06cb-009a-fingerprint-sensor = {
2024-11-06 01:36:31 +01:00
url = "github:ahbnr/nixos-06cb-009a-fingerprint-sensor";
2024-11-04 23:50:38 +01:00
inputs.nixpkgs.follows = "nixpkgs";
};
2024-09-13 10:46:49 +02:00
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
hyprsplit = {
2024-09-13 10:46:49 +02:00
type = "git";
url = "https://github.com/shezdy/hyprsplit";
2024-09-13 10:46:49 +02:00
inputs.hyprland.follows = "hyprland";
};
nur.url = "github:nix-community/NUR";
2024-11-24 21:08:34 +01:00
ags.url = "./home/ags";
2024-09-13 10:46:49 +02:00
fzgo.url = "git+https://git.thomasave.be/thomasave/fzgo.git";
2024-11-06 01:36:31 +01:00
worktimer = {
type = "git";
url = "https://git.thomasave.be/thomasave/WorkTimer";
ref = "cli";
};
2024-05-31 12:41:57 +02:00
};
2024-11-06 01:36:31 +01:00
outputs = { nixpkgs, home-manager, nur, ... }@inputs:
2024-09-13 10:46:49 +02:00
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
commonModules = host: user: [
./hosts/${host}/hardware-configuration.nix
{ nixpkgs.overlays = [
2024-10-18 13:01:38 +02:00
nur.overlay
(self: super: { utillinux = super.util-linux; })
2024-10-18 13:01:38 +02:00
]; }
2024-09-13 10:46:49 +02:00
{
nixpkgs.config.allowUnfree = true;
networking.hostName = host;
boot.loader.systemd-boot.enable = true;
time.timeZone = "Europe/Brussels";
2024-06-02 14:02:14 +02:00
2024-09-13 10:46:49 +02:00
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
};
nix.settings = {
substituters = [
"https://hyprland.cachix.org"
"https://nix-community.cachix.org"
"https://cuda-maintainers.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
];
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "root" user ];
auto-optimise-store = true;
};
2024-06-03 02:00:07 +02:00
2024-09-13 10:46:49 +02:00
nix.gc = {
automatic = true;
dates = "daily";
options = "--delete-older-than 2d";
};
2024-06-02 14:02:14 +02:00
2024-09-13 10:46:49 +02:00
users.users.${user} = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKAa3tMzSCRuprEACrBsKI0F/o73o6J9L1qR3TaZn/N8 user@Kell"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIByLwLAdJbmoDV5sx4hg5NbzKbOh1GmWEhDOUJ1GQBhK user@Riva"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxMq4kubz4wWr4S8xU3GRkPcn6XRS3y7IP+qylN5QAp user@Aloria"
2024-11-04 19:21:59 +01:00
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOAhFTJI49o+eS1kHs5XRrpCLLuhAE+JUCffusudyR88 user@Arendia"
2024-09-13 10:46:49 +02:00
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHtzTFdvLEvXpv69qAWLTipl4hgsKgRrRrWJRecsFthG user@Arch"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOxtJRtlAphl8euicVUR/6C7o+tyhpYmcbMBLHnldEIX server@mallorea"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILazQU/Y9I5PkMZoG/Lzc6mDR7s+aRHzqJoFUhYSse4P PocoF1"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFoUYcVMsDw6tmjfdOuQkwaXx8fohKJs/6/5HoLzTP6x Tablet"
];
shell = pkgs.zsh;
};
2024-06-02 14:02:14 +02:00
2024-09-13 10:46:49 +02:00
system.stateVersion = "23.11";
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # hint electron apps to use wayland:
}
home-manager.nixosModules.home-manager
{
home-manager = {
extraSpecialArgs = {
inherit inputs;
}; # allows access to flake inputs in hm modules
useGlobalPkgs = true;
useUserPackages = true;
users.${user} = { imports = [ ./home/${host}.nix ]; };
};
}
./hosts/${host}
];
mkSystem = host: cfg:
nixpkgs.lib.nixosSystem {
system = cfg.system or "x86_64-linux";
modules = (commonModules host cfg.user) ++ (cfg.modules or [ ]);
specialArgs = inputs;
};
systems = {
Riva = { user = "user"; };
Kell = { user = "user"; };
Aloria = { user = "user"; };
2024-11-06 01:36:31 +01:00
Arendia = { user = "user"; };
2024-09-13 10:46:49 +02:00
};
in
{ nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; };
2024-05-31 12:41:57 +02:00
}