neovide: add module
Neovide is a simple, no-nonsense, cross-platform graphical user interface for Neovim See <https://neovide.dev/>. Used ruff's module as reference during creation.
This commit is contained in:
parent
4c8647b1ed
commit
7923c69152
8 changed files with 121 additions and 0 deletions
52
modules/programs/neovide.nix
Normal file
52
modules/programs/neovide.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
|
||||
cfg = config.programs.neovide;
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
|
||||
in {
|
||||
meta.maintainers = [ lib.hm.maintainers.NitroSniper ];
|
||||
|
||||
options.programs.neovide = {
|
||||
enable = lib.mkEnableOption "Neovide, No Nonsense Neovim Client in Rust";
|
||||
|
||||
package = lib.mkPackageOption pkgs "neovide" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = settingsFormat.type;
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
fork = false;
|
||||
frame = "full";
|
||||
idle = true;
|
||||
maximized = false;
|
||||
neovim-bin = "/usr/bin/nvim";
|
||||
no-multigrid = false;
|
||||
srgb = false;
|
||||
tabs = true;
|
||||
theme = "auto";
|
||||
title-hidden = true;
|
||||
vsync = true;
|
||||
wsl = false;
|
||||
|
||||
font = {
|
||||
normal = [];
|
||||
size = 14.0;
|
||||
};
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Neovide configuration.
|
||||
For available settings see <https://neovide.dev/config-file.html>.
|
||||
For any option not found will need to be done in your neovim's config instead.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
xdg.configFile."neovide/config.toml".source =
|
||||
settingsFormat.generate "config.toml" cfg.settings;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue