summary refs log blame commit diff stats
path: root/doc/rifle.pod
blob: ea04c5ee2caae244cadfe1e0d7d37863c3565e11 (plain) (tree)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Bui
=head1 NAME

rifle - ranger's file opener




=head1 SYNOPSIS

B<rifle> [B<--help>] [B<-f> I<FLAGS>] [B<-l>] [B<-p> I<KEYWORD>]
[B<-w> I<PROGRAM>] I<files>




=head1 DESCRIPTION

rifle is a powerful file executor that allows for complex file type checking,
written to meet the needs of the file manager I<ranger>.  rifle's strength lies
in automatically determining file types, depending on which programs are
installed on the system, even without any user interaction.




=head1 OPTIONS

=over 14

=item B<-f> I<FLAGS>

Specify flags for opening the files.  Flags are letters that changes how the
program is executed.  Any combination of flags will work.  Writing uppercase
flags will negate the effect of all previously used lowercase flags of the same
letter.

Table of all flags:
 f   fork program to background
 r   run program as root, using sudo
 t   run program in a separate terminal, as specified by $TERMCMD

=item B<-l>

List all possible ways to open the specified files.  Each line will contain information in the format of I<id:label:flags:command>. I<id> is the identification number. I<label> is an arbitrary string that was specified for this command, I<flags> are the flags that are used by default, and I<command> is the command that is going to be executed.

=item B<-p> I<KEYWORD>

Pick a method to open the files.

I<KEYWORD> is either the ID number listed by C<rifle -l> or a string that matches a label in the configuration file.

=item B<-w> I<PROGRAM>

Open the files with the program I<PROGRAM>

=item B<-h>, B<--help>

Print a list of options and exit.

=back




=head1 FILES

rifle shares configuration files with ranger, though ranger is not required in
order to use rifle.  The configuration file F<rifle.conf> is expected to be at
F<~/.config/ranger/rifle.conf>.

This file specifies patterns for determining the commands to open files with.
The syntax is described in the comments of the default F<rifle.conf> that ships
with ranger.  To obtain it, you need to run: C<ranger --copy-config=rifle>




=head1 ENVIRONMENT

=over 8

=item EDITOR

Determines which editor to use for editing files (in the default F<rifle.conf>).

=item PAGER

Determines which pager to use for displaying files (in the default F<rifle.conf>).

=item TERMCMD

Determines the terminal emulator command for use with the I<t> flag.  It is required that the value is the path to an executable file which accepts the "-e COMMAND" argument.

=item XDG_CONFIG_HOME

Specifies the directory for configuration files. Defaults to F<$HOME/.config>.

=back




=head1 EXAMPLES

List all the different methods:

 $ rifle -l helloworld.py
 0:editor::"$EDITOR" -- "$@"
 1:pager::"$PAGER" -- "$@"
 2:::python -- "$1"

Display its content by opening it with "cat":

 $ rifle -w cat helloworld.py
 print("Hello World!")

Run it by picking the method 2, which calls 'python -- "$1"':

 $ rifle -p 2 helloworld.py
 Hello World!

Display the file in a pager inside a new terminal, run as root:

 $ rifle -p 1 -f tr helloworld.py
ORN 0xDF U+00DF # LATIN SMALL LETTER SHARP S 0xE0 U+00E0 # LATIN SMALL LETTER A WITH GRAVE 0xE1 U+00E1 # LATIN SMALL LETTER A WITH ACUTE 0xE2 U+00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX 0xE3 U+00E3 # LATIN SMALL LETTER A WITH TILDE 0xE4 U+00E4 # LATIN SMALL LETTER A WITH DIAERESIS 0xE5 U+00E5 # LATIN SMALL LETTER A WITH RING ABOVE 0xE6 U+00E6 # LATIN SMALL LETTER AE 0xE7 U+00E7 # LATIN SMALL LETTER C WITH CEDILLA 0xE8 U+00E8 # LATIN SMALL LETTER E WITH GRAVE 0xE9 U+00E9 # LATIN SMALL LETTER E WITH ACUTE 0xEA U+00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX 0xEB U+00EB # LATIN SMALL LETTER E WITH DIAERESIS 0xEC U+00EC # LATIN SMALL LETTER I WITH GRAVE 0xED U+00ED # LATIN SMALL LETTER I WITH ACUTE 0xEE U+00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX 0xEF U+00EF # LATIN SMALL LETTER I WITH DIAERESIS 0xF0 U+00F0 # LATIN SMALL LETTER ETH 0xF1 U+00F1 # LATIN SMALL LETTER N WITH TILDE 0xF2 U+00F2 # LATIN SMALL LETTER O WITH GRAVE 0xF3 U+00F3 # LATIN SMALL LETTER O WITH ACUTE 0xF4 U+00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX 0xF5 U+00F5 # LATIN SMALL LETTER O WITH TILDE 0xF6 U+00F6 # LATIN SMALL LETTER O WITH DIAERESIS 0xF7 U+00F7 # DIVISION SIGN 0xF8 U+00F8 # LATIN SMALL LETTER O WITH STROKE 0xF9 U+00F9 # LATIN SMALL LETTER U WITH GRAVE 0xFA U+00FA # LATIN SMALL LETTER U WITH ACUTE 0xFB U+00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX 0xFC U+00FC # LATIN SMALL LETTER U WITH DIAERESIS 0xFD U+00FD # LATIN SMALL LETTER Y WITH ACUTE 0xFE U+00FE # LATIN SMALL LETTER THORN 0xFF U+00FF # LATIN SMALL LETTER Y WITH DIAERESIS ## EOF ##