rtfm-filemanager 8.5.0 → 8.6.0

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/bin/rtfm +22 -3
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f884960bd43345ca3368b1213be174efecf43943d20be674d722b70b848a7edf
4
- data.tar.gz: 5c3b0d4c294ee89015df17b5b5adc4ba78b7080fee34fa5825d1a7a88f92531c
3
+ metadata.gz: 7d97437ca84138aaa2ad3fc03b54c2d607f39cda4e1d6fead69bef9d83278a9d
4
+ data.tar.gz: feb00468052819fdbb1c7c109406db875eba2be13c98273f0d16cbd90fb968ce
5
5
  SHA512:
6
- metadata.gz: ef00e7d08a4b579bb5a989cdbac6c30d02a77462401faeddaf30de42a464ccbbb547dcca7f369d050f0e64b83a8be8e4930eb38500d548bd010f4b77815f72c3
7
- data.tar.gz: c063661025b9887def4c49f146042a78cc6dd3cf0dbc7fd5b42b929f3219fc64e5e79412bb2a6afa9cc2cfaa3188cf7f2f5380102573ecd4cd5ef0f07bd56544
6
+ metadata.gz: 59981f04215c73a44f4821d1dbf3dddb74db5590521e746567c0970c157c96aca84b48c9c2ee3afa20037537734937e7b59c56b9a23c2cee8d947e67c0cefa2f
7
+ data.tar.gz: ac25468b6d11effefb11b5debd5e006c9d11aa689e623f638d5ee35a06e798b93343481b8b8b4f7f3950ae7acf046f117cdaecc37de43e050abc2b2a39100de2
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
+ ## [8.6.0] - 2026-05-19
9
+
10
+ ### Added
11
+ - **`Terminal=true` in `.desktop` files honored** - When opening a file, if the resolved `.desktop` file declares `Terminal=true`, RTFM treats the program as interactive even when it isn't in `@interactive`. Newly installed TUI tools now "just work" without editing config. The `@interactive` whitelist still wins for programs whose `.desktop` files lie about being terminal apps
12
+
13
+ ### Fixed
14
+ - **LS_COLORS fallback via `dircolors -b`** - When `$LS_COLORS` is unset or empty (cron launches, minimal login envs, some macOS setups), RTFM now seeds it from `dircolors -b` at startup so `ls --color` still emits ANSI. Directory listings stay colored in environments that don't export LS_COLORS
15
+
8
16
  ## [8.5.0] - 2026-05-19
9
17
 
10
18
  ### Added
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 = '8.5.0' # Crash log, persistent per-dir cursor, Claude AI, non-blocking `:` commands
21
+ @version = '8.6.0' # LS_COLORS fallback (dircolors -b) + Terminal=true in .desktop honored
22
22
 
23
23
  # SAVE & STORE TERMINAL {{{1
24
24
  ORIG_STTY = `stty -g`.chomp
@@ -59,6 +59,18 @@ rescue LoadError
59
59
  # bootsnap not installed — proceed without compile cache
60
60
  end
61
61
 
62
+ # LS_COLORS FALLBACK {{{1
63
+ # RTFM relies on `ls --color` ANSI output for left/right pane colors, and
64
+ # `ls` itself reads $LS_COLORS. If the user's shell never exports it (cron
65
+ # launches, minimal login environments, some macOS setups) the listing
66
+ # comes back colorless. Seed it from `dircolors -b` when available.
67
+ if (ENV['LS_COLORS'].nil? || ENV['LS_COLORS'].empty?) && !`which dircolors 2>/dev/null`.strip.empty?
68
+ dc = `dircolors -b 2>/dev/null`
69
+ if (m = dc.match(/LS_COLORS='([^']*)'/))
70
+ ENV['LS_COLORS'] = m[1]
71
+ end
72
+ end
73
+
62
74
  # ENCODING {{{1
63
75
  # encoding: utf-8
64
76
 
@@ -6508,11 +6520,18 @@ def get_interactive_program(file_path) # HELPER FOR OPEN_SELECTED TO USE @intera
6508
6520
  if desktop_path
6509
6521
  content = File.read(desktop_path)
6510
6522
  exec_line = content[/^Exec=(.*)$/m, 1]
6523
+ # Honor Terminal=true in the .desktop file: any app declaring
6524
+ # itself a terminal program is treated as interactive even if
6525
+ # the user hasn't manually added it to @interactive. Lets newly
6526
+ # installed TUI tools "just work" without editing config.
6527
+ terminal_true = content =~ /^Terminal\s*=\s*true\b/i
6511
6528
  if exec_line
6512
- # Extract the program name (first word, remove path)
6513
6529
  prog = exec_line.split.first
6514
6530
  prog = File.basename(prog) if prog
6515
- return prog if prog && inter_list.include?(prog)
6531
+ if prog
6532
+ return prog if inter_list.include?(prog)
6533
+ return prog if terminal_true
6534
+ end
6516
6535
  end
6517
6536
  end
6518
6537
  end
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: 8.5.0
4
+ version: 8.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene