nixos-config/configs/nixvim/trovebelt/modules/setups/ui.nix
2025-03-11 10:27:41 +08:00

65 lines
1.6 KiB
Nix

{ config, lib, ... }:
let
nixvimCfg = config.nixvimConfigs.trovebelt;
cfg = nixvimCfg.setups.ui;
in {
options.nixvimConfigs.trovebelt.setups.ui.enable =
lib.mkEnableOption "configuration for UI-related settings and plugins";
config = lib.mkIf cfg.enable {
# Set the colorscheme. Take note, we'll set in the default since this NixVim configuration
colorschemes = lib.mkDefault { gruvbox.enable = true; };
# Make it so that terminal GUI colors are au natural.
opts.termguicolors = true;
# Show locations you're supposed to be copying from the internet (or your
# own code).
opts.number = true;
# Make it easy to count.
opts.relativenumber = true;
# Make it easy to identify your cursor.
opts.cursorline = true;
# Conceal all of the hidden weapons (or distractions).
opts.conceallevel = 1;
# Show them hidden suckers.
opts.list = true;
opts.listchars = {
tab = " *";
trail = "·";
nbsp = "%";
};
# Taste the rainbow delimiters.
plugins.rainbow-delimiters.enable = nixvimCfg.setups.treesitter.enable;
# Enable them status bars.
plugins.lualine = {
enable = true;
settings = {
options = {
icons_enabled = true;
globalstatus = true;
always_divide_middle = true;
};
# Disable the section separators.
section_separators = {
left = "";
right = "";
};
sections = {
lualine_a = [ "mode" ];
lualine_z = [ "location" ];
};
};
};
};
}