rtfm-filemanager 7.4.0 → 7.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +89 -0
- data/bin/rtfm +14 -8
- data/docs/getting-started.md +8 -0
- data/docs/troubleshooting.md +4 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '018b8cadf670850bb5da46914425bf65bed256bf533619cde79a86981fedd86d'
|
|
4
|
+
data.tar.gz: 8108aecb15519303db63c76ff43fbf4cf3bedc328ddfb5feaaed9f976cbdb109
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8b2bf86a29246f99523f33a4d0ce2350acf541eae64dcdfe98be8f0623ec0869b3f534df0e6dda28c9e22f762c395ccfaba5d212ea2abe256b791c1c330422f3
|
|
7
|
+
data.tar.gz: 149c13f402fd5a757d427cd5c93dc450baaf9a5bf002cc40594a09a48c721ad076b3ffca56308cf0731d35ba713e9c429ed4853e38db1631becf751e3cd56ada
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,14 @@ All notable changes to RTFM will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [7.4.1] - 2025-11-04
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Directory cache invalidation** - Cache now includes file count in addition to mtime
|
|
12
|
+
- Fixes issue where files created by external processes didn't appear
|
|
13
|
+
- Cache automatically invalidates when files are added or deleted
|
|
14
|
+
- More reliable detection of directory changes across filesystems
|
|
15
|
+
|
|
8
16
|
## [7.4.0] - 2025-11-03
|
|
9
17
|
|
|
10
18
|
### Documentation
|
data/README.md
CHANGED
|
@@ -29,6 +29,16 @@ After first run, use `r` command to launch RTFM and exit into your current direc
|
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
32
|
+
## Screenshots
|
|
33
|
+
|
|
34
|
+
| OpenAI File Analysis | Interactive AI Chat |
|
|
35
|
+
|:---:|:---:|
|
|
36
|
+
|  |  |
|
|
37
|
+
| **Syntax Highlighting** | **System Information** |
|
|
38
|
+
|  |  |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
32
42
|
## Table of Contents
|
|
33
43
|
|
|
34
44
|
- [Key Features](#key-features)
|
|
@@ -36,6 +46,7 @@ After first run, use `r` command to launch RTFM and exit into your current direc
|
|
|
36
46
|
- [Keyboard Reference](#keyboard-reference)
|
|
37
47
|
- [Remote SSH/SFTP Browsing](#remote-sshsftp-browsing)
|
|
38
48
|
- [Configuration](#configuration)
|
|
49
|
+
- [OpenAI Integration](#openai-integration)
|
|
39
50
|
- [Plugins](#plugins)
|
|
40
51
|
- [Image Display](#image-display)
|
|
41
52
|
- [RTFM vs Ranger](#rtfm-vs-ranger)
|
|
@@ -104,6 +115,17 @@ sudo apt install ruby-full x11-utils xdotool bat pandoc poppler-utils \
|
|
|
104
115
|
gem install rtfm-filemanager
|
|
105
116
|
```
|
|
106
117
|
|
|
118
|
+
#### ArchLinux/derivatives
|
|
119
|
+
```bash
|
|
120
|
+
sudo pacman -Syu ruby bat pandoc poppler odt2txt docx2txt unzip gnumeric catdoc w3m imagemagick ffmpegthumbnailer p7zip libreoffice-fresh
|
|
121
|
+
gem install rtfm-filemanager
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Note: catppt is not available in official repos, but RTFM will fall back to using LibreOffice's soffice for .ppt files. For xls2csv, use an AUR helper:
|
|
125
|
+
```
|
|
126
|
+
yay -Syu perl-xls2csv
|
|
127
|
+
```
|
|
128
|
+
|
|
107
129
|
#### macOS:
|
|
108
130
|
```bash
|
|
109
131
|
brew install ruby imagemagick w3m bat pandoc poppler
|
|
@@ -383,6 +405,73 @@ Configuration stored in `~/.rtfm/conf`
|
|
|
383
405
|
|
|
384
406
|
---
|
|
385
407
|
|
|
408
|
+
## OpenAI Integration
|
|
409
|
+
|
|
410
|
+
RTFM includes built-in AI features powered by OpenAI's API for intelligent file analysis and interactive assistance.
|
|
411
|
+
|
|
412
|
+
### Setup
|
|
413
|
+
|
|
414
|
+
1. **Get an API key:**
|
|
415
|
+
- Sign up at https://platform.openai.com/
|
|
416
|
+
- Generate an API key from your account settings
|
|
417
|
+
|
|
418
|
+
2. **Configure RTFM:**
|
|
419
|
+
Add your API key to `~/.rtfm/conf`:
|
|
420
|
+
```ruby
|
|
421
|
+
@ai = "sk-your-actual-api-key-here"
|
|
422
|
+
@aimodel = "gpt-4o-mini" # Optional: default model
|
|
423
|
+
@aicolor = 17 # Optional: chat pane background color
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
The `ruby-openai` gem is already included as a dependency when you install RTFM.
|
|
427
|
+
|
|
428
|
+
### Features
|
|
429
|
+
|
|
430
|
+
#### File Description (Press `I`)
|
|
431
|
+
|
|
432
|
+
Get an intelligent summary of any file or directory:
|
|
433
|
+
- **Files:** Purpose, code review (for source files), library documentation lookup
|
|
434
|
+
- **Directories:** Overview of structure and contents
|
|
435
|
+
- **Git-aware:** Includes recent changes if in a git repository
|
|
436
|
+
- **Smart analysis:** Automatically includes preview content for context
|
|
437
|
+
|
|
438
|
+
Example uses:
|
|
439
|
+
- Understand unfamiliar codebases quickly
|
|
440
|
+
- Get code review suggestions (bugs, style, improvements)
|
|
441
|
+
- Learn what libraries/APIs are being used
|
|
442
|
+
- See git diff explanations in plain language
|
|
443
|
+
|
|
444
|
+
#### Interactive Chat (Press `Ctrl-a`)
|
|
445
|
+
|
|
446
|
+
Start a conversational AI assistant specialized in:
|
|
447
|
+
- File and directory questions
|
|
448
|
+
- Shell command help and suggestions
|
|
449
|
+
- Terminal workflow assistance
|
|
450
|
+
- Programming and scripting guidance
|
|
451
|
+
|
|
452
|
+
The chat maintains context throughout your RTFM session, so follow-up questions work naturally.
|
|
453
|
+
|
|
454
|
+
### Configuration Options
|
|
455
|
+
|
|
456
|
+
```ruby
|
|
457
|
+
# Model selection (in ~/.rtfm/conf)
|
|
458
|
+
@aimodel = "gpt-4o-mini" # Fast, cost-effective (default)
|
|
459
|
+
@aimodel = "gpt-4o" # More capable, higher cost
|
|
460
|
+
@aimodel = "gpt-4-turbo" # Alternative high-end model
|
|
461
|
+
|
|
462
|
+
# Chat interface color
|
|
463
|
+
@aicolor = 17 # Dark blue background (default)
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### Cost & Privacy
|
|
467
|
+
|
|
468
|
+
- API calls cost money (typically $0.001-0.01 per request with gpt-4o-mini)
|
|
469
|
+
- File contents are sent to OpenAI when using `I` key
|
|
470
|
+
- No data is sent unless you explicitly press `I` or `Ctrl-a`
|
|
471
|
+
- Chat history persists only during your RTFM session
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
386
475
|
## Plugins
|
|
387
476
|
|
|
388
477
|
RTFM supports two types of plugins in `~/.rtfm/plugins/`:
|
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.4.
|
|
21
|
+
@version = '7.4.2' # LibreOffice soffice fallback for legacy MS Office formats + ArchLinux support
|
|
22
22
|
|
|
23
23
|
# SAVE & STORE TERMINAL {{{1
|
|
24
24
|
ORIG_STTY = `stty -g`.chomp
|
|
@@ -456,7 +456,7 @@ def display_welcome_message # {{{2
|
|
|
456
456
|
• docx2txt - Viewing MS Word docx files
|
|
457
457
|
• unzip - Viewing MS PowerPoint pptx files
|
|
458
458
|
• ssconvert (from gnumeric) - Viewing MS Excel xlsx files
|
|
459
|
-
• catdoc
|
|
459
|
+
• catdoc/xls2csv/catppt (with soffice fallback) - Viewing older MS Office formats
|
|
460
460
|
• w3m, ImageMagick - Viewing images
|
|
461
461
|
• ffmpegthumbnailer - Video thumbnails\n".fg(195)
|
|
462
462
|
@firstrun += "
|
|
@@ -464,11 +464,15 @@ def display_welcome_message # {{{2
|
|
|
464
464
|
@firstrun += "
|
|
465
465
|
• Linux (Debian/Ubuntu): Use apt
|
|
466
466
|
• Linux (Fedora/RHEL): Use dnf/yum
|
|
467
|
+
• Linux (ArchLinux): Use pacman
|
|
467
468
|
• macOS: Use Homebrew (brew)
|
|
468
469
|
• BSD: Use pkg or ports
|
|
469
470
|
|
|
470
471
|
For Ubuntu/Debian users, install all dependencies with:
|
|
471
472
|
sudo apt install ruby-full git libncurses-dev x11-utils xdotool bat pandoc poppler-utils odt2txt docx2txt unzip gnumeric catdoc w3m imagemagick ffmpegthumbnailer
|
|
473
|
+
|
|
474
|
+
For users of ArchLinux and derivatives, install all dependencies available outside of AUR with:
|
|
475
|
+
sudo pacman -Syu ruby git ncurses xdotool bat pandoc poppler odt2txt docx2txt unzip gnumeric catdoc w3m imagemagick ffmpegthumbnailer
|
|
472
476
|
|
|
473
477
|
Note: Package names may vary between platforms. The 'libncurses-dev' package is Linux-specific.".b.fg(87)
|
|
474
478
|
@firstrun += "\n\n
|
|
@@ -835,9 +839,9 @@ preview_specs = {
|
|
|
835
839
|
'docx' => "docx2txt @s -",
|
|
836
840
|
'xlsx' => "ssconvert -O 'separator= ' -T Gnumeric_stf:stf_assistant @s fd://1",
|
|
837
841
|
'pptx' => "unzip -qc @s | ruby -e '$stdin.each_line{ |i| i.force_encoding(\"ISO-8859-1\").scan(/<a:t>(.+?)<\\/a:t>/).each{ |j| puts j } }'",
|
|
838
|
-
'doc' => "catdoc @s 2>/dev/null",
|
|
839
|
-
'xls' => "xls2csv @s 2>/dev/null",
|
|
840
|
-
'ppt' => "catppt @s 2>/dev/null",
|
|
842
|
+
'doc' => "catdoc @s 2>/dev/null || soffice --headless --cat @s 2>/dev/null",
|
|
843
|
+
'xls' => "xls2csv @s 2>/dev/null || soffice --headless --cat @s 2>/dev/null",
|
|
844
|
+
'ppt' => "catppt @s 2>/dev/null || soffice --headless --cat @s 2>/dev/null",
|
|
841
845
|
# compressed archives
|
|
842
846
|
'zip' => "unzip -l @s",
|
|
843
847
|
'tar' => "tar -tvf @s",
|
|
@@ -4477,13 +4481,15 @@ def get_cached_dirlist(dir, ls_options, ls_options_with_long = nil) # {{{2
|
|
|
4477
4481
|
# Use ls_options_with_long for display, or fall back to ls_options
|
|
4478
4482
|
ls_options_with_long ||= ls_options
|
|
4479
4483
|
|
|
4480
|
-
# Generate cache key with directory mtime for automatic invalidation
|
|
4484
|
+
# Generate cache key with directory mtime AND file count for automatic invalidation
|
|
4485
|
+
# File count catches additions/deletions that may not update mtime immediately
|
|
4481
4486
|
# Include ls_options_with_long in cache key so toggling @lslong invalidates cache
|
|
4482
4487
|
begin
|
|
4483
4488
|
dir_mtime = File.mtime(dir).to_i
|
|
4484
|
-
|
|
4489
|
+
file_count = Dir.entries(dir).size
|
|
4490
|
+
cache_key = "#{dir}:#{ls_options_with_long}:#{dir_mtime}:#{file_count}"
|
|
4485
4491
|
rescue
|
|
4486
|
-
return nil # Can't cache if we can't get mtime
|
|
4492
|
+
return nil # Can't cache if we can't get mtime or file count
|
|
4487
4493
|
end
|
|
4488
4494
|
|
|
4489
4495
|
# Return cached result if available and fresh
|
data/docs/getting-started.md
CHANGED
|
@@ -21,6 +21,14 @@ sudo apt install ruby-full x11-utils xdotool bat pandoc poppler-utils \
|
|
|
21
21
|
gem install rtfm-filemanager
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
#### ArchLinux/derivatives
|
|
25
|
+
```bash
|
|
26
|
+
sudo pacman -Syu ruby xdotool bat pandoc poppler odt2txt docx2txt unzip \
|
|
27
|
+
gnumeric catdoc w3m imagemagick ffmpegthumbnailer tar gzip bzip2 xz unrar p7zip libreoffice-fresh
|
|
28
|
+
|
|
29
|
+
gem install rtfm-filemanager
|
|
30
|
+
```
|
|
31
|
+
|
|
24
32
|
### macOS
|
|
25
33
|
|
|
26
34
|
```bash
|
data/docs/troubleshooting.md
CHANGED
|
@@ -40,10 +40,13 @@ ruby --version
|
|
|
40
40
|
# Update Ruby (Ubuntu)
|
|
41
41
|
sudo apt install ruby-full
|
|
42
42
|
|
|
43
|
+
# Update Ruby (ArchLinux)
|
|
44
|
+
sudo pacman -Syu ruby
|
|
45
|
+
|
|
43
46
|
# Update Ruby (macOS)
|
|
44
47
|
brew install ruby
|
|
45
48
|
|
|
46
|
-
# Or use rbenv/rvm for version management
|
|
49
|
+
# Or use rbenv/rvm/asdf for version management
|
|
47
50
|
```
|
|
48
51
|
|
|
49
52
|
## Display Issues
|
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: 7.4.
|
|
4
|
+
version: 7.4.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: 2025-11-
|
|
11
|
+
date: 2025-11-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rcurses
|
|
@@ -67,7 +67,7 @@ dependencies:
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '7.4'
|
|
69
69
|
description: |-
|
|
70
|
-
RTFM v7.4.
|
|
70
|
+
RTFM v7.4.2: Added LibreOffice soffice fallback for legacy MS Office formats (.doc/.xls/.ppt) and comprehensive ArchLinux installation 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:
|