mirror of
https://github.com/willemml/dotfiles.nix.git
synced 2025-04-12 19:27:17 +00:00
add nixos config for utm vm
This commit is contained in:
parent
d9c66b966c
commit
7dd55fbbc6
5 changed files with 155 additions and 51 deletions
53
flake.nix
53
flake.nix
|
@ -12,9 +12,7 @@
|
|||
|
||||
outputs = inputs@{ self, nixpkgs, home-manager, darwin, nur, ... }:
|
||||
let
|
||||
system = "aarch64-darwin";
|
||||
|
||||
pkgs = import nixpkgs {
|
||||
pkgsfunc = (system: import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [
|
||||
(import ./overlays)
|
||||
|
@ -25,38 +23,51 @@
|
|||
nur = import nur { inherit pkgs; nurpkgs = pkgs; };
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
nurNoPkgs = import nur {
|
||||
nurpkgs = pkgs;
|
||||
pkgs = throw "nixpkgs eval";
|
||||
};
|
||||
|
||||
user-config = {
|
||||
user-config = (pkgs: {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit nurNoPkgs pkgs; inputs = { inherit (inputs); }; };
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit pkgs; inputs = { inherit (inputs); };
|
||||
nurNoPkgs = import nur {
|
||||
nurpkgs = pkgs;
|
||||
pkgs = throw "nixpkgs eval";
|
||||
};
|
||||
};
|
||||
home-manager.sharedModules = [ nur.hmModules.nur ];
|
||||
home-manager.users.willem = ./home;
|
||||
users.users.willem = {
|
||||
home = "/Users/willem";
|
||||
isHidden = false;
|
||||
name = "willem";
|
||||
shell = pkgs.zshInteractive;
|
||||
};
|
||||
};
|
||||
});
|
||||
in
|
||||
{
|
||||
darwinConfigurations = {
|
||||
zeus = darwin.lib.darwinSystem {
|
||||
inherit system pkgs inputs;
|
||||
zeus = darwin.lib.darwinSystem rec {
|
||||
inherit inputs;
|
||||
|
||||
system = "aarch64-darwin";
|
||||
|
||||
pkgs = pkgsfunc system;
|
||||
|
||||
modules = [
|
||||
./modules/nix.nix
|
||||
./system/darwin.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
user-config
|
||||
(user-config pkgs)
|
||||
];
|
||||
};
|
||||
};
|
||||
nixosConfigurations.zeus-utm-vm = (pkgsfunc "aarch64-linux").lib.nixosSystem rec {
|
||||
inherit inputs;
|
||||
system = "aarch64-linux";
|
||||
|
||||
pkgs = pkgsfunc system;
|
||||
|
||||
modules = [
|
||||
./modules/nix.nix
|
||||
./system/utm-arm-vm.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
(user-config pkgs)
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
39
system/common.nix
Normal file
39
system/common.nix
Normal file
|
@ -0,0 +1,39 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.variables.SHELL = "${pkgs.zsh}/bin/zsh";
|
||||
environment.variables.LANG = "en_US.UTF-8";
|
||||
|
||||
nix = {
|
||||
generateNixPathFromInputs = true;
|
||||
generateRegistryFromInputs = true;
|
||||
linkInputs = true;
|
||||
package = pkgs.nix;
|
||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
settings.trusted-users = [ "root" "willem" ];
|
||||
};
|
||||
|
||||
programs.bash.enable = true;
|
||||
|
||||
programs.nix-index.enable = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.zsh.enableBashCompletion = true;
|
||||
|
||||
programs.zsh.promptInit = ''
|
||||
autoload -U promptinit && promptinit
|
||||
setopt PROMPTSUBST
|
||||
_prompt_nix() {
|
||||
[ -z "$IN_NIX_SHELL" ] || echo "%F{yellow}%B[''${name:+$name}]%b%f "
|
||||
}
|
||||
PS1='%F{red}%B%(?..%? )%b%f%# '
|
||||
RPS1='$(_prompt_nix)%F{green}%~%f'
|
||||
if [ -n "$IN_NIX_SANDBOX" ]; then
|
||||
PS1+='%F{red}[sandbox]%f '
|
||||
fi
|
||||
'';
|
||||
|
||||
time.timeZone = "America/Vancouver";
|
||||
|
||||
users.users.willem.shell = pkgs.zshInteractive;
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./common.nix ];
|
||||
|
||||
environment.etc."nix/user-sandbox.sb".text = ''
|
||||
(version 1)
|
||||
(allow default)
|
||||
|
@ -15,8 +17,6 @@
|
|||
'';
|
||||
|
||||
environment.loginShell = "${pkgs.zsh}/bin/zsh -l";
|
||||
environment.variables.SHELL = "${pkgs.zsh}/bin/zsh";
|
||||
environment.variables.LANG = "en_US.UTF-8";
|
||||
environment.systemPackages = with pkgs; [
|
||||
colima
|
||||
coreutils
|
||||
|
@ -41,25 +41,9 @@
|
|||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
extra-trusted-users = willem
|
||||
'';
|
||||
generateRegistryFromInputs = true;
|
||||
generateNixPathFromInputs = true;
|
||||
linkInputs = true;
|
||||
package = pkgs.nix;
|
||||
};
|
||||
|
||||
programs.bash.enable = true;
|
||||
|
||||
programs.man.enable = true;
|
||||
|
||||
programs.nix-index.enable = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.zsh.enableBashCompletion = true;
|
||||
programs.zsh.enableFzfCompletion = true;
|
||||
programs.zsh.enableFzfGit = true;
|
||||
programs.zsh.enableFzfHistory = true;
|
||||
|
@ -76,18 +60,6 @@
|
|||
exec /usr/bin/sandbox-exec -f /etc/nix/user-sandbox.sb $SHELL -l
|
||||
}
|
||||
'';
|
||||
programs.zsh.promptInit = ''
|
||||
autoload -U promptinit && promptinit
|
||||
setopt PROMPTSUBST
|
||||
_prompt_nix() {
|
||||
[ -z "$IN_NIX_SHELL" ] || echo "%F{yellow}%B[''${name:+$name}]%b%f "
|
||||
}
|
||||
PS1='%F{red}%B%(?..%? )%b%f%# '
|
||||
RPS1='$(_prompt_nix)%F{green}%~%f'
|
||||
if [ -n "$IN_NIX_SANDBOX" ]; then
|
||||
PS1+='%F{red}[sandbox]%f '
|
||||
fi
|
||||
'';
|
||||
|
||||
services.nix-daemon.enable = true;
|
||||
|
||||
|
@ -147,4 +119,10 @@
|
|||
}];
|
||||
};
|
||||
};
|
||||
|
||||
users.users.willem = {
|
||||
home = "/Users/willem";
|
||||
isHidden = false;
|
||||
name = "willem";
|
||||
};
|
||||
}
|
||||
|
|
51
system/nixos.nix
Normal file
51
system/nixos.nix
Normal file
|
@ -0,0 +1,51 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [ ./common.nix ];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
|
||||
console.keyMap = "colemak";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
programs.zsh.loginShellInit = ''
|
||||
reexec() {
|
||||
unset __NIX_OS_SET_ENVIRONMENT_DONE
|
||||
unset __ETC_ZPROFILE_SOURCED __ETC_ZSHENV_SOURCED __ETC_ZSHRC_SOURCED
|
||||
exec $SHELL -c 'echo >&2 "reexecuting shell: $SHELL" && exec $SHELL -l'
|
||||
}
|
||||
'';
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
services.pulseaudio.enable = false;
|
||||
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
|
||||
layout = "us";
|
||||
xkbVariant = "colemak";
|
||||
};
|
||||
|
||||
sound.enable = true;
|
||||
|
||||
system.stateVersion = "22.11";
|
||||
|
||||
users.users.willem = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
};
|
||||
}
|
25
system/utm-arm-vm.nix
Normal file
25
system/utm-arm-vm.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./nixos.nix ];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" "usb_storage" "sr_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/10c8feb5-8fbb-490a-b144-dff00e82f3e9";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot/efi" = {
|
||||
device = "/dev/disk/by-uuid/3D0E-803C";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
networking.useDHCP = true;
|
||||
|
||||
services.spice-vdagentd.enable = true;
|
||||
|
||||
swapDevices = [ ];
|
||||
}
|
Loading…
Add table
Reference in a new issue