{ pkgs, config, lib, ... }: with lib; let cfg = config.eboskma.programs.nnn; in { options.eboskma.programs.nnn = { enable = mkEnableOption "nnn"; }; config = mkIf cfg.enable { programs.nnn = { enable = true; package = (pkgs.nnn.overrideAttrs (_prevAttrs: { version = "unstable-2023-10-08"; src = pkgs.fetchFromGitHub { owner = "jarun"; repo = "nnn"; rev = "7f63bef4d6c9f70b99a4c98435c9c0a68e05be44"; hash = "sha256-B9WRQW4wbs3+lJ9ACFheTaO+0+G/r67yJZJJPMDIQXI="; }; })).override { withNerdIcons = true; extraMakeFlags = [ "O_COLEMAK=1" "O_GITSTATUS=1" ]; }; plugins = { src = (pkgs.fetchFromGitHub { owner = "jarun"; repo = "nnn"; rev = "7f63bef4d6c9f70b99a4c98435c9c0a68e05be44"; hash = "sha256-B9WRQW4wbs3+lJ9ACFheTaO+0+G/r67yJZJJPMDIQXI="; }) + "/plugins"; mappings = { c = "fzcd"; f = "finder"; V = "imgview"; }; }; extraPackages = with pkgs; [ atool ffmpegthumbnailer html2text (imv.override { withBackends = [ "libtiff" "libjpeg" "libpng" "librsvg" "libheif" ]; }) mediainfo p7zip pbzip2 pigz sourceHighlight zip ]; }; }; }