rtfm-filemanager 1.5.8 → 1.6.2

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 -28
  3. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb9c754c723123c8719d88c03d3f38b5cb21067713e816194eadf8ebe8448d35
4
- data.tar.gz: 125cb3fd81f9ce6c0bf1d6113ccddb53a529d148581fc8ff63fced3b6bef7b0e
3
+ metadata.gz: b9025b9871da578c238a2c28b3c9aa7d55ffe8d0065f5002c110c7f446dbfe3f
4
+ data.tar.gz: a817a49d43338f079a536a2e23eb1a35ce80331b11149b29c6c1afc1ac5e7fc4
5
5
  SHA512:
6
- metadata.gz: e86dbf15d58be6cc3a79eb2cfa961d383833b3acc65a83d31b39757f602aef20abf5badb0888e2e5ceac66d64867b8613101c201fae50d88cadf2342e295f16e
7
- data.tar.gz: 27ab77e3511bf2b01f648b1522008f88d005f33ba52be6bf1e8e3aed9cf546d4cff4204b1889a707307f7b255893c1cb45fd5d75044bb836eac3b9c333ae8f87
6
+ metadata.gz: cb32e4ecd39a4bb90f7c6aa43a300f4c81d6c743826eaf0f50aa7e65ce5dc34d5bd01b728156cc6a74710294b6a4e8c23feb1f4d4d9aa4e33092498a1f409333
7
+ data.tar.gz: 4ab0e07d49e807858f1adb2c93865f55b6199c6974c35490f7d457ef12dc278b0435e57f1196a3beb4b60a24fcd3d581ad2e28227b8606380e1a3ec25170b65c
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: 0.1)
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
@@ -563,12 +573,24 @@ def main_getkey # GET KEY FROM USER
563
573
  @w_b.update = false
564
574
  when 'S' # Show comprehensive system info
565
575
  begin
576
+ @w_r.clr
566
577
  @w_r.pager_cmd = ""
567
- uname = `uname -o`.chop + " "
568
- uname += `uname -r`.chop + " "
569
- uname += `uname -v`.chop + " "
570
- uname += `uname -p` + "\n"
578
+ uname = `uname -o`.chomp + " "
579
+ uname += `uname -r`.chomp + " "
580
+ uname += `uname -v`.chomp + " "
581
+ uname += `uname -p`.chomp + " "
582
+ uname += `awk -F '"' '/PRETTY/ {print $2}' /etc/os-release` + "\n"
571
583
  text = [[253, 1, uname]]
584
+ system = "Shell & Terminal: " + `echo $SHELL`.sub(/.*\//, '').chomp + ", " + `echo $TERM`.chomp + " "
585
+ packages = `pacman -Q 2>/dev/null | wc -l`.chomp
586
+ packages = `dpkg-query -l 2>/dev/null | grep -c '^.i'`.chomp if packages == "0"
587
+ packages = "Unrecognized" if packages == "0"
588
+ system += "Packages: " + packages + "\n"
589
+ system += "Desktop: " + `awk '/^DesktopNames/' /usr/share/xsessions/* | sed 's/DesktopNames=//g' | \\
590
+ sed 's/\\;/\\n/g' | sed '/^$/d' | sort -u | sed ':a;N;$!ba;s/\\n/, /g'`.chomp + "/"
591
+ system += `grep 'gtk-theme-name' ~/.config/gtk-3.0/* | sed 's/gtk-theme-name=//g' | \\
592
+ sed 's/-/ /g'`.sub(/.*:/, '') + "\n"
593
+ text += [[251, 0, system]]
572
594
  cpu = "CPUs = " + `nproc`.chop + " "
573
595
  cpuinfo = `lscpu`
574
596
  cpu += cpuinfo[/^.*Model name:\s*(.*)/, 1] + " "
@@ -594,7 +616,7 @@ def main_getkey # GET KEY FROM USER
594
616
  image_show("clear") if @image; @image = false
595
617
  @w_r.update = true
596
618
  @w_b.update = true
597
- when 'TAB' # Start paging
619
+ when 'TAB' # Start paging/Down one page
598
620
  if @w_r.pager == 1 and @w_r.pager_cmd != ""
599
621
  @w_r.text = `#{@w_r.pager_cmd} 2>/dev/null`
600
622
  end
@@ -627,7 +649,7 @@ def main_getkey # GET KEY FROM USER
627
649
  @index = m[0] unless m == []
628
650
  @index = 0 if @searched == ""
629
651
  @w_r.update = true
630
- when 'n'
652
+ when 'n' # Jump to next occurence of search (after '/')
631
653
  l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
632
654
  m = l.each_index.select{|n| l[n] =~ /#{@searched}/}
633
655
  i = m.find { |n| n > @index }
@@ -637,7 +659,7 @@ def main_getkey # GET KEY FROM USER
637
659
  @index = i
638
660
  end
639
661
  @w_r.update = true
640
- when 'N'
662
+ when 'N' # Jump to previous occurence of search (after '/')
641
663
  l = `ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}`.split
642
664
  m = l.each_index.select{|n| l[n] =~ /#{@searched}/}.reverse
643
665
  i = m.find { |n| n < @index }
@@ -654,7 +676,7 @@ def main_getkey # GET KEY FROM USER
654
676
  when ';' # Show command history
655
677
  w_r_info("Command history (latest on top):\n\n" + @history.join("\n"))
656
678
  @w_b.update = true
657
- when 'y', 'Y'
679
+ when 'y', 'Y' # Copy path of selected item
658
680
  if @selected == nil
659
681
  w_b_info(" No selected item path to copy")
660
682
  else
@@ -1279,6 +1301,7 @@ def w_b_exec(cmd) # EXECUTE COMMAND FROM @W_B
1279
1301
  pager_show
1280
1302
  @w_r.update = false
1281
1303
  end
1304
+ @change_tag = true
1282
1305
  }
1283
1306
  rescue
1284
1307
  w_b_info(" Failed to execute command (#{cmd})")
@@ -1312,9 +1335,7 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
1312
1335
  @w_t.fg, @w_t.bg = 232, 249
1313
1336
  @w_t.attr = Curses::A_BOLD
1314
1337
  @w_b.fg, @w_b.bg = 250, 238
1315
- @w_t.update = true
1316
1338
  @w_b.update = true
1317
- @w_l.update = true
1318
1339
  @w_r.update = true
1319
1340
  @w_r.pager = 0
1320
1341
  @w_r.pager_more = false
@@ -1324,13 +1345,14 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
1324
1345
  tagged_info
1325
1346
  @w_r.update = false
1326
1347
  end
1348
+ @change = true
1349
+ @change_tag = true
1327
1350
  loop do # INNER, CORE LOOP
1328
1351
  begin # Jump to home dir if current dir is externally removed
1329
1352
  Dir.pwd
1330
1353
  rescue
1331
1354
  Dir.chdir
1332
1355
  end
1333
- system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
1334
1356
  ls_cmd = "ls #{@lsbase} #{@lsall} #{@lsorder} #{@lsinvert} #{@lsuser}" # Get files in current directory
1335
1357
  @files = `#{ls_cmd} 2>/dev/null`.split("\n")
1336
1358
  ls_cmd += %q[ -lhgG --time-style="long-iso" | awk '{printf "%s%12s%6s%6s%5s", $1,$4,$5,$3,$2 "\n"}']
@@ -1350,28 +1372,33 @@ loop do # OUTER LOOP - CATCHING REFRESHES VIA 'r'
1350
1372
  @index = @files.index(@selected)
1351
1373
  @orderchange = false
1352
1374
  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
1375
+ @index = @files.index(@selected) if @lsall != lsall_old # Change in showing all items must be handled
1376
+ @index = index_old if @files.index(@selected) == nil # If item no longer is shown
1377
+ @min_index = 0
1378
+ @max_index = @files.size - 1
1379
+ @index = @max_index if @index > @max_index # If deleted many items
1380
+ @index = 0 if @index < 0
1381
+ @selected = @files[@index] # Get text of selected item
1382
+ sel_old = @selected_safe
1383
+ @selected_safe = "\"#{@selected}\"" # Make it safe for commands
1384
+ @selected_safe == sel_old ? @change = false : @change = true
1385
+ @change = true if @change_tag; @change_tag = false
1386
+ if @change
1387
+ system("printf \"\033]0;RTFM: #{Dir.pwd}\007\"") # Set Window title to path
1388
+ # Top window (info line)
1389
+ w_t_info
1390
+ @w_l.setpos(0,0)
1391
+ list_dir(true)
1392
+ @w_l.refresh
1393
+ end
1363
1394
  # Bottom window (command line) Before @w_r to avoid image dropping out on startup
1364
1395
  w_b_info(nil) if @w_b.update
1365
1396
  # Left and right windows (browser & content viewer)
1366
- @w_l.setpos(0,0)
1367
- list_dir(true)
1368
- @w_l.refresh
1369
1397
  if @w_r.update and @preview
1370
1398
  w_r_show
1371
1399
  @w_r.fg = 255
1372
1400
  end
1373
- Curses.curs_set(1) # Clear residual cursor
1374
- Curses.curs_set(0) # ...from editing files
1401
+ Curses.curs_set(1); Curses.curs_set(0) # Clear residual cursor from editing files
1375
1402
  @tag = false # Clear tag pattern
1376
1403
  lsall_old = @lsall
1377
1404
  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.8
4
+ version: 1.6.2
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-18 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: Made the application more responsive to window size
37
- changes.'
36
+ other features. New in 1.6.2: Bug fix in system info.'
38
37
  email: g@isene.com
39
38
  executables:
40
39
  - rtfm