207 lines
8.8 KiB
Nix
Executable File
207 lines
8.8 KiB
Nix
Executable File
|
|
{ pkgs, system, rice, inputs, ... }:
|
|
{
|
|
home.packages = with pkgs; [
|
|
# yazi
|
|
dragon
|
|
unar
|
|
];
|
|
|
|
programs.yazi = {
|
|
enable = true;
|
|
package = inputs.yazi.packages.${system}.default;
|
|
enableFishIntegration = true;
|
|
settings = {
|
|
manager = {
|
|
layout = [2 3 4];
|
|
sort_by = "natural";
|
|
sort_sensitive = true;
|
|
sort_reverse = false;
|
|
sort_dir_first = true;
|
|
linemode = "size";
|
|
show_hidden = false;
|
|
show_symlink = true;
|
|
append_keymap = [
|
|
{ on = [ "<C-g>" ]; run = "lazygit"; desc = "Run Lazygit in current directory"; }
|
|
{ on = [ "<C-D>" ]; run = ''shell 'dragon -x -i -T "$1"' --confirm''; }
|
|
];
|
|
};
|
|
opener = {
|
|
"edit" = [
|
|
{ run = ''hx "$@"''; desc = "helix"; block = true;}
|
|
{ run = ''codium "$@"''; orphan = true;}
|
|
{ run = ''nano "$@"''; desc = "nano"; block = true;}
|
|
];
|
|
"play" = [
|
|
{ run = ''mpv "$@"''; }
|
|
{ run = ''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; desc = "Show mediainfo";}
|
|
];
|
|
"archive" = [
|
|
{ run = ''unar "$1"''; desc = "Extract here"; }
|
|
{ run = ''tar -x "$1"''; desc = "tar -x"; }
|
|
{ run = ''unzip "$1"''; desc = "unzip"; }
|
|
];
|
|
"image" = [
|
|
{ run = ''imv "$@"''; desc = "imv";}
|
|
{ run = ''gimp "$@"''; desc = "gimp";}
|
|
{ run = ''swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 "$@"''; desc = "swww wallpaper";}
|
|
];
|
|
"svg" = [
|
|
{ run = ''inkscape "$@"''; desc = "inkscape";}
|
|
{ run = ''firefoc "$@"''; desc = "firefox";}
|
|
];
|
|
"font" = [
|
|
{ run = ''fontpreview "$@"''; desc = "fontpreview"; }
|
|
{ run = ''fontforge "$@"''; desc = "fortforge"; }
|
|
];
|
|
"document" = [
|
|
{ run = ''zathura "$@"''; desc = "zathura"; }
|
|
{ run = ''xournal "$@"''; desc = "xournal"; }
|
|
{ run = ''firefox "$@"''; desc = "firefox"; }
|
|
];
|
|
"browser" = [
|
|
{ run = ''firefox "$@"''; desc = "firefox"; }
|
|
{ run = ''zen "$@"''; desc = "zen"; }
|
|
{ run = ''chromium --enable-features=UseOzonePlatform --ozone-platform=wayland "$@"''; desc = "chromium"; }
|
|
{ run = ''w3m "$@"''; desc = "w3m"; }
|
|
{ run = ''lynx "$@"''; desc = "lynx"; }
|
|
];
|
|
"office" = [
|
|
{ run = ''libreoffice "$@"''; desc = "libreoffice"; }
|
|
{ run = ''libreoffice --view "$@"''; desc = "libreoffice read-only"; }
|
|
];
|
|
"shell" = [
|
|
{ run = ''bash -c "$@"''; desc = "bash -c"; }
|
|
{ run = ''fish -c "$@"''; desc = "fish -c"; }
|
|
{ run = ''sh -c "$@"''; desc = "sh -c"; }
|
|
];
|
|
"python" = [
|
|
{ run = ''python "$@"''; desc = "python"; }
|
|
];
|
|
"directory" = [
|
|
{ run = ''lazygit "$@"''; desc = "python"; }
|
|
];
|
|
};
|
|
open.rules = [
|
|
{ mime = "text/html"; use = ["edit" "browser"]; }
|
|
{ mime = "text/htm"; use = ["edit" "browser"]; }
|
|
{ mime = "text/x-python"; use = "python"; }
|
|
{ mime = "text/*"; use = "edit"; }
|
|
|
|
{ mine = "inode/x-empty"; use = "edit"; }
|
|
{ mine = "inode/directory"; use = "edit"; }
|
|
|
|
{ mime = "image/*"; use = "image"; }
|
|
{ mime = "image/svg"; use = ["image" "edit"]; }
|
|
|
|
{ mime = "video/*"; use = "video"; }
|
|
|
|
{ mime = "application/x-httpd-php"; use = ["edit" "browser"]; }
|
|
{ mime = "application/json"; use = "edit"; }
|
|
{ mime = "application/ld+json"; use = "edit"; }
|
|
{ mime = "application/pdf"; use = "document"; }
|
|
{ mime = "application/epub"; use = "document"; }
|
|
{ mime = "application/vnd.oasis.opendocument.*"; use = "office"; }
|
|
{ mime = "application/vnd.ms-powerpoint"; use = "office"; }
|
|
{ mime = "application/vnd.ms-excel"; use = "office"; }
|
|
{ mime = "application/vnd.openxmlformats-officedocument.*"; use = ["office" "edit"]; }
|
|
{ mime = "application/rtf"; use = "office"; }
|
|
{ mime = "application/x-sh"; use = ["edit" "shell"]; }
|
|
{ mime = "application/x-python-code"; use = "python"; }
|
|
{ mime = "application/xml"; use = "edit"; }
|
|
{ mime = "application/xul"; use = "edit"; }
|
|
{ mime = "application/x-bzip"; use = "archive"; }
|
|
{ mime = "application/x-bzip2"; use = "archive"; }
|
|
{ mime = "application/gzip"; use = "archive"; }
|
|
{ mime = "application/vnd.rar"; use = "archive"; }
|
|
{ mime = "application/x-tar"; use = "archive"; }
|
|
{ mime = "application/zip"; use = "archive"; }
|
|
{ mime = "application/x-7z-compressed"; use = "archive"; }
|
|
];
|
|
};
|
|
theme = with rice.color; {
|
|
manager = {
|
|
cwd = { fg = foreground; bg = background; };
|
|
hovered = { fg = background; bg = accent.base; };
|
|
preview_hovered = { underline = false; };
|
|
find_keyword = { fg = weird.base; italic = true; };
|
|
find_position = { fg = weird.base; bg = "reset"; italic = true; };
|
|
marker_selected = { fg = accent.base; bg = accent.base; };
|
|
marker_copied = { fg = weird.base; bg = weird.base; };
|
|
marker_cut = { fg = negative.base; bg = negative.base; };
|
|
tab_active = { fg = background; bg = accent.base; };
|
|
tab_inactive = { fg = accent.base; bg = background; };
|
|
tab_width = 1;
|
|
border_symbol = "│";
|
|
border_style = { fg = border; };
|
|
};
|
|
status = {
|
|
separator_open = " "; #"";
|
|
separator_close = " "; #"";
|
|
separator_style = { fg = accent.base; bg = black.base; };
|
|
mode_normal = { fg = yellow.bright; bg = yellow.dark; };
|
|
mode_select = { fg = cyan.bright; bg = cyan.dark; };
|
|
mode_unset = { fg = blue.bright; bg = blue.dark; };
|
|
progress_label = { fg = secondary.base; bold = true; };
|
|
progress_normal = { fg = accent.base; bg = black.base; };
|
|
progress_error = { fg = negative.base; bg = black.base; };
|
|
permissions_t = { fg = special.base; };
|
|
permissions_r = { fg = accent.base; };
|
|
permissions_w = { fg = secondary.base; };
|
|
permissions_x = { fg = tertiary.base; };
|
|
permissions_s = { fg = special.base; };
|
|
};
|
|
input = {
|
|
border = { fg = border; };
|
|
title = {};
|
|
value = {};
|
|
selected = { reversed = true; };
|
|
};
|
|
select = {
|
|
border = { fg = border; };
|
|
active = { fg = accent.base; };
|
|
inactive = {};
|
|
};
|
|
tasks = {
|
|
border = { fg = border2; };
|
|
title = {};
|
|
hovered = { underline = true; };
|
|
};
|
|
which = {
|
|
mask = { bg = "#3c3836"; };
|
|
cand = { fg = "#83a598"; };
|
|
rest = { fg = "#928374"; };
|
|
desc = { fg = "#fe8019"; };
|
|
separator = " ";
|
|
separator_style = { fg = "#504945"; };
|
|
};
|
|
help = {
|
|
on = { fg = "#fe8019"; };
|
|
exec = { fg = "#83a598"; };
|
|
desc = { fg = "#928374"; };
|
|
hovered = { bg = "#504945"; bold = true; };
|
|
footer = { fg = "#3c3836"; bg = "#a89984"; };
|
|
};
|
|
filetype = {
|
|
rules = [
|
|
# Empty files
|
|
{ mime = "inode/x-empty"; fg = white.dark; }
|
|
{ mime = "inode/directory"; fg = accent.base; }
|
|
|
|
{ name = "*"; is = "link"; fg = tertiary.base; }
|
|
{ name = "*"; is = "orphan"; fg = negative.base; }
|
|
{ name = "*"; is = "block"; fg = special.base; }
|
|
{ name = "*"; is = "char"; fg = special.bright; }
|
|
{ name = "*"; is = "exec"; fg = secondary.base; }
|
|
{ name = "*"; is = "fifo"; fg = weird.base; }
|
|
{ name = "*"; is = "sock"; fg = weird.bright; }
|
|
{ name = "*"; is = "sticky"; fg = special.base; }
|
|
|
|
# Fallback
|
|
{ name = "*"; fg = foreground; }
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|