nix-config/modules/home/pager/default.nix
2026-04-01 20:04:43 +01:00

42 lines
1.1 KiB
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);
# Better XDG compliance
LESSHISTFILE = "${config.xdg.stateHome}/less/history";
};
};
}