=MX3rj=qw%)IByc*xy
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
literal 0
HcmV?d00001
diff --git a/docs/src/testbeds.md b/docs/src/testbeds.md
new file mode 100644
index 0000000..d362ec4
--- /dev/null
+++ b/docs/src/testbeds.md
@@ -0,0 +1,83 @@
+# Testbeds
+
+Stylix provides a suite of virtual machines which can be used to test and
+preview themes without installing the target to your live system.
+
+These can be particularly helpful for:
+
+- Working on targets before the login screen, since you can avoid closing
+ your editor to see the result.
+- Developing for a different desktop environment than the one you normally use.
+- Reducing the risk of breaking your system while reviewing pull requests.
+
+Testbeds are also built by GitHub Actions for every pull request. This is less
+beneficial compared to running them yourself, since it cannot visually check
+the theme, however it can catch build failures which may have been missed
+otherwise.
+
+## Creation
+
+New testbeds are defined by creating a file called `testbed.nix` within the
+folder for the corresponding target. This file will automatically be loaded
+as a NixOS module, with options such as `stylix.image` already defined.
+The module should include any options necessary to install the target and
+any supporting software - for example, a window manager.
+
+If the target can only be used through Home Manager, you can write a
+Home Manager module within the NixOS module using the following format:
+
+```nix
+{
+ home-manager.sharedModules = [{
+ # Write Home Manager options here
+ }];
+}
+```
+
+Using `home-manager.sharedModules` is preferred over `home-manager.users.guest`
+since it allows us to easily change the username or add additional users in
+the future.
+
+Once the module is complete, use `git add` to track the file, then the new
+packages will be [available to use](#usage).
+
+## Usage
+
+You can list the available testbeds by running this command from anywhere
+within the repository:
+
+```console
+user@host:~$ nix flake show
+github:danth/stylix
+└───packages
+ └───x86_64-linux
+ ├───docs: package 'stylix-book'
+ ├───palette-generator: package 'palette-generator'
+ ├───testbed-gnome-dark: package 'testbed-gnome-dark'
+ ├───testbed-gnome-light: package 'testbed-gnome-light'
+ ├───testbed-kde-dark: package 'testbed-kde-dark'
+ └───testbed-kde-light: package 'testbed-kde-light'
+```
+
+(This has been edited down to only the relevant parts.)
+
+To start a testbed, each of which is named in the format
+`testbed-«target»-«polarity»`, run the following command:
+
+```console
+user@host:~$ nix run .#testbed-«target»-«polarity»
+```
+
+Any package with a name not fitting the given format is not a testbed,
+and may behave differently with this command, or not work at all.
+
+Once the virtual machine starts, a window should open, similar to the screenshot
+below. The contents of the virtual machine will vary depending on the target you
+selected earlier.
+
+![GDM login screen with a dark background color and showing a guest user](testbed-gnome-dark.png)
+
+If the testbed includes a login screen, the guest user should log in
+automatically when selected. Depending on the software used, you may still be
+presented with a password prompt - in which case you can leave it blank and
+proceed by pressing enter.
diff --git a/docs/src/tricks.md b/docs/src/tricks.md
new file mode 100644
index 0000000..66c90af
--- /dev/null
+++ b/docs/src/tricks.md
@@ -0,0 +1,81 @@
+# Tips and tricks
+
+## Adjusting the brightness and contrast of a background image
+
+If you want to use a background image for your desktop but find it too bright or distracting, you can use the `imagemagick` package to dim the image, or adjust its brightness and contrast to suit your preference.
+
+Here's an example Nix expression that takes an input image, applies a brightness/contrast adjustment to it, and saves the result as a new image file:
+
+```nix
+{ pkgs, ... }:
+
+let
+ inputImage = ./path/to/image.jpg;
+ brightness = -30;
+ contrast = 0;
+ fillColor = "black"
+in
+{
+ stylix.image = pkgs.runCommand "dimmed-background.png" { } ''
+ ${pkgs.imagemagick}/bin/convert "${inputImage}" -brightness-contrast ${brightness},${contrast} -fill ${fillColor} $out
+ '';
+}
+```
+
+## Dynamic wallpaper generation based on selected theme
+
+With imagemagick, you can also dynamically generate wallpapers based on the selected theme.
+Similarly, you can use a template image and repaint it for the current theme.
+
+```nix
+{ pkgs, ... }:
+
+let
+ theme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
+ wallpaper = pkgs.runCommand "image.png" {} ''
+ COLOR=$(${pkgs.yq}/bin/yq -r .base00 ${theme})
+ COLOR="#"$COLOR
+ ${pkgs.imagemagick}/bin/magick -size 1920x1080 xc:$COLOR $out
+ '';
+in {
+ stylix = {
+ image = wallpaper;
+ base16Scheme = theme;
+ };
+}
+```
+
+Which is neatly implemented as a single function in `lib.stylix.pixel`:
+
+```nix
+{ pkgs, config, ... }:
+
+{
+ stylix = {
+ image = config.lib.stylix.pixel "base0A";
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
+ };
+}
+```
+
+## Completely disabling some stylix targets
+
+Nixpkgs module system sometimes works in non-intuitive ways, e.g. parts
+of the configuration guarded by `lib.mkIf` are still being descended
+into. This means that every **loaded** (and not enabled) module must
+be compatible with others - in the sense that **every** option that is
+mentioned in the disabled parts of the configuration still needs to be
+defined somewhere.
+
+Sometimes that can be a problem, when your particular configuration
+diverges enough from what stylix expects. In that case you can try
+stubbing all the missing options in your configuration.
+
+Or in a much clearer fashion you can just disable offending stylix targets
+by adding the following `disableModules` line next to importing stylix
+itself:
+
+```nix
+imports = [ flake.inputs.stylix.nixosModules.stylix ];
+disabledModules = [ "${flake.inputs.stylix}/modules//nixos.nix" ];
+```
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..7486ec2
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,309 @@
+{
+ "nodes": {
+ "base16": {
+ "inputs": {
+ "fromYaml": "fromYaml"
+ },
+ "locked": {
+ "lastModified": 1732200724,
+ "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
+ "owner": "SenchoPens",
+ "repo": "base16.nix",
+ "rev": "153d52373b0fb2d343592871009a286ec8837aec",
+ "type": "github"
+ },
+ "original": {
+ "owner": "SenchoPens",
+ "repo": "base16.nix",
+ "type": "github"
+ }
+ },
+ "base16-fish": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1622559957,
+ "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
+ "owner": "tomyun",
+ "repo": "base16-fish",
+ "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tomyun",
+ "repo": "base16-fish",
+ "type": "github"
+ }
+ },
+ "base16-helix": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1725860795,
+ "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
+ "owner": "tinted-theming",
+ "repo": "base16-helix",
+ "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-helix",
+ "type": "github"
+ }
+ },
+ "base16-vim": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1731949548,
+ "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=",
+ "owner": "tinted-theming",
+ "repo": "base16-vim",
+ "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-vim",
+ "type": "github"
+ }
+ },
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1696426674,
+ "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "flake-utils": {
+ "inputs": {
+ "systems": [
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "fromYaml": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1731966426,
+ "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
+ "owner": "SenchoPens",
+ "repo": "fromYaml",
+ "rev": "106af9e2f715e2d828df706c386a685698f3223b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "SenchoPens",
+ "repo": "fromYaml",
+ "type": "github"
+ }
+ },
+ "git-hooks": {
+ "inputs": {
+ "flake-compat": [
+ "flake-compat"
+ ],
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "nixpkgs-stable": [
+ "git-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1731363552,
+ "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "type": "github"
+ }
+ },
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "git-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709087332,
+ "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
+ "gnome-shell": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1732369855,
+ "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
+ "owner": "GNOME",
+ "repo": "gnome-shell",
+ "rev": "dadd58f630eeea41d645ee225a63f719390829dc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "GNOME",
+ "ref": "47.2",
+ "repo": "gnome-shell",
+ "type": "github"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1735774425,
+ "narHash": "sha256-C73gLFnEh8ZI0uDijUgCDWCd21T6I6tsaWgIBHcfAXg=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "5f6aa268e419d053c3d5025da740e390b12ac936",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1735648875,
+ "narHash": "sha256-fQ4k/hyQiH9RRPznztsA9kbcDajvwV1sRm01el6Sr3c=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "47e29c20abef74c45322eca25ca1550cdf5c3b50",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "base16": "base16",
+ "base16-fish": "base16-fish",
+ "base16-helix": "base16-helix",
+ "base16-vim": "base16-vim",
+ "flake-compat": "flake-compat",
+ "flake-utils": "flake-utils",
+ "git-hooks": "git-hooks",
+ "gnome-shell": "gnome-shell",
+ "home-manager": "home-manager",
+ "nixpkgs": "nixpkgs",
+ "systems": "systems",
+ "tinted-foot": "tinted-foot",
+ "tinted-kitty": "tinted-kitty",
+ "tinted-tmux": "tinted-tmux"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "tinted-foot": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1726913040,
+ "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
+ "owner": "tinted-theming",
+ "repo": "tinted-foot",
+ "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-foot",
+ "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+ "type": "github"
+ }
+ },
+ "tinted-kitty": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1716423189,
+ "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
+ "owner": "tinted-theming",
+ "repo": "tinted-kitty",
+ "rev": "eb39e141db14baef052893285df9f266df041ff8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-kitty",
+ "rev": "eb39e141db14baef052893285df9f266df041ff8",
+ "type": "github"
+ }
+ },
+ "tinted-tmux": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1729501581,
+ "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=",
+ "owner": "tinted-theming",
+ "repo": "tinted-tmux",
+ "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-tmux",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
index ce5906f..379adc7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,5 +1,219 @@
{
- outputs = inputs: {
- nixosModules.stylix = import ./default.nix;
+ inputs = {
+ base16-fish = {
+ flake = false;
+ url = "github:tomyun/base16-fish";
+ };
+
+ base16-helix = {
+ flake = false;
+ url = "github:tinted-theming/base16-helix";
+ };
+
+ base16-vim = {
+ flake = false;
+ url = "github:tinted-theming/base16-vim";
+ };
+
+ base16.url = "github:SenchoPens/base16.nix";
+
+ flake-compat = {
+ flake = false;
+ url = "github:edolstra/flake-compat";
+ };
+
+ flake-utils = {
+ inputs.systems.follows = "systems";
+ url = "github:numtide/flake-utils";
+ };
+
+ git-hooks = {
+ inputs = {
+ flake-compat.follows = "flake-compat";
+ nixpkgs-stable.follows = "git-hooks/nixpkgs";
+ nixpkgs.follows = "nixpkgs";
+ };
+
+ url = "github:cachix/git-hooks.nix";
+ };
+
+ gnome-shell = {
+ flake = false;
+
+ # TODO: Unlocking the input and pointing to official repository requires
+ # updating the patch:
+ # https://github.com/danth/stylix/pull/224#discussion_r1460339607.
+ url = "github:GNOME/gnome-shell/47.2";
+ };
+
+ # The 'home-manager' input is used to generate the documentation.
+ home-manager = {
+ inputs.nixpkgs.follows = "nixpkgs";
+ url = "github:nix-community/home-manager";
+ };
+
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+
+ # Interface flake systems.
+ systems.url = "github:nix-systems/default";
+
+ tinted-foot = {
+ flake = false;
+
+ # Lock the tinted-foot input to prevent upstream breaking changes.
+ #
+ # Considering that Stylix eventually re-implements this input's
+ # functionality [1], it might be easiest to lock this input to avoid
+ # wasted maintenance effort.
+ #
+ # [1]: https://github.com/danth/stylix/issues/571
+ url = "github:tinted-theming/tinted-foot/fd1b924b6c45c3e4465e8a849e67ea82933fcbe4";
+ };
+
+ tinted-tmux = {
+ flake = false;
+ url = "github:tinted-theming/tinted-tmux";
+ };
+
+ tinted-kitty = {
+ flake = false;
+
+ # Lock the tinted-kitty input to prevent upstream breaking changes.
+ #
+ # Considering that Stylix eventually re-implements this input's
+ # functionality [1], it might be easiest to lock this input to avoid
+ # wasted maintenance effort.
+ #
+ # [1]: https://github.com/danth/stylix/issues/534
+ url = "github:tinted-theming/tinted-kitty/eb39e141db14baef052893285df9f266df041ff8";
+ };
};
+
+ outputs =
+ {
+ nixpkgs,
+ base16,
+ self,
+ ...
+ }@inputs:
+ inputs.flake-utils.lib.eachDefaultSystem (
+ system:
+ let
+ inherit (nixpkgs) lib;
+ pkgs = nixpkgs.legacyPackages.${system};
+ in
+ {
+ checks = lib.attrsets.unionOfDisjoint {
+ git-hooks = inputs.git-hooks.lib.${system}.run {
+ hooks = {
+ deadnix.enable = true;
+ hlint.enable = true;
+
+ nixfmt-rfc-style = {
+ enable = true;
+ settings.width = 80;
+ };
+
+ statix.enable = true;
+ stylish-haskell.enable = true;
+ typos.enable = true;
+ yamllint.enable = true;
+ };
+
+ src = ./.;
+ };
+ } self.packages.${system};
+
+ devShells = {
+ default = pkgs.mkShell {
+ inherit (self.checks.${system}.git-hooks) shellHook;
+
+ packages = [
+ inputs.home-manager.packages.${system}.default
+ self.checks.${system}.git-hooks.enabledPackages
+ ];
+ };
+
+ ghc = pkgs.mkShell {
+ inputsFrom = [ self.devShells.${system}.default ];
+ packages = [ pkgs.ghc ];
+ };
+ };
+
+ packages =
+ let
+ universalPackages = {
+ docs = import ./docs { inherit pkgs inputs lib; };
+
+ nix-flake-check = pkgs.writeShellApplication {
+ meta.description = "A parallelized alternative to 'nix flake check'";
+ name = "nix-flake-check";
+
+ runtimeInputs = with pkgs; [
+ nix
+ parallel
+ ];
+
+ text = ''
+ nix flake show --json --no-update-lock-file |
+ jq --raw-output '
+ ((.checks."${system}" // {}) | keys) as $checks |
+ ((.packages."${system}" // {}) | keys) as $packages |
+ (($checks - $packages)[] | "checks.${system}.\(.)"),
+ ($packages[] | "packages.${system}.\(.)")
+ ' |
+ parallel --halt now,fail=1 '
+ nix build --no-update-lock-file --verbose .#{}
+ '
+ '';
+ };
+
+ palette-generator = pkgs.callPackage ./palette-generator { };
+ };
+
+ # Testbeds are virtual machines based on NixOS, therefore they are
+ # only available for Linux systems.
+ testbedPackages = lib.optionalAttrs (lib.hasSuffix "-linux" system) (
+ import ./stylix/testbed.nix { inherit pkgs inputs lib; }
+ );
+ in
+ universalPackages // testbedPackages;
+ }
+ )
+ // {
+ nixosModules.stylix =
+ { pkgs, ... }@args:
+ {
+ imports = [
+ (import ./stylix/nixos inputs {
+ inherit (self.packages.${pkgs.system}) palette-generator;
+ base16 = base16.lib args;
+ homeManagerModule = self.homeManagerModules.stylix;
+ })
+ ];
+ };
+
+ homeManagerModules.stylix =
+ { pkgs, ... }@args:
+ {
+ imports = [
+ (import ./stylix/hm inputs {
+ inherit (self.packages.${pkgs.system}) palette-generator;
+ base16 = base16.lib args;
+ })
+ ];
+ };
+
+ darwinModules.stylix =
+ { pkgs, ... }@args:
+ {
+ imports = [
+ (import ./stylix/darwin inputs {
+ inherit (self.packages.${pkgs.system}) palette-generator;
+ base16 = base16.lib args;
+ homeManagerModule = self.homeManagerModules.stylix;
+ })
+ ];
+ };
+ };
}
diff --git a/gnome.png b/gnome.png
new file mode 100644
index 0000000000000000000000000000000000000000..7702581c0d6f14866aa6ce59fefa3a1dacee8891
GIT binary patch
literal 1019701
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