nano: support system-wide nanorc

This patch does two things
1. builds nano with sysconfdir=/etc; and
2. adds an option programs.nano.nanorc

Changed files
+38
nixos
modules
pkgs
applications
editors
+1
nixos/modules/module-list.nix
···
./programs/blcr.nix
./programs/environment.nix
./programs/info.nix
+
./programs/nano.nix
./programs/screen.nix
./programs/shadow.nix
./programs/shell.nix
+35
nixos/modules/programs/nano.nix
···
+
{ config, lib, ... }:
+
+
let
+
cfg = config.programs.nano;
+
in
+
+
{
+
###### interface
+
+
options = {
+
programs.nano = {
+
+
nanorc = lib.mkOption {
+
type = lib.types.lines;
+
default = "";
+
description = ''
+
The system-wide nano configuration.
+
See <citerefentry><refentrytitle>nanorc</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
+
'';
+
example = ''
+
set nowrap
+
set tabstospaces
+
set tabsize 4
+
'';
+
};
+
};
+
};
+
+
###### implementation
+
+
config = lib.mkIf (cfg.nanorc != "") {
+
environment.etc."nanorc".text = cfg.nanorc;
+
};
+
+
}
+2
pkgs/applications/editors/nano/default.nix
···
buildInputs = [ ncurses gettext ];
+
configureFlags = "sysconfdir=/etc";
+
meta = {
homepage = http://www.nano-editor.org/;
description = "A small, user-friendly console text editor";