rtfm-filemanager 1.5.9 → 1.6.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 +55 -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: fe523094be65df19e83e654f585e56bb27444ff5c1e8a5e42efca2610b32b31d
|
4
|
+
data.tar.gz: a4e762c55ddff9c21b111cddce746c332cc4753f6e67086487b989370ebe3a27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 108e05b8afe54f5aed2ddaa11d95fe968f8ff61174092b26ec934a53a5d1b161944d8f90bd47ec2ce31f7fac4d20e097fd96de0ae3fc35115142cc67cdc65d7c
|
7
|
+
data.tar.gz: 20ef28f8a1214388cd16571301088c64b10e98a7dd4b2429bc3cf1e8ab36d89ae542152e1a9b497fb0e82f7a040690d0276ab79e80de5e9600bf125764c19243
|
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,14 +463,17 @@ 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
|
468
475
|
@w_b.update = true
|
476
|
+
@change_tag = true
|
469
477
|
when 'd' # Delete items tagged and @selected
|
470
478
|
tagged_info
|
471
479
|
w_b_info(" Delete selected and tagged? (press 'd' again to delete)")
|
@@ -494,6 +502,7 @@ def main_getkey # GET KEY FROM USER
|
|
494
502
|
@lsall == "" ? @lsall = "-a" : @lsall = ""
|
495
503
|
@w_r.update = true
|
496
504
|
@w_b.update = true
|
505
|
+
@change_tag = true
|
497
506
|
when 'l' # Show long info for all items
|
498
507
|
@lslong = !@lslong
|
499
508
|
@w_r.update = true
|
@@ -515,6 +524,7 @@ def main_getkey # GET KEY FROM USER
|
|
515
524
|
end
|
516
525
|
@w_r.update = true
|
517
526
|
@orderchange = true
|
527
|
+
@change_tag = true
|
518
528
|
when 'i' # Invert the order/sorting of directory views
|
519
529
|
case @lsinvert
|
520
530
|
when ""
|
@@ -526,6 +536,7 @@ def main_getkey # GET KEY FROM USER
|
|
526
536
|
end
|
527
537
|
@w_r.update = true
|
528
538
|
@orderchange = true
|
539
|
+
@change_tag = true
|
529
540
|
when 'O' # Show the Ordering in the bottom window (the full ls command)
|
530
541
|
w_b_info(" Full 'ls' command: ls <@s> #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}")
|
531
542
|
when 'G' # Git status for selected item or current dir
|
@@ -563,12 +574,24 @@ def main_getkey # GET KEY FROM USER
|
|
563
574
|
@w_b.update = false
|
564
575
|
when 'S' # Show comprehensive system info
|
565
576
|
begin
|
577
|
+
@w_r.clr
|
566
578
|
@w_r.pager_cmd = ""
|
567
|
-
uname = `uname -o`.
|
568
|
-
uname += `uname -r`.
|
569
|
-
uname += `uname -v`.
|
570
|
-
uname += `uname -p
|
579
|
+
uname = `uname -o`.chomp + " "
|
580
|
+
uname += `uname -r`.chomp + " "
|
581
|
+
uname += `uname -v`.chomp + " "
|
582
|
+
uname += `uname -p`.chomp + " "
|
583
|
+
uname += `awk -F '"' '/PRETTY/ {print $2}' /etc/os-release` + "\n"
|
571
584
|
text = [[253, 1, uname]]
|
585
|
+
system = "Shell & Terminal: " + `echo $SHELL`.sub(/.*\//, '').chomp + ", " + `echo $TERM`.chomp + " "
|
586
|
+
packages = `pacman -Q 2>/dev/null | wc -l`.chomp
|
587
|
+
packages = `dpkg-query -l 2>/dev/null | grep -c '^.i'`.chomp if packages == "0"
|
588
|
+
packages = "Unrecognized" if packages == "0"
|
589
|
+
system += "Packages: " + packages + "\n"
|
590
|
+
system += "Desktop: " + `awk '/^DesktopNames/' /usr/share/xsessions/* | sed 's/DesktopNames=//g' | \\
|
591
|
+
sed 's/\\;/\\n/g' | sed '/^$/d' | sort -u | sed ':a;N;$!ba;s/\\n/, /g'`.chomp + "/"
|
592
|
+
system += `grep 'gtk-theme-name' ~/.config/gtk-3.0/* | sed 's/gtk-theme-name=//g' | \\
|
593
|
+
sed 's/-/ /g'`.sub(/.*:/, '') + "\n"
|
594
|
+
text += [[251, 0, system]]
|
572
595
|
cpu = "CPUs = " + `nproc`.chop + " "
|
573
596
|
cpuinfo = `lscpu`
|
574
597
|
cpu += cpuinfo[/^.*Model name:\s*(.*)/, 1] + " "
|
@@ -594,7 +617,7 @@ def main_getkey # GET KEY FROM USER
|
|
594
617
|
image_show("clear") if @image; @image = false
|
595
618
|
@w_r.update = true
|
596
619
|
@w_b.update = true
|
597
|
-
when 'TAB' # Start paging
|
620
|
+
when 'TAB' # Start paging/Down one page
|
598
621
|
if @w_r.pager == 1 and @w_r.pager_cmd != ""
|
599
622
|
@w_r.text = `#{@w_r.pager_cmd} 2>/dev/null`
|
600
623
|
end
|
@@ -627,7 +650,7 @@ def main_getkey # GET KEY FROM USER
|
|
627
650
|
@index = m[0] unless m == []
|
628
651
|
@index = 0 if @searched == ""
|
629
652
|
@w_r.update = true
|
630
|
-
when 'n'
|
653
|
+
when 'n' # Jump to next occurence of search (after '/')
|
631
654
|
l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
|
632
655
|
m = l.each_index.select{|n| l[n] =~ /#{@searched}/}
|
633
656
|
i = m.find { |n| n > @index }
|
@@ -637,7 +660,7 @@ def main_getkey # GET KEY FROM USER
|
|
637
660
|
@index = i
|
638
661
|
end
|
639
662
|
@w_r.update = true
|
640
|
-
when 'N'
|
663
|
+
when 'N' # Jump to previous occurence of search (after '/')
|
641
664
|
l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
|
642
665
|
m = l.each_index.select{|n| l[n] =~ /#{@searched}/}.reverse
|
643
666
|
i = m.find { |n| n < @index }
|
@@ -654,7 +677,7 @@ def main_getkey # GET KEY FROM USER
|
|
654
677
|
when ';' # Show command history
|
655
678
|
w_r_info("Command history (latest on top):\n\n" + @history.join("\n"))
|
656
679
|
@w_b.update = true
|
657
|
-
when 'y', 'Y'
|
680
|
+
when 'y', 'Y' # Copy path of selected item
|
658
681
|
if @selected == nil
|
659
682
|
w_b_info(" No selected item path to copy")
|
660
683
|
else
|
@@ -1279,6 +1302,7 @@ def w_b_exec(cmd) # EXECUTE COMMAND FROM @W_B
|
|
1279
1302
|
pager_show
|
1280
1303
|
@w_r.update = false
|
1281
1304
|
end
|
1305
|
+
@change_tag = true
|
1282
1306
|
}
|
1283
1307
|
rescue
|
1284
1308
|
w_b_info(" Failed to execute command (#{cmd})")
|
@@ -1312,9 +1336,7 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1312
1336
|
@w_t.fg, @w_t.bg = 232, 249
|
1313
1337
|
@w_t.attr = Curses::A_BOLD
|
1314
1338
|
@w_b.fg, @w_b.bg = 250, 238
|
1315
|
-
@w_t.update = true
|
1316
1339
|
@w_b.update = true
|
1317
|
-
@w_l.update = true
|
1318
1340
|
@w_r.update = true
|
1319
1341
|
@w_r.pager = 0
|
1320
1342
|
@w_r.pager_more = false
|
@@ -1324,13 +1346,14 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1324
1346
|
tagged_info
|
1325
1347
|
@w_r.update = false
|
1326
1348
|
end
|
1349
|
+
@change = true
|
1350
|
+
@change_tag = true
|
1327
1351
|
loop do # INNER, CORE LOOP
|
1328
1352
|
begin # Jump to home dir if current dir is externally removed
|
1329
1353
|
Dir.pwd
|
1330
1354
|
rescue
|
1331
1355
|
Dir.chdir
|
1332
1356
|
end
|
1333
|
-
system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
|
1334
1357
|
ls_cmd = "ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}" # Get files in current directory
|
1335
1358
|
@files = `#{ls_cmd} 2>/dev/null`.split("\n")
|
1336
1359
|
ls_cmd += %q[ -lhgG --time-style="long-iso" | awk '{printf "%s%12s%6s%6s%5s", $1,$4,$5,$3,$2 "\n"}']
|
@@ -1350,28 +1373,33 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
|
|
1350
1373
|
@index = @files.index(@selected)
|
1351
1374
|
@orderchange = false
|
1352
1375
|
end
|
1353
|
-
@index
|
1354
|
-
@index
|
1355
|
-
@min_index
|
1356
|
-
@max_index
|
1357
|
-
@index
|
1358
|
-
@index
|
1359
|
-
@selected
|
1360
|
-
|
1361
|
-
#
|
1362
|
-
|
1376
|
+
@index = @files.index(@selected) if @lsall != lsall_old # Change in showing all items must be handled
|
1377
|
+
@index = index_old if @files.index(@selected) == nil # If item no longer is shown
|
1378
|
+
@min_index = 0
|
1379
|
+
@max_index = @files.size - 1
|
1380
|
+
@index = @max_index if @index > @max_index # If deleted many items
|
1381
|
+
@index = 0 if @index < 0
|
1382
|
+
@selected = @files[@index] # Get text of selected item
|
1383
|
+
sel_old = @selected_safe
|
1384
|
+
@selected_safe = "\"#{@selected}\"" # Make it safe for commands
|
1385
|
+
@selected_safe == sel_old ? @change = false : @change = true
|
1386
|
+
@change = true if @change_tag; @change_tag = false
|
1387
|
+
if @change
|
1388
|
+
system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
|
1389
|
+
# Top window (info line)
|
1390
|
+
w_t_info
|
1391
|
+
@w_l.setpos(0,0)
|
1392
|
+
list_dir(true)
|
1393
|
+
@w_l.refresh
|
1394
|
+
end
|
1363
1395
|
# Bottom window (command line) Before @w_r to avoid image dropping out on startup
|
1364
1396
|
w_b_info(nil) if @w_b.update
|
1365
1397
|
# Left and right windows (browser & content viewer)
|
1366
|
-
@w_l.setpos(0,0)
|
1367
|
-
list_dir(true)
|
1368
|
-
@w_l.refresh
|
1369
1398
|
if @w_r.update and @preview
|
1370
1399
|
w_r_show
|
1371
1400
|
@w_r.fg = 255
|
1372
1401
|
end
|
1373
|
-
Curses.curs_set(1) # Clear residual cursor
|
1374
|
-
Curses.curs_set(0) # ...from editing files
|
1402
|
+
Curses.curs_set(1); Curses.curs_set(0) # Clear residual cursor from editing files
|
1375
1403
|
@tag = false # Clear tag pattern
|
1376
1404
|
lsall_old = @lsall
|
1377
1405
|
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.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-11-
|
11
|
+
date: 2021-11-28 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.3: Bug fix with ''ls --all''.'
|
37
37
|
email: g@isene.com
|
38
38
|
executables:
|
39
39
|
- rtfm
|