at 24.11-pre 1.2 kB view raw
1{ config, lib, pkgs, ... }: 2 3let 4 cfg = config.programs.nano; 5in 6 7{ 8 options = { 9 programs.nano = { 10 enable = lib.mkEnableOption "nano, a small user-friendly console text editor" // { 11 default = true; 12 }; 13 14 package = lib.mkPackageOption pkgs "nano" { }; 15 16 nanorc = lib.mkOption { 17 type = lib.types.lines; 18 default = ""; 19 description = '' 20 The system-wide nano configuration. 21 See {manpage}`nanorc(5)`. 22 ''; 23 example = '' 24 set nowrap 25 set tabstospaces 26 set tabsize 2 27 ''; 28 }; 29 30 syntaxHighlight = lib.mkOption { 31 type = lib.types.bool; 32 default = true; 33 description = "Whether to enable syntax highlight for various languages."; 34 }; 35 }; 36 }; 37 38 config = lib.mkIf cfg.enable { 39 environment = { 40 etc.nanorc.text = (lib.optionalString cfg.syntaxHighlight '' 41 # load syntax highlighting files 42 include "${cfg.package}/share/nano/*.nanorc" 43 include "${cfg.package}/share/nano/extra/*.nanorc" 44 '') + cfg.nanorc; 45 systemPackages = [ cfg.package ]; 46 }; 47 }; 48}