rtfm-filemanager 7.3.2 → 7.3.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 +53 -13
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 569164f3c97c0f0bdb82f942745574d135471984648f7abfa9bdb59a7172b9d5
|
|
4
|
+
data.tar.gz: 7753dae5080cf46b422f73cc9fcf70f5cd962e8d5a0c66bcac52eaff39dbd39b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ea542ce3837d322bfd9d93ba98edac063f89ae8b8c3447ceb6f444ddd84abd362949696a25895a77eed8cecb28ed1917ab06d3e75a2635cbdabad899aa491cdc
|
|
7
|
+
data.tar.gz: f3b24e4b77de0d0b319d8b14d264f820292acb3c7739d7f52c8692d6da535eb7a6251c5c97d551d575299c46bac40411a98532203b2f8c1d485dca1bb440b1f9
|
data/bin/rtfm
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# get a great understanding of the code itself by simply sending
|
|
19
19
|
# or pasting this whole file into you favorite AI for coding with
|
|
20
20
|
# a prompt like this: "Help me understand every part of this code".
|
|
21
|
-
@version = '7.3.
|
|
21
|
+
@version = '7.3.3' # Performance optimization and UTF-16 support
|
|
22
22
|
|
|
23
23
|
# SAVE & STORE TERMINAL {{{1
|
|
24
24
|
ORIG_STTY = `stty -g`.chomp
|
|
@@ -1043,10 +1043,12 @@ end
|
|
|
1043
1043
|
# MAIN GETKEY FOR USER INPUT {{{2
|
|
1044
1044
|
def getkey # {{{3
|
|
1045
1045
|
chr = getchr(1)
|
|
1046
|
-
|
|
1047
|
-
#
|
|
1048
|
-
|
|
1049
|
-
|
|
1046
|
+
|
|
1047
|
+
# Only check image redraw when idle (no keypress) to avoid delays during active use
|
|
1048
|
+
if chr.nil? && @showimage
|
|
1049
|
+
check_image_redraw
|
|
1050
|
+
end
|
|
1051
|
+
|
|
1050
1052
|
return unless chr
|
|
1051
1053
|
|
|
1052
1054
|
# Don't clear image here - let render system handle it when @pR.update is true
|
|
@@ -1065,6 +1067,7 @@ end
|
|
|
1065
1067
|
|
|
1066
1068
|
# BASIC KEYS {{{2
|
|
1067
1069
|
def show_help # {{{3
|
|
1070
|
+
clear_image
|
|
1068
1071
|
help_info
|
|
1069
1072
|
end
|
|
1070
1073
|
|
|
@@ -1146,6 +1149,7 @@ def refresh_all # {{{3
|
|
|
1146
1149
|
end
|
|
1147
1150
|
|
|
1148
1151
|
def show_config
|
|
1152
|
+
clear_image
|
|
1149
1153
|
@pR.say('Configuration'.u.fg(254) + ":\n\n" + @conf.fg(249))
|
|
1150
1154
|
end
|
|
1151
1155
|
|
|
@@ -2242,6 +2246,7 @@ end
|
|
|
2242
2246
|
|
|
2243
2247
|
# FILE COMPARISON {{{2
|
|
2244
2248
|
def compare_files # {{{3
|
|
2249
|
+
clear_image
|
|
2245
2250
|
if @tagged.length == 0
|
|
2246
2251
|
@pB.say("No files tagged for comparison. Tag 2 files with 't'".fg(196))
|
|
2247
2252
|
return
|
|
@@ -3265,12 +3270,15 @@ def delete_items # {{{3
|
|
|
3265
3270
|
|
|
3266
3271
|
tagged_info
|
|
3267
3272
|
|
|
3273
|
+
# Clear image before showing warning text
|
|
3274
|
+
clear_image
|
|
3275
|
+
|
|
3268
3276
|
# Add deletion warning to the right pane
|
|
3269
3277
|
warning_text = "\n" + "=" * 50 + "\n"
|
|
3270
3278
|
action = @trash ? 'Move to Trash' : 'PERMANENT DELETE'
|
|
3271
3279
|
action_color = @trash ? 220 : 196
|
|
3272
3280
|
warning_text << action.fg(action_color).b + "\n\n"
|
|
3273
|
-
|
|
3281
|
+
|
|
3274
3282
|
if @trash
|
|
3275
3283
|
warning_text << "Items will be moved to:\n".fg(249)
|
|
3276
3284
|
warning_text << " ~/.rtfm/trash/\n".fg(240)
|
|
@@ -3280,9 +3288,9 @@ def delete_items # {{{3
|
|
|
3280
3288
|
warning_text << "Files will be permanently removed\n".fg(196)
|
|
3281
3289
|
warning_text << "This action CANNOT be undone!\n".fg(196).b
|
|
3282
3290
|
end
|
|
3283
|
-
|
|
3291
|
+
|
|
3284
3292
|
warning_text << "\n" + "Press " + "y".fg(156).b + " to confirm, any other key to cancel".fg(249)
|
|
3285
|
-
|
|
3293
|
+
|
|
3286
3294
|
@pR.text << warning_text
|
|
3287
3295
|
@pR.refresh
|
|
3288
3296
|
|
|
@@ -3643,8 +3651,9 @@ end
|
|
|
3643
3651
|
|
|
3644
3652
|
# GIT/HASH/OPENAI {{{2
|
|
3645
3653
|
def git_status # {{{3
|
|
3654
|
+
clear_image
|
|
3646
3655
|
@pR.clear
|
|
3647
|
-
|
|
3656
|
+
|
|
3648
3657
|
# Check if we're in a git repository
|
|
3649
3658
|
unless Dir.exist?('.git') || system('git rev-parse --git-dir > /dev/null 2>&1')
|
|
3650
3659
|
@pR.say("Not a Git Repository".b.fg(196) + "\n\n" + "This directory is not under Git version control.".fg(240))
|
|
@@ -3975,6 +3984,7 @@ end
|
|
|
3975
3984
|
|
|
3976
3985
|
# SYSTEM SHORTCUTS {{{2
|
|
3977
3986
|
def system_info # {{{3
|
|
3987
|
+
clear_image
|
|
3978
3988
|
text = "SYSTEM INFORMATION".b.fg(156) + " - " + Time.now.strftime("%Y-%m-%d %H:%M:%S").fg(249) + "\n"
|
|
3979
3989
|
text << "=" * 50 + "\n\n"
|
|
3980
3990
|
|
|
@@ -4812,7 +4822,9 @@ def render # RENDER ALL PANES {{{2
|
|
|
4812
4822
|
|
|
4813
4823
|
# RIGHT pane (or Preview pane in dual-pane mode) {{{3
|
|
4814
4824
|
if @pR.update && @preview
|
|
4815
|
-
|
|
4825
|
+
# Actually clear the image overlay when rendering new content
|
|
4826
|
+
showimage('clear') if @image
|
|
4827
|
+
@image = false
|
|
4816
4828
|
righttext = @pR.text
|
|
4817
4829
|
|
|
4818
4830
|
# In dual-pane mode, construct full path from active pane
|
|
@@ -5320,8 +5332,25 @@ def open_selected(html = nil) # OPEN SELECTED FILE {{{2
|
|
|
5320
5332
|
end
|
|
5321
5333
|
return
|
|
5322
5334
|
end
|
|
5323
|
-
#
|
|
5324
|
-
|
|
5335
|
+
# Check if file is text (UTF-8, UTF-16, or other text encodings)
|
|
5336
|
+
is_text_file = false
|
|
5337
|
+
if !@selected&.match(@pdffile) && File.size(@selected) < 1_000_000
|
|
5338
|
+
sample = File.read(@selected, 1024) rescue nil
|
|
5339
|
+
if sample
|
|
5340
|
+
# Try UTF-8 first
|
|
5341
|
+
if sample.force_encoding('UTF-8').valid_encoding?
|
|
5342
|
+
is_text_file = true
|
|
5343
|
+
# Try UTF-16LE
|
|
5344
|
+
elsif sample.force_encoding('UTF-16LE').valid_encoding?
|
|
5345
|
+
is_text_file = true
|
|
5346
|
+
# Try UTF-16BE
|
|
5347
|
+
elsif sample.force_encoding('UTF-16BE').valid_encoding?
|
|
5348
|
+
is_text_file = true
|
|
5349
|
+
end
|
|
5350
|
+
end
|
|
5351
|
+
end
|
|
5352
|
+
|
|
5353
|
+
if is_text_file
|
|
5325
5354
|
# Set flag to prevent SIGWINCH from refreshing during editor
|
|
5326
5355
|
@external_program_running = true
|
|
5327
5356
|
# Save terminal state before launching editor
|
|
@@ -5655,6 +5684,16 @@ def showcontent # SHOW CONTENTS IN THE RIGHT WINDOW {{{2
|
|
|
5655
5684
|
@pR.update = false
|
|
5656
5685
|
end
|
|
5657
5686
|
|
|
5687
|
+
def clear_image(skip_actual_clear: false) # HELPER TO CLEAR CURRENT IMAGE {{{2
|
|
5688
|
+
return unless @image
|
|
5689
|
+
# For operations that immediately render text over image, skip the slow clear
|
|
5690
|
+
# The text pane will cover the image overlay anyway
|
|
5691
|
+
unless skip_actual_clear
|
|
5692
|
+
showimage('clear')
|
|
5693
|
+
end
|
|
5694
|
+
@image = false
|
|
5695
|
+
end
|
|
5696
|
+
|
|
5658
5697
|
def showimage(image) # SHOW THE SELECTED IMAGE IN THE RIGHT WINDOW {{{2
|
|
5659
5698
|
# Pass 'clear' to clear the window for previous image
|
|
5660
5699
|
return unless @showimage
|
|
@@ -5717,9 +5756,10 @@ def marks_info # SHOW MARKS IN RIGHT WINDOW {{{2
|
|
|
5717
5756
|
end
|
|
5718
5757
|
|
|
5719
5758
|
def tagged_info # SHOW THE LIST OF TAGGED ITEMS IN @pR {{{2
|
|
5759
|
+
clear_image
|
|
5720
5760
|
info = "Tagged Items".b.fg(204) + "\n"
|
|
5721
5761
|
info << "=" * 50 + "\n\n"
|
|
5722
|
-
|
|
5762
|
+
|
|
5723
5763
|
# Summary information
|
|
5724
5764
|
size_mb = (@tagsize.to_f / 1_000_000).round(2)
|
|
5725
5765
|
info << "Summary:\n".fg(226)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rtfm-filemanager
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.3.
|
|
4
|
+
version: 7.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Geir Isene
|
|
@@ -67,7 +67,7 @@ dependencies:
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '7.4'
|
|
69
69
|
description: |-
|
|
70
|
-
RTFM v7.3.
|
|
70
|
+
RTFM v7.3.3: Performance optimization for image operations and UTF-16 file support.
|
|
71
71
|
A full featured terminal browser with syntax highlighted files, images shown in the terminal, videos thumbnailed, etc. Features include remote SSH/SFTP browsing, interactive SSH shell, comprehensive undo system, bookmarks, and much more. You can bookmark and jump around easily, delete, rename, copy, symlink and move files. RTFM is one of the most feature-packed terminal file managers.
|
|
72
72
|
email: g@isene.com
|
|
73
73
|
executables:
|