initial
This commit is contained in:
88
hosts/sarien/users/user/programs/console/yazi.nix
Normal file
88
hosts/sarien/users/user/programs/console/yazi.nix
Normal file
@ -0,0 +1,88 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.console.yazi;
|
||||
in {
|
||||
options = {
|
||||
console.yazi.enable =
|
||||
mkEnableOption "enable yazi file manager";
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = {
|
||||
opener = {
|
||||
open = [
|
||||
{
|
||||
run = "xdg-open \"$@\"";
|
||||
orphan = true;
|
||||
desc = "Open";
|
||||
}
|
||||
];
|
||||
edit = [
|
||||
{
|
||||
run = "$EDITOR \"$@\"";
|
||||
block = true;
|
||||
desc = "Edit";
|
||||
}
|
||||
];
|
||||
dragdrop = [
|
||||
{
|
||||
run = "${pkgs.ripdrag}/bin/ripdrag \"$@\"";
|
||||
desc = "Drag'n'drop";
|
||||
orphan = true;
|
||||
for = "unix";
|
||||
}
|
||||
];
|
||||
};
|
||||
open.rules = [
|
||||
{
|
||||
mime = "text/*";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*.toml";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*.c";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*.cpp";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*.rs";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*.py";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*.json";
|
||||
use = ["edit" "open" "dragdrop"];
|
||||
}
|
||||
{
|
||||
name = "*";
|
||||
use = ["open" "edit" "dragdrop"];
|
||||
}
|
||||
];
|
||||
};
|
||||
keymap = {
|
||||
manager.append_keymap = [
|
||||
{
|
||||
on = ["<C-n>"];
|
||||
run = ''shell '${pkgs.ripdrag}/bin/ripdrag -x "$@"' --confirm'';
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user