rtfm-filemanager 1.7.4 → 1.8.3
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/bin/rtfm +35 -15
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c06c860c6a58770b3899d93cbfd71b5f16b4ad635acfc083ab3e68df036b4e42
|
4
|
+
data.tar.gz: 7ee9845c3f0e713f05277853c862bf468b52c56ed4d192e1078bfe5ae38f5508
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 250153cf7ac7dde5f6b9d50b160cd0a4091e60ac699f80ecec7ea084e925de5b71eec65410afb56f78747351b048c115a8b9cd62fdbf9d8a25e1038aafd737b8
|
7
|
+
data.tar.gz: b27356aac6130b6e2e3ee78f6bc61b225ca083b7e128dd820c15f09bd1c55c0363a031bdc7e6d92a6134e26a556205a453a2c92af8620e12c0937c5eef68f2d3
|
data/bin/rtfm
CHANGED
@@ -46,6 +46,7 @@ JUMPING AND MARKS
|
|
46
46
|
Press '-' and a letter to delete that mark
|
47
47
|
M = Show marked items in right pane
|
48
48
|
' = Jump to mark (next letter is the name of the mark [a-zA-Z'])
|
49
|
+
The 5 latest directories visited are stored in marks 1-5 (1 being the very latest)
|
49
50
|
/ = Enter search string in bottom window to highlight matching items and jump to the first match
|
50
51
|
n = Jump to the next item matched by '/'
|
51
52
|
N = Jump to the previous item matched by '/'
|
@@ -134,6 +135,7 @@ begin # BASIC SETUP
|
|
134
135
|
def cmd?(command)
|
135
136
|
system("which #{command} > /dev/null 2>&1")
|
136
137
|
end
|
138
|
+
|
137
139
|
if cmd?('/usr/lib/w3m/w3mimgdisplay')
|
138
140
|
@w3mimgdisplay = "/usr/lib/w3m/w3mimgdisplay"
|
139
141
|
@showimage = true
|
@@ -141,6 +143,8 @@ begin # BASIC SETUP
|
|
141
143
|
@showimage = false
|
142
144
|
end
|
143
145
|
@showimage = false unless (cmd?('xwininfo') and cmd?('xdotool'))
|
146
|
+
|
147
|
+
cmd?('bat') ? @bat = "bat" : @bat = "batcat"
|
144
148
|
|
145
149
|
STDIN.set_encoding(Encoding::UTF_8) # Set encoding for STDIN
|
146
150
|
LScolors = `echo $LS_COLORS` # Import LS_COLORS
|
@@ -261,6 +265,13 @@ def getchr # PROCESS KEY PRESSES
|
|
261
265
|
when '7' then chr = "HOME" ; STDIN.getc
|
262
266
|
when '8' then chr = "END" ; STDIN.getc
|
263
267
|
end
|
268
|
+
when 'O' # Set Ctrl+ArrowKey equal to ArrowKey; May be used for other purposes in the future
|
269
|
+
case $stdin.getc
|
270
|
+
when 'a' then chr = "UP"
|
271
|
+
when 'b' then chr = "DOWN"
|
272
|
+
when 'c' then chr = "RIGHT"
|
273
|
+
when 'd' then chr = "LEFT"
|
274
|
+
end
|
264
275
|
end
|
265
276
|
when "", "" then chr = "BACK"
|
266
277
|
when "" then chr = "WBACK"
|
@@ -315,7 +326,7 @@ def main_getkey # GET KEY FROM USER
|
|
315
326
|
var_resets
|
316
327
|
cur_dir = Dir.pwd
|
317
328
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
318
|
-
|
329
|
+
mark_latest
|
319
330
|
Dir.chdir("..")
|
320
331
|
@directory[Dir.pwd] = File.basename(cur_dir) unless @directory.key?(Dir.pwd)
|
321
332
|
@w_r.update = true
|
@@ -323,14 +334,14 @@ def main_getkey # GET KEY FROM USER
|
|
323
334
|
when 'RIGHT', 'l'
|
324
335
|
var_resets
|
325
336
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
326
|
-
|
337
|
+
mark_latest
|
327
338
|
open_selected()
|
328
339
|
@w_r.update = true
|
329
340
|
@w_b.update = true
|
330
341
|
when 'x' # Force open with file opener (used to open HTML files in browser)
|
331
342
|
var_resets
|
332
343
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
333
|
-
|
344
|
+
mark_latest
|
334
345
|
open_selected(true)
|
335
346
|
@w_r.update = true
|
336
347
|
@w_b.update = true
|
@@ -370,8 +381,6 @@ def main_getkey # GET KEY FROM USER
|
|
370
381
|
@w_r.update = false
|
371
382
|
@w_b.update = true
|
372
383
|
when 'M' # Show marks
|
373
|
-
@marks = @marks.sort.to_h
|
374
|
-
@w_r.fg = 147
|
375
384
|
marks_info
|
376
385
|
@w_r.update = false
|
377
386
|
@w_b.update = true
|
@@ -387,6 +396,7 @@ def main_getkey # GET KEY FROM USER
|
|
387
396
|
rescue
|
388
397
|
w_b_info(" No such directory")
|
389
398
|
end
|
399
|
+
mark_latest
|
390
400
|
@marks["'"] = dir_before
|
391
401
|
end
|
392
402
|
@w_r.update = true
|
@@ -394,13 +404,13 @@ def main_getkey # GET KEY FROM USER
|
|
394
404
|
when '~' # Go to home dir
|
395
405
|
var_resets
|
396
406
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
397
|
-
|
407
|
+
mark_latest
|
398
408
|
Dir.chdir
|
399
409
|
@w_r.update = true
|
400
410
|
@w_b.update = true
|
401
411
|
when 'f' # Follow symlink
|
402
412
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
403
|
-
|
413
|
+
mark_latest
|
404
414
|
if File.symlink?(@selected)
|
405
415
|
begin
|
406
416
|
Dir.chdir(File.dirname(File.readlink(@selected)))
|
@@ -426,7 +436,7 @@ def main_getkey # GET KEY FROM USER
|
|
426
436
|
jumpdir = File.dirname(jumpdir)
|
427
437
|
end
|
428
438
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
429
|
-
|
439
|
+
mark_latest
|
430
440
|
Dir.chdir(jumpdir)
|
431
441
|
@w_r.pager = 0
|
432
442
|
end
|
@@ -594,8 +604,8 @@ def main_getkey # GET KEY FROM USER
|
|
594
604
|
text += [[195, 0, ps]]
|
595
605
|
disk = `df -H | head -8`
|
596
606
|
text += [[172, 0, disk]]
|
597
|
-
dmesg = "\nDMESG:\n"
|
598
|
-
dmesg += `dmesg | tail -6
|
607
|
+
dmesg = "\nDMESG (latest first):\n"
|
608
|
+
dmesg += `dmesg | tail -6`.split("\n").sort.reverse.join("\n")
|
599
609
|
text += [[219, 0, dmesg]]
|
600
610
|
w_r_info(ansifix(text))
|
601
611
|
rescue
|
@@ -603,7 +613,7 @@ def main_getkey # GET KEY FROM USER
|
|
603
613
|
end
|
604
614
|
# RIGHT PANE
|
605
615
|
when 'ENTER' # Refresh right pane
|
606
|
-
@w_r.
|
616
|
+
@w_r.fill # First clear the window, then clear any previously showing image
|
607
617
|
image_show("clear") if @image; @image = false
|
608
618
|
@w_r.update = true
|
609
619
|
@w_b.update = true
|
@@ -766,6 +776,14 @@ def ansifix(text) # Format [[fg, attr, text]]
|
|
766
776
|
end
|
767
777
|
return output
|
768
778
|
end
|
779
|
+
def mark_latest
|
780
|
+
@marks["5"] = @marks["4"]
|
781
|
+
@marks["4"] = @marks["3"]
|
782
|
+
@marks["3"] = @marks["2"]
|
783
|
+
@marks["2"] = @marks["1"]
|
784
|
+
@marks["1"] = @marks["'"]
|
785
|
+
@marks["'"] = Dir.pwd
|
786
|
+
end
|
769
787
|
# TOP WINDOW FUNCTIONS
|
770
788
|
def w_t_info # SHOW INFO IN @w_t
|
771
789
|
text = " " + ENV['USER'].to_s + "@" + `hostname 2>/dev/null`.to_s.chop + ": " + Dir.pwd + "/"
|
@@ -887,7 +905,7 @@ end
|
|
887
905
|
def open_selected(html = nil) # OPEN SELECTED ITEM (when pressing RIGHT)
|
888
906
|
if File.directory?(@selected) # Rescue for permission error
|
889
907
|
begin
|
890
|
-
|
908
|
+
mark_latest
|
891
909
|
Dir.chdir(@selected)
|
892
910
|
rescue
|
893
911
|
end
|
@@ -953,8 +971,8 @@ def w_r_show # SHOW CONTENTS IN THE RIGHT WINDOW
|
|
953
971
|
# TEXT
|
954
972
|
elsif File.read(@selected).force_encoding("UTF-8").valid_encoding? and @w_r.pager == 0
|
955
973
|
begin # View the file as text if it is utf-8
|
956
|
-
@w_r.pager_cmd = "
|
957
|
-
@w_r.text =
|
974
|
+
@w_r.pager_cmd = "#{@bat} -n --color=always #{@selected_safe} 2>/dev/null"
|
975
|
+
@w_r.text = `#{@bat} -n --color=always --line-range :#{@w_r.maxy} #{@selected_safe} 2>/dev/null`
|
958
976
|
pager_start
|
959
977
|
syntax_highlight(@w_r.text)
|
960
978
|
rescue
|
@@ -1036,6 +1054,8 @@ def w_r_info(info) # SHOW INFO IN THE RIGHT WINDOW
|
|
1036
1054
|
@w_r.update = false
|
1037
1055
|
end
|
1038
1056
|
def marks_info # SHOW MARKS IN RIGHT WINDOW
|
1057
|
+
@w_r.fg = 183
|
1058
|
+
@marks = @marks.sort.to_h
|
1039
1059
|
info = "MARKS:\n"
|
1040
1060
|
unless @marks.empty?
|
1041
1061
|
@marks.each do |mark, dir|
|
@@ -1295,7 +1315,7 @@ def w_b_exec(cmd) # EXECUTE COMMAND FROM @W_B
|
|
1295
1315
|
status = Timeout::timeout(5) {
|
1296
1316
|
@w_r.clr
|
1297
1317
|
begin
|
1298
|
-
@w_r.pager_cmd = "#{cmd} |
|
1318
|
+
@w_r.pager_cmd = "#{cmd} | #{bat} -n --color=always 2>/dev/null"
|
1299
1319
|
@w_r.text = `#{@w_r.pager_cmd} 2>/dev/null`
|
1300
1320
|
rescue
|
1301
1321
|
@w_r.text = `#{cmd} 2>/dev/null`
|
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: 1.
|
4
|
+
version: 1.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geir Isene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -33,7 +33,8 @@ dependencies:
|
|
33
33
|
description: 'A full featured terminal browser with syntax highlighted files, images
|
34
34
|
shown in the terminal, videos thumbnailed, etc. You can bookmark and jump around
|
35
35
|
easily, delete, rename, copy, symlink and move files. RTFM has a a wide range of
|
36
|
-
other features. New in 1.
|
36
|
+
other features. New in 1.8.3: Fixed bug on Ctrl+ArrowKey, added bat as possible
|
37
|
+
command for batcat'
|
37
38
|
email: g@isene.com
|
38
39
|
executables:
|
39
40
|
- rtfm
|