Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michael-lazar/rtv
Browse Reddit from your terminal
https://github.com/michael-lazar/rtv
command-line curses python reddit reddit-client terminal tui
Last synced: about 1 month ago
JSON representation
Browse Reddit from your terminal
- Host: GitHub
- URL: https://github.com/michael-lazar/rtv
- Owner: michael-lazar
- License: mit
- Archived: true
- Created: 2015-02-08T08:10:02.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-02-20T15:57:19.000Z (over 1 year ago)
- Last Synced: 2024-09-21T22:33:17.062Z (about 1 month ago)
- Topics: command-line, curses, python, reddit, reddit-client, terminal, tui
- Language: Python
- Homepage:
- Size: 50.4 MB
- Stars: 4,639
- Watchers: 82
- Forks: 274
- Open Issues: 103
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
- my-awesome-github-stars - michael-lazar/rtv - Browse Reddit from your terminal (Python)
- vim-keybindings-everywhere-the-ultimate-list - rtv - A Reddit TUI viewer (Social)
- awesome-starred - rtv - Browse Reddit from your terminal (Python)
- awesome-list - rtv - lazar | 4546 | (Python)
README
**THIS PROJECT IS NO LONGER MAINTAINED**
- [RTV Development is Shutting Down](https://github.com/michael-lazar/rtv/issues/696)
- [List of Alternative Projects](https://gist.github.com/michael-lazar/8c31b9f637c3b9d7fbdcbb0eebcf2b0a)Reddit Terminal Viewer (RTV)
A text-based interface (TUI) to view and interact with Reddit from your terminal.
## Table of Contents
* [Demo](#demo)
* [Installation](#installation)
* [Usage](#usage)
* [Settings](#settings)
* [Themes](#themes)
* [FAQ](#faq)
* [Contributing](#contributing)
* [License](#license)## Demo
You can use *telnet* or *ssh* to try out a lite version of RTV directly in your terminal, without needing to install it:
- ``$ telnet redditbox.us``
- ``$ ssh redditbox.us``*[redditbox.us](https://redditbox.us/) is an independent project by Alex Jarmoszuk*
## 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 distro packages:
```bash
# macOS
$ brew install rtv# Arch
$ pacman -S rtv# Nix
$ nix-env -i rtv# Debian
$ apt install rtv# FreeBSD
$ pkg install rtv
```### From source
```bash
$ git clone https://github.com/michael-lazar/rtv.git
$ cd rtv
$ python setup.py install
```### Windows
RTV is not supported on Windows, due to a lack of resources and interest. Sorry!
## 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 (this requires a web browser for [OAuth](https://github.com/reddit-archive/reddit/wiki/oauth2))
- Press ? to open the help screenPress / 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.md) 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.
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 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
You can list all installed themes with the ``--list-themes`` command, and select one with ``--theme``. You can save your choice permanently in your [rtv.cfg](rtv/templates/rtv.cfg) file. You can also use the F2 & F3 keys inside of RTV to cycle through all available 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 informationHow 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.