use yazi outside of helix and chawan as manpager

This commit is contained in:
Noah Masur
2025-11-02 17:01:34 -05:00
parent aea3e95ef5
commit ebbc9c5a5d
5 changed files with 45 additions and 13 deletions

View File

@@ -0,0 +1,25 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.nmasur.presets.programs.chawan;
in
{
options.nmasur.presets.programs.chawan.enable = lib.mkEnableOption "chawan TUI web browser";
config = lib.mkIf cfg.enable {
# Set Chawan as the default app for manual pages
home.sessionVariables = {
MANPAGER = "${lib.getExe pkgs.chawan} -T text/x-ansi";
};
};
}

View File

@@ -22,7 +22,7 @@ in
# Set Neovim as the default app for text editing and manual pages # Set Neovim as the default app for text editing and manual pages
home.sessionVariables = { home.sessionVariables = {
EDITOR = lib.mkForce "${lib.getExe pkgs.helix}"; EDITOR = lib.mkForce "${lib.getExe pkgs.helix}";
MANPAGER = lib.mkForce "sh -c 'col -bx | ${lib.getExe pkgs.helix}'"; # MANPAGER = lib.mkForce "sh -c 'col -bx | ${lib.getExe pkgs.helix}'";
MANWIDTH = 87; MANWIDTH = 87;
MANROFFOPT = "-c"; MANROFFOPT = "-c";
}; };
@@ -181,17 +181,6 @@ in
# Commandline git blame # Commandline git blame
space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}"; space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
# Open yazi
# https://github.com/sxyazi/yazi/pull/2461
# Won't work until next Helix release
C-y = [
":sh rm -f /tmp/unique-file"
":insert-output ${lib.getExe pkgs.yazi} %{buffer_name} --chooser-file=/tmp/unique-file"
":insert-output echo \\x1b[?1049h\\x1b[?2004h > /dev/tty"
":open %sh{cat /tmp/unique-file}"
":redraw"
];
# Extend selection above # Extend selection above
X = "select_line_above"; X = "select_line_above";
@@ -256,6 +245,10 @@ in
git-exclude = true; # Skip excluded files git-exclude = true; # Skip excluded files
}; };
completion-replace = true; # Replace whole word with completion
trim-trailing-whitespace = true;
rainbow-brackets = true; # Make it easier to match parentheses
# Show whitespace visible to the user # Show whitespace visible to the user
# Waiting for trailing whitespace option ideally # Waiting for trailing whitespace option ideally
whitespace = { whitespace = {

View File

@@ -44,7 +44,7 @@ in
# Set Neovim as the default app for text editing and manual pages # Set Neovim as the default app for text editing and manual pages
home.sessionVariables = { home.sessionVariables = {
EDITOR = "${lib.getExe cfg.package}"; EDITOR = "${lib.getExe cfg.package}";
MANPAGER = "${lib.getExe cfg.package} +Man!"; # MANPAGER = "${lib.getExe cfg.package} +Man!";
}; };
# Create quick aliases for launching Neovim # Create quick aliases for launching Neovim

View File

@@ -198,6 +198,19 @@ in
height = "99%"; height = "99%";
}; };
}; };
"bind \"Alt Shift y\"" = {
Run = {
_args = [
(lib.getExe pkgs.yazi)
];
close_on_exit = true;
floating = true;
x = "1%";
y = "1%";
width = "99%";
height = "99%";
};
};
"bind \"Super Shift ]\"" = { "bind \"Super Shift ]\"" = {
GoToNextTab = { }; GoToNextTab = { };
}; };

View File

@@ -33,6 +33,7 @@ in
nmasur.presets = { nmasur.presets = {
programs = { programs = {
bat.enable = lib.mkDefault true; bat.enable = lib.mkDefault true;
chawan.enable = lib.mkDefault true;
fd.enable = lib.mkDefault true; fd.enable = lib.mkDefault true;
ripgrep.enable = lib.mkDefault true; ripgrep.enable = lib.mkDefault true;
starship.enable = lib.mkDefault true; starship.enable = lib.mkDefault true;