My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/infra/libkookie/modules/workstation/ui/i3/hm.nix

71 lines
1.8 KiB

/**
* A home-manager module to configure userspace i3
*
*/
{ config, lib, pkgs, home-manager, ... } @ args:
let cfg = config.libkookie.ui.i3;
in
{
options.libkookie.ui.i3 = with lib; {
picom = mkEnableOption "window composition with picom";
wallpaper = mkOption {
type = types.path;
description = ''
Specify the wallpaper to set.
'';
};
networkmanager = mkOption {
type = types.bool;
default = true;
description = ''
Set whether networkmanager is enabled on the system or not.
This setting should be removed in the future, when I figure
out how to pull in config value from the nixos config.
'';
};
# TODO: figure out a way to make this a package type
fonts = mkOption {
type = with types; listOf str;
default = [ "monospace" ];
description = ''
A set of fonts to use by the i3 module for rendering text
'';
};
term = mkOption {
type = types.package;
description = "Terminal emulator to bind to <M-RET>";
};
bar-location = mkOption {
type = types.enum [ "top" "bottom" ];
default = "bottom";
description = "Choose the orientation of the status bar";
};
window-spacing = mkOption {
type = types.bool;
default = false;
description = "Enable window spacing via i3gaps";
};
i3Status = mkOption {
type = with types; submodule {
options = {
colors = mkOption { type = bool; default = true; };
format = mkOption { type = str; default = "dzen2"; };
interval = mkOption { type = int; default = 1; };
segments = mkOption { type = listOf str; default = []; };
};
};
};
};
config = (import core/setup.nix args);
}