make vm architecture agnostic
This commit is contained in:
parent
a6ddd527d4
commit
f6dbc88abb
7 changed files with 103 additions and 88 deletions
93
flake.nix
93
flake.nix
|
|
@ -73,6 +73,10 @@
|
||||||
apple-silicon,
|
apple-silicon,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
# All systems we want to support for the generic VM
|
||||||
|
supportedSystems = ["x86_64-linux" "aarch64-linux"];
|
||||||
|
# to run the vm:
|
||||||
|
# nixos-rebuild build-vm --flake ~/nix#$(nix eval --raw --impure --expr 'builtins.currentSystem')
|
||||||
mkNixosSystem = {
|
mkNixosSystem = {
|
||||||
hostname,
|
hostname,
|
||||||
system,
|
system,
|
||||||
|
|
@ -83,7 +87,7 @@
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs =
|
specialArgs =
|
||||||
{
|
{
|
||||||
inherit catppuccin;
|
inherit catppuccin system;
|
||||||
}
|
}
|
||||||
// extraSpecialArgs;
|
// extraSpecialArgs;
|
||||||
modules =
|
modules =
|
||||||
|
|
@ -144,47 +148,54 @@
|
||||||
nixvim.homeModules.nixvim
|
nixvim.homeModules.nixvim
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
nixosConfigurations = {
|
{
|
||||||
peach = mkNixosSystem {
|
nixosConfigurations =
|
||||||
hostname = "peach";
|
{
|
||||||
system = "aarch64-linux";
|
peach = mkNixosSystem {
|
||||||
extraModules = [
|
hostname = "peach";
|
||||||
apple-silicon.nixosModules.default
|
system = "aarch64-linux";
|
||||||
{nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];}
|
extraModules = [
|
||||||
];
|
apple-silicon.nixosModules.default
|
||||||
};
|
{nixpkgs.overlays = [apple-silicon.overlays.apple-silicon-overlay];}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
alien = mkNixosSystem {
|
alien = mkNixosSystem {
|
||||||
hostname = "alien";
|
hostname = "alien";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit nix-cachyos-kernel;
|
inherit nix-cachyos-kernel;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// nixpkgs.lib.genAttrs supportedSystems (
|
||||||
|
system:
|
||||||
|
mkNixosSystem {
|
||||||
|
hostname = "vm-generic";
|
||||||
|
inherit system;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
homeConfigurations = {
|
||||||
|
peach = mkHomeConfig {
|
||||||
|
user = "sckova";
|
||||||
|
hostname = "peach";
|
||||||
|
system = "aarch64-linux";
|
||||||
|
};
|
||||||
|
alien = mkHomeConfig {
|
||||||
|
user = "sckova";
|
||||||
|
hostname = "alien";
|
||||||
|
system = "x86_64-linux";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
}
|
||||||
vm-aarch64 = mkNixosSystem {
|
// nixpkgs.lib.genAttrs supportedSystems (
|
||||||
hostname = "vm-aarch64";
|
system:
|
||||||
system = "aarch64-linux";
|
mkHomeConfig {
|
||||||
};
|
user = "sckova";
|
||||||
};
|
hostname = "vm-generic";
|
||||||
|
inherit system;
|
||||||
homeConfigurations = {
|
}
|
||||||
peach = mkHomeConfig {
|
);
|
||||||
user = "sckova";
|
|
||||||
hostname = "peach";
|
|
||||||
system = "aarch64-linux";
|
|
||||||
};
|
|
||||||
alien = mkHomeConfig {
|
|
||||||
user = "sckova";
|
|
||||||
hostname = "alien";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
};
|
|
||||||
vm-aarch64 = mkHomeConfig {
|
|
||||||
user = "sckova";
|
|
||||||
hostname = "vm-aarch64";
|
|
||||||
system = "aarch64-linux";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,9 @@
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
system,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [];
|
imports = [];
|
||||||
|
|
@ -30,7 +29,12 @@
|
||||||
{device = "/dev/disk/by-label/swap";}
|
{device = "/dev/disk/by-label/swap";}
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
# Set platform from the system argument passed by the flake
|
||||||
hardware.parallels.enable = true;
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["prl-tools"];
|
|
||||||
|
# Enable Parallels tools only on aarch64
|
||||||
|
hardware.parallels.enable = lib.mkIf (system == "aarch64-linux") true;
|
||||||
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
|
lib.mkIf (system == "aarch64-linux")
|
||||||
|
(pkg: builtins.elem (lib.getName pkg) ["prl-tools"]);
|
||||||
}
|
}
|
||||||
|
|
@ -235,13 +235,13 @@
|
||||||
then "dark"
|
then "dark"
|
||||||
else "light";
|
else "light";
|
||||||
|
|
||||||
theme = {
|
# theme = {
|
||||||
package = pkgs.kdePackages.breeze-gtk;
|
# package = pkgs.kdePackages.breeze-gtk;
|
||||||
name =
|
# name =
|
||||||
if config.userOptions.isDark
|
# if config.userOptions.isDark
|
||||||
then "Breeze-Dark"
|
# then "Breeze-Dark"
|
||||||
else "Breeze";
|
# else "Breeze";
|
||||||
};
|
# };
|
||||||
|
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name =
|
name =
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
catppuccin,
|
catppuccin,
|
||||||
nix-cachyos-kernel,
|
nix-cachyos-kernel,
|
||||||
...
|
...
|
||||||
|
|
@ -10,8 +8,9 @@
|
||||||
networking.hostName = "alien";
|
networking.hostName = "alien";
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pkgs.ddcutil
|
ddcutil
|
||||||
pkgs.mangohud
|
mangohud
|
||||||
|
(bottles.override {removeWarningPopup = true;})
|
||||||
];
|
];
|
||||||
|
|
||||||
# enable ddcutil
|
# enable ddcutil
|
||||||
|
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
catppuccin,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
networking.hostName = "vm-aarch64";
|
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [
|
|
||||||
"x86_64-linux"
|
|
||||||
"riscv64-linux"
|
|
||||||
];
|
|
||||||
|
|
||||||
catppuccin.accent = "green";
|
|
||||||
|
|
||||||
home-manager.users.sckova = {
|
|
||||||
imports = [catppuccin.homeModules.catppuccin];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.spice-vdagentd.enable = true;
|
|
||||||
|
|
||||||
virtualisation.vmVariant = {
|
|
||||||
virtualisation = {
|
|
||||||
memorySize = 8192;
|
|
||||||
cores = 6;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.sudo.wheelNeedsPassword = false;
|
|
||||||
}
|
|
||||||
32
system/hosts/vm-generic/default.nix
Normal file
32
system/hosts/vm-generic/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
catppuccin,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
networking.hostName = "vm";
|
||||||
|
|
||||||
|
# Enable emulation for architectures we're not currently running
|
||||||
|
boot.binfmt.emulatedSystems =
|
||||||
|
lib.optional (pkgs.stdenv.hostPlatform.system != "x86_64-linux") "x86_64-linux"
|
||||||
|
++ lib.optional (pkgs.stdenv.hostPlatform.system != "aarch64-linux") "aarch64-linux"
|
||||||
|
++ lib.optional (pkgs.stdenv.hostPlatform.system != "riscv64-linux") "riscv64-linux";
|
||||||
|
|
||||||
|
catppuccin.accent = "green";
|
||||||
|
|
||||||
|
home-manager.users.sckova = {
|
||||||
|
imports = [catppuccin.homeModules.catppuccin];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.spice-vdagentd.enable = true;
|
||||||
|
|
||||||
|
virtualisation.vmVariant = {
|
||||||
|
virtualisation = {
|
||||||
|
memorySize = 8192;
|
||||||
|
cores = 6;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue