No description
Find a file
Daniel Thwaites 7b34be82ff
Rewrite palette generation in Haskell
This does not rely on an external library for colour selection,
therefore it can be fine-tuned to create a better theme.

Closes #2 because Colorgram is no longer used.
2021-10-17 15:04:19 +01:00
.github/workflows Add gitmoji to beautify workflow 👷 2021-10-16 10:53:54 +01:00
modules Beautify 52f26699a6 2021-10-16 09:50:47 +00:00
palette-generator Rewrite palette generation in Haskell 2021-10-17 15:04:19 +01:00
stylix Rewrite palette generation in Haskell 2021-10-17 15:04:19 +01:00
flake.lock Rewrite palette generation in Haskell 2021-10-17 15:04:19 +01:00
flake.nix Rewrite palette generation in Haskell 2021-10-17 15:04:19 +01:00
LICENSE Add MIT license 2020-12-21 13:58:20 +00:00
README.md Create README.md 2020-12-21 15:56:40 +00:00

Stylix

System-wide colorscheming and typography for NixOS, built upon ideas from Base16.

Installation

Import default.nix into your system configuration:

{ pkgs, ... }:

let stylix = pkgs.fetchFromGitHub {
  owner = "danth";
  repo = "stylix";
  rev = "...";
  sha256 = "...";
};

in {
  imports = [ "${stylix}/default.nix" ];
}

Home Manager

Stylix relies on Home Manager to install a lot of its theming. This requires Home Manager to be installed as a NixOS module, if you do not already have that set up you will need to follow these instructions.

Nix Flakes

Stylix can also be installed using the experimental flakes feature:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    stylix.url = "github:danth/stylix";
  };

  outputs = { self, nixpkgs, stylix }: {
    nixosConfigurations."<hostname>" = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      modules = [ stylix.nixosModules.stylix ];
    };
  };
}

Configuration

{ pkgs, ... }:

{
  # A colorscheme will be chosen automatically based on your wallpaper
  stylix.image = ./wallpaper.png;

  # Select your preferred fonts, or use these defaults:
  stylix.fonts = {
    serif = {
      package = pkgs.dejavu_fonts;
      name = "DejaVu Serif";
    };
    sansSerif = {
      package = pkgs.dejavu_fonts;
      name = "DejaVu Sans";
    };
    monospace = {
      package = pkgs.dejavu_fonts;
      name = "DejaVu Sans Mono";
    };
    emoji = {
      package = pkgs.noto-fonts-emoji;
      name = "Noto Color Emoji";
    };
  };

  # Add users to this list to enable Home Manager integration
  stylix.homeManagerUsers = [ "danth" ];
}