NixOS

The following options can only be set in a NixOS configuration.

NixOS options

stylix.enable

Whether to enable Stylix.

When this is false, all theming is disabled and all other options are ignored.

Type: boolean

Default: false

Example: true

Declared by:

stylix.enableReleaseChecks

Whether to check that the Stylix release matches the releases of NixOS, Home Manager, and nix-darwin. Checks are only performed if the component in question is used.

If this option is enabled and a mismatch is detected, a warning will be printed when the user configuration is being built.

Type: boolean

Default: true

Declared by:

stylix.autoEnable

Whether to enable targets by default.

When this is false, all targets are disabled unless explicitly enabled.

When this is true, most targets are enabled by default. A small number remain off by default, because they require further manual setup, or they are only applicable in specific circumstances which cannot be detected automatically.

Type: boolean

Default: true

Example: false

Declared by:

stylix.base16Scheme

A scheme following the base16 standard.

This can be a path to a file, a string of YAML, or an attribute set.

Type: null or absolute path or strings concatenated with “\n” or (attribute set)

Default: The colors used in the theming.

Those are automatically selected from the background image by default, but could be overridden manually.

Declared by:

stylix.cursor.package

Package providing the cursor theme.

Type: package

Default: <derivation vanilla-dmz-0.4.5>

Declared by:

stylix.cursor.name

The cursor name within the package.

Type: string

Default: "Vanilla-DMZ"

Declared by:

stylix.cursor.size

The cursor size.

Type: signed integer

Default: 32

Declared by:

stylix.fonts.packages

A list of all the font packages that will be installed.

Type: list of package (read only)

Declared by:

stylix.fonts.emoji

Emoji font.

Type: submodule

Default:

{
  name = "Noto Color Emoji";
  package = <derivation noto-fonts-color-emoji-2.047>;
}

Declared by:

stylix.fonts.emoji.package

Package providing the font.

Type: package

Declared by:

stylix.fonts.emoji.name

Name of the font within the package.

Type: string

Declared by:

stylix.fonts.monospace

Monospace font.

Type: submodule

Default:

{
  name = "DejaVu Sans Mono";
  package = <derivation dejavu-fonts-2.37>;
}

Declared by:

stylix.fonts.monospace.package

Package providing the font.

Type: package

Declared by:

stylix.fonts.monospace.name

Name of the font within the package.

Type: string

Declared by:

stylix.fonts.sansSerif

Sans-serif font.

Type: submodule

Default:

{
  name = "DejaVu Sans";
  package = <derivation dejavu-fonts-2.37>;
}

Declared by:

stylix.fonts.sansSerif.package

Package providing the font.

Type: package

Declared by:

stylix.fonts.sansSerif.name

Name of the font within the package.

Type: string

Declared by:

stylix.fonts.serif

Serif font.

Type: submodule

Default:

{
  name = "DejaVu Serif";
  package = <derivation dejavu-fonts-2.37>;
}

Declared by:

stylix.fonts.serif.package

Package providing the font.

Type: package

Declared by:

stylix.fonts.serif.name

Name of the font within the package.

Type: string

Declared by:

stylix.fonts.sizes.applications

The font size used for applications.

This is measured in points. In a computing context, there should be 72 points per inch.

The CSS specification says there should be 96 reference pixels per inch. This means CSS uses a fixed ratio of 3 points to every 4 pixels, which is sometimes useful. However, reference pixels might not correspond to physical pixels, so this conversion may be invalid for other applications.

The measurements given in inches are likely to be incorrect unless you’ve manually set your DPI.

Type: unsigned integer, meaning >=0, or floating point number

Default: 12

Declared by:

stylix.fonts.sizes.desktop

The font size used for window titles, status bars, and other general elements of the desktop.

This is measured in points. In a computing context, there should be 72 points per inch.

The CSS specification says there should be 96 reference pixels per inch. This means CSS uses a fixed ratio of 3 points to every 4 pixels, which is sometimes useful. However, reference pixels might not correspond to physical pixels, so this conversion may be invalid for other applications.

The measurements given in inches are likely to be incorrect unless you’ve manually set your DPI.

Type: unsigned integer, meaning >=0, or floating point number

Default: 10

Declared by:

stylix.fonts.sizes.popups

The font size used for notifications, popups, and other overlay elements of the desktop.

This is measured in points. In a computing context, there should be 72 points per inch.

The CSS specification says there should be 96 reference pixels per inch. This means CSS uses a fixed ratio of 3 points to every 4 pixels, which is sometimes useful. However, reference pixels might not correspond to physical pixels, so this conversion may be invalid for other applications.

The measurements given in inches are likely to be incorrect unless you’ve manually set your DPI.

Type: unsigned integer, meaning >=0, or floating point number

Default: 10

Declared by:

stylix.fonts.sizes.terminal

The font size used for terminals and text editors.

This is measured in points. In a computing context, there should be 72 points per inch.

The CSS specification says there should be 96 reference pixels per inch. This means CSS uses a fixed ratio of 3 points to every 4 pixels, which is sometimes useful. However, reference pixels might not correspond to physical pixels, so this conversion may be invalid for other applications.

The measurements given in inches are likely to be incorrect unless you’ve manually set your DPI.

Type: unsigned integer, meaning >=0, or floating point number

Default: 12

Declared by:

stylix.homeManagerIntegration.autoImport

Whether to import Stylix automatically for every Home Manager user.

This only works if you are using home-manager.users.«name» within your NixOS configuration, rather than running Home Manager independently.

Type: boolean

Default: true

Example: false

Declared by:

stylix.homeManagerIntegration.followSystem

When this option is true, Home Manager configurations will follow the NixOS configuration by default, rather than using the standard default settings.

This only applies to Home Manager configurations managed by stylix.homeManagerIntegration.autoImport.

Type: boolean

Default: true

Example: false

Declared by:

stylix.image

Wallpaper image.

This is set as the background of your desktop environment, if possible, and used to generate a colour scheme if you don’t set one manually.

Type: null or (absolute path or package convertible to it)

Default: null

Declared by:

stylix.imageScalingMode

Scaling mode for the wallpaper image.

  • stretch

    Stretch the image to cover the screen.

  • fill

    Scale the image to fill the screen, potentially cropping it.

  • fit

    Scale the image to fit the screen without being cropped.

  • center

    Center the image without resizing it.

  • tile

    Tile the image to cover the screen.

Type: one of “stretch”, “fill”, “fit”, “center”, “tile”

Default: "fill"

Declared by:

stylix.opacity.applications

The opacity of the windows of applications, the amount of applications supported is currently limited

Type: floating point number

Default: 1.0

Declared by:

stylix.opacity.desktop

The opacity of the windows of bars/widgets, the amount of applications supported is currently limited

Type: floating point number

Default: 1.0

Declared by:

stylix.opacity.popups

The opacity of the windows of notifications/popups, the amount of applications supported is currently limited

Type: floating point number

Default: 1.0

Declared by:

stylix.opacity.terminal

The opacity of the windows of terminals, this works across all terminals supported by stylix

Type: floating point number

Default: 1.0

Declared by:

stylix.override

An override that will be applied to stylix.base16Scheme when generating config.lib.stylix.colors.

Takes anything that a scheme generated by base16nix can take as argument to override.

Type: attribute set

Default: { }

Declared by:

stylix.polarity

Use this option to force a light or dark theme.

By default we will select whichever is ranked better by the genetic algorithm. This aims to get good contrast between the foreground and background, as well as some variety in the highlight colours.

Type: one of “either”, “light”, “dark”

Default: "either"

Declared by: