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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rtfm +50 -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: 4c3a3d9a904767a6ef5decf4f4924b624cea2c35c4928000084d48b318b58424
4
+ data.tar.gz: c9f94ffc2fbdac8a6be651cb90314d9042a0e54fff5031f60b8b266605fb748c
5
5
  SHA512:
6
- metadata.gz: 2721308d0dcf5f00b3e81d85d26ddb5b95a6ae8cb2e3d7edf02db51561be2a5fef65e42472979dd8a7b63f2578778dc9d85d1b13b06fcbfbb309bd67d0e4057c
7
- data.tar.gz: 1c5791edb0a0b10bb40acf66e202cb4145bdf3e8494ef04a101294270e69c208e7f37853b22c76e346d039426ea3b5cba3c0e87224a42fea8264b198e201e1d9
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
- 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,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`.chop + " "
568
- uname += `uname -r`.chop + " "
569
- uname += `uname -v`.chop + " "
570
- uname += `uname -p` + "\n"
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 = @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
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.5.9
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-19 00:00:00.000000000 Z
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.5.9: Less resources needed.'
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