This is a fork of lukebfox/base16-nix
Differences:
- Returns support for obtaining color values from the color scheme
- Added possibility to select a template type (
'default'
,'color'
, etc) - Added possibility to use custom schemes by importing local files or remote repository
- Removed unused files
import this flake in your 'flake.nix':
inputs.base16.url = "github:alukardbf/base16-nix";
then, in any home-manager configuration:
home.user.${user} = { config, pkgs, lib }: {
imports = [ base16.hmModule ];
};
{ pkgs, lib, config, ...}:
{
config = {
# Choose your theme
themes.base16 = {
enable = true;
scheme = "solarized";
variant = "solarized-dark";
defaultTemplateType = "default";
# Add extra variables for inclusion in custom templates
extraParams = {
fontName = "Roboto Mono";
fontSize = "12";
};
};
# 1. Use pre-provided templates
###############################
programs.bash.initExtra = ''
source ${config.lib.base16.templateFile { name = "shell"; }}
'';
programs.rofi = {
enable = true;
theme = "${config.lib.base16.templateFile { name = "rofi"; type = "colors"; }}";
};
# 2. Template strings directly into other home-manager configuration
####################################################################
services.dunst = {
enable = true;
settings = with config.lib.base16.theme;
{
global = {
geometry = "600x1-800+-3";
icon_path =
config.services.dunst.settings.global.icon_folders;
alignment = "right";
font = "${fontName} ${fontSize}";
frame_width = 0;
separator_height = 0;
sort = true;
};
urgency_low = {
background = "#${base01-hex}";
foreground = "#${base03-hex}";
};
urgency_normal = {
background = "#${base01-hex}";
foreground = "#${base05-hex}";
};
urgency_critical = {
msg_urgency = "CRITICAL";
background = "#${base01-hex}";
foreground = "#${base08-hex}";
};
};
};
};
}
You can also use local schemes:
{ pkgs, lib, config, ...}:
{
config = {
# Choose your theme
themes.base16 = {
enable = true;
customScheme = {
enable = true;
path = ./base16-custom-scheme.yaml;
};
};
};
}
Or use an imported color scheme:
For example, import scheme repository into yours 'flake.nix'
inputs.base16-horizon-scheme = {
url = github:michael-ball/base16-horizon-scheme;
flake = false;
};
{ pkgs, lib, config, inputs, ...}:
{
config = {
# Choose your theme
themes.base16 = {
enable = true;
customScheme = {
enable = true;
path = "${inputs.base16-horizon-scheme}/horizon-dark.yaml";
};
};
# The template will be generated from the local scheme
programs.rofi = {
enable = true;
theme = "${config.lib.base16.templateFile { name = "rofi"; }}";
};
};
}
Changing themes involves switching the theme definition and typing
home-manager switch
. There is no attempt in general to force programs to
reload, and not all are able to reload their configs, although occasionally restarting applications has been enough.
You are unlikely to achieve a complete switch without logging out and logging back in again.
Also, if you use home-manager as a module in the system configuration, the switch should be done with the command nixos-rebuild switch
.
If you're using nix flakes:
- Fork this repository
cd
into repository dir- Enter
nix develop
and then runupdate-base16
OR - Enter
nix run .
- Commit and push new files
If you're not using nix flakes:
cd
into repository dir- Run
update_sources.sh
Improve the source code.