experiment with themes and colors

This commit is contained in:
Noah Masur 2022-05-03 20:32:47 -04:00
parent ec0b1c4e04
commit 67f8a8b08d
10 changed files with 186 additions and 63 deletions

View File

@ -24,6 +24,7 @@
package = "victor-mono"; package = "victor-mono";
name = "Victor Mono"; name = "Victor Mono";
}; };
theme = "gruvbox";
gtkTheme = "Adwaita-dark"; gtkTheme = "Adwaita-dark";
}; };
in { in {
@ -39,6 +40,7 @@
./hosts/desktop/hardware-configuration.nix ./hosts/desktop/hardware-configuration.nix
./modules/common.nix ./modules/common.nix
./modules/desktop ./modules/desktop
./modules/theme
./modules/hardware ./modules/hardware
./modules/system ./modules/system
./modules/shell ./modules/shell

View File

@ -1,4 +1,4 @@
{ pkgs, identity, gui, ... }: { { config, pkgs, identity, gui, ... }: {
home-manager.users.${identity.user} = { home-manager.users.${identity.user} = {
xsession.windowManager.i3.config.terminal = "alacritty"; xsession.windowManager.i3.config.terminal = "alacritty";
@ -14,7 +14,7 @@
x = 20; x = 20;
y = 20; y = 20;
}; };
opacity = 0.7; opacity = config.theme.opacity;
}; };
scrolling.history = 10000; scrolling.history = 10000;
font = { font = {
@ -39,36 +39,37 @@
action = "ToggleViMode"; action = "ToggleViMode";
} }
]; ];
colors = { colors = config.theme.colors;
primary = { # colors = {
background = "#282828"; # primary = {
foreground = "#d5c4a1"; # background = "#282828";
}; # foreground = "#d5c4a1";
cursor = { # };
text = "#1d2021"; # cursor = {
cursor = "#d5c4a1"; # text = "#1d2021";
}; # cursor = "#d5c4a1";
normal = { # };
black = "#1d2021"; # normal = {
red = "#fb4934"; # black = "#1d2021";
green = "#b8bb26"; # red = "#fb4934";
yellow = "#fabd2f"; # green = "#b8bb26";
blue = "#83a598"; # yellow = "#fabd2f";
magenta = "#d3869b"; # blue = "#83a598";
cyan = "#8ec07c"; # magenta = "#d3869b";
white = "#d5c4a1"; # cyan = "#8ec07c";
}; # white = "#d5c4a1";
bright = { # };
black = "#665c54"; # bright = {
red = "#fe8019"; # black = "#665c54";
green = "#3c3836"; # red = "#fe8019";
yellow = "#504945"; # green = "#3c3836";
blue = "#bdae93"; # yellow = "#504945";
magenta = "#ebdbb2"; # blue = "#bdae93";
cyan = "#d65d0e"; # magenta = "#ebdbb2";
white = "#fbf1c7"; # cyan = "#d65d0e";
}; # white = "#fbf1c7";
}; # };
# };
draw_bold_text_with_bright_colors = false; draw_bold_text_with_bright_colors = false;
}; };
}; };

View File

@ -201,7 +201,8 @@
}; };
startup = [ startup = [
{ {
command = "feh --bg-scale $HOME/Downloads/carbon-fiber.jpg"; command =
"feh --bg-fill ${builtins.toString config.theme.wallpaper}";
always = true; always = true;
notification = false; notification = false;
} }
@ -220,18 +221,18 @@
}; };
workspaceAutoBackAndForth = false; workspaceAutoBackAndForth = false;
workspaceOutputAssign = [ ]; workspaceOutputAssign = [ ];
gaps = { # gaps = {
bottom = 0; # bottom = 8;
top = 0; # top = 8;
left = 0; # left = 8;
right = 0; # right = 8;
horizontal = 0; # horizontal = 15;
vertical = 0; # vertical = 15;
inner = 0; # inner = 15;
outer = 0; # outer = 0;
smartBorders = "off"; # smartBorders = "off";
smartGaps = false; # smartGaps = false;
}; # };
}; };
extraConfig = ""; extraConfig = "";
}; };

View File

@ -4,26 +4,35 @@
home-manager.users.${identity.user} = { home-manager.users.${identity.user} = {
services.picom = { services.picom = {
enable = true; enable = false;
blur = false; blur = true;
blurExclude = [ ]; blurExclude = [ ];
# extraOptions = '' # extraOptions = ''
# shadow-radius = 60 # shadow-radius = 20
# corner-radius = 20
# ''; # '';
extraOptions = ''
shadow-radius = 20
corner-radius = 10
blur-size = 20
rounded-corners-exclude = [
"window_type = 'dock'",
"class_g = 'i3-frame'"
]
'';
fade = false; fade = false;
experimentalBackends = true; experimentalBackends = true;
inactiveDim = "0.05"; inactiveDim = "0.05";
inactiveOpacity = "1.0"; inactiveOpacity = "1.0";
menuOpacity = "1.0"; menuOpacity = "1.0";
noDNDShadow = false; noDNDShadow = false;
noDockShadow = false;
opacityRule = [ opacityRule = [
"0:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_HIDDEN'" # Hide tabbed windows "0:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_HIDDEN'" # Hide tabbed windows
]; ];
shadow = false; shadow = true;
shadowExclude = [ ]; shadowExclude = [ ];
shadowOffsets = [ (-30) (-30) ]; shadowOffsets = [ (-10) (-10) ];
shadowOpacity = "0.25"; shadowOpacity = "0.5";
vSync = false; vSync = false;
}; };

View File

@ -34,14 +34,14 @@
radius = 0; radius = 0;
# offset-y = "5%"; # offset-y = "5%";
# dpi = 96; # dpi = 96;
background = "#00000000"; background = config.theme.colors.primary.background;
foreground = colors.foreground; foreground = config.theme.colors.primary.foreground;
line-size = "3pt"; line-size = "3pt";
border-top-size = 0; border-top-size = 0;
border-right-size = 0; border-right-size = 0;
border-left-size = 0; border-left-size = 0;
border-bottom-size = "4pt"; border-bottom-size = "4pt";
border-color = "#1d2021"; border-color = config.theme.colors.cursor.text;
padding-left = 2; padding-left = 2;
padding-right = 2; padding-right = 2;
module-margin = 1; module-margin = 1;
@ -67,16 +67,17 @@
"module/xworkspaces" = { "module/xworkspaces" = {
type = "internal/xworkspaces"; type = "internal/xworkspaces";
label-active = "%name%"; label-active = "%name%";
label-active-background = colors.background-alt; label-active-background = config.theme.colors.primary.foreground;
label-active-underline = colors.primary; label-active-foreground = config.theme.colors.primary.background;
# label-active-underline = config.theme.colors.normal.yellow;
label-active-padding = 1; label-active-padding = 1;
label-occupied = "%name%"; label-occupied = "%name%";
label-occupied-padding = 1; label-occupied-padding = 1;
label-urgent = "%name%"; label-urgent = "%name%";
label-urgent-background = colors.alert; label-urgent-background = config.theme.colors.bright.red;
label-urgent-padding = 1; label-urgent-padding = 1;
label-empty = "%name%"; label-empty = "%name%";
label-empty-foreground = colors.disabled; label-empty-foreground = config.theme.colors.normal.white;
label-empty-padding = 1; label-empty-padding = 1;
}; };
"module/xwindow" = { "module/xwindow" = {
@ -98,9 +99,10 @@
format-volume = "<ramp-volume> <label-volume>"; format-volume = "<ramp-volume> <label-volume>";
# format-volume-background = colors.background; # format-volume-background = colors.background;
# label-volume-background = colors.background; # label-volume-background = colors.background;
format-volume-foreground = config.theme.colors.primary.foreground;
label-volume = "%percentage%%"; label-volume = "%percentage%%";
label-muted = " ---"; label-muted = " ---";
label-muted-foreground = colors.disabled; label-muted-foreground = config.theme.colors.normal.white;
ramp-volume-0 = ""; ramp-volume-0 = "";
ramp-volume-1 = ""; ramp-volume-1 = "";
ramp-volume-2 = ""; ramp-volume-2 = "";
@ -149,10 +151,10 @@
"module/date" = { "module/date" = {
type = "internal/date"; type = "internal/date";
interval = 1; interval = 1;
date = "%H:%M"; date = "%H:%M %p";
date-alt = "%Y-%m-%d %H:%M:%S"; date-alt = "%Y-%m-%d %H:%M:%S";
label = " %date%"; label = "%date%";
label-foreground = colors.primary; # label-foreground = config.theme.colors.normal.yellow;
# format-background = colors.background; # format-background = colors.background;
}; };
"settings" = { "settings" = {

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 KiB

View File

@ -0,0 +1,35 @@
{
name = "carbonfiber";
colors = {
primary = {
background = "#282828";
foreground = "#d5c4a1";
};
cursor = {
text = "#1d2021";
cursor = "#d5c4a1";
};
normal = {
black = "#1d2021";
red = "#fb4934";
green = "#b8bb26";
yellow = "#fabd2f";
blue = "#83a598";
magenta = "#d3869b";
cyan = "#8ec07c";
white = "#d5c4a1";
};
bright = {
black = "#665c54";
red = "#fe8019";
green = "#3c3836";
yellow = "#504945";
blue = "#bdae93";
magenta = "#ebdbb2";
cyan = "#d65d0e";
white = "#fbf1c7";
};
};
wallpaper = ./carbon-fiber.jpg;
opacity = 0.8;
}

38
modules/theme/default.nix Normal file
View File

@ -0,0 +1,38 @@
{ config, lib, gui, ... }:
let
themes = {
"carbonfiber" = ./carbonfiber;
"gruvbox" = ./gruvbox;
"nord" = ./nord;
};
in {
options.theme = {
name = lib.mkOption {
type = lib.types.str;
default = "";
description = "Name of the theme";
};
colors = lib.mkOption {
type = lib.types.attrs;
default = { };
description = "Set of colors";
};
wallpaper = lib.mkOption {
type = lib.types.path;
default = ./.;
description = "Path to wallpaper image";
};
opacity = lib.mkOption {
type = lib.types.float;
default = 1.0;
description = "Opacity of certain windows";
};
};
config.theme = (import themes.${gui.theme});
}

View File

@ -0,0 +1,35 @@
{
name = "gruvbox";
colors = {
primary = {
background = "#282828";
foreground = "#d5c4a1";
};
cursor = {
text = "#1d2021";
cursor = "#d5c4a1";
};
normal = {
black = "#1d2021";
red = "#fb4934";
green = "#b8bb26";
yellow = "#fabd2f";
blue = "#83a598";
magenta = "#d3869b";
cyan = "#8ec07c";
white = "#d5c4a1";
};
bright = {
black = "#665c54";
red = "#fe8019";
green = "#3c3836";
yellow = "#504945";
blue = "#bdae93";
magenta = "#ebdbb2";
cyan = "#d65d0e";
white = "#fbf1c7";
};
};
wallpaper = ./gray-forest.jpg;
opacity = 1.0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB