Reddit Terminal Viewer

RTV provides a terminal interface to view and interact with reddit.
It's compatible with most terminal emulators on Linux and macOS.

title image

RTV is built in python using the curses library.

---

pypi python travis-ci coveralls gitter

--- * [Demo](#demo) * [Installation](#installation) * [Usage](#usage) * [Settings](#settings) * [Themes](#themes) * [FAQ](#faq) * [Contributing](#contributing) * [License](#license) ## Demo

title image

## Installation ### PyPI package RTV is available on [PyPI](https://pypi.python.org/pypi/rtv/) and can be installed with pip: ```bash $ pip install rtv ``` ### Native packages See [Repology](https://repology.org/metapackage/rtv/packages) for an up-to-date list of supported packages: ```bash # macOS $ brew install rtv # Arch $ pacaur -S rtv # Nix $ nix-env -i rtv # FreeBSD $ pkg install rtv ``` ## Usage To run the program, type: ```bash $ rtv --help ``` ### Controls Move the cursor using either the arrow keys or *Vim* style movement: - Press and to scroll through submissions - Press to view the selected submission and to return - Press space-bar to expand/collapse comments - Press u to login - Press ? to open the help screen Press / to open the navigation prompt, where you can type things like: - ``/front`` - ``/r/commandprompt+linuxmasterrace`` - ``/r/programming/controversial`` - ``/u/me`` - ``/u/multi-mod/m/art`` - ``/domain/github.com`` See [CONTROLS](CONTROLS.rst) for the full list of commands. ## Settings ### Configuration File Configuration files are stored in the ``{HOME}/.config/rtv/`` directory. Check out [rtv.cfg](rtv/templates/rtv.cfg) for the full list of configurable options. You can clone this file into your home directory by running: ```bash $ rtv --copy-config ``` ### Viewing Media Links You can use [mailcap](https://en.wikipedia.org/wiki/Media_type#Mailcap) to configure how RTV will open different types of links.

title image

A mailcap file allows you to associate different MIME media types, like ``image/jpeg`` or ``video/mp4``, with shell commands. This feature is disabled by default because it takes a a few extra steps to configure. To get started, copy the default mailcap template to your home directory. ```bash $ rtv --copy-mailcap ``` This template contains examples for common MIME types that work with popular reddit websites like *imgur*, *youtube*, and *gfycat*. Open the mailcap template and follow the [instructions](rtv/templates/mailcap) listed inside. Once you've setup your mailcap file, enable it by launching rtv with the ``rtv --enable-media`` flag (or set it in your **rtv.cfg**) ### Environment Variables The default programs that RTV interacts with can be configured through environment variables:
$RTV_EDITOR A program used to compose text submissions and comments, e.g. vim, emacs, gedit
If not specified, will fallback to $VISUAL and $EDITOR in that order.
$RTV_BROWSER A program used to open links to external websites, e.g. firefox, google-chrome, w3m, lynx
If not specified, will fallback to $BROWSER, or your system's default browser.
$RTV_URLVIEWER A tool used to extract hyperlinks from blocks of text, e.g. urlview, urlscan
If not specified, will fallback to urlview if it is installed.
### Clipboard RTV supports copying submission links to the OS clipboard. On macOS this is supported out of the box. On Linux systems you will need to install either [xsel](http://www.vergenet.net/~conrad/software/xsel/) or [xclip](https://sourceforge.net/projects/xclip/). ## Themes Themes can be used to customize the look and feel of RTV

Solarized Dark

Solarized Light

Papercolor

Molokai

List installed themes with the ``--list-themes`` command, and select one with ``--theme``. You can also set the theme permenantly in your [rtv.cfg](rtv/templates/rtv.cfg) file. You can use the F2 & F3 keys inside of RTV to preview themes. For instructions on writing and installing your own themes, see [THEMES.md](THEMES.md). ## FAQ
Why am I getting an error during installation/when launching rtv? > If your distro ships with an older version of python 2.7 or python-requests, > you may experience SSL errors or other package incompatibilities. The > easiest way to fix this is to install rtv using python 3. If you > don't already have pip3, see http://stackoverflow.com/a/6587528 for setup > instructions. Then do > > ```bash > $ sudo pip uninstall rtv > $ sudo pip3 install -U rtv > ```
Why do I see garbled text like M-b~@M-" or ^@? > This type of text usually shows up when python is unable to render > unicode properly. > > 1. Try starting RTV in ascii-only mode with ``rtv --ascii`` > 2. Make sure that the terminal/font that you're using supports unicode > 3. Try [setting the LOCALE to utf-8](https://perlgeek.de/en/article/set-up-a-clean-utf8-environment) > 4. Your python may have been built against the wrong curses library, > see [here](stackoverflow.com/questions/19373027) and > [here](https://bugs.python.org/issue4787) for more information
How do I run the code directly from the repository? > This project is structured to be run as a python *module*. This means that > you need to launch it using python's ``-m`` flag. See the example below, which > assumes that you have cloned the repository into the directory **~/rtv_project**. > > ```bash > $ cd ~/rtv_project > $ python3 -m rtv > ```
## Contributing All feedback and suggestions are welcome, just post an issue! Before writing any code, please read the [Contributor Guidelines](CONTRIBUTING.rst). ## License This project is distributed under the [MIT](LICENSE) license.