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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rtfm +55 -27
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 76b2a06eed27b94c49241cf19852700fec15b25bfb014ff1d7ec2987941216b4
4
- data.tar.gz: 5f1481e30db731e4ec70bef431ef09a925bb9e7bee3232f0299e6ee2ea06bf5f
3
+ metadata.gz: fe523094be65df19e83e654f585e56bb27444ff5c1e8a5e42efca2610b32b31d
4
+ data.tar.gz: a4e762c55ddff9c21b111cddce746c332cc4753f6e67086487b989370ebe3a27
5
5
  SHA512:
6
- metadata.gz: 2721308d0dcf5f00b3e81d85d26ddb5b95a6ae8cb2e3d7edf02db51561be2a5fef65e42472979dd8a7b63f2578778dc9d85d1b13b06fcbfbb309bd67d0e4057c
7
- data.tar.gz: 1c5791edb0a0b10bb40acf66e202cb4145bdf3e8494ef04a101294270e69c208e7f37853b22c76e346d039426ea3b5cba3c0e87224a42fea8264b198e201e1d9
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
- Dir.chdir(File.dirname(File.readlink(@selected)))
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`.chop + " "
568
- uname += `uname -r`.chop + " "
569
- uname += `uname -v`.chop + " "
570
- uname += `uname -p` + "\n"
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 = @files.index(@selected) if @lsall != lsall_old # Change in showing all items must be handled
1354
- @index = index_old if @files.index(@selected) == nil # If item no longer is shown
1355
- @min_index = 0
1356
- @max_index = @files.size - 1
1357
- @index = @max_index if @index > @max_index # If deleted many items
1358
- @index = 0 if @index < 0
1359
- @selected = @files[@index] # Get text of selected item
1360
- @selected_safe = "\"#{@selected}\"" # Make it safe for commands
1361
- # Top window (info line)
1362
- w_t_info
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.5.9
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-19 00:00:00.000000000 Z
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.5.9: Less resources needed.'
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