stylix icon indicating copy to clipboard operation
stylix copied to clipboard

The option `stylix.image' is used but not defined.

Open MercuryHgO opened this issue 1 year ago • 14 comments

error:
       … while calling the 'head' builtin

         at /nix/store/giq1qbcwfx5gq0g9jf6id0b3m55a860j-source/lib/attrsets.nix:1575:11:

         1574|         || pred here (elemAt values 1) (head values) then
         1575|           head values
             |           ^
         1576|         else

       … while evaluating the attribute 'value'

         at /nix/store/giq1qbcwfx5gq0g9jf6id0b3m55a860j-source/lib/modules.nix:809:9:

          808|     in warnDeprecation opt //
          809|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          810|         inherit (res.defsFinal') highestPrio;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: The option `stylix.image' is used but not defined.

Cant build flake with home-manager and stylix.

./flake.nix

{
  description = "A very basic flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";

    home-manager =  {
        url = "github:nix-community/home-manager";
        inputs.nixpkgs.follows = "nixpkgs";
    };

    stylix = {
      url = "github:danth/stylix";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        home-manager.follows = "home-manager";
      };
    };
  };

   
  outputs = { self, nixpkgs, stylix, home-manager, ...}@inputs:

    let 
      system = "x86_64-linux";
    in {
      nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {

        specialArgs = {
          pkgs-stable = import nixpkgs {
            inherit system;
            config.allowUnfree = true;
          };
          inherit inputs system;
        };

        modules = [
          ./nixos/configuration.nix
          inputs.stylix.nixosModules.stylix
          home-manager.nixosModules.default
        ];

        # home-manager.useGlobalPkgs = true;
        # home-manager.useUserPackages = true;
        # home-manager.users.bittermann = import ./home.nix;
      };
    };
}

home.nix

{ pkgs, ... }: {
  stylix = {
    base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
  };

  home.username = "bittermann";
  home.homeDirectory = "/home/bittermann";
  home.stateVersion = "24.05";
  programs.home-manager.enable = true;
}

MercuryHgO avatar Jun 11 '24 16:06 MercuryHgO

Hi! I'm not sure if you're just trying to install Stylix, or if this is a new issue as a result of recent updates.

Do you have any other Stylix settings in your nixos/configuration.nix?

If you're installing Stylix for the first time, then from the config you've provided, it looks like you'll need to do the following:

  1. Move your Stylix settings from home.nix to configuration.nix, since you imported the NixOS version of Stylix.
  2. Choose a wallpaper using stylix.image.

danth avatar Jun 11 '24 18:06 danth

Hi! I'm not sure if you're just trying to install Stylix, or if this is a new issue as a result of recent updates.

Do you have any other Stylix settings in your nixos/configuration.nix?

If you're installing Stylix for the first time, then from the config you've provided, it looks like you'll need to do the following:

1. Move your Stylix settings from `home.nix` to `configuration.nix`, since you imported the NixOS version of Stylix.

2. Choose a wallpaper using `stylix.image`.

Same result, if i try adding the image it says

error: builder for '/nix/store/y5491140ymf8vcvgky4hdqkcfnghc3d6-stylix-kde-theme.drv' failed with exit code 1;
       last 1 log lines:
       > magick: unable to open image '/home/bittermann/nix/wallpaper.jpg': No such file or directory @ error/blob.c/OpenBlob/3596.

Directory is valid

MercuryHgO avatar Jun 11 '24 19:06 MercuryHgO

Is it necessary to add wallpaper to config?

MercuryHgO avatar Jun 11 '24 19:06 MercuryHgO

if i try adding the image it says

error: builder for '/nix/store/y5491140ymf8vcvgky4hdqkcfnghc3d6-stylix-kde-theme.drv' failed with exit code 1;
       last 1 log lines:
       > magick: unable to open image '/home/bittermann/nix/wallpaper.jpg': No such file or directory @ error/blob.c/OpenBlob/3596.

My fault, but even if i add the image, it says this:

error:
       … while calling the 'head' builtin

         at /nix/store/giq1qbcwfx5gq0g9jf6id0b3m55a860j-source/lib/attrsets.nix:1575:11:

         1574|         || pred here (elemAt values 1) (head values) then
         1575|           head values
             |           ^
         1576|         else

       … while evaluating the attribute 'value'

         at /nix/store/giq1qbcwfx5gq0g9jf6id0b3m55a860j-source/lib/modules.nix:809:9:

          808|     in warnDeprecation opt //
          809|       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          810|         inherit (res.defsFinal') highestPrio;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: syntax error, unexpected invalid token

       at /nix/store/19njvlyri8lkvrq3md997i1adwzicldr-source/nixos/wallpaper.jpg:1:1:

            1| ����JFIF,,AMPF��
             | ^
            2| �ExifMM*
                      ����(1�2�<��i��%	XAppleiPhone 12 miniHH17.4.12024:05:16 17:33:37iPhone 12 mini$�������"�' �0232���
                      ```

MercuryHgO avatar Jun 11 '24 19:06 MercuryHgO

That error sounds like it's trying to import the image as if it was Nix code.

How did you set the wallpaper option?

danth avatar Jun 11 '24 19:06 danth

That error sounds like it's trying to import the image as if it was Nix code.

How did you set the wallpaper option?

Yea, im accidentally imported as import ./wallaper.png.

Its still not processing this image if configures as absolute path:

  stylix = {
    enable = true;
    base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
    image = "/home/bittermann/nix/nixos/wallpaper.png";
  };

error

error: builder for '/nix/store/xzkgbldmbngj32m9glv5yjxf87ji0bxc-stylix-kde-theme.drv' failed with exit code 1;
       last 1 log lines:
       > magick: unable to open image '/home/bittermann/nix/nixos/wallpaper.png': No such file or directory @ error/blob.c/OpenBlob/3596.
       For full logs, run 'nix log /nix/store/xzkgbldmbngj32m9glv5yjxf87ji0bxc-stylix-kde-theme.drv'.
error: 1 dependencies of derivation '/nix/store/gjva7p2b3nvn7xng9h7cljgd5i3p11km-activation-script.drv' failed to build
error: 1 dependencies of derivation '/nix/store/9pm011fcspbjka488shwr3ly2ivhj4ss-home-manager-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/53dbnjp5mqfskr75aw067dlvg5dahrmn-home-manager-generation.drv' failed to build
error: 1 dependencies of derivation '/nix/store/89xbmkg0wn3fmac18gwdg6wcsykz8yc7-unit-home-manager-bittermann.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/rclra762f5mx13cb8phl9zgr37pav3fh-system-units.drv' failed to build
error: 1 dependencies of derivation '/nix/store/lj3ivdnaw5zwljhsv5rh30xmhw0cv05h-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/hyj48amrxzwsr45k3hn6ij485h88rh6y-nixos-system-nixos-24.05.20240609.2819fff.drv' failed to build

MercuryHgO avatar Jun 11 '24 19:06 MercuryHgO

Try configuring it as a relative path without quotes, like this: ./wallpaper.png

It will need to be in the same directory as your Nix files.

danth avatar Jun 12 '24 11:06 danth

Hey there, I've had various arcane errors with Stylix that I've tried - and failed - to get help with on Element, but now after switching to flakes my error message has switched to something that apparently at least someone else has too, error: The option 'stylix.image' is used but not defined.. I'm trying the same things now and am still stuck at that error.

geryzhydrox avatar Jun 12 '24 14:06 geryzhydrox

Try configuring it as a relative path without quotes, like this: ./wallpaper.png

It will need to be in the same directory as your Nix files.

That fixed my issue, thanks. But still, is it should be necessary to define wallpaper?

MercuryHgO avatar Jun 12 '24 16:06 MercuryHgO

I'd like to add that I experienced this issue after updating my flake with nix flake update It seems the recent(?) change that requires you set stylix.enable may have caused stylix.image not to be defined anymore.

I added stylix.enable = true; to my configuration.nix to solve the issue.

MasonRhodesDev avatar Jun 12 '24 16:06 MasonRhodesDev

But still, is it should be necessary to define wallpaper?

See https://github.com/danth/stylix/issues/200.

trueNAHO avatar Jun 14 '24 14:06 trueNAHO

I have what I believe to be the latest stylix and the latest nix-darwin. I'm getting error: The option 'stylix.image' is used but not defined. as well when trying to use nix-darwin switch.

I noticed the error actually occurs at: /nix/store/c5d7z0g0mqdvqanndgcfxcffvkcn4ymd-source/stylix/home-manager-integration.nix. Based on that, is it breaking because the home-manager config doesn't have defs for stylix?

Here is the relevant subset of my nix flake metadata output:

├───home-manager: github:nix-community/home-manager/845a5c4c073f74105022533907703441e0464bc3?narHash=sha256-vWSkg6AMok1UUQiSYVdGMOXKD2cDFnajITiSi0Zjd1A%3D (2024-06-04 18:53:02)
│   └───nixpkgs follows input 'nixpkgs'
├───nix-darwin: github:lnl7/nix-darwin/58b905ea87674592aa84c37873e6c07bc3807aba?narHash=sha256-iMVwdob8F6P6Ib%2BpnhMZqyvYI10ZxmvA885jjnEaO54%3D (2024-06-15 08:40:58)
│   └───nixpkgs follows input 'nixpkgs-darwin'
└───stylix: github:danth/stylix/f13c946181730f98e1a5cd09714100490207b250?narHash=sha256-REUyeY%2BgD/QuTwAhuJycheej0FWFGPTosI%2BjiG5TsQk%3D (2024-06-17 14:30:35)
    ├───home-manager: github:nix-community/home-manager/e3ad5108f54177e6520535768ddbf1e6af54b59d?narHash=sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ%2BNqp%2Bi58O46LI%3D (2024-05-17 07:24:04)
    │   └───nixpkgs follows input 'stylix/nixpkgs'
    └───nixpkgs: github:NixOS/nixpkgs/ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d?narHash=sha256-clkcOIkg8G4xuJh%2B1onLG4HPMpbtzdLv4rHxFzgsH9c%3D (2024-05-05 12:27:12)
 

joefiorini avatar Jun 17 '24 20:06 joefiorini

Even when setting an image but specifying base16 theme, I'm seeing no/wrong application of themes with no build errors, think something might be afoot here but haven't had the chance to investigate further yet.

georgealexanderday avatar Aug 04 '24 14:08 georgealexanderday

Even when setting an image but specifying base16 theme, I'm seeing no/wrong application of themes with no build errors

If by "no/wrong", you mean that Stylix is not actually doing anything, consider reading https://github.com/danth/stylix/issues/417#issuecomment-2157942224.

trueNAHO avatar Aug 04 '24 14:08 trueNAHO

I am encountering a similar issue. if I do not define stylix.enable = true; along with the wallpaper and color theme, in the configuration.nix I get the same error: The option 'stylix.image' was accessed but has no value defined. Try setting the option.

I thought I could just put the options in home.nix instead of configuration.nix is the correct?

Here is my flake.

outputs = inputs@{ self, nixpkgs, home-manager, ... }: {
    
    nixosConfigurations = {
      
      nixos = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ./configuration.nix
          inputs.stylix.nixosModules.stylix
          
          home-manager.nixosModules.home-manager
          {
            home-manager.useGlobalPkgs = true;
            home-manager.useUserPackages = true;
            home-manager.users.evan = import ./home/home.nix;

            # Optionally, use home-manager.extraSpecialArgs to pass
            # arguments to home.nix
          }
        ];
      };
    };
  };

RekitRalph avatar Oct 20 '24 15:10 RekitRalph

It's the other way around - you can use configuration.nix and the settings will automatically be copied to Home Manager.

danth avatar Oct 20 '24 17:10 danth