It's now using an XDG-compliant value by default, I don't need to define it myself.
40 lines
992 B
Nix
40 lines
992 B
Nix
{ config, lib, ... }:
|
|
let
|
|
cfg = config.my.home.pager;
|
|
in
|
|
{
|
|
options.my.home.pager = with lib; {
|
|
enable = my.mkDisableOption "pager configuration";
|
|
};
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
programs.less = {
|
|
enable = true;
|
|
|
|
config = ''
|
|
#command
|
|
# Quit without clearing the screen on `Q`
|
|
Q toggle-option -!^Predraw-on-quit\nq
|
|
'';
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
# My default pager
|
|
PAGER = "less";
|
|
# Set `LESS` in the environment so it overrides git's pager (and others)
|
|
LESS =
|
|
let
|
|
options = {
|
|
# Always use the alternate screen (so that it is cleared on exit)
|
|
"+no-init" = true;
|
|
# Write text top-down, rather than from the bottom
|
|
clear-screen = true;
|
|
# Interpret (some) escape sequences
|
|
RAW-CONTROL-CHARS = true;
|
|
};
|
|
in
|
|
lib.concatStringsSep " " (lib.cli.toCommandLineGNU { } options);
|
|
};
|
|
};
|
|
}
|