mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-07-06 16:12:33 +02:00
4addb1bd33
Signed-off-by: Hadi <hadi@example.com>
139 lines
3.3 KiB
Nix
139 lines
3.3 KiB
Nix
{pkgs, ...}: {
|
|
programs.yazi = {
|
|
enable = true;
|
|
shellWrapperName = "y";
|
|
|
|
plugins = {
|
|
git = {
|
|
package = pkgs.yaziPlugins.git;
|
|
setup = true;
|
|
};
|
|
ouch = pkgs.yaziPlugins.ouch;
|
|
piper = pkgs.yaziPlugins.piper;
|
|
convert = pkgs.yaziPlugins.convert;
|
|
"jump-to-char" = pkgs.yaziPlugins."jump-to-char";
|
|
"wl-clipboard" = pkgs.yaziPlugins."wl-clipboard";
|
|
"batch-rename-gui" = pkgs.yaziPlugins.mkYaziPlugin {
|
|
pname = "batch-rename-gui.yazi";
|
|
version = "0-unstable-2025-07-08";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "pakhromov";
|
|
repo = "batch-rename-gui.yazi";
|
|
rev = "5c2d5aa349948b6ab405a171541faab44751f6a5";
|
|
hash = "sha256-3RviPY3WOyYi5GWXWRYMWp6VLxCe5cuJX7Kb7AyWxLE=";
|
|
};
|
|
};
|
|
};
|
|
|
|
settings.mgr.ratio = [0 4 3];
|
|
|
|
settings.plugin = {
|
|
prepend_fetchers = [
|
|
{
|
|
url = "*";
|
|
run = "git";
|
|
group = "git";
|
|
}
|
|
{
|
|
url = "*/";
|
|
run = "git";
|
|
group = "git";
|
|
}
|
|
];
|
|
prepend_previewers = [
|
|
{
|
|
mime = "image/*";
|
|
run = ''piper -- chafa --format symbols --animate off --size "$w"x"$h" -- "$1"'';
|
|
}
|
|
{
|
|
url = "*.md";
|
|
run = ''piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'';
|
|
}
|
|
];
|
|
prepend_openers = [
|
|
{
|
|
url = "*.{zip,tar,gz,bz2,xz,7z,rar}";
|
|
run = "ouch";
|
|
}
|
|
];
|
|
};
|
|
|
|
keymap.mgr.prepend_keymap = [
|
|
{
|
|
on = ["C"];
|
|
run = "plugin ouch";
|
|
desc = "Compress";
|
|
}
|
|
{
|
|
on = ["X"];
|
|
run = "plugin ouch --args=extract";
|
|
desc = "Extract";
|
|
}
|
|
{
|
|
on = ["c" "p"];
|
|
run = "plugin convert -- --extension='png'";
|
|
desc = "Convert to PNG";
|
|
}
|
|
{
|
|
on = ["c" "j"];
|
|
run = "plugin convert -- --extension='jpg'";
|
|
desc = "Convert to JPG";
|
|
}
|
|
{
|
|
on = ["c" "w"];
|
|
run = "plugin convert -- --extension='webp'";
|
|
desc = "Convert to WebP";
|
|
}
|
|
{
|
|
on = ["M"];
|
|
run = ''shell 'exiftool "$@" | less' --block'';
|
|
desc = "Show metadata";
|
|
}
|
|
{
|
|
on = ["T"];
|
|
run = "plugin toggle-parent";
|
|
desc = "Toggle parent pane";
|
|
}
|
|
{
|
|
on = ["F"];
|
|
run = "plugin jump-to-char";
|
|
desc = "Jump to char";
|
|
}
|
|
{
|
|
on = ["Y"];
|
|
run = "plugin wl-clipboard";
|
|
desc = "Copy to clipboard (Wayland)";
|
|
}
|
|
{
|
|
on = ["B"];
|
|
run = "plugin batch-rename-gui";
|
|
desc = "Batch rename";
|
|
}
|
|
{
|
|
on = [";"];
|
|
run = "plugin command-palette";
|
|
desc = "Command palette";
|
|
}
|
|
];
|
|
};
|
|
|
|
home.packages = with pkgs; [glow ouch hexyl exiftool starship fzf];
|
|
|
|
xdg.configFile."yazi/plugins/toggle-parent.yazi/main.lua".text = ''
|
|
--- @sync entry
|
|
local RESTORE_WIDTH = 1
|
|
return {
|
|
entry = function(st, job)
|
|
local r = rt.mgr.ratio
|
|
if r.parent == 0 then
|
|
rt.mgr.ratio = { st.width or RESTORE_WIDTH, r.current, r.preview }
|
|
else
|
|
st.width = r.parent
|
|
rt.mgr.ratio = { 0, r.current, r.preview }
|
|
end
|
|
ya.emit("app:resize", {})
|
|
end
|
|
}
|
|
'';
|
|
}
|