diff options
-rw-r--r-- | README.md | 186 | ||||
-rw-r--r-- | ranger/config/rc.conf | 7 | ||||
-rw-r--r-- | ranger/core/actions.py | 4 | ||||
-rw-r--r-- | ranger/gui/widgets/browsercolumn.py | 15 |
4 files changed, 55 insertions, 157 deletions
@@ -1,5 +1,5 @@ -ranger 1.9.3 -============ +ranger 2.0.4-1 +============== <img src="https://ranger.github.io/ranger_logo.png" width="150"> @@ -8,163 +8,41 @@ ranger 1.9.3 <img src="https://repology.org/badge/latest-versions/ranger.svg" alt="latest packaged version(s)"> </a> -ranger is a console file manager with VI key bindings. It provides a -minimalistic and nice curses interface with a view on the directory hierarchy. -It ships with `rifle`, a file launcher that is good at automatically finding -out which program to use for what file type. +ranger ~~is~~ *was* :sob: a console file manager with VI key bindings. ~~It +provides a minimalistic and nice curses interface with a view on the directory +hierarchy. It ships with `rifle`, a file launcher that is good at +automatically finding out which program to use for what file type.~~ -![screenshot](https://raw.githubusercontent.com/ranger/ranger-assets/master/screenshots/screenshot.png) +*Going Forward* +=============== -For `mc` aficionados there's also the multi-pane viewmode. +As of today we have decided to stop :no_entry_sign: mucking about with the +boring :neutral_face: and lame :weary: subject matter that is file management. +We had a good run :running:. We are going to focus :mag: on the future :rocket: +now. And the future *is* -<p> -<img src="https://raw.githubusercontent.com/ranger/ranger-assets/master/screenshots/twopane.png" alt="two panes" width="49%" /> -<img src="https://raw.githubusercontent.com/ranger/ranger-assets/master/screenshots/multipane.png" alt="multiple panes" width="49%" /> -</p> +:heavy_exclamation_mark: IRangerC :heavy_exclamation_mark: +========================================================== -This file describes ranger and how to get it to run. For instructions on the -usage, please read the man page (`man ranger` in a terminal). See `HACKING.md` -for development-specific information. +Yeah, that's right :arrow_right:, we have decided to make a hard turn +:leftwards_arrow_with_hook: and focus :mag: all our efforts :muscle: on what we +believe is *the* communication protocol of the future :rocket:. +:heavy_exclamation_mark:IRC:heavy_exclamation_mark: is not only proven +technology but it also predates the internet. It's like a cockroach :beetle: +that just won't go. In an attempt to live by the wise words "If you can't beat +'em, join 'em," we will turn ranger into the best IRC client ever. A side +benefit in doing this is that people will no longer have an excuse not to come +hang around in #ranger : ) -For configuration, check the files in `ranger/config/` or copy the -default config to `~/.config/ranger` with `ranger --copy-config` -(see [instructions](#getting-started)). +[![asciicast](https://asciinema.org/a/epVQ6VIM7JHkBwrLy6pIztzvz.svg)](https://asciinema.org/a/epVQ6VIM7JHkBwrLy6pIztzvz) -The `examples/` directory contains several scripts and plugins that demonstrate how -ranger can be extended or combined with other programs. These files can be -found in the git repository or in `/usr/share/doc/ranger`. -A note to packagers: Versions meant for packaging are listed in the changelog -on the website. +:warning: REDIRECT :warning: +============================ - -About ------ -* Authors: see `AUTHORS` file -* License: GNU General Public License Version 3 -* Website: https://ranger.github.io/ -* Download: https://ranger.github.io/ranger-stable.tar.gz -* Bug reports: https://github.com/ranger/ranger/issues -* git clone https://github.com/ranger/ranger.git - - -Design Goals ------------- -* An easily maintainable file manager in a high level language -* A quick way to switch directories and browse the file system -* Keep it small but useful, do one thing and do it well -* Console-based, with smooth integration into the unix shell - - -Features --------- -* UTF-8 Support (if your Python copy supports it) -* Multi-column display -* Preview of the selected file/directory -* Common file operations (create/chmod/copy/delete/...) -* Renaming multiple files at once -* VIM-like console and hotkeys -* Automatically determine file types and run them with correct programs -* Change the directory of your shell after exiting ranger -* Tabs, bookmarks, mouse support... - - -Dependencies ------------- -* Python (`>=2.6` or `>=3.1`) with the `curses` module - and (optionally) wide-unicode support -* A pager (`less` by default) - -### Optional dependencies - -For general usage: - -* `file` for determining file types -* `chardet` (Python package) for improved encoding detection of text files -* `sudo` to use the "run as root" feature -* `python-bidi` (Python package) to display right-to-left file names correctly - (Hebrew, Arabic) - -For enhanced file previews (with `scope.sh`): - -* `img2txt` (from `caca-utils`) for ASCII-art image previews -* `w3mimgdisplay`, `ueberzug`, `mpv`, `iTerm2`, `kitty`, `terminology` or `urxvt` for image previews -* `convert` (from `imagemagick`) to auto-rotate images and for SVG previews -* `ffmpegthumbnailer` for video thumbnails -* `highlight`, `bat` or `pygmentize` for syntax highlighting of code -* `atool`, `bsdtar`, `unrar` and/or `7z` to preview archives -* `bsdtar`, `tar`, `unrar`, `unzip` and/or `zipinfo` (and `sed`) to preview - archives as their first image -* `lynx`, `w3m` or `elinks` to preview html pages -* `pdftotext` or `mutool` (and `fmt`) for textual `pdf` previews, `pdftoppm` to - preview as image -* `djvutxt` for textual DjVu previews, `ddjvu` to preview as image -* `calibre` or `epub-thumbnailer` for image previews of ebooks -* `transmission-show` for viewing BitTorrent information -* `mediainfo` or `exiftool` for viewing information about media files -* `odt2txt` for OpenDocument text files (`odt`, `ods`, `odp` and `sxw`) -* `python` or `jq` for JSON files -* `fontimage` for font previews -* `openscad` for 3D model previews (`stl`, `off`, `dxf`, `scad`, `csg`) - -Installing ----------- -Use the package manager of your operating system to install ranger. -You can also install ranger through PyPI: ```pip install ranger-fm```. - -<details> - <summary> - Check current version: - <sub> - <a href="https://repology.org/metapackage/ranger/versions"> - <img src="https://repology.org/badge/tiny-repos/ranger.svg" alt="Packaging status"> - </a> - </sub> - </summary> - <a href="https://repology.org/metapackage/ranger/versions"> - <img src="https://repology.org/badge/vertical-allrepos/ranger.svg" alt="Packaging status"> - </a> -</details> - -### Installing from a clone -Note that you don't *have* to install ranger; you can simply run `ranger.py`. - -To install ranger manually: -``` -sudo make install -``` - -This translates roughly to: -``` -sudo python setup.py install --optimize=1 --record=install_log.txt -``` - -This also saves a list of all installed files to `install_log.txt`, which you can -use to uninstall ranger. - - -Getting Started ---------------- -After starting ranger, you can use the Arrow Keys or `h` `j` `k` `l` to -navigate, `Enter` to open a file or `q` to quit. The third column shows a -preview of the current file. The second is the main column and the first shows -the parent directory. - -Ranger can automatically copy default configuration files to `~/.config/ranger` -if you run it with the switch `--copy-config=( rc | scope | ... | all )`. -See `ranger --help` for a description of that switch. Also check -`ranger/config/` for the default configuration. - - -Going Further ---------------- -* To get the most out of ranger, read the [Official User Guide](https://github.com/ranger/ranger/wiki/Official-user-guide). -* For frequently asked questions, see the [FAQ](https://github.com/ranger/ranger/wiki/FAQ%3A-Frequently-Asked-Questions). -* For more information on customization, see the [wiki](https://github.com/ranger/ranger/wiki). - - -Community ---------------- -For help, support, or if you just want to hang out with us, you can find us here: -* **IRC**: channel **#ranger** on [freenode](https://freenode.net/kb/answer/chat) -* **Reddit**: [r/ranger](https://www.reddit.com/r/ranger/) +We don't want to abandon our valued users in their time of need so as of today +we heartily recommend the EMACS-based +[ranger.el](https://github.com/ralesi/ranger.el). We understand this might be +hard to accept for our vim-partial userbase but guys, come on, stop living +under a rock and accept that EMACS is the superior editor. Also, their +figurehead is [a freaking ninja!](https://xkcd.com/225/) diff --git a/ranger/config/rc.conf b/ranger/config/rc.conf index 9d08a6a7..828e2c8a 100644 --- a/ranger/config/rc.conf +++ b/ranger/config/rc.conf @@ -148,7 +148,7 @@ set preview_directories true set collapse_preview true # Wrap long lines in plain text previews? -set wrap_plaintext_previews false +set wrap_plaintext_previews true # Save the console history on exit? set save_console_history true @@ -371,7 +371,8 @@ map ; console map ! console shell%space map @ console -p6 shell %%s map # console shell -p%space -map s console shell%space +map s console -p12 shell echo '' >%%s/in +map a console -p25 shell echo -e '\01ACTION \01' >%%s/in map r chain draw_possible_programs; console open_with%space map f console find%space map cd console cd%space @@ -478,7 +479,7 @@ map y. yank name_without_extension map = chmod map cw console rename%space -map a rename_append +#map a rename_append 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) diff --git a/ranger/core/actions.py b/ranger/core/actions.py index c3d7de86..6deb7c50 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -1070,6 +1070,9 @@ class Actions( # pylint: disable=too-many-instance-attributes,too-many-public-m except (IOError, OSError): return None + if fobj.basename == "out": + return codecs.open(path, 'r', errors='ignore') + # self.previews is a 2 dimensional dict: # self.previews['/tmp/foo.jpg'][(80, 24)] = "the content..." # self.previews['/tmp/foo.jpg']['loading'] = False @@ -1098,6 +1101,7 @@ class Actions( # pylint: disable=too-many-instance-attributes,too-many-public-m if found is not False: return found + try: stat_ = os.stat(self.settings.preview_script) except OSError: diff --git a/ranger/gui/widgets/browsercolumn.py b/ranger/gui/widgets/browsercolumn.py index 1412ef6a..7f81e2ad 100644 --- a/ranger/gui/widgets/browsercolumn.py +++ b/ranger/gui/widgets/browsercolumn.py @@ -257,6 +257,21 @@ class BrowserColumn(Pager): # pylint: disable=too-many-instance-attributes self.color_reset() return + if self.level > 0: + fns = self.target.filenames + import os + if "out" in (os.path.basename(fn) for fn in fns): + path = None + for f in self.target.files_all: + if f.basename == "out": + path = f.get_preview_source(self.wid, self.hei) + if path is None: + Pager.close(self) + else: + self.set_source(path) + Pager.draw(self) + return + if self.main_column: base_color.append('main_column') |