/** * A custom module to configure i3. Provides a simple interface to * set a wallpaper and certain keybinding overrides. * * The special thing about this configuration is the way workspaces * are handled. Instead of numerical workspaces, this configuration * sets up scripts to manage named workspaces */ { config, lib, pkgs, home-manager, ... } @ args: let cfg = config.libkookie.ui.i3; in with lib; { options.libkookie.ui.i3 = { enable = mkEnableOption "i3 + xfce display manager"; compton = mkEnableOption "window composition with compton"; defaultSession = mkEnableOption "i3 as the default login session"; wallpaper = mkOption { type = types.path; description = '' Specify the wallpaper to set. Default to the default NixOS login screen wallpaper. ''; }; fonts = mkOption { type = with types; listOf str; default = ["monospace"]; description = '' A set of fonts to use by the i3 module for rendering text ''; }; modifier = mkOption { type = types.string; default = "Mod4"; description = '' The modifier key used by i3. By default this is Meta (Mod4). To see which modifier keys you can use alternatively, check the i3 documentation. ''; }; videoDrivers = with lib; mkOption { type = with types; listOf str; default = []; description = '' The set of video drivers to instantiate on a given system ''; }; }; config = mkIf cfg.enable (import ./core.nix args); }