Compare commits
9 Commits
b25fc9a2b8
...
069a3b8333
| Author | SHA1 | Date |
|---|---|---|
|
|
069a3b8333 | |
|
|
851f226518 | |
|
|
7b872f4596 | |
|
|
84ec0824e8 | |
|
|
8f2c473219 | |
|
|
475c21cbac | |
|
|
671578567a | |
|
|
f92ed39653 | |
|
|
91a1c7f6ca |
|
|
@ -5,11 +5,11 @@
|
||||||
1. Build the virtual machine
|
1. Build the virtual machine
|
||||||
|
|
||||||
```
|
```
|
||||||
nix run -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Run the virtual machine
|
2. Run the virtual machine
|
||||||
|
|
||||||
```
|
```
|
||||||
QEMU_KERNEL_PARAMS=console=ttyS0 ./result/bin/run-nixos-vm -nographic; reset
|
./result/bin/disko-vm
|
||||||
```
|
```
|
||||||
|
|
|
||||||
19
flake.nix
19
flake.nix
|
|
@ -13,18 +13,23 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, disko, home-manager }: {
|
outputs =
|
||||||
nixosConfigurations.vm = nixpkgs.lib.nixosSystem {
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
disko,
|
||||||
|
home-manager,
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
nixosConfigurations = {
|
||||||
|
vm = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
disko.nixosModules.disko
|
disko.nixosModules.disko
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
./hosts/vm/configuration.nix
|
./hosts/vm/configuration.nix
|
||||||
home-manager.nixosModules.home-manager {
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.users.h = ./hosts/vm/home.nix;
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
|
|
||||||
imports =
|
imports = [
|
||||||
[
|
|
||||||
./hard.nix
|
./hard.nix
|
||||||
./disk.nix
|
./disk.nix
|
||||||
../../modules/bootloader.nix
|
../../modules/bootloader.nix
|
||||||
|
|
@ -16,22 +15,40 @@
|
||||||
../../modules/x.nix
|
../../modules/x.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
|
disko = {
|
||||||
|
devices.disk.main.device = "/dev/vda";
|
||||||
|
devices.disk.main.imageName = "nixos-vm";
|
||||||
|
devices.disk.main.imageSize = "32G";
|
||||||
|
};
|
||||||
|
|
||||||
disko.devices.disk.main.device = "/dev/vda";
|
virtualisation.vmVariantWithDisko = {
|
||||||
|
virtualisation = {
|
||||||
programs.git.enable = true;
|
cores = 8;
|
||||||
programs.firefox.enable = true;
|
memorySize = 16384;
|
||||||
|
qemu.options = [
|
||||||
|
"-enable-kvm"
|
||||||
|
"-cpu host"
|
||||||
|
"-nographic"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
home-manager = {
|
||||||
neovim
|
useGlobalPkgs = true;
|
||||||
kitty
|
useUserPackages = true;
|
||||||
];
|
users.h = ./home.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.qemuGuest.enable = true;
|
||||||
services.spice-vdagentd.enable = true;
|
services.spice-vdagentd.enable = true;
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
startWhenNeeded = true;
|
startWhenNeeded = true;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,3 @@
|
||||||
# USAGE in your configuration.nix.
|
|
||||||
# Update devices to match your hardware.
|
|
||||||
# {
|
|
||||||
# imports = [ ./disko-config.nix ];
|
|
||||||
# disko.devices.disk.main.device = "/dev/sda";
|
|
||||||
# }
|
|
||||||
{
|
{
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,26 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# 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, pkgs, modulesPath, ... }:
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
|
boot.initrd.availableKernelModules = [
|
||||||
|
"ahci"
|
||||||
|
"xhci_pci"
|
||||||
|
"virtio_pci"
|
||||||
|
"sr_mod"
|
||||||
|
"virtio_blk"
|
||||||
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,81 @@
|
||||||
home.username = "h";
|
home.username = "h";
|
||||||
home.homeDirectory = "/home/h";
|
home.homeDirectory = "/home/h";
|
||||||
|
|
||||||
home.file.".inputrc".source = ../../dots/.inputrc;
|
programs = {
|
||||||
|
bash = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
initExtra = ''
|
||||||
|
for f in ${config.home.homeDirectory}/.bashrc.d/*; do
|
||||||
|
[ -f "$f" ] && source "$f"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
firefox.enable = true;
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
git.enable = true;
|
||||||
|
home-manager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
home.packages = with pkgs; [
|
||||||
|
bash-completion
|
||||||
|
bash-language-server
|
||||||
|
bat
|
||||||
|
brightnessctl
|
||||||
|
entr
|
||||||
|
eslint_d
|
||||||
|
feh
|
||||||
|
firefox-devedition
|
||||||
|
fzf
|
||||||
|
git
|
||||||
|
haskell-language-server
|
||||||
|
haskellPackages.pandoc-crossref
|
||||||
|
haskellPackages.hadolint
|
||||||
|
htop
|
||||||
|
iosevka
|
||||||
|
jq
|
||||||
|
keepassxc
|
||||||
|
kitty
|
||||||
|
lua-language-server
|
||||||
|
neovim
|
||||||
|
nmap
|
||||||
|
nodejs_24
|
||||||
|
nodePackages.ts-node
|
||||||
|
nvimpager
|
||||||
|
ormolu
|
||||||
|
pandoc
|
||||||
|
parallel
|
||||||
|
pass
|
||||||
|
pnpm
|
||||||
|
ripgrep
|
||||||
|
silver-searcher
|
||||||
|
sshfs
|
||||||
|
stylelint
|
||||||
|
svelte-language-server
|
||||||
|
tailwindcss-language-server
|
||||||
|
taskwarrior3
|
||||||
|
tldr
|
||||||
|
tmux
|
||||||
|
tmuxp
|
||||||
|
tree
|
||||||
|
tree-sitter
|
||||||
|
typescript-language-server
|
||||||
|
unzip
|
||||||
|
vim-language-server
|
||||||
|
vimPlugins.vim-plug
|
||||||
|
vtsls
|
||||||
|
wget
|
||||||
|
xbanish
|
||||||
|
xclip
|
||||||
|
yaml-language-server
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
".inputrc".source = ../../dots/.inputrc;
|
||||||
|
".bashrc.d/prompt".source = ../../dots/.bashrc.d/prompt;
|
||||||
|
".bashrc.d/editor".source = ../../dots/.bashrc.d/editor;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,11 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
networking.hostName = "nixos";
|
networking.hostName = "nixos";
|
||||||
networking.wireless = { iwd = { enable = true; }; };
|
networking.wireless = {
|
||||||
|
iwd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = [ 22 ];
|
allowedTCPPorts = [ 22 ];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue