No description
Find a file
Daniel Thwaites 71eea3f02a
treewide: add application testbeds (#612)
Extend testbeds with individual GUI applications beyond DEs, offering the
following benefits:

- Preview PRs without changing your real configuration by running:

    nix run github:«owner»/«repository»/«branch»#testbed-«application»-«polarity»'

- Unlike local installations, testbeds reset their filesystem between rebuilds,
  ensuring each test simulates a fresh installation to identify cases requiring
  manual steps for module effectiveness.

- Enhances CI to test that configurations evaluate correctly when a module is
  enabled. The extent to which this confirms that the configuration actually
  works can vary depending on the upstream implementation of the module.

The application testbeds are currently based on GNOME but could be replaced with
a lightweight compositor like Cage [1] in the future. GNOME was chosen for the
time being due to preconfigured services, such as a secret service [2], which
some applications require.

[1]: https://github.com/cage-kiosk/cage?tab=readme-ov-file#cage-a-wayland-kiosk
[2]: https://specifications.freedesktop.org/secret-service-spec/latest
2024-12-29 22:51:00 +00:00
.github ci: prevent unexpected flake.nix and flake.lock inconsistencies (#674) 2024-12-12 15:09:08 +01:00
docs doc: resolve 'magick convert' deprecation warning (#697) 2024-12-25 18:43:53 +01:00
modules treewide: add application testbeds (#612) 2024-12-29 22:51:00 +00:00
palette-generator Refactor palette generator ♻️ 2023-07-08 14:28:15 +01:00
stylix treewide: add application testbeds (#612) 2024-12-29 22:51:00 +00:00
.gitignore stylix: add gitignore file (#291) 2024-03-18 10:50:32 +00:00
default.nix Add default.nix 2023-02-24 07:03:28 +01:00
flake.lock gnome: update to GNOME 47.2 (#658) 2024-12-03 22:46:45 +01:00
flake.nix gnome: update to GNOME 47.2 (#658) 2024-12-03 22:46:45 +01:00
gnome.png doc: refresh screenshots (#382) 2024-05-22 16:54:19 +01:00
kde.png doc: refresh screenshots (#382) 2024-05-22 16:54:19 +01:00
LICENSE doc: standardize license formatting (#661) 2024-12-05 19:37:25 +00:00
README.md stylix: add 'stylix.enable' option (#244) 2024-06-10 11:52:47 +02:00

Stylix

Stylix is a NixOS module which applies the same colour scheme, font and wallpaper to a range of applications and desktop environments.

What's this?

base16.nix allows you to import colours from base16 into Nix code. Stylix takes this a step further:

  • Automatically colours and changes the font of apps
  • Sets your wallpaper
  • Exports the colour scheme to be used manually for anything we missed
  • Can also generate themes based on an image

For those not familiar with NixOS and Home Manager:

  • NixOS is a Linux distribution
  • Home Manager is a program which runs anywhere
  • Both use the Nix language and package manager
  • Both let you install programs and change settings via code

Stylix supports either NixOS + Home Manager, or Home Manager on its own. Certain features are only available with NixOS.

Resources

Please refer to the Stylix book for instructions and a list of supported apps.

For a visual guide, watch the Ricing Linux Has Never Been Easier | NixOS + Stylix YouTube video by Vimjoyer.

Note

It's now necessary to include stylix.enable = true in your configuration for any other settings to take effect. This is not mentioned in the video linked above.

If you have any questions, you are welcome to join our Matrix room, or ask on GitHub Discussions.

Example configurations

GNOME 46

GNOME 46

Photos by Clay Banks and Derrick Cooper.

Try a live demo of this theme by running nix run github:danth/stylix#testbed-gnome-light or nix run github:danth/stylix#testbed-gnome-dark.

KDE Plasma 5

KDE Plasma 5

Photos by Aniket Deole and Tom Gainor.

KDE theming is still a work in progress - so some manual steps may be needed to apply the settings completely.