From 55e3c4a8134f741743e7b9850236bf6b65b8fdc0 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Wed, 10 May 2023 11:31:57 -0400 Subject: [PATCH] feat: Add stylix Stylix is like a maintained version of pywal but configuration changes are managed by Nix and Home Manager, thus guaranteeing a certain level of reproducibility with its declarative nature. --- configuration.nix | 35 +++++++++++++- flake.lock | 114 ++++++++++++++++++++++++++++++++++++++++++++- flake.nix | 4 +- modules/editor.nix | 2 +- 4 files changed, 151 insertions(+), 4 deletions(-) diff --git a/configuration.nix b/configuration.nix index 2c181e0..4aeaa46 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, stylix, ... }: { imports = [ ./hosts/laptop.nix ]; @@ -13,6 +13,39 @@ networking.useHostResolvConf = true; services.udisks2.enable = true; security.pam.services.swaylock = { }; + # stylix.image = ./background.jpg; + stylix.polarity = "dark"; + # stylix.base16Scheme = ./ayu-dark.yaml; + stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml"; + + stylix.fonts = { + serif = { + package = pkgs.noto-fonts-cjk-sans; + name = "Noto Sans CJK JP"; + }; + + sansSerif = { + package = pkgs.noto-fonts-cjk-sans; + name = "Noto Sans CJK JP"; + }; + + monospace = { + package = pkgs.maple-mono-NF; + name = "MapleMono-NF"; + }; + + emoji = { + package = pkgs.noto-fonts-emoji; + name = "Noto Color Emoji"; + }; + + sizes = { + applications = 11; + desktop = 11; + popups = 11; + terminal = 11; + }; + }; services.vnstat.enable = true; services.tumbler.enable = true; diff --git a/flake.lock b/flake.lock index c2e052a..e6b57a7 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,42 @@ { "nodes": { + "base16": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1658847131, + "narHash": "sha256-X6Mml7cT0YR3WCD5fkUhpRVV5ZPcwdcDsND8r8xMqTE=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "6b404cda2e04ca3cf5ca7b877af9c469e1386acb", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -21,6 +58,28 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ], + "utils": "utils" + }, + "locked": { + "lastModified": 1680000368, + "narHash": "sha256-TlgC4IJ7aotynUdkGRtaAVxquaiddO38Ws89nB7VGY8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "765e4007b6f9f111469a25d1df6540e8e0ca73a6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "hyprland": { "inputs": { "hyprland-protocols": "hyprland-protocols", @@ -95,11 +154,64 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1679793451, + "narHash": "sha256-JafTtgMDATE8dZOImBhWMA9RCn9AP8FVOpN+9K/tTlg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0cd51a933d91078775b300cf0f29aa3495231aa2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_2", + "stylix": "stylix" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "flake-compat": "flake-compat", + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1683100629, + "narHash": "sha256-c+cHSnwkWYJNydJJYo0vS1uy/NoLW4OAkQZsxRl4WCY=", + "owner": "danth", + "repo": "stylix", + "rev": "a9367cea1bdc0ad35b3b0b2afc4aa9cf94cdecdb", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, + "utils": { + "locked": { + "lastModified": 1676283394, + "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" } }, "wlroots": { diff --git a/flake.nix b/flake.nix index 64e072c..e5443e7 100644 --- a/flake.nix +++ b/flake.nix @@ -4,9 +4,10 @@ home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; hyprland.url = "github:hyprwm/Hyprland"; + stylix.url = "github:danth/stylix"; }; - outputs = { self, nixpkgs, home-manager, hyprland, ... }@attrs: { + outputs = { self, nixpkgs, home-manager, hyprland, stylix, ... }@attrs: { nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = attrs; @@ -18,6 +19,7 @@ { programs.hyprland.enable = true; } + stylix.nixosModules.stylix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/modules/editor.nix b/modules/editor.nix index c36ef41..7f4e32e 100644 --- a/modules/editor.nix +++ b/modules/editor.nix @@ -59,7 +59,7 @@ { plugin = nvim-base16; type = "lua"; - config = "vim.cmd('colorscheme base16-gruvbox-dark-soft')"; + config = "vim.cmd('colorscheme base16-monokai')"; } { plugin = lualine-nvim;