From feb477f1c972705e6c80f2f3831952a89167fb56 Mon Sep 17 00:00:00 2001 From: death916 Date: Wed, 14 May 2025 08:02:03 -0700 Subject: [PATCH] hash --- flake.lock | 23 ++++++++++- flake.nix | 2 +- nixos/configuration.nix | 80 +++++-------------------------------- overlays/halloy-overlay.nix | 37 +++++++++++++++-- 4 files changed, 66 insertions(+), 76 deletions(-) diff --git a/flake.lock b/flake.lock index 0112dfb..3c001f5 100644 --- a/flake.lock +++ b/flake.lock @@ -96,7 +96,8 @@ "inputs": { "home-manager": "home-manager", "nixos-cosmic": "nixos-cosmic", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay_2" } }, "rust-overlay": { @@ -119,6 +120,26 @@ "repo": "rust-overlay", "type": "github" } + }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747190175, + "narHash": "sha256-s33mQ2s5L/2nyllhRTywgECNZyCqyF4MJeM3vG/GaRo=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "58160be7abad81f6f8cb53120d5b88c16e01c06d", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 44bd469..fb6dec0 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,7 @@ }; }; - outputs = inputs@{ nixpkgs, home-manager, nixos-cosmic, rust-overlay, ... }: + outputs = inputs@{ self, nixpkgs, home-manager, nixos-cosmic, rust-overlay, ... }: let # Common arguments to pass to all system configurations commonSpecialArgs = { diff --git a/nixos/configuration.nix b/nixos/configuration.nix index aec0e55..615441c 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -8,11 +8,10 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix - + # Remove this line - overlays are now handled in flake.nix + # ../overlays/halloy-overlay.nix ]; - nixpkgs.overlays = [ - (import ../overlays/halloy-overlay.nix) - ]; + # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; @@ -32,7 +31,6 @@ extraGroups = ["wheel" "networkmanager" ]; }; - # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; @@ -48,11 +46,10 @@ # Enable the X11 windowing system. services.xserver.enable = true; - # Enable the GNOME Desktop Environment. services.xserver.displayManager.gdm.enable = false; services.xserver.desktopManager.gnome.enable = false; - #cosmi instead + #cosmic instead services.desktopManager.cosmic.enable = true; services.displayManager.cosmic-greeter.enable = true; @@ -74,16 +71,7 @@ # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. - # users.users.alice = { - # isNormalUser = true; - # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - # packages = with pkgs; [ - # tree - # ]; - # }; - -# my settings + # my settings nix.settings.experimental-features = ["nix-command" "flakes"]; environment.systemPackages = with pkgs; [ # Flakes clones its dependencies through the git command, @@ -92,13 +80,15 @@ vim wget tailscale + halloy # Add halloy to your system packages ]; + # to make exit nodes work networking.firewall.checkReversePath = "loose"; hardware.bluetooth.enable = true; - # hardware.blueman.enable = true; - # hardware.bluetooth.package - pkgs.bluezFull; + # hardware.blueman.enable = true; + # hardware.bluetooth.package - pkgs.bluezFull; hardware.bluetooth.powerOnBoot = true; # my additions @@ -108,57 +98,7 @@ # Other Tailscale options... }; programs.firefox.enable = true; - # services.desktopManager.cosmic.enable = true; - - # List packages installed in system profile. To search, run: - # $ nix search wget - # environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget - # ]; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # Copy the NixOS configuration file and link it from the resulting system - # (/run/current-system/configuration.nix). This is useful in case you - # accidentally delete configuration.nix. - # system.copySystemConfiguration = true; - - # This option defines the first version of NixOS you have installed on this particular machine, - # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. - # - # Most users should NEVER change this value after the initial install, for any reason, - # even if you've upgraded your system to a new NixOS release. - # - # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, - # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how - # to actually do that. - # - # This value being lower than the current NixOS release does NOT mean your system is - # out of date, out of support, or vulnerable. - # - # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, - # and migrated your data accordingly. - # - # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "24.11"; # Did you read the comment? - } diff --git a/overlays/halloy-overlay.nix b/overlays/halloy-overlay.nix index e9b483d..0d2e54f 100644 --- a/overlays/halloy-overlay.nix +++ b/overlays/halloy-overlay.nix @@ -10,20 +10,50 @@ self: super: { sha256 = "sha256-cG/B6oiRkyoC5fK7bLdCDQYZymfMZspWXvOkqpwHRPk="; }; - # Use nightly Rust from rust-overlay + # Enable unstable features RUSTC_BOOTSTRAP = 1; # Use the nightly Rust toolchain nativeBuildInputs = with super; [ pkg-config - (rust-bin.nightly.latest.default.override { + (super.rust-bin.nightly.latest.default.override { extensions = [ "rust-src" ]; }) ]; - # Add patch to enable edition2024 + # Patch all Cargo.toml files to add cargo-features postPatch = '' + # Add cargo-features to main Cargo.toml sed -i '1i cargo-features = ["edition2024"]' Cargo.toml + + # Create a patch for the dependencies + mkdir -p .cargo + cat > .cargo/config.toml << EOF + [unstable] + edition2024 = true + EOF + ''; + + # Patch for cryoglyph dependency + cargoPatches = [ + (super.writeTextFile { + name = "add-cargo-features-patch"; + destination = "/cargo-features-patch"; + text = '' + diff --git a/Cargo.toml b/Cargo.toml + index 1111111..2222222 100644 + --- a/Cargo.toml + +++ b/Cargo.toml + @@ -0,0 +1 @@ + +cargo-features = ["edition2024"] + + ''; + }) + ]; + + # Apply patch to dependencies during build + preBuild = '' + export RUSTFLAGS="-Z allow-features=edition2024" ''; cargoLock = { @@ -36,7 +66,6 @@ self: super: { "cryoglyph-0.1.0" = "sha256-X7S9jq8wU6g1DDNEzOtP3lKWugDnpopPDBK49iWvD4o="; "dark-light-2.0.0" = "sha256-e826vF7iSkGUqv65TXHBUX04Kz2aaJJEW9f7JsAMaXE="; "iced-0.14.0-dev" = "sha256-FEGk1zkXM9o+fGMoDtmi621G6pL+Yca9owJz4q2Lzks="; - "dpi-0.1.1" = ""; }; };