rtfm-filemanager 3.0.3 → 3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +38 -30
- data/bin/rtfm +55 -21
- metadata +3 -4
- data/.rtfm.launch +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe11017b37608ece785d04b740e858ee400a3518f7ec6e2e90d318c36069d431
|
4
|
+
data.tar.gz: c1f526b4b1a347c106915e6c4e03486e1adf1464c8050e153b625f1510fa6aa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cb52b1a6b0d7bd0db5f76486cde99416a1a3fcb9ceee3d1e5e0cc912c6c79c567e104982e9fa32f6a8f53a7cbbe34481f72d30980e24c9a2ffc31ac544db96e
|
7
|
+
data.tar.gz: 8376fb44256d84321f755842daa76009c5e116a86024977bd1af5bc01c24915198b51c0c082f2e609cd6181ee5dfef36484a6394a376da8f08f1816ad76c5567
|
data/README.md
CHANGED
@@ -18,7 +18,7 @@ Note: RTFM works best with the (u)rxvt, xterm and Eterm terminal emulators.
|
|
18
18
|
## Features
|
19
19
|
|
20
20
|
RTFM is one of the more feature rich terminal file managers. Some of the
|
21
|
-
features:
|
21
|
+
features are:
|
22
22
|
|
23
23
|
* RTFM shows images inline in the terminal (can be turned off)
|
24
24
|
* File contents is shown with proper syntax highlighting
|
@@ -64,17 +64,18 @@ of the selected item (directory or file) is shown in the right pane. The right
|
|
64
64
|
pane is also used to show information such as the currently tagged items, your
|
65
65
|
(book)marks, output from commands, etc.
|
66
66
|
|
67
|
-
You can run any command in the bottom "command
|
67
|
+
You can run any command in the bottom "command bar" and have the output
|
68
68
|
presented in the right pane. Use LEFT and RIGHT keys to go back and forth on
|
69
69
|
the command line, HOME to beginning of line, END to end of line, Backspace or
|
70
70
|
Ctrl-h to delete previous character, Ctrl-w to delete previous word, TAB to
|
71
71
|
complete directories and file names and ENTER to issue the command, while
|
72
|
-
Ctrl-u deletes the line. Issuing ENTER on a blank line has no effect.
|
72
|
+
Ctrl-u deletes the line. Issuing ENTER on a blank line has no effect. Use
|
73
|
+
Ctrl-g to leave the command bar without executing anything.
|
73
74
|
|
74
75
|
## Installation
|
75
76
|
|
76
|
-
You can install RTFM by
|
77
|
-
|
77
|
+
You can install RTFM by coloning this repo and put the file `rtfm` in your
|
78
|
+
"bin" directory. Or you can simply run `gem install rtfm-filemanager`.
|
78
79
|
|
79
80
|
There are two basic prerequisites needed: `x11-utils` and `xdotool`. On
|
80
81
|
Ubuntu these would be installed via `apt install x11-utils xdotool`.
|
@@ -82,12 +83,12 @@ Ubuntu these would be installed via `apt install x11-utils xdotool`.
|
|
82
83
|
In order to run RTFM (without generating [a bunch of
|
83
84
|
warnings](https://github.com/isene/RTFM/issues/1)), you need to do a `gem
|
84
85
|
install curses` (gets version 1.3.2) instead of installing via `apt install
|
85
|
-
ruby-curses` (gets version 1.2.4-1build1 on Ubuntu 20.04).
|
86
|
+
ruby-curses` (gets version 1.2.4-1build1 on Ubuntu 20.04). If you install RTFM
|
87
|
+
via `gem install rtfm-filemanager`, this dependency is already taken care of.
|
86
88
|
|
87
89
|
Content of text files are handled by `cat` - or by `bat` if you want beautiful
|
88
|
-
highlighting. Other files are shown via external programs
|
89
|
-
|
90
|
-
last column):
|
90
|
+
highlighting. Other files are shown via external programs (Debian/Ubuntu
|
91
|
+
family of Linux distros command in last column):
|
91
92
|
|
92
93
|
File type | Requirements | Installation
|
93
94
|
----------------------------|----------------------------------|-------------------------------
|
@@ -109,13 +110,17 @@ sudo gem install curses
|
|
109
110
|
git clone https://github.com/isene/RTFM
|
110
111
|
cd RTFM
|
111
112
|
sudo cp rtfm /usr/bin/
|
112
|
-
|
113
|
-
|
113
|
+
```
|
114
|
+
Or with a simpler gem install:
|
115
|
+
```
|
116
|
+
sudo apt update
|
117
|
+
sudo apt install ruby-full git libncurses-dev x11-utils xdotool bat poppler-utils odt2txt docx2txt catdoc w3m imagemagick ffmpegthumbnailer
|
118
|
+
gem install rtfm-filemanager
|
114
119
|
```
|
115
120
|
|
116
121
|
## Screenshot
|
117
122
|
|
118
|
-

|
123
|
+

|
119
124
|
|
120
125
|
## Image preview in the terminal
|
121
126
|
|
@@ -153,11 +158,12 @@ These are the set of keys to move around and do actions within RTFM:
|
|
153
158
|
Key | Description
|
154
159
|
-------|------------------------------------------------------------------
|
155
160
|
? | Show this help text
|
156
|
-
r | Refresh RTFM (recreates
|
161
|
+
r | Refresh RTFM (recreates the panes. Use on terminal resize or when there is garbage somewhere)
|
157
162
|
R | Reload configuration (~/.rtfm.conf)
|
158
163
|
W | Write parameters to ~/.rtfm.conf (@lsall, @lslong, @lsorder, @lsinvert, @border, @width, @preview, @tagged, @marks)
|
159
164
|
q | Quit
|
160
165
|
Q | QUIT (without writing changes to the config file)
|
166
|
+
v | Display RTFM version in bottom command bar
|
161
167
|
|
162
168
|
### Motion
|
163
169
|
|
@@ -186,7 +192,7 @@ M | Show marked items in right pane
|
|
186
192
|
|
187
193
|
Key | Description
|
188
194
|
-------|------------------------------------------------------------------
|
189
|
-
/ | Enter search string in bottom
|
195
|
+
/ | Enter search string in bottom command bar to highlight matching items and jump to the first match
|
190
196
|
\\ | Remove search pattern
|
191
197
|
n | Jump to the next item matched by '/'
|
192
198
|
N | Jump to the previous item matched by '/'
|
@@ -211,7 +217,7 @@ p | Put (copy) tagged items here
|
|
211
217
|
P | PUT (move) tagged items here
|
212
218
|
s | Create symlink to tagged items here
|
213
219
|
d | Delete selected item and tagged items. Press 'y' to confirm
|
214
|
-
c | Change/rename selected (adds command to
|
220
|
+
c | Change/rename selected (adds the proper command to change in the command bar)
|
215
221
|
Ctrl-o | Change ownership to user:group of selected and tagged items
|
216
222
|
Ctrl-p | Change permissions of selected and tagged items. Format = rwxr-xr-x or 755 or rwx (applies the trio to user, group and others)
|
217
223
|
z | Extract tagged zipped archive to current directory
|
@@ -225,7 +231,7 @@ a | Show all (also hidden) items
|
|
225
231
|
A | Show All info per item (show item attributes)
|
226
232
|
o | Change the order/sorting of directories (circular toggle)
|
227
233
|
i | Invert/reverse the sorting
|
228
|
-
O | Show the Ordering in the bottom
|
234
|
+
O | Show the Ordering in the bottom command bar (the full ls command)
|
229
235
|
G | Show git status for current directory
|
230
236
|
H | Do a cryptographic hash of the current directory with subdirs. If a previous hash was made, compare and report if there has been any change
|
231
237
|
I | Show OpenAI's description of the selected item and its content (if available). You must have installed the ruby-openai gem and added your openai secret key in the .rtfm.conf (add `@ai = "your-secret-openai-key") for this to work. If RTFM is installed as a gem, the ruby-openai gem is included in the installation
|
@@ -237,7 +243,7 @@ Key | Description
|
|
237
243
|
ENTER | Refresh the right pane
|
238
244
|
TAB | Next page of the preview (if doc long and ∇ in the bottom right)
|
239
245
|
S-TAB | Previous page (if you have moved down the document first - ∆ in the top right)
|
240
|
-
w | Change the width of the left/right panes (left pane ⇒
|
246
|
+
w | Change the width of the left/right panes (left pane ⇒ 20%, 30%, 40%, 50%, 60%)
|
241
247
|
\- | Toggle preview in right pane (turn it off for faster traversing of directories)
|
242
248
|
_ | Toggle preview of images in right pane
|
243
249
|
b | Toggle syntax highlighting (and line numbering)
|
@@ -247,24 +253,25 @@ b | Toggle syntax highlighting (and line numbering)
|
|
247
253
|
Key | Description
|
248
254
|
-------|------------------------------------------------------------------
|
249
255
|
f | Show only files in the left pane matching extension(s) (e.g. "txt" or "pdf,png,jpg")
|
250
|
-
F | Show only files matching a pattern (Ruby Regex) (e.g. "abc" or "ab.+12(\w3)
|
256
|
+
F | Show only files matching a pattern (Ruby Regex) (e.g. "abc" or "ab.+12(\w3)+")
|
251
257
|
B | Toggle border
|
252
|
-
: | Enter "command mode" in bottom
|
258
|
+
: | Enter "command mode" in bottom command bar (press ENTER to execute, press Ctrl-G to escape)
|
253
259
|
; | Show command history in right pane
|
254
260
|
y | Copy path of selected item to primary selection (for pasting with middle mouse button)
|
255
261
|
Y | Copy path of selected item to clipboard
|
256
|
-
|
262
|
+
Ctrl-y | Copy content of right pane to clipboard
|
257
263
|
S | Show comprehensive system info (system, CPU, filesystem, latest dmesg messages)
|
258
|
-
Ctrl-n | Invoke navi (see https://github.com/denisidoro/navi) with any output in right
|
259
|
-
|
260
|
-
|
261
|
-
## A convenient shell function
|
262
|
-
Add this line to your `.bashrc` or `.zshrc` to make RTFM exit to the current
|
263
|
-
directory by launching the file manager via `r` in the terminal:
|
264
|
+
Ctrl-n | Invoke navi (see https://github.com/denisidoro/navi) with any output in right pane
|
264
265
|
|
265
|
-
|
266
|
+
## Keyboard cheat sheet
|
267
|
+

|
266
268
|
|
267
|
-
|
269
|
+
## First run
|
270
|
+
The first time you run RTFM, you are greeted with a welcome message. RTFM will
|
271
|
+
then create a file (`.rtfm.launch`) in your home directory that will let you
|
272
|
+
launch RTFM via the one key command `r`. It also lets RTFM exit in the
|
273
|
+
directory you are currently in (inside of RTFM) rather than where you launched
|
274
|
+
RTFM.
|
268
275
|
|
269
276
|
With this, you can jump around in your directory structure via RTFM, exit to
|
270
277
|
the desired directory, do work in the terminal and go back into RTFM via `r`.
|
@@ -291,7 +298,8 @@ any files containg the word "test", you could do this:
|
|
291
298
|
```
|
292
299
|
|
293
300
|
To change the default width of the left pane to something other than ⅓rd of
|
294
|
-
the terminal width: `@width = 5` (would set the left pane width to
|
301
|
+
the terminal width: `@width = 5` (would set the left pane width to 50% of the
|
302
|
+
window size).
|
295
303
|
|
296
304
|
To add borders in RTFM: `@border = true`
|
297
305
|
|
@@ -345,6 +353,6 @@ others I have found. If you come up with a feature request I feel is cool, I
|
|
345
353
|
may include it. Bug reports are always welcome.
|
346
354
|
|
347
355
|
A note to developers: You can hit the "@" key to enter the Ruby debug mode
|
348
|
-
where anything you enter in the bottom command
|
356
|
+
where anything you enter in the bottom command bar will be sent to the Ruby
|
349
357
|
eval() function and output to the right pane. You can for instance issue
|
350
358
|
`puts @searched` to see the currently active search pattern.
|
data/bin/rtfm
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# for any damages resulting from its use. Further, I am under no
|
15
15
|
# obligation to maintain or extend this software. It is provided
|
16
16
|
# on an 'as is' basis without any expressed or implied warranty.
|
17
|
-
@version = "3.
|
17
|
+
@version = "3.5"
|
18
18
|
|
19
19
|
# PRELIMINARIES
|
20
20
|
@help = <<HELPTEXT
|
@@ -104,7 +104,7 @@ RIGHT PANE
|
|
104
104
|
|
105
105
|
ADDITIONAL COMMANDS
|
106
106
|
f = Show only files in the left pane matching extension(s) (e.g. "txt" or "pdf,png,jpg")
|
107
|
-
F = Show only files matching a pattern (Ruby Regex) (e.g. "abc" or "ab.+12(\w3)
|
107
|
+
F = Show only files matching a pattern (Ruby Regex) (e.g. "abc" or "ab.+12(\w3)+")
|
108
108
|
B = Toggle border
|
109
109
|
: = Enter "command mode" in bottom window (press ENTER to execute, press Ctrl-G to escape)
|
110
110
|
; = Show command history in right pane
|
@@ -116,30 +116,62 @@ ADDITIONAL COMMANDS
|
|
116
116
|
|
117
117
|
COPYRIGHT: Geir Isene, 2020-3. No rights reserved. See http://isene.com for more.
|
118
118
|
HELPTEXT
|
119
|
-
|
119
|
+
def firstrun
|
120
|
+
@firstrun = <<~FIRSTRUN
|
120
121
|
|
121
|
-
Welcome to RTFM - the Ruby Terminal File Manager. This help text is shown on the first run.
|
122
|
-
|
123
|
-
|
122
|
+
Welcome to RTFM - the Ruby Terminal File Manager. This help text is shown on the first run.
|
123
|
+
Next time you run RTFM, you can launch it from your terminal with a one letter command: "r"
|
124
|
+
When launched this way, RTFM will also exit in the directory you are currently in.
|
124
125
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
Viewing
|
131
|
-
Viewing
|
132
|
-
Viewing MS
|
133
|
-
Viewing
|
134
|
-
Viewing
|
126
|
+
To benefit fully from all the features, you need to install some auxilliary software.
|
127
|
+
On Ubuntu Linux you would use "apt install":
|
128
|
+
|
129
|
+
Basic requirments is "x11-utils" and "xdotool": apt install x11-utils xdotool
|
130
|
+
Syntax highlighting of text uses "bat": apt install bat
|
131
|
+
Viewing PDFs uses "pdftotext": apt install poppler-utils
|
132
|
+
Viewing LibreOffice docs uses "odt2txt": apt install odt2txt
|
133
|
+
Viewing MS docx uses "docx2txt": apt install docx2txt
|
134
|
+
Viewing MS pptx uses "unzip": apt install unzip
|
135
|
+
Viewing MS xlsx uses "ssconvert": apt install gnumeric
|
136
|
+
Viewing MS doc/xls/ppt uses "catdoc, xls2csv and catppt": apt install catdoc
|
137
|
+
Viewing Images uses "w3m and ImageMagick": apt install w3m imagemagick
|
138
|
+
Viewing Video thumbnails uses "ffmpegthumbnailer" apt install ffmpegthumbnailer
|
139
|
+
|
140
|
+
All of the above:
|
141
|
+
apt install x11-utils xdotool bat poppler-utils odt2txt docx2txt unzip gnumeric catdoc w3m imagemagick ffmpegthumbnailer
|
135
142
|
|
136
143
|
FIRSTRUN
|
137
|
-
|
144
|
+
|
145
|
+
if not File.exist?(Dir.home+'/.rtfm.launch')
|
146
|
+
@rtfmlaunch = <<RTFMLAUNCH
|
147
|
+
# This is the RTFM launcher (https://github.com/isene/RTFM)
|
148
|
+
function r {
|
149
|
+
f=$(mktemp)
|
150
|
+
(
|
151
|
+
set +e
|
152
|
+
rtfm "$f"
|
153
|
+
code=$?
|
154
|
+
if [ "$code" != 0 ]; then
|
155
|
+
rm -f "$f"
|
156
|
+
exit "$code"
|
157
|
+
fi
|
158
|
+
)
|
159
|
+
code=$?
|
160
|
+
if [ "$code" != 0 ]; then
|
161
|
+
return "$code"
|
162
|
+
fi
|
163
|
+
d=$(<"$f")
|
164
|
+
rm -f "$f"
|
165
|
+
cd "$d"
|
166
|
+
}
|
167
|
+
RTFMLAUNCH
|
168
|
+
File.write(Dir.home+'/.rtfm.launch', @rtfmlaunch)
|
169
|
+
@shell = File.basename(`echo "$SHELL"`.chomp)
|
170
|
+
`echo "source ~/.rtfm.launch" >> .#{@shell}rc`
|
171
|
+
end
|
172
|
+
|
138
173
|
puts @firstrun
|
139
|
-
puts "... hit ENTER to show the
|
140
|
-
STDIN.gets
|
141
|
-
puts @help
|
142
|
-
puts "\n... hit ENTER to start RTFM. Enjoy :-)"
|
174
|
+
puts "\n... hit ENTER to start RTFM. Hit ? inside RTFM to show the help text. Enjoy :-)"
|
143
175
|
STDIN.gets
|
144
176
|
end
|
145
177
|
begin # BASIC SETUP
|
@@ -150,6 +182,8 @@ begin # BASIC SETUP
|
|
150
182
|
require 'curses'
|
151
183
|
include Curses
|
152
184
|
|
185
|
+
firstrun unless File.exist?(Dir.home+'/.rtfm.conf')
|
186
|
+
|
153
187
|
def cmd?(command)
|
154
188
|
system("which #{command} > /dev/null 2>&1")
|
155
189
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtfm-filemanager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: '3.5'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geir Isene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -47,14 +47,13 @@ dependencies:
|
|
47
47
|
description: 'A full featured terminal browser with syntax highlighted files, images
|
48
48
|
shown in the terminal, videos thumbnailed, etc. You can bookmark and jump around
|
49
49
|
easily, delete, rename, copy, symlink and move files. RTFM has a a wide range of
|
50
|
-
other features. New in 3.
|
50
|
+
other features. New in 3.5: Simplified install :-)'
|
51
51
|
email: g@isene.com
|
52
52
|
executables:
|
53
53
|
- rtfm
|
54
54
|
extensions: []
|
55
55
|
extra_rdoc_files: []
|
56
56
|
files:
|
57
|
-
- ".rtfm.launch"
|
58
57
|
- README.md
|
59
58
|
- bin/rtfm
|
60
59
|
- rtfm-kb.png
|
data/.rtfm.launch
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# This function starts RTFM and will cd to the exit dir
|
2
|
-
#
|
3
|
-
# Add this line to your .bashrc or .zshrc to make RTFM exit to the
|
4
|
-
# current directory by launching the file manager via r in the terminal:
|
5
|
-
# source ~/.rtfm.launch
|
6
|
-
# ... and place the file .rtfm.launch in your home directory.
|
7
|
-
# With this, you can jump around in your directory structure via RTFM, exit to
|
8
|
-
# the desired directory, do work in the terminal and go back into RTFM via r.
|
9
|
-
|
10
|
-
function r {
|
11
|
-
f=$(mktemp)
|
12
|
-
(
|
13
|
-
set +e
|
14
|
-
rtfm "$f"
|
15
|
-
code=$?
|
16
|
-
if [ "$code" != 0 ]; then
|
17
|
-
rm -f "$f"
|
18
|
-
exit "$code"
|
19
|
-
fi
|
20
|
-
)
|
21
|
-
code=$?
|
22
|
-
if [ "$code" != 0 ]; then
|
23
|
-
return "$code"
|
24
|
-
fi
|
25
|
-
d=$(<"$f")
|
26
|
-
rm -f "$f"
|
27
|
-
cd "$d"
|
28
|
-
}
|