rtfm-filemanager 1.5.9 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rtfm +50 -27
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c3a3d9a904767a6ef5decf4f4924b624cea2c35c4928000084d48b318b58424
|
4
|
+
data.tar.gz: c9f94ffc2fbdac8a6be651cb90314d9042a0e54fff5031f60b8b266605fb748c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddc76de2b511bb3306857e3f97c10cd2ac0c02903ff9b16d3c4d3ac33ce2035831f48ed93f7821b6b6977a9ba8207019a434f840bd7c55a9948e40f4a5a6a178
|
7
|
+
data.tar.gz: 0110652cfbd0f59040e1b606dfd653fb8c62207fbc6351d3cf7114d5a196233e13388b97376d4e8ad4878ab8fed3efd5a1343b5ef971034777f6c49b3323fb74
|
data/bin/rtfm
CHANGED
@@ -324,6 +324,7 @@ def main_getkey # GET KEY FROM USER
|
|
324
324
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
325
325
|
@marks["'"] = Dir.pwd
|
326
326
|
open_selected()
|
327
|
+
@change_tag = true
|
327
328
|
@w_r.update = true
|
328
329
|
@w_b.update = true
|
329
330
|
when 'x' # Force open with file opener (used to open HTML files in browser)
|
@@ -331,6 +332,7 @@ def main_getkey # GET KEY FROM USER
|
|
331
332
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
332
333
|
@marks["'"] = Dir.pwd
|
333
334
|
open_selected(true)
|
335
|
+
@change_tag = true
|
334
336
|
@w_r.update = true
|
335
337
|
@w_b.update = true
|
336
338
|
when 'PgDOWN'
|
@@ -401,7 +403,10 @@ def main_getkey # GET KEY FROM USER
|
|
401
403
|
@directory[Dir.pwd] = @selected # Store this directory before leaving
|
402
404
|
@marks["'"] = Dir.pwd
|
403
405
|
if File.symlink?(@selected)
|
404
|
-
|
406
|
+
begin
|
407
|
+
Dir.chdir(File.dirname(File.readlink(@selected)))
|
408
|
+
rescue
|
409
|
+
end
|
405
410
|
end
|
406
411
|
@w_b.update = true
|
407
412
|
when 'g' # Run 'grep' in the current directory
|
@@ -458,10 +463,12 @@ def main_getkey # GET KEY FROM USER
|
|
458
463
|
copy_move_link("copy")
|
459
464
|
@w_r.update = true
|
460
465
|
@w_b.update = true
|
466
|
+
@change_tag = true
|
461
467
|
when 'P' # Move tagged items here
|
462
468
|
copy_move_link("move")
|
463
469
|
@w_r.update = true
|
464
470
|
@w_b.update = true
|
471
|
+
@change_tag = true
|
465
472
|
when 's' # Create symlink to tagged items here
|
466
473
|
copy_move_link("link")
|
467
474
|
@w_r.update = true
|
@@ -564,11 +571,22 @@ def main_getkey # GET KEY FROM USER
|
|
564
571
|
when 'S' # Show comprehensive system info
|
565
572
|
begin
|
566
573
|
@w_r.pager_cmd = ""
|
567
|
-
uname = `uname -o`.
|
568
|
-
uname += `uname -r`.
|
569
|
-
uname += `uname -v`.
|
570
|
-
uname += `uname -p
|
574
|
+
uname = `uname -o`.chomp + " "
|
575
|
+
uname += `uname -r`.chomp + " "
|
576
|
+
uname += `uname -v`.chomp + " "
|
577
|
+
uname += `uname -p`.chomp + " "
|
578
|
+
uname += `awk -F '"' '/PRETTY/ {print $2}' /etc/os-release` + "\n"
|
571
579
|
text = [[253, 1, uname]]
|
580
|
+
system = "Shell & Terminal: " + `echo $SHELL`.sub(/.*\//, '').chomp + ", " + `echo $TERM`.chomp + " "
|
581
|
+
packages = `pacman -Q | wc -l`.chomp
|
582
|
+
packages = `dpkg-query -l | grep -c '^.i'`.chomp if packages == "0"
|
583
|
+
packages = "Unrecognized" if packages == "0"
|
584
|
+
system += "Packages: " + packages + "\n"
|
585
|
+
system += "Desktop: " + `awk '/^DesktopNames/' /usr/share/xsessions/* | sed 's/DesktopNames=//g' | \\
|
586
|
+
sed 's/\\;/\\n/g' | sed '/^$/d' | sort -u | sed ':a;N;$!ba;s/\\n/, /g'`.chomp + "/"
|
587
|
+
system += `grep 'gtk-theme-name' ~/.config/gtk-3.0/* | sed 's/gtk-theme-name=//g' | \\
|
588
|
+
sed 's/-/ /g'`.sub(/.*:/, '') + "\n"
|
589
|
+
text += [[251, 0, system]]
|
572
590
|
cpu = "CPUs = " + `nproc`.chop + " "
|
573
591
|
cpuinfo = `lscpu`
|
574
592
|
cpu += cpuinfo[/^.*Model name:\s*(.*)/, 1] + " "
|
@@ -594,7 +612,7 @@ def main_getkey # GET KEY FROM USER
|
|
594
612
|
image_show("clear") if @image; @image = false
|
595
613
|
@w_r.update = true
|
596
614
|
@w_b.update = true
|
597
|
-
when 'TAB' # Start paging
|
615
|
+
when 'TAB' # Start paging/Down one page
|
598
616
|
if @w_r.pager == 1 and @w_r.pager_cmd != ""
|
599
617
|
@w_r.text = `#{@w_r.pager_cmd} 2>/dev/null`
|
600
618
|
end
|
@@ -627,7 +645,7 @@ def main_getkey # GET KEY FROM USER
|
|
627
645
|
@index = m[0] unless m == []
|
628
646
|
@index = 0 if @searched == ""
|
629
647
|
@w_r.update = true
|
630
|
-
when 'n'
|
648
|
+
when 'n' # Jump to next occurence of search (after '/')
|
631
649
|
l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
|
632
650
|
m = l.each_index.select{|n| l[n] =~ /#{@searched}/}
|
633
651
|
i = m.find { |n| n > @index }
|
@@ -637,7 +655,7 @@ def main_getkey # GET KEY FROM USER
|
|
637
655
|
@index = i
|
638
656
|
end
|
639
657
|
@w_r.update = true
|
640
|
-
when 'N'
|
658
|
+
when 'N' # Jump to previous occurence of search (after '/')
|
641
659
|
l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
|
642
660
|
m = l.each_index.select{|n| l[n] =~ /#{@searched}/}.reverse
|
643
661
|
i = m.find { |n| n < @index }
|
@@ -654,7 +672,7 @@ def main_getkey # GET KEY FROM USER
|
|
654
672
|
when ';' # Show command history
|
655
673
|
w_r_info("Command history (latest on top):\n\n" + @history.join("\n"))
|
656
674
|
@w_b.update = true
|
657
|
-
when 'y', 'Y'
|
675
|
+
when 'y', 'Y' # Copy path of selected item
|
658
676
|
if @selected == nil
|
659
677
|
w_b_info(" No selected item path to copy")
|
660
678
|
else
|
@@ -1279,6 +1297,7 @@ def w_b_exec(cmd) # EXECUTE COMMAND FROM @W_B
|
|
1279
1297
|
pager_show
|
1280
1298
|
@w_r.update = false
|
1281
1299
|
end
|
1300
|
+
@change_tag = true
|
1282
1301
|
}
|
1283
1302
|
rescue
|
1284
1303
|
w_b_info(" Failed to execute command (#{cmd})")
|
@@ -1312,9 +1331,7 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1312
1331
|
@w_t.fg, @w_t.bg = 232, 249
|
1313
1332
|
@w_t.attr = Curses::A_BOLD
|
1314
1333
|
@w_b.fg, @w_b.bg = 250, 238
|
1315
|
-
@w_t.update = true
|
1316
1334
|
@w_b.update = true
|
1317
|
-
@w_l.update = true
|
1318
1335
|
@w_r.update = true
|
1319
1336
|
@w_r.pager = 0
|
1320
1337
|
@w_r.pager_more = false
|
@@ -1324,13 +1341,14 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1324
1341
|
tagged_info
|
1325
1342
|
@w_r.update = false
|
1326
1343
|
end
|
1344
|
+
@change = true
|
1345
|
+
@change_tag = true
|
1327
1346
|
loop do # INNER, CORE LOOP
|
1328
1347
|
begin # Jump to home dir if current dir is externally removed
|
1329
1348
|
Dir.pwd
|
1330
1349
|
rescue
|
1331
1350
|
Dir.chdir
|
1332
1351
|
end
|
1333
|
-
system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
|
1334
1352
|
ls_cmd = "ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}" # Get files in current directory
|
1335
1353
|
@files = `#{ls_cmd} 2>/dev/null`.split("\n")
|
1336
1354
|
ls_cmd += %q[ -lhgG --time-style="long-iso" | awk '{printf "%s%12s%6s%6s%5s", $1,$4,$5,$3,$2 "\n"}']
|
@@ -1350,28 +1368,33 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1350
1368
|
@index = @files.index(@selected)
|
1351
1369
|
@orderchange = false
|
1352
1370
|
end
|
1353
|
-
@index
|
1354
|
-
@index
|
1355
|
-
@min_index
|
1356
|
-
@max_index
|
1357
|
-
@index
|
1358
|
-
@index
|
1359
|
-
@selected
|
1360
|
-
|
1361
|
-
#
|
1362
|
-
|
1371
|
+
@index = @files.index(@selected) if @lsall != lsall_old # Change in showing all items must be handled
|
1372
|
+
@index = index_old if @files.index(@selected) == nil # If item no longer is shown
|
1373
|
+
@min_index = 0
|
1374
|
+
@max_index = @files.size - 1
|
1375
|
+
@index = @max_index if @index > @max_index # If deleted many items
|
1376
|
+
@index = 0 if @index < 0
|
1377
|
+
@selected = @files[@index] # Get text of selected item
|
1378
|
+
sel_old = @selected_safe
|
1379
|
+
@selected_safe = "\"#{@selected}\"" # Make it safe for commands
|
1380
|
+
@selected_safe == sel_old ? @change = false : @change = true
|
1381
|
+
@change = true if @change_tag; @change_tag = false
|
1382
|
+
if @change
|
1383
|
+
system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
|
1384
|
+
# Top window (info line)
|
1385
|
+
w_t_info
|
1386
|
+
@w_l.setpos(0,0)
|
1387
|
+
list_dir(true)
|
1388
|
+
@w_l.refresh
|
1389
|
+
end
|
1363
1390
|
# Bottom window (command line) Before @w_r to avoid image dropping out on startup
|
1364
1391
|
w_b_info(nil) if @w_b.update
|
1365
1392
|
# Left and right windows (browser & content viewer)
|
1366
|
-
@w_l.setpos(0,0)
|
1367
|
-
list_dir(true)
|
1368
|
-
@w_l.refresh
|
1369
1393
|
if @w_r.update and @preview
|
1370
1394
|
w_r_show
|
1371
1395
|
@w_r.fg = 255
|
1372
1396
|
end
|
1373
|
-
Curses.curs_set(1) # Clear residual cursor
|
1374
|
-
Curses.curs_set(0) # ...from editing files
|
1397
|
+
Curses.curs_set(1); Curses.curs_set(0) # Clear residual cursor from editing files
|
1375
1398
|
@tag = false # Clear tag pattern
|
1376
1399
|
lsall_old = @lsall
|
1377
1400
|
main_getkey # Get key from user
|
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.6.0
|
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-11-
|
11
|
+
date: 2021-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -33,7 +33,7 @@ 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.6.0: RTFM now uses even less resources.'
|
37
37
|
email: g@isene.com
|
38
38
|
executables:
|
39
39
|
- rtfm
|