literate-dotfiles/docs/ranger.html
2021-01-03 22:52:53 +01:00

1092 lines
58 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-03 dim. 22:51 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Ranger</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="./dist/style.css"/>
<script type="text/javascript" src="./dist/script.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Ranger</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org55987ce">Documentation</a></li>
<li><a href="#org986b109">Config</a>
<ul>
<li><a href="#orgd97cb82">Options</a></li>
<li><a href="#org1ba2d9f">Command Aliases in the Console</a></li>
<li><a href="#org7bcf949">Some Custom Keybindings</a></li>
<li><a href="#orgfc90829">Scripts</a>
<ul>
<li><a href="#org7681c16">Extract Script</a></li>
<li><a href="#orgd110a48">Compress Script</a></li>
<li><a href="#orgb94aa26">Backup to NAS</a></li>
<li><a href="#org95969c5">Paste with Rsync</a></li>
</ul>
</li>
<li><a href="#orgd57ea4e">Define keys for the browser</a>
<ul>
<li><a href="#org5ba4b89">Basic</a></li>
<li><a href="#org1c6f91a">Open Shell in current directory</a></li>
<li><a href="#orgdf72b75">Open With</a></li>
<li><a href="#org8e148cf">Filter</a></li>
<li><a href="#org29cf3e5">Tagging / Marking</a></li>
<li><a href="#org8818767">VIM-like</a></li>
<li><a href="#org093bc04">Jumping around</a></li>
<li><a href="#org20acc37">Go to special folders</a></li>
<li><a href="#orga3a9ba6">Get size of folders</a></li>
<li><a href="#org8fee5b5">Yank path of directory/file</a></li>
<li><a href="#orgf653bf2">Drag and Drop</a></li>
<li><a href="#orgf520032">Rename files</a></li>
<li><a href="#org402e074">Paste files</a></li>
<li><a href="#org5c2f844">Delete and move files</a></li>
<li><a href="#org8c6e09d">Copy files</a></li>
<li><a href="#org9bae784">Searching</a></li>
<li><a href="#org179497a">Tabs</a></li>
<li><a href="#org9362376">Settings</a></li>
<li><a href="#org3d82580">Bookmarks</a></li>
<li><a href="#orgc3db4a0">FZF</a></li>
</ul>
</li>
<li><a href="#org7e7a4ec">Define keys for the console</a>
<ul>
<li><a href="#org49c5be5">Basic</a></li>
<li><a href="#orga9f3972">Move around</a></li>
<li><a href="#org6265874">Line Editing</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org9007d23">Rifle</a></li>
<li><a href="#org89bf721">Ranger Commands</a>
<ul>
<li><a href="#org58a0d43">Import</a></li>
<li><a href="#orgb79cde7">fzf_select</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org55987ce" class="outline-2">
<h2 id="org55987ce">Documentation</h2>
<div class="outline-text-2" id="text-org55987ce">
<blockquote>
<p>
%f the highlighted file
%d the path of the current directory
%s the selected files in the current directory
%t all tagged files in the current directory
%c the full paths of the currently copied/cut files
%p the full paths of selected files
</p>
</blockquote>
</div>
</div>
<div id="outline-container-org986b109" class="outline-2">
<h2 id="org986b109">Config</h2>
<div class="outline-text-2" id="text-org986b109">
</div>
<div id="outline-container-orgd97cb82" class="outline-3">
<h3 id="orgd97cb82">Options</h3>
<div class="outline-text-3" id="text-orgd97cb82">
<div class="org-src-container">
<pre class="src src-conf"><span class="org-comment-delimiter"># </span><span class="org-comment">Which viewmode should be used? Possible values are:</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">miller: Use miller columns which show multiple levels of the hierarchy</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">multipane: Midnight-commander like multipane view showing all tabs next</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">to each other</span>
set viewmode miller
<span class="org-comment-delimiter"># </span><span class="org-comment">How many columns are there, and what are their relative widths?</span>
set column_ratios <span class="org-highlight-numbers-number">1</span>,<span class="org-highlight-numbers-number">1</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Which files should be hidden? (regular expression)</span>
set hidden_filter ^\.|\.(?:pyc|vrb|pyo|lof|bak|swp|aux|log|nav|out|snm|toc|bcf|run\.xml|synctex\.gz|blg|bbl)$|^lost\+found$|^__(py)?cache__$
<span class="org-comment-delimiter"># </span><span class="org-comment">Show hidden files? You can toggle this by typing 'zh'</span>
set show_hidden false
<span class="org-comment-delimiter"># </span><span class="org-comment">Ask for a confirmation when running the "delete" command?</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Valid values are "always", "never", "multiple" (default)</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">With "multiple", ranger will ask only if you delete multiple files at once.</span>
set confirm_on_delete multiple
<span class="org-comment-delimiter"># </span><span class="org-comment">Which script is used to generate file previews?</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">ranger ships with scope.sh, a script that calls external programs (see</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">README.md for dependencies) to preview images, archives, etc.</span>
set preview_script /home/thomas/.config/ranger/scope.sh
<span class="org-comment-delimiter"># </span><span class="org-comment">Use the external preview script or display simple plain text or image previews?</span>
set use_preview_script true
<span class="org-comment-delimiter"># </span><span class="org-comment">Automatically count files in the directory, even before entering them?</span>
set automatically_count_files true
<span class="org-comment-delimiter"># </span><span class="org-comment">Open all images in this directory when running certain image viewers</span>
set open_all_images true
<span class="org-comment-delimiter"># </span><span class="org-comment">Be aware of version control systems and display information.</span>
set vcs_aware false
<span class="org-comment-delimiter"># </span><span class="org-comment">Use one of the supported image preview protocols</span>
set preview_images true
<span class="org-comment-delimiter"># </span><span class="org-comment">Set the preview image method</span>
set preview_images_method ueberzug
set colorscheme default
<span class="org-comment-delimiter"># </span><span class="org-comment">Preview files on the rightmost column?</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">And collapse (shrink) the last column if there is nothing to preview?</span>
set preview_files true
set preview_directories true
set collapse_preview true
<span class="org-comment-delimiter"># </span><span class="org-comment">Draw the status bar on top of the browser window (default: bottom)</span>
set status_bar_on_top false
<span class="org-comment-delimiter"># </span><span class="org-comment">Draw a progress bar in the status bar which displays the average state of all</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">currently running tasks which support progress bars?</span>
set draw_progress_bar_in_status_bar true
<span class="org-comment-delimiter"># </span><span class="org-comment">Draw borders around columns?</span>
set draw_borders true
<span class="org-comment-delimiter"># </span><span class="org-comment">Display the directory name in tabs?</span>
set dirname_in_tabs false
<span class="org-comment-delimiter"># </span><span class="org-comment">Enable the mouse support?</span>
set mouse_enabled true
<span class="org-comment-delimiter"># </span><span class="org-comment">Display the file size in the main column or status bar?</span>
set display_size_in_main_column true
set display_size_in_status_bar false
<span class="org-comment-delimiter"># </span><span class="org-comment">Display files tags in all columns or only in main column?</span>
set display_tags_in_all_columns false
<span class="org-comment-delimiter"># </span><span class="org-comment">Set a title for the window?</span>
set update_title false
<span class="org-comment-delimiter"># </span><span class="org-comment">Set the title to "ranger" in the tmux program?</span>
set update_tmux_title true
<span class="org-comment-delimiter"># </span><span class="org-comment">Shorten the title if it gets long? The number defines how many</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">directories are displayed at once, 0 turns off this feature.</span>
set shorten_title <span class="org-highlight-numbers-number">3</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Abbreviate $HOME with ~ in the titlebar (first line) of ranger?</span>
set tilde_in_titlebar true
<span class="org-comment-delimiter"># </span><span class="org-comment">How many directory-changes or console-commands should be kept in history?</span>
set max_history_size <span class="org-highlight-numbers-number">20</span>
set max_console_history_size <span class="org-highlight-numbers-number">50</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Try to keep so much space between the top/bottom border when scrolling:</span>
set scroll_offset <span class="org-highlight-numbers-number">8</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Flush the input after each key hit? (Noticeable when ranger lags)</span>
set flushinput true
<span class="org-comment-delimiter"># </span><span class="org-comment">Padding on the right when there's no preview?</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This allows you to click into the space to run the file.</span>
set padding_right true
set autosave_bookmarks false
set autoupdate_cumulative_size false
<span class="org-comment-delimiter"># </span><span class="org-comment">Turning this on makes sense for screen readers:</span>
set show_cursor false
<span class="org-comment-delimiter"># </span><span class="org-comment">One of: size, natural, basename, atime, ctime, mtime, type, random</span>
set sort natural
<span class="org-comment-delimiter"># </span><span class="org-comment">Additional sorting options</span>
set sort_reverse false
set sort_case_insensitive true
set sort_directories_first true
set sort_unicode false
<span class="org-comment-delimiter"># </span><span class="org-comment">Enable this if key combinations with the Alt Key don't work for you.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">(Especially on xterm)</span>
set xterm_alt_key false
<span class="org-comment-delimiter"># </span><span class="org-comment">Whether to include bookmarks in cd command</span>
set cd_bookmarks false
<span class="org-comment-delimiter"># </span><span class="org-comment">Avoid previewing files larger than this size, in bytes. Use a value of 0 to</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">disable this feature.</span>
set preview_max_size <span class="org-highlight-numbers-number">5000000</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Add the highlighted file to the path in the titlebar</span>
set show_selection_in_titlebar true
<span class="org-comment-delimiter"># </span><span class="org-comment">The delay that ranger idly waits for user input, in milliseconds, with a</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">resolution of 100ms. Lower delay reduces lag between directory updates but</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">increases CPU load.</span>
set idle_delay <span class="org-highlight-numbers-number">2000</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">When the metadata manager module looks for metadata, should it only look for</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">a ".metadata.json" file in the current directory, or do a deep search and</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">check all directories above the current one as well?</span>
set metadata_deep_search false
<span class="org-comment-delimiter"># </span><span class="org-comment">Clear all existing filters when leaving a directory</span>
set clear_filters_on_dir_change false
<span class="org-comment-delimiter"># </span><span class="org-comment">Disable displaying line numbers in main column</span>
set line_numbers false
</pre>
</div>
</div>
</div>
<div id="outline-container-org1ba2d9f" class="outline-3">
<h3 id="org1ba2d9f">Command Aliases in the Console</h3>
<div class="outline-text-3" id="text-org1ba2d9f">
<div class="org-src-container">
<pre class="src src-conf">alias q quit
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
</pre>
</div>
</div>
</div>
<div id="outline-container-org7bcf949" class="outline-3">
<h3 id="org7bcf949">Some Custom Keybindings</h3>
<div class="outline-text-3" id="text-org7bcf949">
<p>
Extract
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,x shell ~/.config/ranger/scripts/extract.sh %f
</pre>
</div>
<p>
Compress
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,z shell ~/.config/ranger/scripts/compress.sh %f
</pre>
</div>
<p>
Get Bibtex from PDF
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,b shell pdf2bib %f
</pre>
</div>
<p>
Delete first page of pdf
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,d shell pdf-delete-first-page %f
</pre>
</div>
<p>
Convert images/pdf/&#x2026;
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,cp shell pdf2png %f
map ,cc shell convert-file %f
</pre>
</div>
<p>
Magit Status
</p>
<div class="org-src-container">
<pre class="src src-conf"> <span class="org-variable-name">map ,gs shell emacsclient -create-frame --alternate-editor</span>=<span class="org-string">""</span> -n --eval <span class="org-string">'(magit-status)'</span>
</pre>
</div>
<p>
Open SXIV on current directory
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,s shell nohup sxiv -t %d &amp;
</pre>
</div>
<p>
Upload with 0x0 / self hosted Tansfer.sh
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,t shell upload %f
map ,T shell share %f
</pre>
</div>
<p>
Open current folder with PCManFM
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,o shell nohup pcmanfm %d &amp;
</pre>
</div>
<p>
Open with Emacs
</p>
<div class="org-src-container">
<pre class="src src-conf"> <span class="org-variable-name">map ,e shell emacsclient -create-frame --alternate-editor</span>=<span class="org-string">""</span> -n %f
</pre>
</div>
<p>
Print on Rnice
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,p shell print-rnice %f &amp;
</pre>
</div>
<p>
Backup to NAS
</p>
<div class="org-src-container">
<pre class="src src-conf"> map ,B shell ~/.config/ranger/scripts/backup-to-nas.sh %s &amp;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgfc90829" class="outline-3">
<h3 id="orgfc90829">Scripts</h3>
<div class="outline-text-3" id="text-orgfc90829">
</div>
<div id="outline-container-org7681c16" class="outline-4">
<h4 id="org7681c16">Extract Script</h4>
<div class="outline-text-4" id="text-org7681c16">
<div class="org-src-container">
<pre class="src src-bash"> <span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-1">[</span> $<span class="org-variable-name">TMUX</span> <span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-keyword">then</span>
tmux split -v -l <span class="org-highlight-numbers-number">2</span> atool -x $<span class="org-highlight-numbers-number">1</span> &amp;&amp; tmux select-pane -U
<span class="org-keyword">else</span>
atool -x $<span class="org-highlight-numbers-number">1</span>
<span class="org-keyword">fi</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd110a48" class="outline-4">
<h4 id="orgd110a48">Compress Script</h4>
<div class="outline-text-4" id="text-orgd110a48">
<div class="org-src-container">
<pre class="src src-bash"> <span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-1">[</span> $<span class="org-variable-name">TMUX</span> <span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-keyword">then</span>
tmux split -v -l <span class="org-highlight-numbers-number">2</span> apack $<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-variable-name">1</span>%.*<span class="org-rainbow-delimiters-depth-1">}</span>.zip $<span class="org-highlight-numbers-number">1</span> &amp;&amp; tmux select-pane -U
<span class="org-keyword">else</span>
apack $<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-variable-name">1</span>%.*<span class="org-rainbow-delimiters-depth-1">}</span>.zip $<span class="org-highlight-numbers-number">1</span>
<span class="org-keyword">fi</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb94aa26" class="outline-4">
<h4 id="orgb94aa26">Backup to NAS</h4>
<div class="outline-text-4" id="text-orgb94aa26">
<ul class="org-ul">
<li>Arguments are the files to be backup to the NAS</li>
</ul>
<div class="org-src-container">
<pre class="src src-bash"> <span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-1">[</span> $<span class="org-variable-name">TMUX</span> <span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-keyword">then</span>
tmux split -v -l <span class="org-highlight-numbers-number">2</span> rsync -a --inplace --info=progress2 --rsh=<span class="org-string">'ssh -p10022'</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">@</span></span><span class="org-string">"</span> nas:/volume1/Data/Downloads/Backup/ &amp;&amp; tmux select-pane -U
<span class="org-keyword">else</span>
rsync -a --info=progress2 --inplace --rsh=<span class="org-string">'ssh -p10022'</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">@</span></span><span class="org-string">"</span> nas:/volume1/Data/Downloads/Backup/
<span class="org-keyword">fi</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org95969c5" class="outline-4">
<h4 id="org95969c5">Paste with Rsync</h4>
<div class="outline-text-4" id="text-org95969c5">
<ul class="org-ul">
<li>First argument is the directory where to copy files</li>
<li>All other arguments are files that are to be copied</li>
</ul>
<div class="org-src-container">
<pre class="src src-bash"> <span class="org-keyword">if</span> <span class="org-rainbow-delimiters-depth-1">[</span> $<span class="org-variable-name">TMUX</span> <span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-keyword">then</span>
tmux split -v -l <span class="org-highlight-numbers-number">1</span> rsync -a --info=progress2 <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">{@:2}</span></span><span class="org-string">"</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">1</span></span><span class="org-string">"</span> &amp;&amp; tmux select-pane -U
<span class="org-keyword">else</span>
rsync -a --info=progress2 <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">{@:2}</span></span><span class="org-string">"</span> <span class="org-string">"</span><span class="org-string"><span class="org-constant">$</span></span><span class="org-string"><span class="org-variable-name">1</span></span><span class="org-string">"</span>
<span class="org-keyword">fi</span>
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgd57ea4e" class="outline-3">
<h3 id="orgd57ea4e">Define keys for the browser</h3>
<div class="outline-text-3" id="text-orgd57ea4e">
</div>
<div id="outline-container-org5ba4b89" class="outline-4">
<h4 id="org5ba4b89">Basic</h4>
<div class="outline-text-4" id="text-org5ba4b89">
<div class="org-src-container">
<pre class="src src-conf"> map Q quit!
map q eval fm.execute_console(<span class="org-string">"shell tmux detach"</span>) if <span class="org-string">'TMUX'</span> in os.environ.keys() else fm.execute_console(<span class="org-string">"quit"</span>)
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map &lt;C-c&gt; abort
map &lt;esc&gt; change_mode normal
map ~ set viewmode!
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map ? help
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map : console
map ; console
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map ! console shell%space
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map @ console -p6 shell %%s
</pre>
</div>
</div>
</div>
<div id="outline-container-org1c6f91a" class="outline-4">
<h4 id="org1c6f91a">Open Shell in current directory</h4>
<div class="outline-text-4" id="text-org1c6f91a">
<div class="org-src-container">
<pre class="src src-conf"> map s shell $SHELL
map S shell nohup $TERMINAL &amp;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgdf72b75" class="outline-4">
<h4 id="orgdf72b75">Open With</h4>
<div class="outline-text-4" id="text-orgdf72b75">
<div class="org-src-container">
<pre class="src src-conf"> map O chain draw_possible_programs; console open_with%space
</pre>
</div>
</div>
</div>
<div id="outline-container-org8e148cf" class="outline-4">
<h4 id="org8e148cf">Filter</h4>
<div class="outline-text-4" id="text-org8e148cf">
<div class="org-src-container">
<pre class="src src-conf"> map f console filter%space
<span class="org-comment-delimiter"># </span><span class="org-comment">Reset filter</span>
map F filter
</pre>
</div>
</div>
</div>
<div id="outline-container-org29cf3e5" class="outline-4">
<h4 id="org29cf3e5">Tagging / Marking</h4>
<div class="outline-text-4" id="text-org29cf3e5">
<div class="org-src-container">
<pre class="src src-conf"> <span class="org-variable-name">map &lt;Space&gt; mark_files toggle</span>=True
<span class="org-variable-name">map v mark_files all</span>=True toggle=True
</pre>
</div>
</div>
</div>
<div id="outline-container-org8818767" class="outline-4">
<h4 id="org8818767">VIM-like</h4>
<div class="outline-text-4" id="text-org8818767">
<div class="org-src-container">
<pre class="src src-conf"> copymap &lt;UP&gt; k
copymap &lt;DOWN&gt; j
copymap &lt;LEFT&gt; h
copymap &lt;RIGHT&gt; l
copymap &lt;HOME&gt; gg
copymap &lt;END&gt; G
</pre>
</div>
</div>
</div>
<div id="outline-container-org093bc04" class="outline-4">
<h4 id="org093bc04">Jumping around</h4>
<div class="outline-text-4" id="text-org093bc04">
<div class="org-src-container">
<pre class="src src-conf"> map H history_go -1
map L history_go <span class="org-highlight-numbers-number">1</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map ] move_parent <span class="org-highlight-numbers-number">1</span>
map [ move_parent -1
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map } traverse
</pre>
</div>
<div class="org-src-container">
<pre class="src src-conf"> map cd console cd%space
</pre>
</div>
</div>
</div>
<div id="outline-container-org20acc37" class="outline-4">
<h4 id="org20acc37">Go to special folders</h4>
<div class="outline-text-4" id="text-org20acc37">
<div class="org-src-container">
<pre class="src src-conf"> map gh cd ~/
map gb cd ~/Cloud/brain
map gm cd ~/Cloud/thesis
map gp cd ~/Pictures
map gP cd ~/Cloud/personal
map gT cd ~/.local/share/Trash/files
map gd cd ~/Downloads
map gc cd ~/Cloud
map gV cd ~/.config/literate-dotfiles
</pre>
</div>
</div>
</div>
<div id="outline-container-orga3a9ba6" class="outline-4">
<h4 id="orga3a9ba6">Get size of folders</h4>
<div class="outline-text-4" id="text-orga3a9ba6">
<div class="org-src-container">
<pre class="src src-conf"> <span class="org-comment-delimiter"># </span><span class="org-comment">Get size of all folders</span>
<span class="org-variable-name">map du shell -p du --max-depth</span>=<span class="org-highlight-numbers-number">1</span> -h --apparent-size
<span class="org-comment-delimiter"># </span><span class="org-comment">Get size of all folders and sort them</span>
<span class="org-variable-name">map dU shell -p du --max-depth</span>=<span class="org-highlight-numbers-number">1</span> -h --apparent-size | sort -rh
</pre>
</div>
</div>
</div>
<div id="outline-container-org8fee5b5" class="outline-4">
<h4 id="org8fee5b5">Yank path of directory/file</h4>
<div class="outline-text-4" id="text-org8fee5b5">
<div class="org-src-container">
<pre class="src src-conf"> <span class="org-comment-delimiter"># </span><span class="org-comment">Yank path of current directory/file</span>
map yp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b
<span class="org-comment-delimiter"># </span><span class="org-comment">Yank path of directory</span>
map yd shell -f echo -n %d | xsel -i; xsel -o | xsel -i -b
<span class="org-comment-delimiter"># </span><span class="org-comment">Yank filename</span>
map yn shell -f echo -n %f | xsel -i; xsel -o | xsel -i -b
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf653bf2" class="outline-4">
<h4 id="orgf653bf2">Drag and Drop</h4>
<div class="outline-text-4" id="text-orgf653bf2">
<div class="org-src-container">
<pre class="src src-conf"> map D shell dragon-drag-and-drop -a -x %p
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf520032" class="outline-4">
<h4 id="orgf520032">Rename files</h4>
<div class="outline-text-4" id="text-orgf520032">
<div class="org-src-container">
<pre class="src src-conf"> map a rename_append
map C eval fm.execute_console(<span class="org-string">"bulkrename"</span>) if fm.thisdir.marked_items else fm.open_console(<span class="org-string">"rename "</span>)
map A eval fm.open_console(<span class="org-string">'rename '</span> + fm.thisfile.relative_path.replace(<span class="org-string">"%"</span>, <span class="org-string">"%%"</span>))
map I eval fm.open_console(<span class="org-string">'rename '</span> + fm.thisfile.relative_path.replace(<span class="org-string">"%"</span>, <span class="org-string">"%%"</span>), position=<span class="org-highlight-numbers-number">7</span>)
</pre>
</div>
</div>
</div>
<div id="outline-container-org402e074" class="outline-4">
<h4 id="org402e074">Paste files</h4>
<div class="outline-text-4" id="text-org402e074">
<div class="org-src-container">
<pre class="src src-conf"> map pp paste
<span class="org-variable-name">map po paste overwrite</span>=True
<span class="org-variable-name">map pP paste append</span>=True
<span class="org-variable-name">map pO paste overwrite</span>=True append=True
<span class="org-variable-name">map pl paste_symlink relative</span>=False
<span class="org-variable-name">map pL paste_symlink relative</span>=True
map phl paste_hardlink
map pht paste_hardlinked_subtree
</pre>
</div>
<p>
Paste with Rsync
</p>
<div class="org-src-container">
<pre class="src src-conf"> map pr shell ~/.config/ranger/scripts/paste-rsync.sh %d %c
</pre>
</div>
</div>
</div>
<div id="outline-container-org5c2f844" class="outline-4">
<h4 id="org5c2f844">Delete and move files</h4>
<div class="outline-text-4" id="text-org5c2f844">
<div class="org-src-container">
<pre class="src src-conf"> map dD shell -s trash-put %s
map dd cut
map du uncut
</pre>
</div>
</div>
</div>
<div id="outline-container-org8c6e09d" class="outline-4">
<h4 id="org8c6e09d">Copy files</h4>
<div class="outline-text-4" id="text-org8c6e09d">
<div class="org-src-container">
<pre class="src src-conf"> map yy copy
map yu uncut
</pre>
</div>
</div>
</div>
<div id="outline-container-org9bae784" class="outline-4">
<h4 id="org9bae784">Searching</h4>
<div class="outline-text-4" id="text-org9bae784">
<div class="org-src-container">
<pre class="src src-conf"> map / console search%space
map n search_next
<span class="org-variable-name">map N search_next forward</span>=False
</pre>
</div>
</div>
</div>
<div id="outline-container-org179497a" class="outline-4">
<h4 id="org179497a">Tabs</h4>
<div class="outline-text-4" id="text-org179497a">
<div class="org-src-container">
<pre class="src src-conf"> map &lt;C-n&gt; tab_new ~
map &lt;C-w&gt; tab_close
map &lt;TAB&gt; tab_move <span class="org-highlight-numbers-number">1</span>
map &lt;S-TAB&gt; tab_move -1
map gn tab_new ~
map gt tab_move <span class="org-highlight-numbers-number">1</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org9362376" class="outline-4">
<h4 id="org9362376">Settings</h4>
<div class="outline-text-4" id="text-org9362376">
<div class="org-src-container">
<pre class="src src-conf"> map zh set show_hidden!
map zi set preview_images!
map zv set use_preview_script!
</pre>
</div>
</div>
</div>
<div id="outline-container-org3d82580" class="outline-4">
<h4 id="org3d82580">Bookmarks</h4>
<div class="outline-text-4" id="text-org3d82580">
<div class="org-src-container">
<pre class="src src-conf"> map `&lt;any&gt; enter_bookmark %any
map <span class="org-string">'&lt;any&gt; enter_bookmark %any</span>
<span class="org-string"> map m&lt;any&gt; set_bookmark %any</span>
<span class="org-string"> map um&lt;any&gt; unset_bookmark %any</span>
<span class="org-string"> map m&lt;bg&gt; draw_bookmarks</span>
<span class="org-string"> copymap m&lt;bg&gt; um&lt;bg&gt; `&lt;bg&gt; '</span>&lt;bg&gt;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgc3db4a0" class="outline-4">
<h4 id="orgc3db4a0">FZF</h4>
<div class="outline-text-4" id="text-orgc3db4a0">
<div class="org-src-container">
<pre class="src src-conf"> map &lt;C-f&gt; fzf_select
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org7e7a4ec" class="outline-3">
<h3 id="org7e7a4ec">Define keys for the console</h3>
<div class="outline-text-3" id="text-org7e7a4ec">
</div>
<div id="outline-container-org49c5be5" class="outline-4">
<h4 id="org49c5be5">Basic</h4>
<div class="outline-text-4" id="text-org49c5be5">
<div class="org-src-container">
<pre class="src src-conf">cmap &lt;tab&gt; eval fm.ui.console.tab()
cmap &lt;s-tab&gt; eval fm.ui.console.tab(-1)
cmap &lt;ESC&gt; eval fm.ui.console.close()
cmap &lt;CR&gt; eval fm.ui.console.execute()
cmap &lt;C-l&gt; redraw_window
copycmap &lt;ESC&gt; &lt;C-c&gt;
copycmap &lt;CR&gt; &lt;C-j&gt;
</pre>
</div>
</div>
</div>
<div id="outline-container-orga9f3972" class="outline-4">
<h4 id="orga9f3972">Move around</h4>
<div class="outline-text-4" id="text-orga9f3972">
<div class="org-src-container">
<pre class="src src-conf">cmap &lt;up&gt; eval fm.ui.console.history_move(-1)
cmap &lt;down&gt; eval fm.ui.console.history_move(<span class="org-highlight-numbers-number">1</span>)
<span class="org-variable-name">cmap &lt;left&gt; eval fm.ui.console.move(left</span>=<span class="org-highlight-numbers-number">1</span>)
<span class="org-variable-name">cmap &lt;right&gt; eval fm.ui.console.move(right</span>=<span class="org-highlight-numbers-number">1</span>)
<span class="org-variable-name">cmap &lt;home&gt; eval fm.ui.console.move(right</span>=<span class="org-highlight-numbers-number">0</span>, absolute=True)
<span class="org-variable-name">cmap &lt;end&gt; eval fm.ui.console.move(right</span>=-1, absolute=True)
</pre>
</div>
</div>
</div>
<div id="outline-container-org6265874" class="outline-4">
<h4 id="org6265874">Line Editing</h4>
<div class="outline-text-4" id="text-org6265874">
<div class="org-src-container">
<pre class="src src-conf">cmap &lt;backspace&gt; eval fm.ui.console.delete(-1)
cmap &lt;delete&gt; eval fm.ui.console.delete(<span class="org-highlight-numbers-number">0</span>)
cmap &lt;C-w&gt; eval fm.ui.console.delete_word()
cmap &lt;C-y&gt; eval fm.ui.console.paste()
copycmap &lt;home&gt; &lt;C-a&gt;
copycmap &lt;end&gt; &lt;C-e&gt;
</pre>
</div>
</div>
</div>
</div>
</div>
<div id="outline-container-org9007d23" class="outline-2">
<h2 id="org9007d23">Rifle</h2>
<div class="outline-text-2" id="text-org9007d23">
<div class="org-src-container">
<pre class="src src-conf"> <span class="org-comment-delimiter"># </span><span class="org-comment">This is the configuration file of "rifle", ranger's file executor/opener.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Each line consists of conditions and a command. For each line the conditions</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">are checked and if they are met, the respective command is run.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Syntax:</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">&lt;condition1&gt; , &lt;condition2&gt; , ... = command</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">The command can contain these environment variables:</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">$1-$9 | The n-th selected file</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">$@ | All selected files</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">If you use the special command "ask", rifle will ask you what program to run.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Prefixing a condition with "!" will negate its result.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">These conditions are currently supported:</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">match &lt;regexp&gt; | The regexp matches $1</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">ext &lt;regexp&gt; | The regexp matches the extension of $1</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">mime &lt;regexp&gt; | The regexp matches the mime type of $1</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">name &lt;regexp&gt; | The regexp matches the basename of $1</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">path &lt;regexp&gt; | The regexp matches the absolute path of $1</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">has &lt;program&gt; | The program is installed (i.e. located in $PATH)</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">env &lt;variable&gt; | The environment variable "variable" is non-empty</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">file | $1 is a file</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">directory | $1 is a directory</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">number &lt;n&gt; | change the number of this command to n</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">terminal | stdin, stderr and stdout are connected to a terminal</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">X | $DISPLAY is not empty (i.e. Xorg runs)</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">There are also pseudo-conditions which have a "side effect":</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">flag &lt;flags&gt; | Change how the program is run. See below.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">label &lt;label&gt; | Assign a label or name to the command so it can</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">| be started with :open_with &lt;label&gt; in ranger</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">| or `rifle -p &lt;label&gt;` in the standalone executable.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">else | Always true.</span>
<span class="org-comment-delimiter">#</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Flags are single characters which slightly transform the command:</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">f | Fork the program, make it run in the background.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">| New command = setsid $command &gt;&amp; /dev/null &amp;</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">r | Execute the command with root permissions</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">| New command = sudo $command</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">t | Run the program in a new terminal. If $TERMCMD is not defined,</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">| rifle will attempt to extract it from $TERM.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">| New command = $TERMCMD -e $command</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Note: The "New command" serves only as an illustration, the exact</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">implementation may differ.</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Note: When using rifle in ranger, there is an additional flag "c" for</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">only running the current file even if you have marked multiple files.</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Websites</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Rarely installed browsers get higher priority; It is assumed that if you</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">install a rare browser, you probably use it. Firefox/konqueror/w3m on the</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">other hand are often only installed as fallback browsers.</span>
<span class="org-variable-name">ext x?html?, has qutebrowser, X, flag f</span> = qutebrowser -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext x?html?, has firefox, X, flag f</span> = firefox -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext x?html?, has elinks, terminal</span> = elinks <span class="org-string">"$@"</span>
<span class="org-variable-name">ext x?html?, has links2, terminal</span> = links2 <span class="org-string">"$@"</span>
<span class="org-variable-name">ext x?html?, has links, terminal</span> = links <span class="org-string">"$@"</span>
<span class="org-variable-name">ext x?html?, has lynx, terminal</span> = lynx -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext x?html?, has w3m, terminal</span> = w3m <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">Spreadsheets for scim</span>
<span class="org-variable-name">ext sc|csv|sxc|xlsx?|xlt|xlw|gnm|gnumeric,</span> = sc-im -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Misc</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">ext org</span> = emacsclient -c <span class="org-string">"$1"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Define the "editor" for text files as first action</span>
<span class="org-variable-name">mime ^text, label editor</span> = $EDITOR -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^text, label pager</span> = <span class="org-string">"$PAGER"</span> -- <span class="org-string">"$@"</span>
<span class="org-variable-name">!mime ^text, label editor, ext xml|json|csv|tex|py|pl|rb|js|sh|php</span> = $EDITOR -- <span class="org-string">"$@"</span>
<span class="org-variable-name">!mime ^text, label pager, ext xml|json|csv|tex|py|pl|rb|js|sh|php</span> = <span class="org-string">"$PAGER"</span> -- <span class="org-string">"$@"</span>
ext <span class="org-highlight-numbers-number">1</span> = man <span class="org-string">"$1"</span>
<span class="org-variable-name">ext s[wmf]c, has zsnes, X</span> = zsnes <span class="org-string">"$1"</span>
<span class="org-variable-name">ext s[wmf]c, has snes9x-gtk,X</span> = snes9x-gtk <span class="org-string">"$1"</span>
<span class="org-variable-name">ext nes, has fceux, X</span> = fceux <span class="org-string">"$1"</span>
<span class="org-variable-name">ext exe</span> = wine <span class="org-string">"$1"</span>
<span class="org-variable-name">name ^[mM]akefile$</span> = make
<span class="org-comment-delimiter">#</span><span class="org-comment">--------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Code</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">ext py</span> = python -- <span class="org-string">"$1"</span>
<span class="org-variable-name">ext pl</span> = perl -- <span class="org-string">"$1"</span>
<span class="org-variable-name">ext rb</span> = ruby -- <span class="org-string">"$1"</span>
<span class="org-variable-name">ext js</span> = node -- <span class="org-string">"$1"</span>
<span class="org-variable-name">ext sh</span> = sh -- <span class="org-string">"$1"</span>
<span class="org-variable-name">ext php</span> = php -- <span class="org-string">"$1"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">--------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Video/Audio with a GUI</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">mime ^video, has mpv, X, flag f</span> = mpv -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^video, has mpv, X, flag f</span> = mpv --fs -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^video, has mpv, X, flag f</span> = mpv --loop -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">--------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Audio without X</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">mime ^audio|ogg$, terminal, has mpv</span> = mpv --no-audio-display -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^audio|ogg$</span> = tag <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^audio|ogg$, terminal, has mpv</span> = mpv -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">--------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Video without X:</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">mime ^video, terminal, !X, has mpv</span> = mpv -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^video, terminal, !X, has mplayer2</span> = mplayer2 -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^video, terminal, !X, has mplayer</span> = mplayer -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Documents</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">ext pdf, has zathura, X, flag f</span> = zathura -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has llpp, X, flag f</span> = llpp <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has mupdf, X, flag f</span> = mupdf <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has mupdf, X, flag f</span> = mupdf -I <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has mupdf-x11,X, flag f</span> = mupdf-x11 <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has apvlv, X, flag f</span> = apvlv -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has xpdf, X, flag f</span> = xpdf -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has evince, X, flag f</span> = evince -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has atril, X, flag f</span> = atril -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has okular, X, flag f</span> = okular -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has epdfview, X, flag f</span> = epdfview -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pdf, has qpdfview, X, flag f</span> = qpdfview <span class="org-string">"$@"</span>
<span class="org-variable-name">ext epub, has zathura, X, flag f</span> = zathura -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext epub, has mupdf, X, flag f</span> = mupdf <span class="org-string">"$@"</span>
<span class="org-variable-name">ext docx?, has wps, X, flag f</span> = wps <span class="org-string">"$@"</span>
<span class="org-variable-name">ext docx?, has catdoc, terminal</span> = catdoc -- <span class="org-string">"$@"</span> | <span class="org-string">"$PAGER"</span>
<span class="org-variable-name">ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has wpp, X, flag f</span> = wpp <span class="org-string">"$@"</span>
<span class="org-variable-name">ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has gnumeric, X, flag f</span> = gnumeric -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext sxc|xlsx?|xlt|xlw|gnm|gnumeric, has kspread, X, flag f</span> = kspread -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has libreoffice, X, flag f</span> = libreoffice <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has soffice, X, flag f</span> = soffice <span class="org-string">"$@"</span>
<span class="org-variable-name">ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, flag f</span> = ooffice <span class="org-string">"$@"</span>
<span class="org-variable-name">ext djvu, has zathura,X, flag f</span> = zathura -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext djvu, has evince, X, flag f</span> = evince -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext djvu, has atril, X, flag f</span> = atril -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Image Viewing:</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-variable-name">mime ^image/svg, has inkscape, X, flag f</span> = inkscape -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image/svg, has display, X, flag f</span> = display -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image/gif, has mpv, X, flag f</span> = mpv --loop -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image/gif, has viewnior, X, flag f</span> = viewnior -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image/gif, has qutebrowser, X, flag f</span> = qutebrowser -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext xcf, X, flag f</span> = gimp -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has sxiv, X, flag f</span> = sxiv -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has feh, X, flag f</span> = feh --scale-down --auto-zoom --image-bg black -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has feh, X, flag f</span> = feh --scale-down --auto-zoom -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has mirage, X, flag f</span> = mirage -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has ristretto, X, flag f</span> = ristretto <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has eog, X, flag f</span> = eog -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has eom, X, flag f</span> = eom -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has gimp, X, flag f</span> = gimp -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has pinta, X, flag f</span> = pinta -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has mypaint, X, flag f</span> = mypaint -- <span class="org-string">"$@"</span>
<span class="org-variable-name">mime ^image, has kolourpaint, X, flag f</span> = kolourpaint -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Archives</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">This requires atool</span>
<span class="org-variable-name">ext jar</span> = java -jar <span class="org-string">"$@"</span>
<span class="org-variable-name">ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has als</span> = als -- <span class="org-string">"$@"</span> | <span class="org-string">"$PAGER"</span>
<span class="org-variable-name">ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has als</span> = als -- <span class="org-string">"$@"</span> | <span class="org-string">"$PAGER"</span>
<span class="org-variable-name">ext 7z|ace|ar|arc|bz2?|cab|cpio|cpt|deb|dgc|dmg|gz, has aunpack</span> = aunpack -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext iso|jar|msi|pkg|rar|shar|tar|tgz|xar|xpi|xz|zip, has aunpack</span> = aunpack -- <span class="org-string">"$@"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Fallback:</span>
<span class="org-variable-name">ext tar|gz, has tar</span> = tar vvtf <span class="org-string">"$@"</span> | <span class="org-string">"$PAGER"</span>
<span class="org-variable-name">ext tar|gz, has tar</span> = tar vvxf <span class="org-string">"$@"</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Misc</span>
<span class="org-comment-delimiter">#</span><span class="org-comment">-------------------------------------------</span>
label wallpaper, number <span class="org-highlight-numbers-number">11</span>, mime ^image, has feh, X = feh --bg-scale <span class="org-string">"$1"</span>
label wallpaper, number <span class="org-highlight-numbers-number">12</span>, mime ^image, has feh, X = feh --bg-tile <span class="org-string">"$1"</span>
label wallpaper, number <span class="org-highlight-numbers-number">13</span>, mime ^image, has feh, X = feh --bg-center <span class="org-string">"$1"</span>
label wallpaper, number <span class="org-highlight-numbers-number">14</span>, mime ^image, has feh, X = feh --bg-fill <span class="org-string">"$1"</span>
<span class="org-comment-delimiter"># </span><span class="org-comment">Define the editor for non-text files + pager as last action</span>
<span class="org-variable-name">!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php</span> = ask
<span class="org-variable-name">label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php</span> = $EDITOR -- <span class="org-string">"$@"</span>
<span class="org-variable-name">label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php</span> = <span class="org-string">"$PAGER"</span> -- <span class="org-string">"$@"</span>
<span class="org-variable-name">ext blend, has blender, X, flag f</span> = blender -- <span class="org-string">"$@"</span>
<span class="org-variable-name">has dragon-drag-and-drop, X, flag f</span> = dragon-drag-and-drop -a -x <span class="org-string">"$@"</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org89bf721" class="outline-2">
<h2 id="org89bf721">Ranger Commands</h2>
<div class="outline-text-2" id="text-org89bf721">
</div>
<div id="outline-container-org58a0d43" class="outline-3">
<h3 id="org58a0d43">Import</h3>
<div class="outline-text-3" id="text-org58a0d43">
<div class="org-src-container">
<pre class="src src-python"> <span class="org-keyword">from</span> ranger.api.commands <span class="org-keyword">import</span> *
<span class="org-keyword">import</span> os
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb79cde7" class="outline-3">
<h3 id="orgb79cde7">fzf_select</h3>
<div class="outline-text-3" id="text-orgb79cde7">
<div class="org-src-container">
<pre class="src src-python"> <span class="org-keyword">class</span> <span class="org-type">fzf_select</span>(Command):
<span class="org-doc">"""</span>
<span class="org-doc"> :fzf_select</span>
<span class="org-doc"> Find a file using fzf.</span>
<span class="org-doc"> With a prefix argument select only directories.</span>
<span class="org-doc"> See: https://github.com/junegunn/fzf</span>
<span class="org-doc"> """</span>
<span class="org-keyword">def</span> <span class="org-function-name">execute</span>(<span class="org-keyword">self</span>):
<span class="org-keyword">import</span> subprocess
<span class="org-keyword">import</span> os.path
<span class="org-keyword">if</span> <span class="org-keyword">self</span>.quantifier:
<span class="org-comment-delimiter"># </span><span class="org-comment">match only directories</span>
<span class="org-variable-name">command</span>=<span class="org-string">"find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \</span>
<span class="org-string"> -o -type d -print 2&gt; /dev/null | sed 1d | cut -b3- | fzf +m"</span>
<span class="org-keyword">else</span>:
<span class="org-comment-delimiter"># </span><span class="org-comment">match files and directories</span>
<span class="org-variable-name">command</span>=<span class="org-string">"find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \</span>
<span class="org-string"> -o -print 2&gt; /dev/null | sed 1d | cut -b3- | fzf +m"</span>
<span class="org-variable-name">fzf</span> = <span class="org-keyword">self</span>.fm.execute_command(command, universal_newlines=<span class="org-constant">True</span>, stdout=subprocess.PIPE)
<span class="org-variable-name">stdout</span>, <span class="org-variable-name">stderr</span> = fzf.communicate()
<span class="org-keyword">if</span> fzf.returncode == <span class="org-highlight-numbers-number">0</span>:
<span class="org-variable-name">fzf_file</span> = os.path.abspath(stdout.rstrip(<span class="org-string">'\n'</span>))
<span class="org-keyword">if</span> os.path.isdir(fzf_file):
<span class="org-keyword">self</span>.fm.cd(fzf_file)
<span class="org-keyword">else</span>:
<span class="org-keyword">self</span>.fm.select_file(fzf_file)
</pre>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-03 dim. 22:51</p>
</div>
</body>
</html>