From d32bd28650e6faabad3d348ecb144aa30d8a8c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Thu, 11 May 2023 11:20:47 -0300 Subject: [PATCH] helix: add helix pager --- scripts/default.nix | 2 ++ scripts/helix-man-pager | 3 +++ scripts/helix-pager | 28 ++++++++++++++++++++++++++++ user/man.nix | 26 +++++++++++++++++++------- 4 files changed, 52 insertions(+), 7 deletions(-) create mode 100755 scripts/helix-man-pager create mode 100644 scripts/helix-pager diff --git a/scripts/default.nix b/scripts/default.nix index b4f57f8..11086dd 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -31,6 +31,8 @@ create_scripts _sway_idle_toggle = [ final.swayidle ]; kak-pager = [ fish final._diffr ]; kak-man-pager = [ final.kak-pager ]; + helix-pager = [ fish final._diffr ]; + helix-man-pager = [ final.helix-pager ]; musmenu = [ mpc-cli final.wdmenu trash-cli xdg-user-dirs libnotify sd wl-clipboard ]; showkeys = [ ]; # This will not work unless programs.wshowkeys is enabled systemwide diff --git a/scripts/helix-man-pager b/scripts/helix-man-pager new file mode 100755 index 0000000..a9c79d7 --- /dev/null +++ b/scripts/helix-man-pager @@ -0,0 +1,3 @@ +#!/bin/sh + +col -b -x | hx diff --git a/scripts/helix-pager b/scripts/helix-pager new file mode 100644 index 0000000..1a7f8cf --- /dev/null +++ b/scripts/helix-pager @@ -0,0 +1,28 @@ +#!/usr/bin/env fish + +if test (count $argv) -ne 0 + for i in $argv + cat "$i" + end | eval (status filename) + exit 0 +end + +set term_line_count (tput lines) + +while read line + set -a input_lines "$line" + + set input_line_count (printf "%s\n" $input_lines | wc -l) + + if test "$term_line_count" -lt "$input_line_count" + begin + printf "%s\n" $input_lines + cat + end | hx + + exit 0 + end + +end + +printf "%s\n" $input_lines diff --git a/user/man.nix b/user/man.nix index 25c5ad0..5b80a4e 100644 --- a/user/man.nix +++ b/user/man.nix @@ -1,16 +1,28 @@ { config, pkgs, lib, inputs, ... }: -let inherit (pkgs.uservars) key theme color accent font desktop; -in { - config = { - programs.man = { - enable = true; - generateCaches = true; +let inherit (pkgs.uservars) key theme color accent font desktop editor; + pagers = rec { + kak = kakoune; + kakoune = { + PAGER = "${pkgs.kak-pager}/bin/kak-pager"; + MANPAGER = "${pkgs.kak-man-pager}/bin/kak-man-pager"; + SYSTEMD_PAGER = "${pkgs.kak-pager}/bin/kak-pager"; + SYSTEMD_PAGERSECURE = "1"; }; - home.sessionVariables = { + hx = helix; + helix = { PAGER = "${pkgs.kak-pager}/bin/kak-pager"; MANPAGER = "${pkgs.kak-man-pager}/bin/kak-man-pager"; SYSTEMD_PAGER = "${pkgs.kak-pager}/bin/kak-pager"; SYSTEMD_PAGERSECURE = "1"; }; }; +in +{ + config = { + programs.man = { + enable = true; + generateCaches = true; + }; + home.sessionVariables = pagers.${editor}; + }; }