diff --git a/.forgejo/workflows/check.yml b/.forgejo/workflows/check.yml index 8d44b1d..2eb273b 100644 --- a/.forgejo/workflows/check.yml +++ b/.forgejo/workflows/check.yml @@ -39,9 +39,7 @@ jobs: nix build --print-build-logs '.#nixosConfigurations.vm.config.system.build.toplevel' report-size: runs-on: nixos - needs: - - build-packages - - build-vm + needs: build steps: - uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4 - run: nix --version diff --git a/example-vm/default.nix b/example-vm/default.nix deleted file mode 100644 index 305f847..0000000 --- a/example-vm/default.nix +++ /dev/null @@ -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; - }; -} diff --git a/flake-modules/example-vm.nix b/flake-modules/example-vm.nix index d6b88de..a8ce4b3 100644 --- a/flake-modules/example-vm.nix +++ b/flake-modules/example-vm.nix @@ -8,11 +8,47 @@ in { # Example vm configuration flake.nixosConfigurations.vm = lib.nixosSystem { - inherit pkgs; + inherit system pkgs; modules = [ - inputs.self.nixosModules.default - ../example-vm # import vm configuration - { nix.registry.nixpkgs.flake = inputs.nixpkgs; } + inputs.self.nixosModules.vm # import vm module + { + 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; + }; + } ]; }; diff --git a/flake-modules/home-modules.nix b/flake-modules/home-modules.nix index 54e348b..8d8ca71 100644 --- a/flake-modules/home-modules.nix +++ b/flake-modules/home-modules.nix @@ -1,4 +1,7 @@ { self, inputs, ... }: +let + modules = ../modules; +in { # FIXME(25.05): this version of HM should have the flake module # imports = [ inputs.home-manager.flakeModules.home-manager ]; @@ -8,7 +11,7 @@ defaultModules = [ inputs.nixvim.homeManagerModules.nixvim self.nixvimModules.homeManager - ../module/hm + (modules + "/hm") ]; nixos = { imports = defaultModules; diff --git a/flake-modules/nixos-modules.nix b/flake-modules/nixos-modules.nix index 44ec630..dddf1ee 100644 --- a/flake-modules/nixos-modules.nix +++ b/flake-modules/nixos-modules.nix @@ -4,6 +4,9 @@ lib, ... }: +let + modules = ../modules; +in { flake.nixosModules = let @@ -12,7 +15,7 @@ inputs.niri.nixosModules.niri inputs.stylix.nixosModules.stylix inputs.home-manager.nixosModules.home-manager - ../modules/nixos + (modules + "/nixos") ] ++ lib.optional (inputs.lix-module != null) inputs.lix-module.nixosModules.default; home-manager = { useGlobalPkgs = true; @@ -22,9 +25,20 @@ # Pin 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 { default = nixosModule; inherit nixosModule; - }; + } + // machineModules; } diff --git a/flake-modules/nixvim-modules.nix b/flake-modules/nixvim-modules.nix index 1f8a395..9841d46 100644 --- a/flake-modules/nixvim-modules.nix +++ b/flake-modules/nixvim-modules.nix @@ -1,4 +1,7 @@ { self, inputs, ... }: +let + modules = ../modules; +in { imports = [ inputs.nixvim.flakeModules.default ]; @@ -7,14 +10,10 @@ checks.enable = false; # FIXME: borked due to nix-community/nixvim#3074 }; - flake.nixvimModules = - let - module = ../modules/nixvim; - in - { - standalone = "${module}/standalone.nix"; - homeManager = module; - }; + flake.nixvimModules = { + standalone = modules + "/nixvim/standalone.nix"; + homeManager = modules + "/nixvim"; + }; perSystem = { system, ... }: diff --git a/flake.lock b/flake.lock index ba3e58a..3e3ad5f 100644 --- a/flake.lock +++ b/flake.lock @@ -226,11 +226,11 @@ ] }, "locked": { - "lastModified": 1742234739, - "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", + "lastModified": 1739757849, + "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", "owner": "nix-community", "repo": "home-manager", - "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", + "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", "type": "github" }, "original": { @@ -321,11 +321,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742388435, - "narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=", + "lastModified": 1741862977, + "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6", + "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0", "type": "github" }, "original": { @@ -337,11 +337,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1742272065, - "narHash": "sha256-ud8vcSzJsZ/CK+r8/v0lyf4yUntVmDq6Z0A41ODfWbE=", + "lastModified": 1738797219, + "narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3549532663732bfd89993204d40543e9edaec4f2", + "rev": "1da52dd49a127ad74486b135898da2cef8c62665", "type": "github" }, "original": { @@ -360,11 +360,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742488644, - "narHash": "sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo=", + "lastModified": 1741814789, + "narHash": "sha256-NbHsnnNwiYUcUaS4z8XK2tYpo3G8NXEKxaKkzMgMiLk=", "owner": "nix-community", "repo": "nixvim", - "rev": "d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13", + "rev": "33097dcf776d1fad0ff3842096c4e3546312f251", "type": "github" }, "original": { @@ -504,11 +504,11 @@ ] }, "locked": { - "lastModified": 1742370146, - "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=", + "lastModified": 1739829690, + "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808", + "rev": "3d0579f5cc93436052d94b73925b48973a104204", "type": "github" }, "original": { diff --git a/justfile b/justfile index 4021089..a88bd00 100644 --- a/justfile +++ b/justfile @@ -13,19 +13,22 @@ run-vm: build-vm update-vim-plugins: #!/bin/sh - plugindir=./modules/nixvim/extraPlugins + # Use local nixpkgs if available + nixpkgs="$HOME/Dev/nixpkgs" # copy nixpkgs from local checkout - nixpkgs="$(mktemp -d)" - cp -r /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/. "$nixpkgs" - cd "$nixpkgs" - git init . - git add . - git commit -m 'dummy commit' - cd - + if [ ! -d "$nixpkgs" ]; then + nixpkgs="$(mktemp -d)" + cp -r /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/. "$nixpkgs" + cd "$nixpkgs" + git init . + git add . + git commit -m 'dummy commit' + cd - + fi # 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 - nix fmt "$plugindir/generated.nix" + nix fmt ./nvim/extraPlugins/generated.nix # Amend Update flake.lock PR flake-pr: diff --git a/example-vm/vm-config.nix b/machines/vm/default.nix similarity index 50% rename from example-vm/vm-config.nix rename to machines/vm/default.nix index 1b2b4d0..ced0faa 100644 --- a/example-vm/vm-config.nix +++ b/machines/vm/default.nix @@ -1,34 +1,31 @@ -## Default QEMU guest config { - services = { - qemuGuest.enable = true; - openssh.enable = true; - }; + services.qemuGuest.enable = true; - boot = { - loader.systemd-boot.enable = true; - initrd.availableKernelModules = [ - "xhci_pci" - "ehci_pci" - "ahci" - "usbhid" - "usb_storage" - "sd_mod" - "virtio_balloon" - "virtio_blk" - "virtio_pci" - "virtio_ring" - # "virtio_vga" - "virtio_gpu" - ]; - }; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ehci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + "virtio_balloon" + "virtio_blk" + "virtio_pci" + "virtio_ring" + # "virtio_vga" + "virtio_gpu" + ]; 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 # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (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? } diff --git a/modules/hm/gui/default.nix b/modules/hm/gui/default.nix index 00d70ea..10948b2 100644 --- a/modules/hm/gui/default.nix +++ b/modules/hm/gui/default.nix @@ -80,10 +80,8 @@ in settings = lib.mkIf config.jhome.styling.enable ( import ./waybar-settings.nix { inherit config lib; } ); - # Style overrides to highlight workspaces with windows style = - lib.pipe - # css + lib.optionalString config.jhome.styling.enable # css '' .modules-left #workspaces button { border-bottom: 3px solid @base01; @@ -91,11 +89,7 @@ in .modules-left #workspaces button.persistent { border-bottom: 3px solid transparent; } - '' - [ - (lib.optionalString config.jhome.styling.enable) - lib.mkAfter - ]; + ''; }; # Terminal wezterm = { diff --git a/modules/hm/users.nix b/modules/hm/users.nix index acbf9a8..dc36346 100644 --- a/modules/hm/users.nix +++ b/modules/hm/users.nix @@ -22,9 +22,8 @@ in }; programs.jujutsu.settings = { user = lib.mkIf (cfg.defaultIdentity != null) { inherit (cfg.defaultIdentity) name email; }; - git.sign-on-push = lib.mkDefault hasKey; signing = lib.mkIf hasKey { - behaviour = "own"; + sign-all = true; backend = "gpg"; key = signingKey; }; diff --git a/modules/nixvim/extraPlugins/generated.nix b/modules/nixvim/extraPlugins/generated.nix index f0a2fcf..e4d204b 100644 --- a/modules/nixvim/extraPlugins/generated.nix +++ b/modules/nixvim/extraPlugins/generated.nix @@ -10,12 +10,12 @@ final: prev: { nvim-silicon = buildVimPlugin { pname = "nvim-silicon"; - version = "2025-01-09"; + version = "2024-08-31"; src = fetchFromGitHub { owner = "michaelrommel"; repo = "nvim-silicon"; - rev = "7f66bda8f60c97a5bf4b37e5b8acb0e829ae3c32"; - sha256 = "1zk6lgghvdcys20cqvh2g1kjf661q1w97niq5nx1zz4yppy2f9jy"; + rev = "9fe6001dc8cad4d9c53bcfc8649e3dc76ffa169c"; + sha256 = "1qczi06yndkr2pmwidlkgmk0395x189sznvscn4fnr96jx58j5yl"; }; meta.homepage = "https://github.com/michaelrommel/nvim-silicon/"; }; diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index 44304bb..94ca863 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -327,9 +327,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" dependencies = [ "bitflags", "errno", diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index a83122b..233f069 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -492,9 +492,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" dependencies = [ "bitflags", "errno",