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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/bin/rtfm +22 -3
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7d97437ca84138aaa2ad3fc03b54c2d607f39cda4e1d6fead69bef9d83278a9d
|
|
4
|
+
data.tar.gz: feb00468052819fdbb1c7c109406db875eba2be13c98273f0d16cbd90fb968ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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
|
-
|
|
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
|