nixos-config/home/themes/i3.nix

189 lines
5.2 KiB
Nix
Raw Permalink Normal View History

2022-04-10 11:54:58 +02:00
{lib}: let
inherit
(lib)
2022-01-11 16:08:21 +01:00
mkOption
types
2022-04-10 11:54:58 +02:00
;
2022-01-11 16:08:21 +01:00
2022-04-10 11:54:58 +02:00
mkColorOption = import ./color.nix {inherit lib;};
2021-04-21 04:05:19 +02:00
barColorSetModule = types.submodule {
options = {
border = mkColorOption {};
background = mkColorOption {};
text = mkColorOption {};
};
};
colorSetModule = types.submodule {
options = {
border = mkColorOption {};
childBorder = mkColorOption {};
background = mkColorOption {};
text = mkColorOption {};
indicator = mkColorOption {};
};
};
in
2022-04-10 11:54:58 +02:00
types.submodule {
options = {
bar = mkOption {
type = types.submodule {
options = {
background = mkColorOption {
default = "#000000";
description = "Background color of the bar.";
};
2021-04-21 04:05:19 +02:00
2022-04-10 11:54:58 +02:00
statusline = mkColorOption {
default = "#ffffff";
description = "Text color to be used for the statusline.";
};
2021-04-21 04:05:19 +02:00
2022-04-10 11:54:58 +02:00
separator = mkColorOption {
default = "#666666";
description = "Text color to be used for the separator.";
};
2021-04-21 04:05:19 +02:00
2022-04-10 11:54:58 +02:00
focusedWorkspace = mkOption {
type = barColorSetModule;
default = {
border = "#4c7899";
background = "#285577";
text = "#ffffff";
};
description = ''
Border, background and text color for a workspace button when the workspace has focus.
'';
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
activeWorkspace = mkOption {
type = barColorSetModule;
default = {
border = "#333333";
background = "#5f676a";
text = "#ffffff";
};
description = ''
Border, background and text color for a workspace button when the workspace is active.
'';
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
inactiveWorkspace = mkOption {
type = barColorSetModule;
default = {
border = "#333333";
background = "#222222";
text = "#888888";
};
description = ''
Border, background and text color for a workspace button when the workspace does not
have focus and is not active.
'';
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
urgentWorkspace = mkOption {
type = barColorSetModule;
default = {
border = "#2f343a";
background = "#900000";
text = "#ffffff";
};
description = ''
Border, background and text color for a workspace button when the workspace contains
a window with the urgency hint set.
'';
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
bindingMode = mkOption {
type = barColorSetModule;
default = {
border = "#2f343a";
background = "#900000";
text = "#ffffff";
};
description = "Border, background and text color for the binding mode indicator";
2021-04-21 04:05:19 +02:00
};
};
};
2021-04-22 00:25:49 +02:00
2022-04-10 11:54:58 +02:00
default = {};
};
2021-04-21 04:05:19 +02:00
2022-04-10 11:54:58 +02:00
background = mkOption {
type = types.str;
default = "#ffffff";
description = ''
Background color of the window. Only applications which do not cover
the whole area expose the color.
'';
};
2021-04-21 04:05:19 +02:00
2022-04-10 11:54:58 +02:00
focused = mkOption {
type = colorSetModule;
default = {
border = "#4c7899";
background = "#285577";
text = "#ffffff";
indicator = "#2e9ef4";
childBorder = "#285577";
};
description = "A window which currently has the focus.";
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
focusedInactive = mkOption {
type = colorSetModule;
default = {
border = "#333333";
background = "#5f676a";
text = "#ffffff";
indicator = "#484e50";
childBorder = "#5f676a";
};
description = ''
A window which is the focused one of its container,
but it does not have the focus at the moment.
'';
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
unfocused = mkOption {
type = colorSetModule;
default = {
border = "#333333";
background = "#222222";
text = "#888888";
indicator = "#292d2e";
childBorder = "#222222";
};
description = "A window which is not focused.";
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
urgent = mkOption {
type = colorSetModule;
default = {
border = "#2f343a";
background = "#900000";
text = "#ffffff";
indicator = "#900000";
childBorder = "#900000";
};
description = "A window which has its urgency hint activated.";
2021-04-21 04:05:19 +02:00
};
2022-04-10 11:54:58 +02:00
placeholder = mkOption {
type = colorSetModule;
default = {
border = "#000000";
background = "#0c0c0c";
text = "#ffffff";
indicator = "#000000";
childBorder = "#0c0c0c";
};
description = ''
Background and text color are used to draw placeholder window
contents (when restoring layouts). Border and indicator are ignored.
'';
2021-04-21 04:05:19 +02:00
};
};
2022-04-10 11:54:58 +02:00
}