diff --git a/home/dot_config/ranger/command.py b/home/dot_config/ranger/command.py new file mode 100644 index 0000000..2457b0c --- /dev/null +++ b/home/dot_config/ranger/command.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : command.py +# Author : Jeff LANCE +# Date : 12.05.2021 +# Last Modified Date: 12.05.2021 +# Last Modified By : Jeff LANCE + +import os +from ranger.core.loader import CommandLoader +from ranger_udisk_menu.mounter import mount + + +class extract_here(Command): + def execute(self): + """extract selected files to current directory.""" + cwd = self.fm.thisdir + marked_files = tuple(cwd.get_selection()) + + def refresh(_): + cwd = self.fm.get_directory(original_path) + cwd.load_content() + + one_file = marked_files[0] + cwd = self.fm.thisdir + original_path = cwd.path + au_flags = ["-x", cwd.path] + au_flags += self.line.split()[1:] + au_flags += ["-e"] + + self.fm.copy_buffer.clear() + self.fm.cut_buffer = False + if len(marked_files) == 1: + descr = "extracting: " + os.path.basename(one_file.path) + else: + descr = "extracting files from: " + os.path.basename(one_file.dirname) + obj = CommandLoader( + args=["aunpack"] + au_flags + [f.path for f in marked_files], + descr=descr, + read=True, + ) + + obj.signal_bind("after", refresh) + self.fm.loader.add(obj) + + +class compress(Command): + def execute(self): + """Compress marked files to current directory""" + cwd = self.fm.thisdir + marked_files = cwd.get_selection() + + if not marked_files: + return + + def refresh(_): + cwd = self.fm.get_directory(original_path) + cwd.load_content() + + original_path = cwd.path + parts = self.line.split() + au_flags = parts[1:] + + descr = "compressing files in: " + os.path.basename(parts[1]) + obj = CommandLoader( + args=["apack"] + + au_flags + + [os.path.relpath(f.path, cwd.path) for f in marked_files], + descr=descr, + read=True, + ) + + obj.signal_bind("after", refresh) + self.fm.loader.add(obj) + + def tab(self, tabnum): + """Complete with current folder name""" + + extension = [".zip", ".tar.gz", ".rar", ".7z"] + return [ + "compress " + os.path.basename(self.fm.thisdir.path) + ext + for ext in extension + ] + + +class mkcd(Command): + """ + :mkcd + + Creates a directory with the name and enters it. + """ + + def execute(self): + from os.path import join, expanduser, lexists + from os import makedirs + import re + + dirname = join(self.fm.thisdir.path, expanduser(self.rest(1))) + if not lexists(dirname): + makedirs(dirname) + + match = re.search("^/|^~[^/]*/", dirname) + if match: + self.fm.cd(match.group(0)) + dirname = dirname[match.end(0) :] + + for m in re.finditer("[^/]+", dirname): + s = m.group(0) + if s == ".." or ( + s.startswith(".") and not self.fm.settings["show_hidden"] + ): + self.fm.cd(s) + else: + ## We force ranger to load content before calling `scout`. + self.fm.thisdir.load_content(schedule=False) + self.fm.execute_console("scout -ae ^{}$".format(s)) + else: + self.fm.notify("file/directory exists!", bad=True) diff --git a/home/dot_config/ranger/executable_scope.sh b/home/dot_config/ranger/executable_scope.sh new file mode 100644 index 0000000..da7168e --- /dev/null +++ b/home/dot_config/ranger/executable_scope.sh @@ -0,0 +1,121 @@ +#!/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 +# 7 | image | success. display the file directly as an image + +# 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 +preview_images="$5" # "True" if image previews are enabled, "False" otherwise. + +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##*.}" | awk '{print tolower($0)}') + +# 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 +safepipe() { "$@"; test $? = 0 -o $? = 141; } + +# Image previews, if enabled in ranger. +if [ "$preview_images" = "True" ]; then + case "$mimetype" in + # Image previews for SVG files, disabled by default. + ###image/svg+xml) + ### convert "$path" "$cached" && exit 6 || exit 1;; + # Image previews for image files. w3mimgdisplay will be called for all + # image files (unless overriden as above), but might fail for + # unsupported types. + image/*) + exit 7;; + # Image preview for video, disabled by default.: + video/*) + ffmpegthumbnailer -i "$path" -o "$cached" -s 0 && exit 6 || exit 1;; + esac +fi + +case "$extension" in + # Archive extensions: + 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) + # avoid password prompt by providing empty password + try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;; + 7z) + # avoid password prompt by providing empty password + try 7z -p l "$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;; + # ODT Files + odt|ods|odp|sxw) + try odt2txt "$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) + if [ "$(tput colors)" -ge 256 ]; then + pygmentize_format=terminal256 + highlight_format=xterm256 + else + pygmentize_format=terminal + highlight_format=ansi + fi + try safepipe highlight --out-format=${highlight_format} "$path" && { dump | trim; exit 5; } + try safepipe pygmentize -f ${pygmentize_format} "$path" && { dump | trim; exit 5; } + exit 2;; + # Ascii-previews of images: + image/*) + img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || 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 diff --git a/home/dot_config/ranger/rc.conf b/home/dot_config/ranger/rc.conf new file mode 100644 index 0000000..926565e --- /dev/null +++ b/home/dot_config/ranger/rc.conf @@ -0,0 +1,595 @@ +# =================================================================== +# 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 +# =================================================================== + +# a plugin that adds file glyphs / icon support to Ranger: +# https://github.com/alexanderjeurissen/ranger_devicons +default_linemode devicons + +# Which viewmode should be used? Possible values are: +# miller: Use miller columns which show multiple levels of the hierarchy +# multipane: Midnight-commander like multipane view showing all tabs next +# to each other +set viewmode miller +#set viewmode multipane + +# 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 false + +# 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. +# +# * urxvt: +# Preview images in full color using urxvt image backgrounds. This +# requires using urxvt compiled with pixbuf support. +# +# * urxvt-full: +# The same as urxvt but utilizing not only the preview pane but the +# whole terminal window. +set preview_images_method w3m +# set preview_images_method urxvt + +# Use a unicode "..." character to mark cut-off filenames? +set unicode_ellipsis false + +# 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 +set colorscheme euphrasia + + +# 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 true + +# 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 true + +# 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 false + +# 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 3 + +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +set tilde_in_titlebar false + +# 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? (Noticeable 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 + +# Clear all existing filters when leaving a directory +set clear_filters_on_dir_change false + +# Disable displaying line numbers in main column +set line_numbers false + +# =================================================================== +# == Local Options +# =================================================================== +# You can set local options that only affect a single directory. + +# Examples: +# 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 +# =================================================================== + +# Unmap anything +# +unmap +unmap +unmap +unmap +unmap .. +unmap A a c d G m n o p S s y z +unmap gi gl gr ge gh gn go gR gs gT gt gu +unmap ud um uq ut uV uv uy + +# Return to normal mode +# +map change_mode normal + +# commands +# +map help +map eval fm.execute_console("bulkrename") if fm.thisdir.marked_items else fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) +map console scout -ftsea%space +map shell $SHELL -c "cd %d; $SHELL" +map reload_cwd + +# Moves +# +map move up=1 +map move down=1 +map move left=1 +map move right=1 +map move to=0 +map move to=-1 +map move down=1 pages=True +map move up=1 pages=True +map move right=1 +map shell trash-put %s +map console touch%space + +map history_go -1 +map history_go 1 +map move_parent 1 +map move_parent -1 + +# Goto moves +# +# to anywhere +map cd console cd%space +# to home dirs +map g~ cd ~/ +map g. cd ~/dotfiles/ +map gc cd ~/Cours/ +map gd cd ~/Documents/ +map gm cd ~/Musique/ +map gp cd ~/Projets/ +map gt cd ~/tmp/ +map gu eval fm.cd('/run/media/' + os.getenv('USER')) +map gv cd ~/Vidéos/ +# to global dirs +map g/ cd / +map gD cd /dev +map gE cd /etc +map gL cd -r %f +map gM cd /mnt +map gO cd /opt +map gS cd /srv +map gT cd /tmp +map gU cd /usr +map gV cd /var + +# Control moves +# +map copy +map set show_hidden! +map redraw_window +map abort +map reset +map paste append=True +map cut + +# Tabs +# +map tab_new ~ +map tab_close +map tab_move 1 +map tab_move -1 + +# Specs commands +# +map i display_file +map q quit +map r chain draw_possible_programs; console -p10 open_with f +map : console +map ! console shell%space +map ~ set viewmode! +map = console chmod%space +map ? help +map . shell ${HOME}/.config/ranger/scripts/dotify.sh %s + +map Q quit! +map W display_log +map w taskview_open + +# Change the line mode +# +map mf linemode filename +map mi linemode fileinfo +map mm linemode mtime +map mp linemode permissions +map ms linemode sizemtime +map mt linemode metatitle + +# New objects +# +map nf console touch%space +map nd console mkdir%space +map nl console shell ln -s%space + +# Tagging / Marking +# +map t tag_toggle +map T tag_toggle tag=%any +map mark_files toggle=True +map mark_files all=True toggle=True +map V toggle_visual_mode + +# Bookmarks +# +map gb enter_bookmark %any +map B set_bookmark %any +map Bu unset_bookmark %any +map b draw_bookmarks + +# External Programs +# +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 y. yank name_without_extension + +# Filesystem Operations +# +map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) +map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) + +# 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 + +#map tab_move 1 +#map 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 tab_open 1 +#map tab_open 2 +#map tab_open 3 +#map tab_open 4 +#map tab_open 5 +#map tab_open 6 +#map tab_open 7 +#map tab_open 8 +#map tab_open 9 + +# Sorting +# +map sr set sort_reverse! +map sz set sort=random +map ss chain set sort=size; set sort_reverse=False +map sb chain set sort=basename; set sort_reverse=False +map sn chain set sort=natural; set sort_reverse=False +map sm chain set sort=mtime; set sort_reverse=False +map sc chain set sort=ctime; set sort_reverse=False +map sa chain set sort=atime; set sort_reverse=False +map st chain set sort=type; set sort_reverse=False +map se chain set sort=extension; set sort_reverse=False + +map sS chain set sort=size; set sort_reverse=True +map sB chain set sort=basename; set sort_reverse=True +map sN chain set sort=natural; set sort_reverse=True +map sM chain set sort=mtime; set sort_reverse=True +map sC chain set sort=ctime; set sort_reverse=True +map sA chain set sort=atime; set sort_reverse=True +map sT chain set sort=type; set sort_reverse=True +map sE chain set sort=extension; set sort_reverse=True + +map dc get_cumulative_size + +# Settings +# +map Sc set collapse_preview! +map Sd set sort_directories_first! +map Sh set show_hidden! +map SI set flushinput! +map Si set preview_images! +map Sm set mouse_enabled! +map Sp set preview_files! +map SP set preview_directories! +map Ss set sort_case_insensitive! +map Su set autoupdate_cumulative_size! +map Sv set use_preview_script! +map Sf console filter%space + +# 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 eval fm.ui.console.tab(1) +cmap eval fm.ui.console.tab(-1) +cmap eval fm.ui.console.close() +cmap eval fm.ui.console.execute() +cmap redraw_window + +copycmap +#copycmap + +# Move around +#cmap eval fm.ui.console.history_move(-1) +#cmap eval fm.ui.console.history_move(1) +#cmap eval fm.ui.console.move(left=1) +#cmap eval fm.ui.console.move(right=1) +#cmap eval fm.ui.console.move(right=0, absolute=True) +#cmap eval fm.ui.console.move(right=-1, absolute=True) +#cmap eval fm.ui.console.move_word(left=1) +#cmap eval fm.ui.console.move_word(right=1) + +# Line Editing +cmap eval fm.ui.console.delete(-1) +cmap eval fm.ui.console.delete(0) +cmap eval fm.ui.console.delete_word() +#cmap eval fm.ui.console.delete_word(backward=False) +#cmap eval fm.ui.console.delete_rest(1) +#cmap eval fm.ui.console.delete_rest(-1) +cmap eval fm.ui.console.paste() + +# And of course the emacs way +#copycmap +#copycmap +#copycmap +#copycmap +#copycmap +#copycmap +#copycmap +#copycmap + +# Note: There are multiple ways to express backspaces. (code 263) +# and (code 127). To be sure, use both. +copycmap + +# This special expression allows typing in numerals: +cmap false + +# =================================================================== +# == Pager Keybindings +# =================================================================== + +# Movement +pmap pager_move down=1 +pmap pager_move up=1 +pmap pager_move left=4 +pmap pager_move right=4 +pmap pager_move to=0 +pmap pager_move to=-1 +pmap pager_move down=1.0 pages=True +pmap pager_move up=1.0 pages=True +#pmap pager_move down=0.5 pages=True +#pmap pager_move up=0.5 pages=True + +#copypmap k +#copypmap j +#copypmap h +#copypmap l +#copypmap g +#copypmap G +#copypmap d +#copypmap u +#copypmap n f +#copypmap p b + +# Basic +pmap redraw_window +pmap pager_close +copypmap q Q i +pmap E edit_file + +# =================================================================== +# == Taskview Keybindings +# =================================================================== + +# Movement +tmap taskview_move up=1 +tmap taskview_move down=1 +tmap taskview_move to=0 +tmap taskview_move to=-1 +tmap taskview_move down=1.0 pages=True +tmap taskview_move up=1.0 pages=True +#tmap taskview_move down=0.5 pages=True +#tmap taskview_move up=0.5 pages=True + +#copytmap k +#copytmap j +#copytmap g +#copytmap G +#copytmap u +#copytmap n f +#copytmap p 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 eval -q fm.ui.taskview.task_move(-1) +tmap eval -q fm.ui.taskview.task_move(0) +tmap eval -q fm.ui.taskview.task_remove() + +# Basic +tmap redraw_window +tmap taskview_close +copytmap q Q w + + +/* vim: set filetype=vim : */ diff --git a/home/dot_config/ranger/rifle.conf b/home/dot_config/ranger/rifle.conf new file mode 100644 index 0000000..21d0788 --- /dev/null +++ b/home/dot_config/ranger/rifle.conf @@ -0,0 +1,266 @@ +# vim: ft=sh +# +# 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: +# , , ... = 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 | The regexp matches $1 +# ext | The regexp matches the extension of $1 +# mime | The regexp matches the mime type of $1 +# name | The regexp matches the basename of $1 +# path | The regexp matches the absolute path of $1 +# has | The program is installed (i.e. located in $PATH) +# env | The environment variable "variable" is non-empty +# file | $1 is a file +# directory | $1 is a directory +# number | 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 | Change how the program is run. See below. +# label