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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f6bc5298e93ba60c9624f256fb1682476a581e6fdfb80f3995beba600ea20eb
4
- data.tar.gz: 36deb1eeacea20c36d354b6c221a41efb7d8f9ee3f093ae8a2905d730e6ad5ca
3
+ metadata.gz: '018b8cadf670850bb5da46914425bf65bed256bf533619cde79a86981fedd86d'
4
+ data.tar.gz: 8108aecb15519303db63c76ff43fbf4cf3bedc328ddfb5feaaed9f976cbdb109
5
5
  SHA512:
6
- metadata.gz: ccf76a6e2c2f7c2f3760a042a1a445619f2fa6688edd0f506b74c215b98feddcd63af8ef98c2f0d9f914af2339d24336b250718af86b205f60e9e2077eedac23
7
- data.tar.gz: d350f3eca6a275a5afb052306a3ac15e45f492bda2b47a12b52be9b3b5e11e4ba19b00a73980a5d9be2cd6cff6ad59cd11f624b713fb1d22cb26b3ab24bf6c06
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
+ | ![AI analyzing a PDF](img/screenshot-ai-file.png) | ![AI chat mode](img/screenshot-ai-chat.png) |
37
+ | **Syntax Highlighting** | **System Information** |
38
+ | ![Ruby code highlighting](img/screenshot-syntax.png) | ![System stats (press S)](img/screenshot-system.png) |
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.0' # Comprehensive documentation release
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, xls2csv, catppt - Viewing older MS Office formats
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
- cache_key = "#{dir}:#{ls_options_with_long}:#{dir_mtime}"
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
@@ -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
@@ -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.0
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-04 00:00:00.000000000 Z
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.0: Comprehensive documentation release with man page, guides, and examples.
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: