71 lines
2.2 KiB
Nix
71 lines
2.2 KiB
Nix
|
{
|
||
|
description = "Description for the project";
|
||
|
|
||
|
inputs = {
|
||
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||
|
};
|
||
|
|
||
|
outputs = inputs@{ flake-parts, ... }:
|
||
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||
|
imports = [
|
||
|
# To import a flake module
|
||
|
# 1. Add foo to inputs
|
||
|
# 2. Add foo as a parameter to the outputs function
|
||
|
# 3. Add here: foo.flakeModule
|
||
|
|
||
|
];
|
||
|
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
|
||
|
perSystem = { config, self', inputs', pkgs, system, ... }: {
|
||
|
# Per-system attributes can be defined here. The self' and inputs'
|
||
|
# module parameters provide easy access to attributes of the same
|
||
|
# system.
|
||
|
|
||
|
};
|
||
|
flake = {
|
||
|
# The usual flake attributes can be defined here, including system-
|
||
|
# agnostic ones like nixosModule and system-enumerating ones, although
|
||
|
# those are more easily expressed in perSystem.
|
||
|
nixosConfigurations.default = inputs.nixpkgs.lib.nixosSystem {
|
||
|
modules = [
|
||
|
({ lib, pkgs, ... }:
|
||
|
{
|
||
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||
|
|
||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||
|
boot.loader.systemd-boot.enable = true;
|
||
|
|
||
|
users.users.test = {
|
||
|
isNormalUser = true;
|
||
|
extraGroups = [ "wheel" ];
|
||
|
initialPassword = "test";
|
||
|
};
|
||
|
|
||
|
services.xserver = {
|
||
|
enable = true;
|
||
|
displayManager = {
|
||
|
sddm.enable = true;
|
||
|
autoLogin.enable = true;
|
||
|
autoLogin.user = "test";
|
||
|
};
|
||
|
|
||
|
desktopManager.plasma6.enable = true;
|
||
|
};
|
||
|
|
||
|
virtualisation.vmVariant.virtualisation = {
|
||
|
memorySize = 2048;
|
||
|
cores = 3;
|
||
|
};
|
||
|
|
||
|
environment.systemPackages = with pkgs; [ synology-drive-client ];
|
||
|
|
||
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||
|
"synology-drive-client"
|
||
|
];
|
||
|
})
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|