Skip to content

Instantly share code, notes, and snippets.

@LGUG2Z
Last active December 30, 2025 02:18
Show Gist options
  • Select an option

  • Save LGUG2Z/aceff1c7bb55e543be583735bc3a5cf0 to your computer and use it in GitHub Desktop.

Select an option

Save LGUG2Z/aceff1c7bb55e543be583735bc3a5cf0 to your computer and use it in GitHub Desktop.
{ lib, ... }:
let
animationStyle = (
lib.types.oneOf [
(lib.types.enum [
"Linear"
"EaseInSine"
"EaseOutSine"
"EaseInOutSine"
"EaseInQuad"
"EaseOutQuad"
"EaseInOutQuad"
"EaseInCubic"
"EaseOutCubic"
"EaseInOutCubic"
"EaseInQuart"
"EaseOutQuart"
"EaseInOutQuart"
"EaseInQuint"
"EaseOutQuint"
"EaseInOutQuint"
"EaseInExpo"
"EaseOutExpo"
"EaseInOutExpo"
"EaseInCirc"
"EaseOutCirc"
"EaseInOutCirc"
"EaseInBack"
"EaseOutBack"
"EaseInOutBack"
"EaseInElastic"
"EaseOutElastic"
"EaseInOutElastic"
"EaseInBounce"
"EaseOutBounce"
"EaseInOutBounce"
])
(lib.types.submodule {
options = {
CubicBezier = lib.mkOption {
type = (lib.types.nullOr (lib.types.listOf lib.types.number));
default = null;
};
};
})
]
);
base16Value = (
lib.types.enum [
"Base00"
"Base01"
"Base02"
"Base03"
"Base04"
"Base05"
"Base06"
"Base07"
"Base08"
"Base09"
"Base0A"
"Base0B"
"Base0C"
"Base0D"
"Base0E"
"Base0F"
]
);
catppuccinValue = (
lib.types.enum [
"Rosewater"
"Flamingo"
"Pink"
"Mauve"
"Red"
"Maroon"
"Peach"
"Yellow"
"Green"
"Teal"
"Sky"
"Sapphire"
"Blue"
"Lavender"
"Text"
"Subtext1"
"Subtext0"
"Overlay2"
"Overlay1"
"Overlay0"
"Surface2"
"Surface1"
"Surface0"
"Base"
"Mantle"
"Crust"
]
);
colour = (
lib.types.oneOf [
(lib.types.submodule {
options = {
b = lib.mkOption {
type = lib.types.int;
description = "Blue";
};
g = lib.mkOption {
type = lib.types.int;
description = "Green";
};
r = lib.mkOption {
type = lib.types.int;
description = "Red";
};
};
})
lib.types.str
]
);
defaultLayout = (
lib.types.enum [
"BSP"
"Columns"
"Rows"
"VerticalStack"
"HorizontalStack"
"UltrawideVerticalStack"
"Grid"
"RightMainVerticalStack"
"Scrolling"
]
);
floatingLayerBehaviour = (
lib.types.enum [
"Tile"
"Float"
]
);
idWithIdentifier = (
lib.types.submodule {
options = {
id = lib.mkOption {
type = lib.types.str;
description = "Target identifier";
};
kind = lib.mkOption {
type = (
lib.types.enum [
"Exe"
"Class"
"Title"
"Path"
]
);
description = "Kind of identifier to target";
};
matching_strategy = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"Legacy"
"Equals"
"StartsWith"
"EndsWith"
"Contains"
"Regex"
"DoesNotEndWith"
"DoesNotStartWith"
"DoesNotEqual"
"DoesNotContain"
]
)
);
default = null;
description = "Matching strategy to use";
};
};
}
);
matchingRule = (
lib.types.oneOf [
idWithIdentifier
(lib.types.listOf idWithIdentifier)
]
);
pathBuf = lib.types.str;
placement = (
lib.types.enum [
"None"
"Center"
"CenterAndResize"
]
);
rect = (
lib.types.submodule {
options = {
bottom = lib.mkOption {
type = lib.types.int;
description = "Height of the rectangle (from the top point)";
};
left = lib.mkOption {
type = lib.types.int;
description = "Left point of the rectangle";
};
right = lib.mkOption {
type = lib.types.int;
description = "Width of the recentangle (from the left point)";
};
top = lib.mkOption {
type = lib.types.int;
description = "Top point of the rectangle";
};
};
}
);
wallpaper = (
lib.types.submodule {
options = {
generate_theme = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = true;
description = "Generate and apply Base16 theme for this wallpaper";
};
path = lib.mkOption {
type = pathBuf;
description = "Path to the wallpaper image file";
};
theme_options = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
bar_accent = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base0D";
description = "Komorebi status bar accent";
};
floating_border = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base09";
description = "Border colour when the window is floating";
};
monocle_border = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base0F";
description = "Border colour when the container is in monocle mode";
};
single_border = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base0D";
description = "Border colour when the container contains a single window";
};
stack_border = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base0B";
description = "Border colour when the container contains multiple windows";
};
theme_variant = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"Dark"
"Light"
]
)
);
default = "Dark";
description = "Specify Light or Dark variant for theme generation";
};
unfocused_border = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base01";
description = "Border colour when the container is unfocused";
};
unfocused_locked_border = lib.mkOption {
type = (lib.types.nullOr base16Value);
default = "Base08";
description = "Border colour when the container is unfocused and locked";
};
};
}
)
);
default = null;
description = "Specify theme options";
};
};
}
);
windowContainerBehaviour = (
lib.types.enum [
"Create"
"Append"
]
);
in
{
options.komorebi = lib.mkOption {
type = lib.types.submodule {
options = {
animation = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
duration = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.attrsOf lib.types.int)
lib.types.int
]
)
);
default = 250;
description = "Set the animation duration in ms";
};
enabled = lib.mkOption {
type = (
lib.types.oneOf [
(lib.types.attrsOf lib.types.bool)
lib.types.bool
]
);
default = false;
description = "Enable or disable animations";
};
fps = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 60;
description = "Set the animation FPS";
};
style = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.attrsOf animationStyle)
animationStyle
]
)
);
default = "Linear";
description = "Set the animation style";
};
};
}
)
);
default = null;
description = "Animations configuration options";
};
app_specific_configuration_path = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
pathBuf
(lib.types.listOf pathBuf)
]
)
);
default = null;
description = "Path to applications.json from komorebi-application-specific-configurations";
};
border = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = true;
description = "Display window borders";
};
border_colours = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
floating = lib.mkOption {
type = (lib.types.nullOr colour);
default = null;
description = "Border colour when the container is in floating mode";
};
monocle = lib.mkOption {
type = (lib.types.nullOr colour);
default = null;
description = "Border colour when the container is in monocle mode";
};
single = lib.mkOption {
type = (lib.types.nullOr colour);
default = null;
description = "Border colour when the container contains a single window";
};
stack = lib.mkOption {
type = (lib.types.nullOr colour);
default = null;
description = "Border colour when the container contains multiple windows";
};
unfocused = lib.mkOption {
type = (lib.types.nullOr colour);
default = null;
description = "Border colour when the container is unfocused";
};
unfocused_locked = lib.mkOption {
type = (lib.types.nullOr colour);
default = null;
description = "Border colour when the container is unfocused and locked";
};
};
}
)
);
default = null;
description = "Window border colours for different container types (has no effect if a theme is defined)";
};
border_offset = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 5;
description = "Offset of window borders";
};
border_radius = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 10;
description = "Radius of window borders";
};
border_width = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 6;
description = "Width of window borders";
};
cross_boundary_behaviour = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"Workspace"
"Monitor"
]
)
);
default = "Monitor";
description = "Determine what happens when an action is called on a window at a monitor boundary";
};
cross_monitor_move_behaviour = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"Swap"
"Insert"
"NoOp"
]
)
);
default = "Swap";
description = "Determine what happens when a window is moved across a monitor boundary";
};
default_container_padding = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 10;
description = "Global default container padding";
};
default_workspace_padding = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 10;
description = "Global default workspace padding";
};
display_index_preferences = lib.mkOption {
type = (lib.types.nullOr (lib.types.attrsOf lib.types.str));
default = null;
description = "Set display index preferences";
};
float_override = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = false;
description = "Enable or disable float override, which makes it so every new window opens in floating mode";
};
float_override_placement = lib.mkOption {
type = (lib.types.nullOr placement);
default = null;
description = "Determines the `Placement` to be used when spawning a window with float override active";
};
float_rule_placement = lib.mkOption {
type = (lib.types.nullOr placement);
default = null;
description = "Determines the `Placement` to be used when spawning a window that matches a\n'floating_applications' rule";
};
floating_applications = lib.mkOption {
type = (lib.types.nullOr (lib.types.listOf matchingRule));
default = null;
description = "Identify applications which should be managed as floating windows";
};
floating_layer_behaviour = lib.mkOption {
type = (lib.types.nullOr floatingLayerBehaviour);
default = "Tile";
description = "Determines what happens on a new window when on the `FloatingLayer`";
};
floating_layer_placement = lib.mkOption {
type = (lib.types.nullOr placement);
default = "Center";
description = "Determines the `Placement` to be used when spawning a window on the floating layer with the\n`FloatingLayerBehaviour` set to `FloatingLayerBehaviour::Float`";
};
floating_window_aspect_ratio = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.enum [
"Ultrawide"
"Widescreen"
"Standard"
])
(lib.types.listOf lib.types.int)
]
)
);
default = null;
description = "Identify applications which are slow to send initial event notifications\nAspect ratio to resize with when toggling floating mode for a window";
};
global_work_area_offset = lib.mkOption {
type = (lib.types.nullOr rect);
default = null;
description = "Global work area (space used for tiling) offset";
};
ignore_rules = lib.mkOption {
type = (lib.types.nullOr (lib.types.listOf matchingRule));
default = null;
description = "Individual window floating rules";
};
manage_rules = lib.mkOption {
type = (lib.types.nullOr (lib.types.listOf matchingRule));
default = null;
description = "Individual window force-manage rules";
};
monitors = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.listOf (
lib.types.submodule {
options = {
container_padding = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = null;
description = "Container padding";
};
floating_layer_behaviour = lib.mkOption {
type = (lib.types.nullOr floatingLayerBehaviour);
default = "Tile";
description = "Determine what happens to a new window when the Floating workspace layer is active";
};
wallpaper = lib.mkOption {
type = (lib.types.nullOr wallpaper);
default = null;
description = "Specify a wallpaper for this monitor";
};
window_based_work_area_offset = lib.mkOption {
type = (lib.types.nullOr rect);
default = null;
description = "Window based work area offset";
};
window_based_work_area_offset_limit = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 1;
description = "Open window limit after which the window based work area offset will no longer be applied";
};
window_hiding_position = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"BottomLeft"
"BottomRight"
]
)
);
default = null;
description = "Determine which position windows should be hidden at on this monitor";
};
work_area_offset = lib.mkOption {
type = (lib.types.nullOr rect);
default = null;
description = "Monitor-specific work area offset";
};
workspace_padding = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = null;
description = "Workspace padding (default: global)";
};
workspaces = lib.mkOption {
type = (
lib.types.listOf (
lib.types.submodule {
options = {
apply_window_based_work_area_offset = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = true;
description = "Apply this monitor's window-based work area offset";
};
container_padding = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = null;
description = "Container padding (default: global)";
};
float_override = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = false;
description = "Enable or disable float override, which makes it so every new window opens in floating mode";
};
floating_layer_behaviour = lib.mkOption {
type = (lib.types.nullOr floatingLayerBehaviour);
default = "Tile";
description = "Determine what happens to a new window when the Floating workspace layer is active";
};
initial_workspace_rules = lib.mkOption {
type = (lib.types.nullOr (lib.types.listOf matchingRule));
default = null;
description = "Initial workspace application rules";
};
layout = lib.mkOption {
type = (lib.types.nullOr defaultLayout);
default = "BSP";
description = "Layout";
};
layout_flip = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"Horizontal"
"Vertical"
"HorizontalAndVertical"
]
)
);
default = null;
description = "Specify an axis on which to flip the selected layout";
};
layout_options = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
grid = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
rows = lib.mkOption {
type = lib.types.int;
description = "Maximum number of rows per grid column";
};
};
}
)
);
default = null;
description = "Options related to the Grid layout";
};
scrolling = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
center_focused_column = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = null;
description = "With an odd number of visible columns, keep the focused window column centered";
};
columns = lib.mkOption {
type = lib.types.int;
description = "Desired number of visible columns (default: 3)";
};
};
}
)
);
default = null;
description = "Options related to the Scrolling layout";
};
};
}
)
);
default = null;
description = "Layout-specific options";
};
layout_rules = lib.mkOption {
type = (lib.types.nullOr (lib.types.attrsOf defaultLayout));
default = null;
description = "Layout rules in the format of threshold => layout";
};
name = lib.mkOption {
type = lib.types.str;
description = "Name";
};
tile = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = true;
description = "Enable or disable tiling for the workspace";
};
wallpaper = lib.mkOption {
type = (lib.types.nullOr wallpaper);
default = null;
description = "Specify a wallpaper for this workspace";
};
window_container_behaviour = lib.mkOption {
type = (lib.types.nullOr windowContainerBehaviour);
default = "Create";
description = "Determine what happens when a new window is opened";
};
window_container_behaviour_rules = lib.mkOption {
type = (lib.types.nullOr (lib.types.attrsOf windowContainerBehaviour));
default = null;
description = "Window container behaviour rules in the format of threshold => behaviour";
};
work_area_offset = lib.mkOption {
type = (lib.types.nullOr rect);
default = null;
description = "Workspace specific work area offset";
};
workspace_padding = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = null;
description = "Workspace padding (default: global)";
};
workspace_rules = lib.mkOption {
type = (lib.types.nullOr (lib.types.listOf matchingRule));
default = null;
description = "Permanent workspace application rules";
};
};
}
)
);
description = "Workspace configurations";
};
};
}
)
)
);
default = null;
description = "Monitor and workspace configurations";
};
mouse_follows_focus = lib.mkOption {
type = (lib.types.nullOr lib.types.bool);
default = true;
description = "Enable or disable mouse follows focus";
};
resize_delta = lib.mkOption {
type = (lib.types.nullOr lib.types.int);
default = 50;
description = "Delta to resize windows by";
};
theme = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
palette = lib.mkOption {
type = (
lib.types.enum [
"Catppuccin"
"Base16"
"Custom"
]
);
};
stack_border = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
unfocused_border = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
single_border = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
unfocused_locked_border = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
colours = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.submodule {
options = {
base_00 = lib.mkOption {
type = colour;
description = "Base00";
};
base_01 = lib.mkOption {
type = colour;
description = "Base01";
};
base_02 = lib.mkOption {
type = colour;
description = "Base02";
};
base_03 = lib.mkOption {
type = colour;
description = "Base03";
};
base_04 = lib.mkOption {
type = colour;
description = "Base04";
};
base_05 = lib.mkOption {
type = colour;
description = "Base05";
};
base_06 = lib.mkOption {
type = colour;
description = "Base06";
};
base_07 = lib.mkOption {
type = colour;
description = "Base07";
};
base_08 = lib.mkOption {
type = colour;
description = "Base08";
};
base_09 = lib.mkOption {
type = colour;
description = "Base09";
};
base_0a = lib.mkOption {
type = colour;
description = "Base0A";
};
base_0b = lib.mkOption {
type = colour;
description = "Base0B";
};
base_0c = lib.mkOption {
type = colour;
description = "Base0C";
};
base_0d = lib.mkOption {
type = colour;
description = "Base0D";
};
base_0e = lib.mkOption {
type = colour;
description = "Base0E";
};
base_0f = lib.mkOption {
type = colour;
description = "Base0F";
};
};
}
)
);
default = null;
};
floating_border = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
bar_accent = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
monocle_border = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.nullOr catppuccinValue)
(lib.types.nullOr base16Value)
]
)
);
default = null;
};
name = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.oneOf [
(lib.types.enum [
"Frappe"
"Latte"
"Macchiato"
"Mocha"
])
(lib.types.enum [
"3024"
"Apathy"
"Apprentice"
"Ashes"
"AtelierCaveLight"
"AtelierCave"
"AtelierDuneLight"
"AtelierDune"
"AtelierEstuaryLight"
"AtelierEstuary"
"AtelierForestLight"
"AtelierForest"
"AtelierHeathLight"
"AtelierHeath"
"AtelierLakesideLight"
"AtelierLakeside"
"AtelierPlateauLight"
"AtelierPlateau"
"AtelierSavannaLight"
"AtelierSavanna"
"AtelierSeasideLight"
"AtelierSeaside"
"AtelierSulphurpoolLight"
"AtelierSulphurpool"
"Atlas"
"AyuDark"
"AyuLight"
"AyuMirage"
"Aztec"
"Bespin"
"BlackMetalBathory"
"BlackMetalBurzum"
"BlackMetalDarkFuneral"
"BlackMetalGorgoroth"
"BlackMetalImmortal"
"BlackMetalKhold"
"BlackMetalMarduk"
"BlackMetalMayhem"
"BlackMetalNile"
"BlackMetalVenom"
"BlackMetal"
"Blueforest"
"Blueish"
"Brewer"
"Bright"
"Brogrammer"
"BrushtreesDark"
"Brushtrees"
"Caroline"
"CatppuccinFrappe"
"CatppuccinLatte"
"CatppuccinMacchiato"
"CatppuccinMocha"
"Chalk"
"Circus"
"ClassicDark"
"ClassicLight"
"Codeschool"
"Colors"
"Cupcake"
"Cupertino"
"DaOneBlack"
"DaOneGray"
"DaOneOcean"
"DaOnePaper"
"DaOneSea"
"DaOneWhite"
"DanqingLight"
"Danqing"
"Darcula"
"Darkmoss"
"Darktooth"
"Darkviolet"
"Decaf"
"DefaultDark"
"DefaultLight"
"Dirtysea"
"Dracula"
"EdgeDark"
"EdgeLight"
"Eighties"
"EmbersLight"
"Embers"
"Emil"
"EquilibriumDark"
"EquilibriumGrayDark"
"EquilibriumGrayLight"
"EquilibriumLight"
"Eris"
"Espresso"
"EvaDim"
"Eva"
"EvenokDark"
"EverforestDarkHard"
"Everforest"
"Flat"
"Framer"
"FruitSoda"
"Gigavolt"
"Github"
"GoogleDark"
"GoogleLight"
"Gotham"
"GrayscaleDark"
"GrayscaleLight"
"Greenscreen"
"Gruber"
"GruvboxDarkHard"
"GruvboxDarkMedium"
"GruvboxDarkPale"
"GruvboxDarkSoft"
"GruvboxLightHard"
"GruvboxLightMedium"
"GruvboxLightSoft"
"GruvboxMaterialDarkHard"
"GruvboxMaterialDarkMedium"
"GruvboxMaterialDarkSoft"
"GruvboxMaterialLightHard"
"GruvboxMaterialLightMedium"
"GruvboxMaterialLightSoft"
"Hardcore"
"Harmonic16Dark"
"Harmonic16Light"
"HeetchLight"
"Heetch"
"Helios"
"Hopscotch"
"HorizonDark"
"HorizonLight"
"HorizonTerminalDark"
"HorizonTerminalLight"
"HumanoidDark"
"HumanoidLight"
"IaDark"
"IaLight"
"Icy"
"Irblack"
"Isotope"
"Jabuti"
"Kanagawa"
"Katy"
"Kimber"
"Lime"
"Macintosh"
"Marrakesh"
"Materia"
"MaterialDarker"
"MaterialLighter"
"MaterialPalenight"
"MaterialVivid"
"Material"
"MeasuredDark"
"MeasuredLight"
"MellowPurple"
"MexicoLight"
"Mocha"
"Monokai"
"Moonlight"
"Mountain"
"Nebula"
"NordLight"
"Nord"
"Nova"
"Ocean"
"Oceanicnext"
"OneLight"
"OnedarkDark"
"Onedark"
"OutrunDark"
"OxocarbonDark"
"OxocarbonLight"
"Pandora"
"PapercolorDark"
"PapercolorLight"
"Paraiso"
"Pasque"
"Phd"
"Pico"
"Pinky"
"Pop"
"Porple"
"PreciousDarkEleven"
"PreciousDarkFifteen"
"PreciousLightWarm"
"PreciousLightWhite"
"PrimerDarkDimmed"
"PrimerDark"
"PrimerLight"
"Purpledream"
"Qualia"
"Railscasts"
"Rebecca"
"RosePineDawn"
"RosePineMoon"
"RosePine"
"Saga"
"Sagelight"
"Sakura"
"Sandcastle"
"SelenizedBlack"
"SelenizedDark"
"SelenizedLight"
"SelenizedWhite"
"Seti"
"ShadesOfPurple"
"ShadesmearDark"
"ShadesmearLight"
"Shapeshifter"
"SilkDark"
"SilkLight"
"Snazzy"
"SolarflareLight"
"Solarflare"
"SolarizedDark"
"SolarizedLight"
"Spaceduck"
"Spacemacs"
"Sparky"
"StandardizedDark"
"StandardizedLight"
"Stella"
"StillAlive"
"Summercamp"
"SummerfruitDark"
"SummerfruitLight"
"SynthMidnightDark"
"SynthMidnightLight"
"Tango"
"Tarot"
"Tender"
"TerracottaDark"
"Terracotta"
"TokyoCityDark"
"TokyoCityLight"
"TokyoCityTerminalDark"
"TokyoCityTerminalLight"
"TokyoNightDark"
"TokyoNightLight"
"TokyoNightMoon"
"TokyoNightStorm"
"TokyoNightTerminalDark"
"TokyoNightTerminalLight"
"TokyoNightTerminalStorm"
"TokyodarkTerminal"
"Tokyodark"
"TomorrowNightEighties"
"TomorrowNight"
"Tomorrow"
"Tube"
"Twilight"
"UnikittyDark"
"UnikittyLight"
"UnikittyReversible"
"Uwunicorn"
"Vesper"
"Vice"
"Vulcan"
"Windows10Light"
"Windows10"
"Windows95Light"
"Windows95"
"WindowsHighcontrastLight"
"WindowsHighcontrast"
"WindowsNtLight"
"WindowsNt"
"Woodland"
"XcodeDusk"
"Zenbones"
"Zenburn"
])
]
)
);
default = null;
};
};
}
)
);
default = null;
description = "Theme configuration options\n\nIf a theme is specified, `border_colours` will have no effect";
};
toggle_float_placement = lib.mkOption {
type = (lib.types.nullOr placement);
default = "CenterAndResize";
description = "Determines the placement of a new window when toggling to float";
};
unmanaged_window_operation_behaviour = lib.mkOption {
type = (
lib.types.nullOr (
lib.types.enum [
"Op"
"NoOp"
]
)
);
default = "Op";
description = "Determine what happens when commands are sent while an unmanaged window is in the foreground";
};
window_container_behaviour = lib.mkOption {
type = (lib.types.nullOr windowContainerBehaviour);
default = "Create";
description = "Determine what happens when a new window is opened";
};
};
};
default = { };
description = "komorebi for Mac configuration";
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment