{ pkgs, lib, user, rice, ... }: lib.mkIf (user != "tv") { 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 = [ "" ]; run = "lazygit"; desc = "Run Lazygit in current directory"; } { on = [ "" ]; 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"; } ]; 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";} ]; font = [ { run = ''fontpreview "$@"''; desc = "fontpreview"; } ]; document = [ { run = ''zathura "$@"''; desc = "zathura"; } { run = ''xournal "$@"''; desc = "xournal"; } { run = ''firefox "$@"''; desc = "firefox"; } ]; browser = [ { run = ''firefox "$@"''; desc = "firefox"; } ]; office = [ { run = ''libreoffice "$@"''; desc = "libreoffice"; } { run = ''libreoffice --view "$@"''; desc = "libreoffice read-only"; } ]; shell = [ { run = ''sh -c "$@"''; desc = "sh -c"; } { run = ''bash -c "$@"''; desc = "bash -c"; } ]; python = [ { run = ''python "$@"''; desc = "python"; } ]; }; open.rules = [ { mime = "text/*"; use = "edit"; } { mime = "text/plain"; use = "edit"; } { mime = "text/html"; use = ["edit" "browser"]; } { mime = "text/htm"; use = ["edit" "browser"]; } { mime = "application/x-httpd-php"; use = ["edit" "browser"]; } { mime = "application/json"; use = "edit"; } { mime = "application/ld+json"; use = "edit"; } { mime = "image/*"; use = "image"; } { mime = "image/svg"; use = ["image" "edit"]; } { mime = "application/pdf"; use = "document"; } { mime = "application/epub"; use = "document"; } { mime = "video/*"; use = "video"; } { 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 = "text/x-python"; 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; } ]; }; }; }; }