about summary refs log tree commit diff
path: root/meta/.mailcap
blob: 6cca665e8cacc68ae22ce538a1caf589eaa734ef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Example mailcap file for Reddit Terminal Viewer
# https://github.com/michael-lazar/rtv/
#
# Copy the contents of this file to {HOME}/.mailcap, or point to using $MAILCAPS
# Then launch RTV using the --enable-media flag. All shell commands defined in
# this file depend on external programs that must be installed on your system.
#
# HELP REQUESTED! If you come up with your own commands (especially for OS X)
# and would like to share, please post an issue on the GitHub tracker and we
# can get them added to this file as references.
#
#
#                              Mailcap 101
# - The first entry with a matching MIME type will be executed, * is a wildcard
# - %s will be replaced with the image or video url
# - Add ``test=test -n "$DISPLAY"`` if your command opens a new window
# - Add ``needsterminal`` for commands that use the terminal
# - Add ``copiousoutput`` for commands that dump text to stdout

###############################################################################
# Commands below this point will open media in a separate window without
# pausing execution of RTV.
###############################################################################

# Feh is a simple and effective image viewer
# Note that rtv returns a list of urls for imgur albums, so we don't put quotes
# around the `%s`
image/x-imgur-album; feh %s; test=test -n "$DISPLAY"
image/gif; mpv '%s' --loop=inf; test=test -n "$DISPLAY"
image/*; feh '%s'; test=test -n "$DISPLAY"

# Youtube videos are assigned a custom mime-type, which can be streamed with
# vlc or youtube-dl.
video/x-youtube; mpv '%s'; test=test -n "$DISPLAY"

# Mpv is a simple and effective video streamer
video/*; mpv '%s' --loop=inf; test=test -n "$DISPLAY"

###############################################################################
# Commands below this point will attempt to display media directly in the
# terminal when X is not available.
###############################################################################

# View images directly in your terminal with iTerm2
# curl -L https://iterm2.com/misc/install_shell_integration_and_utilities.sh | bash
# image/*; curl -s %s | ~/.iterm2/imgcat && read -n 1; needsterminal

# View true images in the terminal, supported by rxvt-unicode, xterm and st
# Requires the w3m-img package
image/*; w3m -o 'ext_image_viewer=off' '%s'; needsterminal

# Don't have a solution for albums yet
image/x-imgur-album; echo

# 256 color images using half-width unicode characters
# Much higher quality that img2txt, but must be built from source
# https://github.com/rossy/img2xterm
#image/*; curl -s '%s' | convert -resize 80x80 - jpg:/tmp/rtv.jpg && img2xterm /tmp/rtv.jpg; needsterminal; copiousoutput

# Display images in classic ascii using img2txt and lib-caca
image/*; curl -s '%s' | convert - jpg:/tmp/rtv.jpg && img2txt -f utf8 /tmp/rtv.jpg; needsterminal; copiousoutput

# Full motion videos - requires a framebuffer to view
video/x-youtube; mpv -vo drm -quiet '%s'; needsterminal
video/*; mpv -vo drm -quiet '%s'; needsterminal

# Ascii videos
# video/x-youtube; youtube-dl -q -o - '%s' | mplayer -cache 8192 -vo caca -quiet -; needsterminal
# video/*; wget '%s' -O - | mplayer -cache 8192 -vo caca -quiet -; needsterminal