rtfm-filemanager 1.5.7 → 1.6.1

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 +54 -28
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a49a040725552d436e49d4b6494f1149d7f68e7968828ae06560fb22739bb85
4
- data.tar.gz: bbabbb7170a40116614dc71773e1f27a85c55166cdbfdb0a2e80b57503ab5269
3
+ metadata.gz: eec58d3f67b9f90b410e19feb4c20b371b3c88848e8ae0f28714334d44073d0b
4
+ data.tar.gz: 8a8d00641beaf0ca58bc86d9f9a3f7b4cbde9e2a933db4b0475b363d1b01b82e
5
5
  SHA512:
6
- metadata.gz: b1e6390be98bda0f9c1c98f92bfe684dd806b69f009f6c9e7aebaa79f61794b393a79f05354be4ba044a70c0d97dd9964ed279f3580a17680aab8b8d4d77e92d
7
- data.tar.gz: a8df04a0d855f44a3fad70ca886f4174d1e6ff01322222965eb57d91cb143d38e9d9b70947d2d880d61f7425e2459434b560de2067fc63fe2768c8c5685c8cea
6
+ metadata.gz: 973f0a7d88305a6a85b66e60a84dcb711b797dbc21f368b3291b8b280523cc907a75ab849bc1a3911092412df83c0fe73c872d34135f10a4a1d3e8885c39ea17
7
+ data.tar.gz: 4ab826f74b772840961507f3a6ab401e142c6eaa629016acecedf0efb87418187f34cb6153c7fd9c028614a321ce6b225ef7652e0a11da72246a7e8725e62064
data/bin/rtfm CHANGED
@@ -242,7 +242,7 @@ def getchr # PROCESS KEY PRESSES
242
242
  # Note: Curses.getch blanks out @w_t
243
243
  # @w_l.getch makes Curses::KEY_DOWN etc not work
244
244
  # Therefore resorting to the generic method
245
- c = STDIN.getch(min: 0, time: 5)
245
+ c = STDIN.getch(min: 0, time: 1)
246
246
  case c
247
247
  when "\e" # ANSI escape sequences
248
248
  case $stdin.getc
@@ -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)")
@@ -515,6 +523,7 @@ def main_getkey # GET KEY FROM USER
515
523
  end
516
524
  @w_r.update = true
517
525
  @orderchange = true
526
+ @change_tag = true
518
527
  when 'i' # Invert the order/sorting of directory views
519
528
  case @lsinvert
520
529
  when ""
@@ -526,6 +535,7 @@ def main_getkey # GET KEY FROM USER
526
535
  end
527
536
  @w_r.update = true
528
537
  @orderchange = true
538
+ @change_tag = true
529
539
  when 'O' # Show the Ordering in the bottom window (the full ls command)
530
540
  w_b_info(" Full 'ls' command: ls <@s> #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}")
531
541
  when 'G' # Git status for selected item or current dir
@@ -564,11 +574,22 @@ def main_getkey # GET KEY FROM USER
564
574
  when 'S' # Show comprehensive system info
565
575
  begin
566
576
  @w_r.pager_cmd = ""
567
- uname = `uname -o`.chop + " "
568
- uname += `uname -r`.chop + " "
569
- uname += `uname -v`.chop + " "
570
- uname += `uname -p` + "\n"
577
+ uname = `uname -o`.chomp + " "
578
+ uname += `uname -r`.chomp + " "
579
+ uname += `uname -v`.chomp + " "
580
+ uname += `uname -p`.chomp + " "
581
+ uname += `awk -F '"' '/PRETTY/ {print $2}' /etc/os-release` + "\n"
571
582
  text = [[253, 1, uname]]
583
+ system = "Shell & Terminal: " + `echo $SHELL`.sub(/.*\//, '').chomp + ", " + `echo $TERM`.chomp + " "
584
+ packages = `pacman -Q | wc -l`.chomp
585
+ packages = `dpkg-query -l | grep -c '^.i'`.chomp if packages == "0"
586
+ packages = "Unrecognized" if packages == "0"
587
+ system += "Packages: " + packages + "\n"
588
+ system += "Desktop: " + `awk '/^DesktopNames/' /usr/share/xsessions/* | sed 's/DesktopNames=//g' | \\
589
+ sed 's/\\;/\\n/g' | sed '/^$/d' | sort -u | sed ':a;N;$!ba;s/\\n/, /g'`.chomp + "/"
590
+ system += `grep 'gtk-theme-name' ~/.config/gtk-3.0/* | sed 's/gtk-theme-name=//g' | \\
591
+ sed 's/-/ /g'`.sub(/.*:/, '') + "\n"
592
+ text += [[251, 0, system]]
572
593
  cpu = "CPUs = " + `nproc`.chop + " "
573
594
  cpuinfo = `lscpu`
574
595
  cpu += cpuinfo[/^.*Model name:\s*(.*)/, 1] + " "
@@ -594,7 +615,7 @@ def main_getkey # GET KEY FROM USER
594
615
  image_show("clear") if @image; @image = false
595
616
  @w_r.update = true
596
617
  @w_b.update = true
597
- when 'TAB' # Start paging
618
+ when 'TAB' # Start paging/Down one page
598
619
  if @w_r.pager == 1 and @w_r.pager_cmd != ""
599
620
  @w_r.text = `#{@w_r.pager_cmd} 2>/dev/null`
600
621
  end
@@ -627,7 +648,7 @@ def main_getkey # GET KEY FROM USER
627
648
  @index = m[0] unless m == []
628
649
  @index = 0 if @searched == ""
629
650
  @w_r.update = true
630
- when 'n'
651
+ when 'n' # Jump to next occurence of search (after '/')
631
652
  l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
632
653
  m = l.each_index.select{|n| l[n] =~ /#{@searched}/}
633
654
  i = m.find { |n| n > @index }
@@ -637,7 +658,7 @@ def main_getkey # GET KEY FROM USER
637
658
  @index = i
638
659
  end
639
660
  @w_r.update = true
640
- when 'N'
661
+ when 'N' # Jump to previous occurence of search (after '/')
641
662
  l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
642
663
  m = l.each_index.select{|n| l[n] =~ /#{@searched}/}.reverse
643
664
  i = m.find { |n| n < @index }
@@ -654,7 +675,7 @@ def main_getkey # GET KEY FROM USER
654
675
  when ';' # Show command history
655
676
  w_r_info("Command history (latest on top):\n\n" + @history.join("\n"))
656
677
  @w_b.update = true
657
- when 'y', 'Y'
678
+ when 'y', 'Y' # Copy path of selected item
658
679
  if @selected == nil
659
680
  w_b_info(" No selected item path to copy")
660
681
  else
@@ -1279,6 +1300,7 @@ def w_b_exec(cmd) # EXECUTE COMMAND FROM @W_B
1279
1300
  pager_show
1280
1301
  @w_r.update = false
1281
1302
  end
1303
+ @change_tag = true
1282
1304
  }
1283
1305
  rescue
1284
1306
  w_b_info(" Failed to execute command (#{cmd})")
@@ -1312,9 +1334,7 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
1312
1334
  @w_t.fg, @w_t.bg = 232, 249
1313
1335
  @w_t.attr = Curses::A_BOLD
1314
1336
  @w_b.fg, @w_b.bg = 250, 238
1315
- @w_t.update = true
1316
1337
  @w_b.update = true
1317
- @w_l.update = true
1318
1338
  @w_r.update = true
1319
1339
  @w_r.pager = 0
1320
1340
  @w_r.pager_more = false
@@ -1324,13 +1344,14 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
1324
1344
  tagged_info
1325
1345
  @w_r.update = false
1326
1346
  end
1347
+ @change = true
1348
+ @change_tag = true
1327
1349
  loop do # INNER, CORE LOOP
1328
1350
  begin # Jump to home dir if current dir is externally removed
1329
1351
  Dir.pwd
1330
1352
  rescue
1331
1353
  Dir.chdir
1332
1354
  end
1333
- system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
1334
1355
  ls_cmd = "ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}" # Get files in current directory
1335
1356
  @files = `#{ls_cmd} 2>/dev/null`.split("\n")
1336
1357
  ls_cmd += %q[ -lhgG --time-style="long-iso" | awk '{printf "%s%12s%6s%6s%5s", $1,$4,$5,$3,$2 "\n"}']
@@ -1350,28 +1371,33 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
1350
1371
  @index = @files.index(@selected)
1351
1372
  @orderchange = false
1352
1373
  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
1374
+ @index = @files.index(@selected) if @lsall != lsall_old # Change in showing all items must be handled
1375
+ @index = index_old if @files.index(@selected) == nil # If item no longer is shown
1376
+ @min_index = 0
1377
+ @max_index = @files.size - 1
1378
+ @index = @max_index if @index > @max_index # If deleted many items
1379
+ @index = 0 if @index < 0
1380
+ @selected = @files[@index] # Get text of selected item
1381
+ sel_old = @selected_safe
1382
+ @selected_safe = "\"#{@selected}\"" # Make it safe for commands
1383
+ @selected_safe == sel_old ? @change = false : @change = true
1384
+ @change = true if @change_tag; @change_tag = false
1385
+ if @change
1386
+ system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
1387
+ # Top window (info line)
1388
+ w_t_info
1389
+ @w_l.setpos(0,0)
1390
+ list_dir(true)
1391
+ @w_l.refresh
1392
+ end
1363
1393
  # Bottom window (command line) Before @w_r to avoid image dropping out on startup
1364
1394
  w_b_info(nil) if @w_b.update
1365
1395
  # Left and right windows (browser & content viewer)
1366
- @w_l.setpos(0,0)
1367
- list_dir(true)
1368
- @w_l.refresh
1369
1396
  if @w_r.update and @preview
1370
1397
  w_r_show
1371
1398
  @w_r.fg = 255
1372
1399
  end
1373
- Curses.curs_set(1) # Clear residual cursor
1374
- Curses.curs_set(0) # ...from editing files
1400
+ Curses.curs_set(1); Curses.curs_set(0) # Clear residual cursor from editing files
1375
1401
  @tag = false # Clear tag pattern
1376
1402
  lsall_old = @lsall
1377
1403
  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.7
4
+ version: 1.6.1
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-17 00:00:00.000000000 Z
11
+ date: 2021-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -33,8 +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.7: Fixed glitch in right window when border is set to
37
- true.'
36
+ other features. New in 1.6.1: Minor bug fixes.'
38
37
  email: g@isene.com
39
38
  executables:
40
39
  - rtfm