Modules/Color: Move wallpaper selection from hyprland module to color module
This commit is contained in:
@ -54,11 +54,11 @@
|
|||||||
color = {
|
color = {
|
||||||
scheme = "catppuccin-mocha";
|
scheme = "catppuccin-mocha";
|
||||||
font = builtins.head nixosConfig.fonts.fontconfig.defaultFonts.monospace;
|
font = builtins.head nixosConfig.fonts.fontconfig.defaultFonts.monospace;
|
||||||
|
wallpaper = "Windows";
|
||||||
|
|
||||||
bg = "base";
|
|
||||||
text = "text";
|
|
||||||
accent = "mauve";
|
accent = "mauve";
|
||||||
accentHL = "pink";
|
accentHl = "pink";
|
||||||
|
accentDim = "lavender";
|
||||||
accentText = "base";
|
accentText = "base";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -84,7 +84,6 @@
|
|||||||
hyprland = {
|
hyprland = {
|
||||||
enable = !headless;
|
enable = !headless;
|
||||||
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
|
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
|
||||||
wallpaper = "City-Outlook";
|
|
||||||
|
|
||||||
keybindings = {
|
keybindings = {
|
||||||
main-mod = "SUPER";
|
main-mod = "SUPER";
|
||||||
|
@ -63,17 +63,24 @@ in {
|
|||||||
colorDefs =
|
colorDefs =
|
||||||
scheme
|
scheme
|
||||||
// {
|
// {
|
||||||
bg = scheme.${color.bg};
|
|
||||||
text = scheme.${color.text};
|
|
||||||
accent = scheme.${color.accent};
|
accent = scheme.${color.accent};
|
||||||
accentHL = scheme.${color.accentHL};
|
accentHl = scheme.${color.accentHl};
|
||||||
|
accentDim = scheme.${color.accentDim};
|
||||||
accentText = scheme.${color.accentText};
|
accentText = scheme.${color.accentText};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkColorAssignment = key: {${key} = colorDefs.${key};};
|
mkColorAssignment = key: {
|
||||||
mkStringColorAssignment = key: {${key} = "#${colorDefs.${key}}";};
|
${key} = colorDefs.${key};
|
||||||
mkRgbColorAssignment = key: {${key} = mylib.color.hexToRGB colorDefs.${key};};
|
};
|
||||||
mkRgbStringColorAssignment = key: {${key} = mylib.color.hexToRGBString "," colorDefs.${key};};
|
mkStringColorAssignment = key: {
|
||||||
|
${key} = "#${colorDefs.${key}}";
|
||||||
|
};
|
||||||
|
mkRgbColorAssignment = key: {
|
||||||
|
${key} = mylib.color.hexToRGB colorDefs.${key};
|
||||||
|
};
|
||||||
|
mkRgbStringColorAssignment = key: {
|
||||||
|
${key} = mylib.color.hexToRGBString "," colorDefs.${key};
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
# RRGGBB (0-F)
|
# RRGGBB (0-F)
|
||||||
hex =
|
hex =
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
"mantle"
|
"mantle"
|
||||||
"crust"
|
"crust"
|
||||||
];
|
];
|
||||||
in {
|
in rec {
|
||||||
scheme = lib.mkOption {
|
scheme = lib.mkOption {
|
||||||
type = lib.types.enum [
|
type = lib.types.enum [
|
||||||
"catppuccin-latte"
|
"catppuccin-latte"
|
||||||
@ -50,6 +50,69 @@ in {
|
|||||||
default = "JetBrainsMono Nerd Font Mono";
|
default = "JetBrainsMono Nerd Font Mono";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# This option is set automatically
|
||||||
|
wallpapers = let
|
||||||
|
# Collect all the available wallpapers.
|
||||||
|
# We can't do this in default.nix as the value
|
||||||
|
# needs to be available during option evaluation.
|
||||||
|
wallpapers = let
|
||||||
|
rmFileExt = file: builtins.replaceStrings [".jpg"] [""] file;
|
||||||
|
|
||||||
|
rmBasePath = file: let
|
||||||
|
matches = builtins.match "/.*/(.*)" file;
|
||||||
|
in
|
||||||
|
if matches == null
|
||||||
|
then file
|
||||||
|
else (builtins.head matches);
|
||||||
|
in
|
||||||
|
lib.filesystem.listFilesRecursive ../../../wallpapers
|
||||||
|
|> builtins.map builtins.toString
|
||||||
|
|> builtins.map rmFileExt
|
||||||
|
|> builtins.map rmBasePath;
|
||||||
|
in
|
||||||
|
lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
description = "The available wallpapers";
|
||||||
|
default = wallpapers;
|
||||||
|
};
|
||||||
|
|
||||||
|
wallpaper = lib.mkOption {
|
||||||
|
type = lib.types.enum wallpapers.default;
|
||||||
|
description = "The wallpaper to use";
|
||||||
|
example = "Foggy-Lake";
|
||||||
|
default = "Foggy-Lake";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Some semantic aliases for colors
|
||||||
|
|
||||||
|
accent = lib.mkOption {
|
||||||
|
type = lib.types.enum colorKeys;
|
||||||
|
description = "The accent color to use";
|
||||||
|
example = "mauve";
|
||||||
|
default = "mauve";
|
||||||
|
};
|
||||||
|
|
||||||
|
accentHl = lib.mkOption {
|
||||||
|
type = lib.types.enum colorKeys;
|
||||||
|
description = "The accented accent color to use";
|
||||||
|
example = "pink";
|
||||||
|
default = "pink";
|
||||||
|
};
|
||||||
|
|
||||||
|
accentDim = lib.mkOption {
|
||||||
|
type = lib.types.enum colorKeys;
|
||||||
|
description = "The dim accent color to use";
|
||||||
|
example = "lavender";
|
||||||
|
default = "lavender";
|
||||||
|
};
|
||||||
|
|
||||||
|
accentText = lib.mkOption {
|
||||||
|
type = lib.types.enum colorKeys;
|
||||||
|
description = "The text color to use for accents";
|
||||||
|
example = "base";
|
||||||
|
default = "base";
|
||||||
|
};
|
||||||
|
|
||||||
# These options will be populated automatically.
|
# These options will be populated automatically.
|
||||||
|
|
||||||
hex = lib.mkOption {
|
hex = lib.mkOption {
|
||||||
@ -71,40 +134,4 @@ in {
|
|||||||
type = lib.types.attrs;
|
type = lib.types.attrs;
|
||||||
description = "Colors in \"RR,GG,BB\" decimal format";
|
description = "Colors in \"RR,GG,BB\" decimal format";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Some semantic aliases for colors
|
|
||||||
bg = lib.mkOption {
|
|
||||||
type = lib.types.enum colorKeys;
|
|
||||||
description = "The color to use as background";
|
|
||||||
example = "base";
|
|
||||||
default = "base";
|
|
||||||
};
|
|
||||||
|
|
||||||
text = lib.mkOption {
|
|
||||||
type = lib.types.enum colorKeys;
|
|
||||||
description = "The text color to use";
|
|
||||||
example = "text";
|
|
||||||
default = "text";
|
|
||||||
};
|
|
||||||
|
|
||||||
accent = lib.mkOption {
|
|
||||||
type = lib.types.enum colorKeys;
|
|
||||||
description = "The accent color to use";
|
|
||||||
example = "mauve";
|
|
||||||
default = "mauve";
|
|
||||||
};
|
|
||||||
|
|
||||||
accentHL = lib.mkOption {
|
|
||||||
type = lib.types.enum colorKeys;
|
|
||||||
description = "The accented accent color to use";
|
|
||||||
example = "pink";
|
|
||||||
default = "pink";
|
|
||||||
};
|
|
||||||
|
|
||||||
accentText = lib.mkOption {
|
|
||||||
type = lib.types.enum colorKeys;
|
|
||||||
description = "The text color to use for accents";
|
|
||||||
example = "base";
|
|
||||||
default = "base";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -235,7 +235,7 @@ in {
|
|||||||
|
|
||||||
background = [
|
background = [
|
||||||
{
|
{
|
||||||
path = "${config.paths.nixflake}/wallpapers/${hyprland.wallpaper}.jpg";
|
path = "${config.paths.nixflake}/wallpapers/${color.wallpaper}.jpg";
|
||||||
blur_passes = 3;
|
blur_passes = 3;
|
||||||
blur_size = 10;
|
blur_size = 10;
|
||||||
monitor = "";
|
monitor = "";
|
||||||
@ -305,12 +305,12 @@ in {
|
|||||||
preload = let
|
preload = let
|
||||||
mkPreload = name: "${config.paths.nixflake}/wallpapers/${name}.jpg";
|
mkPreload = name: "${config.paths.nixflake}/wallpapers/${name}.jpg";
|
||||||
in
|
in
|
||||||
hyprland.wallpapers |> builtins.map mkPreload;
|
color.wallpapers |> builtins.map mkPreload;
|
||||||
|
|
||||||
wallpaper = let
|
wallpaper = let
|
||||||
mkWallpaper = monitor:
|
mkWallpaper = monitor:
|
||||||
"${monitor}, "
|
"${monitor}, "
|
||||||
+ "${config.paths.nixflake}/wallpapers/${hyprland.wallpaper}.jpg";
|
+ "${config.paths.nixflake}/wallpapers/${color.wallpaper}.jpg";
|
||||||
in
|
in
|
||||||
hyprland.monitors
|
hyprland.monitors
|
||||||
|> builtins.attrNames
|
|> builtins.attrNames
|
||||||
|
@ -17,31 +17,6 @@
|
|||||||
description = "Keyboard layout variant";
|
description = "Keyboard layout variant";
|
||||||
};
|
};
|
||||||
|
|
||||||
# A bit dumb, but I want a single location where those are defined.
|
|
||||||
# Only supposed to be set from here.
|
|
||||||
wallpapers = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
description = "Available wallpapers";
|
|
||||||
|
|
||||||
# Run eza -1 | sd ".jpg" "" | sd "^" "\"" | sd "\$" "\"" | sd "\"\"" "" | wl-copy
|
|
||||||
# in ~/NixFlake/wallpapers/
|
|
||||||
default = [
|
|
||||||
"Blade-Runner-Downwards"
|
|
||||||
"Blade-Runner-Upwards"
|
|
||||||
"City-Outlook"
|
|
||||||
"Everest-Fishing"
|
|
||||||
"Foggy-Lake"
|
|
||||||
"Three-Bears"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
wallpaper = lib.mkOption {
|
|
||||||
type = lib.types.enum wallpapers.default;
|
|
||||||
example = "Three-Bears";
|
|
||||||
description = "Wallpaper to use";
|
|
||||||
default = "Foggy-Lake";
|
|
||||||
};
|
|
||||||
|
|
||||||
dunst.enable = lib.mkEnableOption "Enable dunst notification daemon";
|
dunst.enable = lib.mkEnableOption "Enable dunst notification daemon";
|
||||||
|
|
||||||
monitors = lib.mkOption {
|
monitors = lib.mkOption {
|
||||||
|
BIN
wallpapers/Ahsoka-Lo-Fi.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Ahsoka-Lo-Fi.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Blade-Runner-Downwards.jpg
(Stored with Git LFS)
BIN
wallpapers/Blade-Runner-Downwards.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
wallpapers/Blade-Runner-Upwards.jpg
(Stored with Git LFS)
BIN
wallpapers/Blade-Runner-Upwards.jpg
(Stored with Git LFS)
Binary file not shown.
BIN
wallpapers/City-Above.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/City-Above.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Control-Bureau.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Control-Bureau.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Lake-Fantasy.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Lake-Fantasy.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Minimal-Sunset.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Minimal-Sunset.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/NASA.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/NASA.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Night-City.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Night-City.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Overshadowed.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Overshadowed.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Punk.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Punk.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Rocket-Sunset.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Rocket-Sunset.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
wallpapers/Windows.jpg
(Stored with Git LFS)
Normal file
BIN
wallpapers/Windows.jpg
(Stored with Git LFS)
Normal file
Binary file not shown.
Reference in New Issue
Block a user