about summary refs log tree commit diff stats
path: root/modules/by-name/le/less
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-02 17:58:37 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-02 17:58:37 +0100
commit66ffa2470f7fae22b88c03c27aa7f0baf6906915 (patch)
tree1857951eec2503828fbf824ced33676a0f5ce104 /modules/by-name/le/less
parentfix(modules/legacy/alacitty): Update config to include new subsection (diff)
downloadnixos-config-66ffa2470f7fae22b88c03c27aa7f0baf6906915.tar.gz
nixos-config-66ffa2470f7fae22b88c03c27aa7f0baf6906915.zip
refactor(modules/legacy/less): Migrate to `by-name`
Diffstat (limited to 'modules/by-name/le/less')
-rw-r--r--modules/by-name/le/less/command.less127
-rw-r--r--modules/by-name/le/less/env.less2
-rw-r--r--modules/by-name/le/less/line-edit.less29
-rw-r--r--modules/by-name/le/less/module.nix32
4 files changed, 190 insertions, 0 deletions
diff --git a/modules/by-name/le/less/command.less b/modules/by-name/le/less/command.less
new file mode 100644
index 00000000..95b79b02
--- /dev/null
+++ b/modules/by-name/le/less/command.less
@@ -0,0 +1,127 @@
+#command
+\r         forw-line
+\n         forw-line
+e          forw-line
+t          forw-line
+\kd        forw-line
+ˆE         forw-line
+ˆN         forw-line
+n          back-line
+y          back-line
+ˆY         back-line
+ˆK         back-line
+ˆP         back-line
+T          forw-line-force
+N          back-line-force
+Y          back-line-force
+d          forw-scroll
+ˆD         forw-scroll
+u          back-scroll
+ˆU         back-scroll
+\40        forw-screen
+f          forw-screen
+ˆF         forw-screen
+ˆV         forw-screen
+\kD        forw-screen
+b          back-screen
+ˆB         back-screen
+\ev        back-screen
+\kU        back-screen
+z          forw-window
+w          back-window
+\e\40      forw-screen-force
+F          forw-forever
+\eF        forw-until-hilite
+R          repaint-flush
+r          repaint
+ˆR         repaint
+ˆL         repaint
+\en        undo-hilite
+\eU        clear-search
+g          goto-line
+\kh        goto-line
+<          goto-line
+\e<        goto-line
+p          percent
+%          percent
+\e[        left-scroll
+\e]        right-scroll
+\e(        left-scroll
+\e)        right-scroll
+\kl        left-scroll
+\kr        right-scroll
+\e{        no-scroll
+\e}        end-scroll
+{          forw-bracket {}
+}          back-bracket {}
+(          forw-bracket ()
+)          back-bracket ()
+[          forw-bracket []
+]          back-bracket []
+\eˆF       forw-bracket
+\eˆB       back-bracket
+G          goto-end
+\e>        goto-end
+>          goto-end
+\ke        goto-end
+\eG        goto-end-buffered
+=          status
+ˆG         status
+:f         status
+/          forw-search
+?          back-search
+\e/        forw-search *
+\e?        back-search *
+l          repeat-search
+\el        repeat-search-all
+L          reverse-search
+\eL        reverse-search-all
+&          filter
+m          set-mark
+M          set-mark-bottom
+\em        clear-mark
+'          goto-mark
+ˆXˆX       goto-mark
+E          examine
+:e         examine
+ˆXˆV       examine
+:n         next-file
+:p         prev-file
+j          next-tag
+J          prev-tag
+:x         index-file
+:d         remove-file
+-          toggle-option
+:t         toggle-option t
+s          toggle-option o
+           ## Use a long option name by starting the
+           ## extra string with ONE dash; eg:
+           ##   s toggle-option -log-file\n
+_          display-option
+|          pipe
+v          visual
+!          shell
+#          pshell
++          firstcmd
+H          help
+h          help
+V          version
+0          digit
+1          digit
+2          digit
+3          digit
+4          digit
+5          digit
+6          digit
+7          digit
+8          digit
+9          digit
+q          quit
+Q          quit
+:q         quit
+:Q         quit
+ZZ         quit
+
+# Stop processing (and ignore less' default values)
+# (// FIXME: This stopped working and thus we just comment it out <2024-08-03> )
+# stop
diff --git a/modules/by-name/le/less/env.less b/modules/by-name/le/less/env.less
new file mode 100644
index 00000000..30f7645d
--- /dev/null
+++ b/modules/by-name/le/less/env.less
@@ -0,0 +1,2 @@
+#env
+LESS = -R --use-color --incsearch --modelines=2 --save-marks --wordwrap --status-line
diff --git a/modules/by-name/le/less/line-edit.less b/modules/by-name/le/less/line-edit.less
new file mode 100644
index 00000000..a7e889db
--- /dev/null
+++ b/modules/by-name/le/less/line-edit.less
@@ -0,0 +1,29 @@
+#line-edit
+\t           forw-complete
+\17          back-complete
+\e\t         back-complete
+ˆL           expand
+ˆV           literal
+ˆA           literal
+\es          right
+\kr          right
+\eh          left
+\kl          left
+\eb          word-left
+\e\kl        word-left
+\ew          word-right
+\e\kr        word-right
+\ei          insert
+\ex          delete
+\kx          delete
+\eX          word-delete
+\ekx         word-delete
+\e\b         word-backspace
+\e0          home
+\kh          home
+\e$          end
+\ke          end
+\en          up
+\ku          up
+\et          down
+ˆG           abort
diff --git a/modules/by-name/le/less/module.nix b/modules/by-name/le/less/module.nix
new file mode 100644
index 00000000..f2475b73
--- /dev/null
+++ b/modules/by-name/le/less/module.nix
@@ -0,0 +1,32 @@
+{
+  config,
+  lib,
+  ...
+}: let
+  cfg = config.soispha.programs.less;
+in {
+  options.soispha.programs.less = {
+    enable = lib.mkEnableOption "less";
+  };
+
+  config = lib.mkIf cfg.enable {
+    home-manager.users.soispha = {
+      home.sessionVariables = {
+        PAGER = "less";
+        MANPAGER = "less --color=d+r --color=u+b";
+
+        # These are added here because adding them in the lesskey file somehow doesn't work.
+        LESSHISTSIZE = 10000;
+        LESSHISTFILE = "${config.home-manager.users.soispha.xdg.dataHome}/less/history";
+      };
+
+      programs.less = {
+        enable = true;
+        keys =
+          builtins.readFile ./command.less
+          + builtins.readFile ./line-edit.less
+          + builtins.readFile ./env.less;
+      };
+    };
+  };
+}