diff options
Diffstat (limited to 'config/ranger')
| -rw-r--r-- | config/ranger/rc.conf | 582 | ||||
| -rw-r--r-- | config/ranger/rifle.conf | 123 | ||||
| -rwxr-xr-x | config/ranger/scope.sh | 89 | 
3 files changed, 0 insertions, 794 deletions
| diff --git a/config/ranger/rc.conf b/config/ranger/rc.conf deleted file mode 100644 index 61bdfd4..0000000 --- a/config/ranger/rc.conf +++ /dev/null @@ -1,582 +0,0 @@ -# =================================================================== -# This file contains the default startup commands for ranger. -# To change them, it is recommended to create the file -# ~/.config/ranger/rc.conf and add your custom commands there. -# -# If you copy this whole file there, you may want to set the environment -# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. -# -# The purpose of this file is mainly to define keybindings and settings. -# For running more complex python code, please create a plugin in "plugins/" or -# a command in "commands.py". -# -# Each line is a command that will be run before the user interface -# is initialized.  As a result, you can not use commands which rely -# on the UI such as :delete or :mark. -# =================================================================== - -# =================================================================== -# == Options -# =================================================================== - -# How many columns are there, and what are their relative widths? -set column_ratios 1,3,4 - -# Which files should be hidden? (regular expression) -set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ - -# Show hidden files? You can toggle this by typing 'zh' -set show_hidden false - -# Ask for a confirmation when running the "delete" command? -# Valid values are "always", "never", "multiple" (default) -# With "multiple", ranger will ask only if you delete multiple files at once. -set confirm_on_delete multiple - -# Which script is used to generate file previews? -# ranger ships with scope.sh, a script that calls external programs (see -# README.md for dependencies) to preview images, archives, etc. -set preview_script ~/.config/ranger/scope.sh - -# Use the external preview script or display simple plain text or image previews? -set use_preview_script true - -# Automatically count files in the directory, even before entering them? -set automatically_count_files true - -# Open all images in this directory when running certain image viewers -# like feh or sxiv?  You can still open selected files by marking them. -set open_all_images true - -# Be aware of version control systems and display information. -set vcs_aware true - -# State of the three backends git, hg, bzr. The possible states are -# disabled, local (only show local info), enabled (show local and remote -# information). -set vcs_backend_git enabled -set vcs_backend_hg disabled -set vcs_backend_bzr disabled - -# Use one of the supported image preview protocols -set preview_images true - -# Set the preview image method. Supported methods: -# -# * w3m (default): -#   Preview images in full color with the external command "w3mimgpreview"? -#   This requires the console web browser "w3m" and a supported terminal. -#   It has been successfully tested with "xterm" and "urxvt" without tmux. -# -# * iterm2: -#   Preview images in full color using iTerm2 image previews -#   (http://iterm2.com/images.html). This requires using iTerm2 compiled -#   with image preview support. -set preview_images_method w3m - -# Use a unicode "..." character to mark cut-off filenames? -set unicode_ellipsis true - -# Show dotfiles in the bookmark preview box? -set show_hidden_bookmarks true - -# Which colorscheme to use?  These colorschemes are available by default: -# default, jungle, snow, solarized -set colorscheme default - -# Preview files on the rightmost column? -# And collapse (shrink) the last column if there is nothing to preview? -set preview_files true -set preview_directories true -set collapse_preview false - -# Save the console history on exit? -set save_console_history true - -# Draw the status bar on top of the browser window (default: bottom) -set status_bar_on_top false - -# Draw a progress bar in the status bar which displays the average state of all -# currently running tasks which support progress bars? -set draw_progress_bar_in_status_bar true - -# Draw borders around columns? -set draw_borders false - -# Display the directory name in tabs? -set dirname_in_tabs true - -# Enable the mouse support? -set mouse_enabled true - -# Display the file size in the main column or status bar? -set display_size_in_main_column true -set display_size_in_status_bar true - -# Display files tags in all columns or only in main column? -set display_tags_in_all_columns true - -# Set a title for the window? -set update_title true - -# Set the title to "ranger" in the tmux program? -set update_tmux_title false - -# Shorten the title if it gets long?  The number defines how many -# directories are displayed at once, 0 turns off this feature. -set shorten_title 6 - -# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? -set tilde_in_titlebar true - -# How many directory-changes or console-commands should be kept in history? -set max_history_size 20 -set max_console_history_size 50 - -# Try to keep so much space between the top/bottom border when scrolling: -set scroll_offset 8 - -# Flush the input after each key hit?  (Noticable when ranger lags) -set flushinput true - -# Padding on the right when there's no preview? -# This allows you to click into the space to run the file. -set padding_right true - -# Save bookmarks (used with mX and `X) instantly? -# This helps to synchronize bookmarks between multiple ranger -# instances but leads to *slight* performance loss. -# When false, bookmarks are saved when ranger is exited. -set autosave_bookmarks true - -# You can display the "real" cumulative size of directories by using the -# command :get_cumulative_size or typing "dc".  The size is expensive to -# calculate and will not be updated automatically.  You can choose -# to update it automatically though by turning on this option: -set autoupdate_cumulative_size false - -# Turning this on makes sense for screen readers: -set show_cursor false - -# One of: size, natural, basename, atime, ctime, mtime, type, random -set sort natural - -# Additional sorting options -set sort_reverse false -set sort_case_insensitive true -set sort_directories_first true -set sort_unicode false - -# Enable this if key combinations with the Alt Key don't work for you. -# (Especially on xterm) -set xterm_alt_key false - -# Whether to include bookmarks in cd command -set cd_bookmarks true - -# Avoid previewing files larger than this size, in bytes.  Use a value of 0 to -# disable this feature. -set preview_max_size 0 - -# Add the highlighted file to the path in the titlebar -set show_selection_in_titlebar true - -# The delay that ranger idly waits for user input, in milliseconds, with a -# resolution of 100ms.  Lower delay reduces lag between directory updates but -# increases CPU load. -set idle_delay 2000 - -# When the metadata manager module looks for metadata, should it only look for -# a ".metadata.json" file in the current directory, or do a deep search and -# check all directories above the current one as well? -set metadata_deep_search false - -# =================================================================== -# == Local Options -# =================================================================== -# You can set local options that only affect a single directory. - -setlocal path=~/downloads sort mtime - -# =================================================================== -# == Command Aliases in the Console -# =================================================================== - -alias e    edit -alias q    quit -alias q!   quitall -alias qa   quitall -alias qall quitall -alias setl setlocal - -alias filter     scout -prt -alias find       scout -aeit -alias mark       scout -mr -alias unmark     scout -Mr -alias search     scout -rs -alias search_inc scout -rts -alias travel     scout -aefiklst - -# =================================================================== -# == Define keys for the browser -# =================================================================== - -# Basic -map     Q quit! -map     q quit -copymap q ZZ ZQ - -map R     reload_cwd -map <C-r> reset -map <C-l> redraw_window -map <C-c> abort -map <esc> change_mode normal - -map i display_file -map ? help -map W display_log -map w taskview_open -map S shell $SHELL - -map :  console -map ;  console -map !  console shell%space -map @  console -p6 shell  %%s -map #  console shell -p%space -map s  console shell%space -map r  chain draw_possible_programs; console open_with%space -map f  console find%space -map cd console cd%space - -# Change the line mode -map Mf linemode filename -map Mi linemode fileinfo -map Mp linemode permissions -map Mt linemode metatitle - -# Tagging / Marking -map t       tag_toggle -map ut      tag_remove -map "<any>  tag_toggle tag=%any -map <Space> mark_files toggle=True -map v       mark_files all=True toggle=True -map uv      mark_files all=True val=False -map V       toggle_visual_mode -map uV      toggle_visual_mode reverse=True - -# For the nostalgics: Midnight Commander bindings -map <F1> help -map <F3> display_file -map <F4> edit -map <F5> copy -map <F6> cut -map <F7> console mkdir%space -map <F8> console delete -map <F10> exit - -# In case you work on a keyboard with dvorak layout -map <UP>       move up=1 -map <DOWN>     move down=1 -map <LEFT>     move left=1 -map <RIGHT>    move right=1 -map <HOME>     move to=0 -map <END>      move to=-1 -map <PAGEDOWN> move down=1   pages=True -map <PAGEUP>   move up=1     pages=True -map <CR>       move right=1 -#map <DELETE>   console delete -map <INSERT>   console touch%space - -# VIM-like -copymap <UP>       k -copymap <DOWN>     j -copymap <LEFT>     h -copymap <RIGHT>    l -copymap <HOME>     gg -copymap <END>      G -copymap <PAGEDOWN> <C-F> -copymap <PAGEUP>   <C-B> - -map J  move down=0.5  pages=True -map K  move up=0.5    pages=True -copymap J <C-D> -copymap K <C-U> - -# Jumping around -map H     history_go -1 -map L     history_go 1 -map ]     move_parent 1 -map [     move_parent -1 -map }     traverse - -map gh cd ~ -map ge cd /etc -map gu cd /usr -map gd cd /dev -map gl cd -r . -map gL cd -r %f -map go cd /opt -map gv cd /var -map gm cd /media -map gM cd /mnt -map gs cd /srv -map gr cd / -map gR eval fm.cd(ranger.RANGERDIR) -map g/ cd / -map g? cd /usr/share/doc/ranger - -# External Programs -map E  edit -map du shell -p du --max-depth=1 -h --apparent-size -map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh -map yp shell -f echo -n %%d/%%f | xsel -i; xsel -o | xsel -i -b -map yd shell -f echo -n %%d     | xsel -i; xsel -o | xsel -i -b -map yn shell -f echo -n %%f     | xsel -i; xsel -o | xsel -i -b - -# Filesystem Operations -map =  chmod - -map cw console rename%space -map a  rename_append -map A  eval fm.open_console('rename ' + fm.thisfile.relative_path) -map I  eval fm.open_console('rename ' + fm.thisfile.relative_path, position=7) - -map pp paste -map po paste overwrite=True -map pP paste append=True -map pO paste overwrite=True append=True -map pl paste_symlink relative=False -map pL paste_symlink relative=True -map phl paste_hardlink -map pht paste_hardlinked_subtree - -map dD console delete - -map dd cut -map ud uncut -map da cut mode=add -map dr cut mode=remove - -map yy copy -map uy uncut -map ya copy mode=add -map yr copy mode=remove - -# Temporary workarounds -map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) -map dG  eval fm.cut(dirarg=dict(to=-1), narg=quantifier) -map dj  eval fm.cut(dirarg=dict(down=1), narg=quantifier) -map dk  eval fm.cut(dirarg=dict(up=1), narg=quantifier) -map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) -map yG  eval fm.copy(dirarg=dict(to=-1), narg=quantifier) -map yj  eval fm.copy(dirarg=dict(down=1), narg=quantifier) -map yk  eval fm.copy(dirarg=dict(up=1), narg=quantifier) - -# Searching -map /  console search%space -map n  search_next -map N  search_next forward=False -map ct search_next order=tag -map cs search_next order=size -map ci search_next order=mimetype -map cc search_next order=ctime -map cm search_next order=mtime -map ca search_next order=atime - -# Tabs -map <C-n>     tab_new ~ -map <C-w>     tab_close -map <TAB>     tab_move 1 -map <S-TAB>   tab_move -1 -map <A-Right> tab_move 1 -map <A-Left>  tab_move -1 -map gt        tab_move 1 -map gT        tab_move -1 -map gn        tab_new ~ -map gc        tab_close -map uq        tab_restore -map <a-1>     tab_open 1 -map <a-2>     tab_open 2 -map <a-3>     tab_open 3 -map <a-4>     tab_open 4 -map <a-5>     tab_open 5 -map <a-6>     tab_open 6 -map <a-7>     tab_open 7 -map <a-8>     tab_open 8 -map <a-9>     tab_open 9 - -# Sorting -map or toggle_option sort_reverse -map oz set sort=random -map os chain set sort=size;      set sort_reverse=False -map ob chain set sort=basename;  set sort_reverse=False -map on chain set sort=natural;   set sort_reverse=False -map om chain set sort=mtime;     set sort_reverse=False -map oc chain set sort=ctime;     set sort_reverse=False -map oa chain set sort=atime;     set sort_reverse=False -map ot chain set sort=type;      set sort_reverse=False -map oe chain set sort=extension; set sort_reverse=False - -map oS chain set sort=size;      set sort_reverse=True -map oB chain set sort=basename;  set sort_reverse=True -map oN chain set sort=natural;   set sort_reverse=True -map oM chain set sort=mtime;     set sort_reverse=True -map oC chain set sort=ctime;     set sort_reverse=True -map oA chain set sort=atime;     set sort_reverse=True -map oT chain set sort=type;      set sort_reverse=True -map oE chain set sort=extension; set sort_reverse=True - -map dc get_cumulative_size - -# Settings -map zc    toggle_option collapse_preview -map zd    toggle_option sort_directories_first -map zh    toggle_option show_hidden -map <C-h> toggle_option show_hidden -map zi    toggle_option flushinput -map zm    toggle_option mouse_enabled -map zp    toggle_option preview_files -map zP    toggle_option preview_directories -map zs    toggle_option sort_case_insensitive -map zu    toggle_option autoupdate_cumulative_size -map zv    toggle_option use_preview_script -map zf    console filter%space - -# Bookmarks -map `<any>  enter_bookmark %any -map '<any>  enter_bookmark %any -map m<any>  set_bookmark %any -map um<any> unset_bookmark %any - -map m<bg>   draw_bookmarks -copymap m<bg>  um<bg> `<bg> '<bg> - -# Generate all the chmod bindings with some python help: -eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map +{0}  shell -f chmod u+{0} %s".format(arg)) - -eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) -eval for arg in "rwxXst": cmd("map -{0}  shell -f chmod u-{0} %s".format(arg)) - -# =================================================================== -# == Define keys for the console -# =================================================================== -# Note: Unmapped keys are passed directly to the console. - -# Basic -cmap <tab>   eval fm.ui.console.tab() -cmap <s-tab> eval fm.ui.console.tab(-1) -cmap <ESC>   eval fm.ui.console.close() -cmap <CR>    eval fm.ui.console.execute() -cmap <C-l>   redraw_window - -copycmap <ESC> <C-c> -copycmap <CR>  <C-j> - -# Move around -cmap <up>    eval fm.ui.console.history_move(-1) -cmap <down>  eval fm.ui.console.history_move(1) -cmap <left>  eval fm.ui.console.move(left=1) -cmap <right> eval fm.ui.console.move(right=1) -cmap <home>  eval fm.ui.console.move(right=0, absolute=True) -cmap <end>   eval fm.ui.console.move(right=-1, absolute=True) - -# Line Editing -cmap <backspace>  eval fm.ui.console.delete(-1) -cmap <delete>     eval fm.ui.console.delete(0) -cmap <C-w>        eval fm.ui.console.delete_word() -cmap <A-d>        eval fm.ui.console.delete_word(backward=False) -cmap <C-k>        eval fm.ui.console.delete_rest(1) -cmap <C-u>        eval fm.ui.console.delete_rest(-1) -cmap <C-y>        eval fm.ui.console.paste() - -# And of course the emacs way -copycmap <up>        <C-p> -copycmap <down>      <C-n> -copycmap <left>      <C-b> -copycmap <right>     <C-f> -copycmap <home>      <C-a> -copycmap <end>       <C-e> -copycmap <delete>    <C-d> -copycmap <backspace> <C-h> - -# Note: There are multiple ways to express backspaces.  <backspace> (code 263) -# and <backspace2> (code 127).  To be sure, use both. -copycmap <backspace> <backspace2> - -# This special expression allows typing in numerals: -cmap <allow_quantifiers> false - -# =================================================================== -# == Pager Keybindings -# =================================================================== - -# Movement -pmap  <down>      pager_move  down=1 -pmap  <up>        pager_move  up=1 -pmap  <left>      pager_move  left=4 -pmap  <right>     pager_move  right=4 -pmap  <home>      pager_move  to=0 -pmap  <end>       pager_move  to=-1 -pmap  <pagedown>  pager_move  down=1.0  pages=True -pmap  <pageup>    pager_move  up=1.0    pages=True -pmap  <C-d>       pager_move  down=0.5  pages=True -pmap  <C-u>       pager_move  up=0.5    pages=True - -copypmap <UP>       k  <C-p> -copypmap <DOWN>     j  <C-n> <CR> -copypmap <LEFT>     h -copypmap <RIGHT>    l -copypmap <HOME>     g -copypmap <END>      G -copypmap <C-d>      d -copypmap <C-u>      u -copypmap <PAGEDOWN> n  f  <C-F>  <Space> -copypmap <PAGEUP>   p  b  <C-B> - -# Basic -pmap     <C-l> redraw_window -pmap     <ESC> pager_close -copypmap <ESC> q Q i <F3> -pmap E      edit_file - -# =================================================================== -# == Taskview Keybindings -# =================================================================== - -# Movement -tmap <up>        taskview_move up=1 -tmap <down>      taskview_move down=1 -tmap <home>      taskview_move to=0 -tmap <end>       taskview_move to=-1 -tmap <pagedown>  taskview_move down=1.0  pages=True -tmap <pageup>    taskview_move up=1.0    pages=True -tmap <C-d>       taskview_move down=0.5  pages=True -tmap <C-u>       taskview_move up=0.5    pages=True - -copytmap <UP>       k  <C-p> -copytmap <DOWN>     j  <C-n> <CR> -copytmap <HOME>     g -copytmap <END>      G -copytmap <C-u>      u -copytmap <PAGEDOWN> n  f  <C-F>  <Space> -copytmap <PAGEUP>   p  b  <C-B> - -# Changing priority and deleting tasks -tmap J          eval -q fm.ui.taskview.task_move(-1) -tmap K          eval -q fm.ui.taskview.task_move(0) -tmap dd         eval -q fm.ui.taskview.task_remove() -tmap <pagedown> eval -q fm.ui.taskview.task_move(-1) -tmap <pageup>   eval -q fm.ui.taskview.task_move(0) -tmap <delete>   eval -q fm.ui.taskview.task_remove() - -# Basic -tmap <C-l> redraw_window -tmap <ESC> taskview_close -copytmap <ESC> q Q w <C-c> diff --git a/config/ranger/rifle.conf b/config/ranger/rifle.conf deleted file mode 100644 index 3e684d8..0000000 --- a/config/ranger/rifle.conf +++ /dev/null @@ -1,123 +0,0 @@ -# vim: ft=cfg -# -# This is the configuration file of "rifle", ranger's file executor/opener. -# Each line consists of conditions and a command.  For each line the conditions -# are checked and if they are met, the respective command is run. -# -# Syntax: -#   <condition1> , <condition2> , ... = command -# -# The command can contain these environment variables: -#   $1-$9 | The n-th selected file -#   $@    | All selected files -# -# If you use the special command "ask", rifle will ask you what program to run. -# -# Prefixing a condition with "!" will negate its result. -# These conditions are currently supported: -#   match <regexp> | The regexp matches $1 -#   ext <regexp>   | The regexp matches the extension of $1 -#   mime <regexp>  | The regexp matches the mime type of $1 -#   name <regexp>  | The regexp matches the basename of $1 -#   path <regexp>  | The regexp matches the absolute path of $1 -#   has <program>  | The program is installed (i.e. located in $PATH) -#   env <variable> | The environment variable "variable" is non-empty -#   file           | $1 is a file -#   directory      | $1 is a directory -#   number <n>     | change the number of this command to n -#   terminal       | stdin, stderr and stdout are connected to a terminal -#   X              | $DISPLAY is not empty (i.e. Xorg runs) -# -# There are also pseudo-conditions which have a "side effect": -#   flag <flags>  | Change how the program is run. See below. -#   label <label> | Assign a label or name to the command so it can -#                 | be started with :open_with <label> in ranger -#                 | or `rifle -p <label>` in the standalone executable. -#   else          | Always true. -# -# Flags are single characters which slightly transform the command: -#   f | Fork the program, make it run in the background. -#     |   New command = setsid $command >& /dev/null & -#   r | Execute the command with root permissions -#     |   New command = sudo $command -#   t | Run the program in a new terminal.  If $TERMCMD is not defined, -#     | rifle will attempt to extract it from $TERM. -#     |   New command = $TERMCMD -e $command -# Note: The "New command" serves only as an illustration, the exact -# implementation may differ. -# Note: When using rifle in ranger, there is an additional flag "c" for -# only running the current file even if you have marked multiple files. - -#------------------------------------------- -# XDG -#------------------------------------------- -# If we are in X use preferably xdg-open -has xdg-open, X, flag f = xdg-open "$1" - -#------------------------------------------- -# Websites -#------------------------------------------- -ext x?html?, has w3m = w3m "$@" - -#------------------------------------------- -# Misc -#------------------------------------------- -# Define the "editor" for text files as first action -mime ^text,  label editor = $EDITOR -- "$@" -mime ^text,  label pager  = "$PAGER" -- "$@" -!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php = $EDITOR -- "$@" -!mime ^text, label pager,  ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@" - -ext 1                         = man "$1" -ext exe                       = wine "$1" -name ^[mM]akefile$            = make - -#-------------------------------------------- -# Code -#------------------------------------------- -ext py  = python -- "$1" -ext pl  = perl -- "$1" -ext rb  = ruby -- "$1" -ext js  = node -- "$1" -ext sh  = sh -- "$1" -ext php = php -- "$1" - -#-------------------------------------------- -# Audio without X -#------------------------------------------- -# TODO when we have mpd launch it in it -mime ^audio|ogg$, has mpv      = mpv -- "$@" - -#-------------------------------------------- -# Video without X: -#------------------------------------------- -mime ^video, terminal, !X, has mpv       = mpv -- "$@" - -#------------------------------------------- -# Documents -#------------------------------------------- -ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER" -ext pdf, has pdftotext = pdftotext "$@" | "$PAGER" - -#------------------------------------------- -# Image Viewing: -#------------------------------------------- -mime ^image, has fbi, = fbi -a -- "$@" - -#------------------------------------------- -# Archives -#------------------------------------------- -# This requires atool -ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz,  has als     = als -- "$@" | "$PAGER" -ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has als     = als -- "$@" | "$PAGER" -ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz,  has aunpack = aunpack -- "$@" -ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has aunpack = aunpack -- "$@" - -# Fallback: -ext tar|gz, has tar = tar vvtf "$@" | "$PAGER" -ext tar|gz, has tar = tar vvxf "$@" - -# Define the editor for non-text files + pager as last action -              !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php  = ask -label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php  = $EDITOR -- "$@" -label pager,  !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php  = "$PAGER" -- "$@" diff --git a/config/ranger/scope.sh b/config/ranger/scope.sh deleted file mode 100755 index 3611c96..0000000 --- a/config/ranger/scope.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env sh -# ranger supports enhanced previews.  If the option "use_preview_script" -# is set to True and this file exists, this script will be called and its -# output is displayed in ranger.  ANSI color codes are supported. - -# NOTES: This script is considered a configuration file.  If you upgrade -# ranger, it will be left untouched. (You must update it yourself.) -# Also, ranger disables STDIN here, so interactive scripts won't work properly - -# Meanings of exit codes: -# code | meaning    | action of ranger -# -----+------------+------------------------------------------- -# 0    | success    | success. display stdout as preview -# 1    | no preview | failure. display no preview at all -# 2    | plain text | display the plain content of the file -# 3    | fix width  | success. Don't reload when width changes -# 4    | fix height | success. Don't reload when height changes -# 5    | fix both   | success. Don't ever reload -# 6    | image      | success. display the image $cached points to as an image preview - -# Meaningful aliases for arguments: -path="$1"    # Full path of the selected file -width="$2"   # Width of the preview pane (number of fitting characters) -height="$3"  # Height of the preview pane (number of fitting characters) -cached="$4"  # Path that should be used to cache image previews - -maxln=200    # Stop after $maxln lines.  Can be used like ls | head -n $maxln - -# Find out something about the file: -mimetype=$(file --mime-type -Lb "$path") -extension=$(/bin/echo "${path##*.}" | tr "[:upper:]" "[:lower:]") - -# Functions: -# runs a command and saves its output into $output.  Useful if you need -# the return value AND want to use the output in a pipe -try() { output=$(eval '"$@"'); } - -# writes the output of the previously used "try" command -dump() { /bin/echo "$output"; } - -# a common post-processing function used after most commands -trim() { head -n "$maxln"; } - -# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success -highlight() { command highlight "$@"; test $? = 0 -o $? = 141; } - -case "$extension" in -    # Archive extensions: -    7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ -    rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) -        try als "$path" && { dump | trim; exit 0; } -        try acat "$path" && { dump | trim; exit 3; } -        try bsdtar -lf "$path" && { dump | trim; exit 0; } -        exit 1;; -    rar) -        try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;; -    # PDF documents: -    pdf) -        try pdftotext -l 10 -nopgbrk -q "$path" - && \ -            { dump | trim | fmt -s -w $width; exit 0; } || exit 1;; -    # BitTorrent Files -    torrent) -        try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;; -    # HTML Pages: -    htm|html|xhtml) -        try w3m    -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } -        try lynx   -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } -        try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } -        ;; # fall back to highlight/cat if the text browsers fail -esac - -case "$mimetype" in -    # Syntax highlight for text files: -    text/* | */xml) -        try highlight --out-format=ansi "$path" && { dump | trim; exit 5; } || exit 2;; -    # Ascii-previews of images: -    image/*) -        img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;; -    # Image preview for videos, disabled by default: -    # video/*) -    #     ffmpegthumbnailer -i "$path" -o "$cached" -s 0 && exit 6 || exit 1;; -    # Display information about media files: -    video/* | audio/*) -        exiftool "$path" && exit 5 -        # Use sed to remove spaces so the output fits into the narrow window -        try mediainfo "$path" && { dump | trim | sed 's/  \+:/: /;';  exit 5; } || exit 1;; -esac - -exit 1 | 
