Skip to Content

Не показывать preview для больших архивов в ranger

Posted on 2 mins read

После того как я начал использовать ranger, мне понравилось что он быстро показывает превью для файлов, картинок, архивов. Но вот с архивами была проблема, когда просто перемещаешься по директории и натыкаешься на большой архив, ranger начинает его разархивировать, что бы получить список файлов и пока он не закончит, нельзя перемещаться дальше. Поэтому первое что пришло в голову, заставить ranger не показывать превью для архивов больше определенного размера. Как сделать это штатными средствами я не нашел. Да скорее всего это и не возможно. Потому что отображение preview занимается не сам ranger, а скрипт scope.sh, который мы можем свободно править. Находиться он в директории

~/.config/ranger/scope.sh

на необходим вот этот кусок кода:

case "$extension" in
    # Archive extensions:
    7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
    rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
        als "$path" | head -n $maxln
        success && exit 0 || acat "$path" | head -n $maxln && exit 3

в строке

als "$path" | head -n $maxln

мы и получаем список файлов из архива Нам неоходимо это делать только вслучее если размер архива меньше опреденного. Для этого вводи переменную

maxSize=20000000

что равно 20Мб и добавляем получение условие с размером архива, в итоге получаем:

maxSize=20000000
case "$extension" in
    # Archive extensions:
    7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
    rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
        [ `stat -c%s $path` -lt $maxSize ] && als "$path" | head -n $maxln
        success && exit 0 || acat "$path" | head -n $maxln && exit 3

сохраняем и все готов. Ни чего не надо перезапускать, все сразу работает.

comments powered by Disqus