Compare commits

..

1 commit

Author SHA1 Message Date
885fc0e462
wip: niri take 2 [skip-ci]
Some checks failed
/ check (push) Successful in 8s
/ check-renovaterc (push) Successful in 3s
/ build-packages (push) Successful in 13s
/ build-vm (push) Failing after 26s
/ report-size (push) Successful in 1m2s
Take two, since one wasn't enough.
2025-03-16 22:33:39 +01:00
14 changed files with 126 additions and 123 deletions

View file

@ -39,9 +39,7 @@ jobs:
nix build --print-build-logs '.#nixosConfigurations.vm.config.system.build.toplevel' nix build --print-build-logs '.#nixosConfigurations.vm.config.system.build.toplevel'
report-size: report-size:
runs-on: nixos runs-on: nixos
needs: needs: build
- build-packages
- build-vm
steps: steps:
- uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4 - uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4
- run: nix --version - run: nix --version

View file

@ -1,40 +0,0 @@
{
import = [ ./vm_config.nix ];
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
users.users.jdoe = {
password = "example";
isNormalUser = true;
extraGroups = [
"wheel"
"video"
"networkmanager"
];
};
home-manager.users.jdoe = {
home = {
username = "jdoe";
homeDirectory = "/home/jdoe";
};
jhome = {
enable = true;
gui.enable = true;
dev = {
enable = true;
rust.enable = true;
};
};
};
# password is 'test' see module documentation for more options
services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
jconfig = {
enable = true;
dev = {
enable = true;
jupyter.enable = true;
};
gui.enable = true;
};
}

View file

@ -8,11 +8,47 @@ in
{ {
# Example vm configuration # Example vm configuration
flake.nixosConfigurations.vm = lib.nixosSystem { flake.nixosConfigurations.vm = lib.nixosSystem {
inherit pkgs; inherit system pkgs;
modules = [ modules = [
inputs.self.nixosModules.default inputs.self.nixosModules.vm # import vm module
../example-vm # import vm configuration {
{ nix.registry.nixpkgs.flake = inputs.nixpkgs; } time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
users.users.jdoe = {
password = "example";
isNormalUser = true;
extraGroups = [
"wheel"
"video"
"networkmanager"
];
};
home-manager.users.jdoe = {
home = {
username = "jdoe";
homeDirectory = "/home/jdoe";
};
jhome = {
enable = true;
gui.enable = true;
dev = {
enable = true;
rust.enable = true;
};
};
};
nix.registry.nixpkgs.flake = inputs.nixpkgs;
# password is 'test' see module documentation for more options
services.jupyter.password = "'sha1:1b961dc713fb:88483270a63e57d18d43cf337e629539de1436ba'";
jconfig = {
enable = true;
dev = {
enable = true;
jupyter.enable = true;
};
gui.enable = true;
};
}
]; ];
}; };

View file

@ -1,4 +1,7 @@
{ self, inputs, ... }: { self, inputs, ... }:
let
modules = ../modules;
in
{ {
# FIXME(25.05): this version of HM should have the flake module # FIXME(25.05): this version of HM should have the flake module
# imports = [ inputs.home-manager.flakeModules.home-manager ]; # imports = [ inputs.home-manager.flakeModules.home-manager ];
@ -8,7 +11,7 @@
defaultModules = [ defaultModules = [
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
self.nixvimModules.homeManager self.nixvimModules.homeManager
../module/hm (modules + "/hm")
]; ];
nixos = { nixos = {
imports = defaultModules; imports = defaultModules;

View file

@ -4,6 +4,9 @@
lib, lib,
... ...
}: }:
let
modules = ../modules;
in
{ {
flake.nixosModules = flake.nixosModules =
let let
@ -12,7 +15,7 @@
inputs.niri.nixosModules.niri inputs.niri.nixosModules.niri
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
../modules/nixos (modules + "/nixos")
] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default; ] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default;
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
@ -22,9 +25,20 @@
# Pin nixpkgs # Pin nixpkgs
nix.registry.nixpkgs.flake = inputs.nixpkgs; nix.registry.nixpkgs.flake = inputs.nixpkgs;
}; };
machines = [ "vm" ];
mkMachine = hostname: {
imports = [
nixosModule
(import (../machines + "/${hostname}"))
];
home-manager.sharedModules = [ { jhome.hostName = hostname; } ];
};
machineModules = lib.genAttrs machines mkMachine;
in in
{ {
default = nixosModule; default = nixosModule;
inherit nixosModule; inherit nixosModule;
}; }
// machineModules;
} }

View file

@ -1,4 +1,7 @@
{ self, inputs, ... }: { self, inputs, ... }:
let
modules = ../modules;
in
{ {
imports = [ inputs.nixvim.flakeModules.default ]; imports = [ inputs.nixvim.flakeModules.default ];
@ -7,14 +10,10 @@
checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074 checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074
}; };
flake.nixvimModules = flake.nixvimModules = {
let standalone = modules + "/nixvim/standalone.nix";
module = ../modules/nixvim; homeManager = modules + "/nixvim";
in };
{
standalone = "${module}/standalone.nix";
homeManager = module;
};
perSystem = perSystem =
{ system, ... }: { system, ... }:

30
flake.lock generated
View file

@ -226,11 +226,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1742234739, "lastModified": 1739757849,
"narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -321,11 +321,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1742388435, "lastModified": 1741862977,
"narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=", "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6", "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -337,11 +337,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1742272065, "lastModified": 1738797219,
"narHash": "sha256-ud8vcSzJsZ/CK+r8/v0lyf4yUntVmDq6Z0A41ODfWbE=", "narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3549532663732bfd89993204d40543e9edaec4f2", "rev": "1da52dd49a127ad74486b135898da2cef8c62665",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -360,11 +360,11 @@
"nuschtosSearch": [] "nuschtosSearch": []
}, },
"locked": { "locked": {
"lastModified": 1742488644, "lastModified": 1741814789,
"narHash": "sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo=", "narHash": "sha256-NbHsnnNwiYUcUaS4z8XK2tYpo3G8NXEKxaKkzMgMiLk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13", "rev": "33097dcf776d1fad0ff3842096c4e3546312f251",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -504,11 +504,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1742370146, "lastModified": 1739829690,
"narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=", "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "adc195eef5da3606891cedf80c0d9ce2d3190808", "rev": "3d0579f5cc93436052d94b73925b48973a104204",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -13,19 +13,22 @@ run-vm: build-vm
update-vim-plugins: update-vim-plugins:
#!/bin/sh #!/bin/sh
plugindir=./modules/nixvim/extraPlugins # Use local nixpkgs if available
nixpkgs="$HOME/Dev/nixpkgs"
# copy nixpkgs from local checkout # copy nixpkgs from local checkout
nixpkgs="$(mktemp -d)" if [ ! -d "$nixpkgs" ]; then
cp -r /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/. "$nixpkgs" nixpkgs="$(mktemp -d)"
cd "$nixpkgs" cp -r /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/. "$nixpkgs"
git init . cd "$nixpkgs"
git add . git init .
git commit -m 'dummy commit' git add .
cd - git commit -m 'dummy commit'
cd -
fi
# update vim plugins # update vim plugins
nix run nixpkgs#vimPluginsUpdater -- --proc=1 --nixpkgs "$nixpkgs" --no-commit -i "$plugindir/plugins" -o "$plugindir/generated.nix" update nix run nixpkgs#vimPluginsUpdater -- --proc=1 --nixpkgs "$nixpkgs" --no-commit -i ./nvim/extraPlugins/plugins -o ./nvim/extraPlugins/generated.nix update
# format the generated output # format the generated output
nix fmt "$plugindir/generated.nix" nix fmt ./nvim/extraPlugins/generated.nix
# Amend Update flake.lock PR # Amend Update flake.lock PR
flake-pr: flake-pr:

View file

@ -1,34 +1,31 @@
## Default QEMU guest config
{ {
services = { services.qemuGuest.enable = true;
qemuGuest.enable = true;
openssh.enable = true;
};
boot = { boot.initrd.availableKernelModules = [
loader.systemd-boot.enable = true; "xhci_pci"
initrd.availableKernelModules = [ "ehci_pci"
"xhci_pci" "ahci"
"ehci_pci" "usbhid"
"ahci" "usb_storage"
"usbhid" "sd_mod"
"usb_storage" "virtio_balloon"
"sd_mod" "virtio_blk"
"virtio_balloon" "virtio_pci"
"virtio_blk" "virtio_ring"
"virtio_pci" # "virtio_vga"
"virtio_ring" "virtio_gpu"
# "virtio_vga" ];
"virtio_gpu"
];
};
fileSystems."/".device = "/dev/disk/by-label/nixos"; fileSystems."/".device = "/dev/disk/by-label/nixos";
boot.loader.systemd-boot.enable = true;
services.openssh.enable = true;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment? system.stateVersion = "22.11"; # Did you read the comment?
} }

View file

@ -80,10 +80,8 @@ in
settings = lib.mkIf config.jhome.styling.enable ( settings = lib.mkIf config.jhome.styling.enable (
import ./waybar-settings.nix { inherit config lib; } import ./waybar-settings.nix { inherit config lib; }
); );
# Style overrides to highlight workspaces with windows
style = style =
lib.pipe lib.optionalString config.jhome.styling.enable # css
# css
'' ''
.modules-left #workspaces button { .modules-left #workspaces button {
border-bottom: 3px solid @base01; border-bottom: 3px solid @base01;
@ -91,11 +89,7 @@ in
.modules-left #workspaces button.persistent { .modules-left #workspaces button.persistent {
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
} }
'' '';
[
(lib.optionalString config.jhome.styling.enable)
lib.mkAfter
];
}; };
# Terminal # Terminal
wezterm = { wezterm = {

View file

@ -22,9 +22,8 @@ in
}; };
programs.jujutsu.settings = { programs.jujutsu.settings = {
user = lib.mkIf (cfg.defaultIdentity != null) { inherit (cfg.defaultIdentity) name email; }; user = lib.mkIf (cfg.defaultIdentity != null) { inherit (cfg.defaultIdentity) name email; };
git.sign-on-push = lib.mkDefault hasKey;
signing = lib.mkIf hasKey { signing = lib.mkIf hasKey {
behaviour = "own"; sign-all = true;
backend = "gpg"; backend = "gpg";
key = signingKey; key = signingKey;
}; };

View file

@ -10,12 +10,12 @@
final: prev: { final: prev: {
nvim-silicon = buildVimPlugin { nvim-silicon = buildVimPlugin {
pname = "nvim-silicon"; pname = "nvim-silicon";
version = "2025-01-09"; version = "2024-08-31";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "michaelrommel"; owner = "michaelrommel";
repo = "nvim-silicon"; repo = "nvim-silicon";
rev = "7f66bda8f60c97a5bf4b37e5b8acb0e829ae3c32"; rev = "9fe6001dc8cad4d9c53bcfc8649e3dc76ffa169c";
sha256 = "1zk6lgghvdcys20cqvh2g1kjf661q1w97niq5nx1zz4yppy2f9jy"; sha256 = "1qczi06yndkr2pmwidlkgmk0395x189sznvscn4fnr96jx58j5yl";
}; };
meta.homepage = "https://github.com/michaelrommel/nvim-silicon/"; meta.homepage = "https://github.com/michaelrommel/nvim-silicon/";
}; };

View file

@ -327,9 +327,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "1.0.3" version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"errno", "errno",

View file

@ -492,9 +492,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "1.0.3" version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"errno", "errno",