modules/home/programs/console/yazi.nix: add more open rules Signed-off-by: unexplrd <unexplrd@linerds.us>
118 lines
2.6 KiB
Nix
118 lines
2.6 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkEnableOption getExe;
|
|
cfg = config.console.yazi;
|
|
in {
|
|
options = {
|
|
console.yazi.enable =
|
|
mkEnableOption "enable yazi file manager";
|
|
};
|
|
config = mkIf cfg.enable {
|
|
programs.yazi = {
|
|
enable = true; # file manager in rust
|
|
enableNushellIntegration = true;
|
|
shellWrapperName = "y";
|
|
settings = {
|
|
opener = {
|
|
open = [
|
|
{
|
|
run = "xdg-open \"$@\"";
|
|
orphan = true;
|
|
desc = "Open";
|
|
}
|
|
];
|
|
edit = [
|
|
{
|
|
run = "$EDITOR \"$@\"";
|
|
block = true;
|
|
desc = "Edit";
|
|
}
|
|
];
|
|
dragdrop = [
|
|
{
|
|
run = "${getExe pkgs.ripdrag} -ab \"$@\"";
|
|
desc = "Drag'n'drop";
|
|
orphan = true;
|
|
for = "unix";
|
|
}
|
|
];
|
|
};
|
|
open.rules = [
|
|
{
|
|
mime = "text/*";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.json";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.yaml";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.yml";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.toml";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.sh";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.ini";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.conf";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.csv";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.go";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.html";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.c";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.cpp";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.rs";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.nix";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*.py";
|
|
use = ["edit" "open" "dragdrop"];
|
|
}
|
|
{
|
|
name = "*";
|
|
use = ["open" "edit" "dragdrop"];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|