rufio 0.61.0 → 0.63.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 +74 -18
- data/README.md +193 -150
- data/README_ja.md +331 -0
- data/examples/bookmarks.yml +14 -0
- data/examples/config.rb +68 -0
- data/examples/script_paths.yml +11 -0
- data/lib/rufio/application.rb +1 -1
- data/lib/rufio/bookmark_manager.rb +3 -3
- data/lib/rufio/bookmark_storage.rb +61 -60
- data/lib/rufio/config.rb +214 -0
- data/lib/rufio/config_loader.rb +144 -37
- data/lib/rufio/keybind_handler.rb +17 -9
- data/lib/rufio/script_config_loader.rb +27 -12
- data/lib/rufio/script_path_manager.rb +50 -89
- data/lib/rufio/tab_mode_manager.rb +106 -0
- data/lib/rufio/terminal_ui.rb +240 -114
- data/lib/rufio/version.rb +1 -1
- data/lib/rufio.rb +1 -0
- metadata +7 -14
- data/README_EN.md +0 -610
- data/config_example.rb +0 -88
- data/examples/config.yml +0 -8
- data/scripts/test_jobs/build_simulation.sh +0 -29
- data/scripts/test_jobs/deploy_simulation.sh +0 -37
- data/scripts/test_jobs/quick.sh +0 -11
- data/scripts/test_jobs/random_result.sh +0 -23
- data/scripts/test_jobs/slow_fail.sh +0 -10
- data/scripts/test_jobs/slow_success.sh +0 -10
- data/scripts/test_jobs/very_slow.sh +0 -19
- data/test_delete/test1.txt +0 -1
- data/test_delete/test2.txt +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 903b51d0ee611d29ad7ea8961e7948b9dceae16b6d04280c28252149ae2fdd20
|
|
4
|
+
data.tar.gz: 287941ec941e8200c98a881c3ce6de2f7cc7ce3b13e63ba17875ff2222c92bc8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ab00eea888ea729262a4b8c787ecdf43814afe0c573fdc2624597b014027836ae81da4342b413024a10ba6f3212faf5cee1f987af45357fc99134f93d3425314
|
|
7
|
+
data.tar.gz: c665a171a03ab2ebe1941d7b38eeac86ccbd1552c3ee5a7e8cf252fa20293470399cf4cf1ecdeacba8d0d6fb251d5cd4b87ae74a4b4e924814d6821c34d99857
|
data/CHANGELOG.md
CHANGED
|
@@ -7,31 +7,87 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.63.0] - 2026-02-01
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **Tab Mode Switching**: Seamless mode navigation via `Tab` / `Shift+Tab` keys
|
|
14
|
+
- New `TabModeManager` class for unified mode management
|
|
15
|
+
- Four modes: Files, Logs, Jobs, Help
|
|
16
|
+
- Mode tabs displayed in header row 2 (cyan highlight for current mode)
|
|
17
|
+
- Circular navigation: Files → Logs → Jobs → Help → Files
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
- **Header UI Overhaul**: Two-row header layout
|
|
21
|
+
- Row 1: Application name and current path
|
|
22
|
+
- Row 2: Interactive mode tabs
|
|
23
|
+
- Header icon changed from 📁 to 💎 (representing Ruby gem)
|
|
24
|
+
- **Job Mode Integration**: Unified buffer-based rendering
|
|
25
|
+
- `draw_job_list_to_buffer`, `draw_job_line_to_buffer`, `draw_job_footer_to_buffer`
|
|
26
|
+
- Consistent rendering pipeline with other modes
|
|
27
|
+
- **Help/Logs Mode Improvements**:
|
|
28
|
+
- Parent directory (`..`) hidden in Help and Logs modes
|
|
29
|
+
- Directory navigation disabled in these modes
|
|
30
|
+
|
|
31
|
+
### Technical Details
|
|
32
|
+
- **New Files**: `lib/rufio/tab_mode_manager.rb`, `test/test_tab_mode.rb`
|
|
33
|
+
- **Modified Files**: `lib/rufio.rb`, `lib/rufio/keybind_handler.rb`, `lib/rufio/terminal_ui.rb`
|
|
34
|
+
- **Layout Constants**: `HEADER_HEIGHT` changed from 1 to 2
|
|
35
|
+
|
|
36
|
+
## [0.62.0] - 2026-01-31
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
- **Configuration File Structure Overhaul**: Separated configuration into multiple files
|
|
40
|
+
- `~/.config/rufio/config.rb` - DSL-style main configuration (colors, keybinds, language)
|
|
41
|
+
- `~/.config/rufio/script_paths.yml` - Script directories (list format)
|
|
42
|
+
- `~/.config/rufio/bookmarks.yml` - Bookmarks (list format)
|
|
43
|
+
- Old `config.yml` format still supported for backward compatibility
|
|
44
|
+
- **Config Class Refactoring**: Centralized YAML configuration management
|
|
45
|
+
- All YAML read/write operations now go through `Config` class
|
|
46
|
+
- Added `load_script_paths`, `save_script_paths`, `add_script_path`, `remove_script_path`
|
|
47
|
+
- Added `load_bookmarks_from_yml`, `save_bookmarks_to_yml`, `add_bookmark`, `remove_bookmark`
|
|
48
|
+
- Added `load_config_rb` for DSL configuration loading
|
|
49
|
+
- Added `migrate_from_config_yml` for migration from old format
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
- **Bookmark Menu**: Fixed "View bookmarks" option (key `4`) not working in bookmark menu (`B` key)
|
|
53
|
+
|
|
54
|
+
### Deprecated
|
|
55
|
+
- **bookmark.json**: JSON bookmark format is deprecated, use `bookmarks.yml` instead
|
|
56
|
+
- **config.yml**: Single config file format is deprecated, use separate files instead
|
|
57
|
+
|
|
58
|
+
### Technical Details
|
|
59
|
+
- **New Constants in Config**:
|
|
60
|
+
- `CONFIG_DIR`, `CONFIG_RB_PATH`, `SCRIPT_PATHS_YML`, `BOOKMARKS_YML`
|
|
61
|
+
- **Backward Compatibility**:
|
|
62
|
+
- `YamlBookmarkStorage` supports both new (list format) and old (section format)
|
|
63
|
+
- `ScriptPathManager` supports both `script_paths.yml` and legacy `config.yml`
|
|
64
|
+
- **New Example Files**: Added `examples/config.rb`, `examples/script_paths.yml`, `examples/bookmarks.yml`
|
|
65
|
+
|
|
10
66
|
## [0.61.0] - 2026-01-25
|
|
11
67
|
|
|
12
68
|
### Changed
|
|
13
|
-
- **🎯
|
|
14
|
-
-
|
|
15
|
-
- gemspec
|
|
16
|
-
- **📖 README.md
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- **🌐 UI
|
|
21
|
-
-
|
|
22
|
-
-
|
|
69
|
+
- **🎯 Rebranding**: Redefined rufio as "Runtime Unified Flow I/O Operator"
|
|
70
|
+
- Emphasized the concept as a "tool runtime environment" rather than just a file manager
|
|
71
|
+
- Updated gemspec summary and description to reflect new concept
|
|
72
|
+
- **📖 README.md Overhaul**: Restructured for clarity with the new concept
|
|
73
|
+
- Organized features around tool runtime and file manager axes
|
|
74
|
+
- Simplified keybinding tables by category
|
|
75
|
+
- Added Quick Start section
|
|
76
|
+
- **🌐 Unified English UI Messages**: Standardized all UI messages to English
|
|
77
|
+
- Converted command mode, result display, and completion candidate messages to English
|
|
78
|
+
- Japanese setting now displays English messages (internal language setting preserved)
|
|
23
79
|
|
|
24
80
|
### Added
|
|
25
|
-
- **💾
|
|
26
|
-
- `JsonBookmarkStorage`:
|
|
27
|
-
- `YamlBookmarkStorage`:
|
|
28
|
-
- `BookmarkMigrator`: JSON
|
|
29
|
-
-
|
|
81
|
+
- **💾 Bookmark Storage Abstraction**: Introduced `BookmarkStorage` interface
|
|
82
|
+
- `JsonBookmarkStorage`: Legacy JSON file format
|
|
83
|
+
- `YamlBookmarkStorage`: New YAML file format (integrated into config.yml)
|
|
84
|
+
- `BookmarkMigrator`: Automatic migration from JSON to YAML
|
|
85
|
+
- Support for storage dependency injection (improved testability)
|
|
30
86
|
|
|
31
87
|
### Technical Details
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
88
|
+
- **New Files**: `lib/rufio/bookmark_storage.rb`, `test/test_bookmark_storage.rb`
|
|
89
|
+
- **Affected Files**: `bookmark.rb`, `bookmark_manager.rb`, `config_loader.rb`, `command_mode.rb`, `command_mode_ui.rb`, `terminal_ui.rb`, `config.rb`
|
|
90
|
+
- **Test Updates**: Modified test cases to match English messages
|
|
35
91
|
|
|
36
92
|
## [0.60.0] - 2026-01-24
|
|
37
93
|
|
data/README.md
CHANGED
|
@@ -2,16 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
**Runtime Unified Flow I/O Operator**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
Ruby/Python/PowerShell
|
|
5
|
+
A TUI file manager that executes and coordinates tools and scripts from files.
|
|
6
|
+
Supports Ruby/Python/PowerShell and integrates your development workflow in one place.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
[日本語](./README_ja.md) | **English**
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Concept
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
rufioは単なるファイルマネージャーではありません。**ツールランタイム実行環境**です。
|
|
12
|
+
rufio is not just a file manager. It's a **tool runtime execution environment**.
|
|
15
13
|
|
|
16
14
|
```
|
|
17
15
|
┌─────────────────────────────────────────────────────────┐
|
|
@@ -24,225 +22,270 @@ rufioは単なるファイルマネージャーではありません。**ツー
|
|
|
24
22
|
└─────────────────────────────────────────────────────────┘
|
|
25
23
|
```
|
|
26
24
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
25
|
+
- **File Operations**: Traditional file manager functionality
|
|
26
|
+
- **Script Execution**: Run Ruby/Python/PowerShell scripts in file context
|
|
27
|
+
- **Tool Integration**: Seamless integration with external tools (git, fzf, rga, etc.)
|
|
28
|
+
- **Unified I/O**: Manage all input/output in a single flow
|
|
31
29
|
|
|
32
|
-
##
|
|
30
|
+
## Features
|
|
33
31
|
|
|
34
|
-
###
|
|
32
|
+
### As a Tool Runtime
|
|
35
33
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
34
|
+
- **Multi-language Script Support**: Ruby, Python, PowerShell
|
|
35
|
+
- **Script Path Management**: Register and manage multiple script directories
|
|
36
|
+
- **Command Completion**: Tab completion for scripts with `@` prefix
|
|
37
|
+
- **Job Management**: Run scripts/commands in the background
|
|
38
|
+
- **Execution Logs**: Automatically record all execution results
|
|
41
39
|
|
|
42
|
-
###
|
|
40
|
+
### As a File Manager
|
|
43
41
|
|
|
44
|
-
- **Vim
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
- **zoxide
|
|
42
|
+
- **Vim-like Key Bindings**: Intuitive navigation
|
|
43
|
+
- **Real-time Preview**: Instantly display file contents
|
|
44
|
+
- **Fast Search**: Integration with fzf/rga
|
|
45
|
+
- **Bookmarks**: Quick access to frequently used directories
|
|
46
|
+
- **zoxide Integration**: Smart directory history
|
|
49
47
|
|
|
50
|
-
###
|
|
48
|
+
### Cross-platform
|
|
51
49
|
|
|
52
|
-
- **macOS**:
|
|
53
|
-
- **Linux**:
|
|
54
|
-
- **Windows**: PowerShell
|
|
50
|
+
- **macOS**: Native support
|
|
51
|
+
- **Linux**: Native support
|
|
52
|
+
- **Windows**: PowerShell script support
|
|
55
53
|
|
|
56
|
-
##
|
|
54
|
+
## Installation
|
|
57
55
|
|
|
58
56
|
```bash
|
|
59
57
|
gem install rufio
|
|
60
58
|
```
|
|
61
59
|
|
|
62
|
-
|
|
60
|
+
Or add to your Gemfile:
|
|
63
61
|
|
|
64
62
|
```ruby
|
|
65
63
|
gem 'rufio'
|
|
66
64
|
```
|
|
67
65
|
|
|
68
|
-
##
|
|
66
|
+
## Quick Start
|
|
69
67
|
|
|
70
|
-
### 1.
|
|
68
|
+
### 1. Launch
|
|
71
69
|
|
|
72
70
|
```bash
|
|
73
|
-
rufio #
|
|
74
|
-
rufio /path/to #
|
|
71
|
+
rufio # Launch in current directory
|
|
72
|
+
rufio /path/to # Launch in specified directory
|
|
75
73
|
```
|
|
76
74
|
|
|
77
|
-
### 2.
|
|
75
|
+
### 2. Register Script Path
|
|
78
76
|
|
|
79
|
-
1.
|
|
80
|
-
2. `B` → `2`
|
|
77
|
+
1. Navigate to the directory where you want to place scripts
|
|
78
|
+
2. `B` → `2` to add to script path
|
|
81
79
|
|
|
82
|
-
### 3.
|
|
80
|
+
### 3. Execute Script
|
|
83
81
|
|
|
84
|
-
1. `:`
|
|
85
|
-
2. `@` +
|
|
86
|
-
3. `Tab`
|
|
87
|
-
4. `Enter`
|
|
82
|
+
1. Press `:` to enter command mode
|
|
83
|
+
2. Type `@` + part of the script name
|
|
84
|
+
3. Press `Tab` to complete
|
|
85
|
+
4. Press `Enter` to execute
|
|
88
86
|
|
|
89
|
-
##
|
|
87
|
+
## Key Bindings
|
|
90
88
|
|
|
91
|
-
###
|
|
89
|
+
### Basic Operations
|
|
92
90
|
|
|
93
|
-
|
|
|
94
|
-
|
|
95
|
-
| `j/k` |
|
|
96
|
-
| `h/l` |
|
|
97
|
-
| `g/G` |
|
|
98
|
-
| `Enter` |
|
|
99
|
-
| `q` |
|
|
91
|
+
| Key | Function |
|
|
92
|
+
|-----|----------|
|
|
93
|
+
| `j/k` | Move up/down |
|
|
94
|
+
| `h/l` | Parent/child directory |
|
|
95
|
+
| `g/G` | Top/bottom |
|
|
96
|
+
| `Enter` | Enter directory/open file |
|
|
97
|
+
| `q` | Quit |
|
|
100
98
|
|
|
101
|
-
###
|
|
99
|
+
### File Operations
|
|
102
100
|
|
|
103
|
-
|
|
|
104
|
-
|
|
105
|
-
| `Space` |
|
|
106
|
-
| `o` |
|
|
107
|
-
| `a/A` |
|
|
108
|
-
| `r` |
|
|
109
|
-
| `d` |
|
|
110
|
-
| `m/c/x` |
|
|
101
|
+
| Key | Function |
|
|
102
|
+
|-----|----------|
|
|
103
|
+
| `Space` | Select/deselect |
|
|
104
|
+
| `o` | Open with external editor |
|
|
105
|
+
| `a/A` | Create file/directory |
|
|
106
|
+
| `r` | Rename |
|
|
107
|
+
| `d` | Delete |
|
|
108
|
+
| `m/c/x` | Move/copy/delete (selected) |
|
|
111
109
|
|
|
112
|
-
###
|
|
110
|
+
### Search & Filter
|
|
113
111
|
|
|
114
|
-
|
|
|
115
|
-
|
|
116
|
-
| `f` |
|
|
117
|
-
| `s` | fzf
|
|
118
|
-
| `F` | rga
|
|
112
|
+
| Key | Function |
|
|
113
|
+
|-----|----------|
|
|
114
|
+
| `f` | Filter mode |
|
|
115
|
+
| `s` | Search files with fzf |
|
|
116
|
+
| `F` | Search file contents with rga |
|
|
119
117
|
|
|
120
|
-
###
|
|
118
|
+
### Navigation
|
|
121
119
|
|
|
122
|
-
|
|
|
123
|
-
|
|
124
|
-
| `b` |
|
|
125
|
-
| `B` |
|
|
126
|
-
| `0` |
|
|
127
|
-
| `1-9` |
|
|
128
|
-
| `z` | zoxide
|
|
120
|
+
| Key | Function |
|
|
121
|
+
|-----|----------|
|
|
122
|
+
| `b` | Add bookmark |
|
|
123
|
+
| `B` | Bookmark menu |
|
|
124
|
+
| `0` | Return to startup directory |
|
|
125
|
+
| `1-9` | Jump to bookmark |
|
|
126
|
+
| `z` | zoxide history |
|
|
129
127
|
|
|
130
|
-
###
|
|
128
|
+
### Tool Runtime
|
|
131
129
|
|
|
132
|
-
|
|
|
133
|
-
|
|
134
|
-
| `:` |
|
|
135
|
-
| `J` |
|
|
136
|
-
| `L` |
|
|
137
|
-
| `?` |
|
|
130
|
+
| Key | Function |
|
|
131
|
+
|-----|----------|
|
|
132
|
+
| `:` | Command mode |
|
|
133
|
+
| `J` | Job mode |
|
|
134
|
+
| `L` | View execution logs |
|
|
135
|
+
| `?` | Help |
|
|
136
|
+
| `Tab` | Switch mode (Files → Logs → Jobs → Help) |
|
|
137
|
+
| `Shift+Tab` | Switch mode (reverse) |
|
|
138
138
|
|
|
139
|
-
##
|
|
139
|
+
## Command Mode
|
|
140
140
|
|
|
141
|
-
`:`
|
|
141
|
+
Press `:` to enter command mode and execute various commands.
|
|
142
142
|
|
|
143
|
-
###
|
|
143
|
+
### Script Execution
|
|
144
144
|
|
|
145
145
|
```
|
|
146
|
-
:@build #
|
|
147
|
-
:@deploy.rb #
|
|
146
|
+
:@build # @ prefix triggers script completion
|
|
147
|
+
:@deploy.rb # Execute registered script
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
###
|
|
150
|
+
### Shell Commands
|
|
151
151
|
|
|
152
152
|
```
|
|
153
|
-
:!git status #
|
|
154
|
-
:!ls -la #
|
|
153
|
+
:!git status # ! prefix for shell commands
|
|
154
|
+
:!ls -la # Execute in background
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
###
|
|
157
|
+
### Built-in Commands
|
|
158
158
|
|
|
159
159
|
```
|
|
160
|
-
:hello #
|
|
161
|
-
:stop # rufio
|
|
160
|
+
:hello # Greeting message
|
|
161
|
+
:stop # Quit rufio
|
|
162
162
|
```
|
|
163
163
|
|
|
164
|
-
##
|
|
164
|
+
## Script Path
|
|
165
165
|
|
|
166
|
-
###
|
|
166
|
+
### What is Script Path?
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
A feature to register directories containing script files. Scripts in registered directories can be executed using the `@` prefix in command mode.
|
|
169
169
|
|
|
170
|
-
###
|
|
170
|
+
### Management
|
|
171
171
|
|
|
172
|
-
`B` → `3`
|
|
172
|
+
Press `B` → `3` to open the script path management menu:
|
|
173
173
|
|
|
174
|
-
-
|
|
175
|
-
- `d`:
|
|
176
|
-
- `Enter`:
|
|
177
|
-
- `ESC`:
|
|
174
|
+
- View registered paths
|
|
175
|
+
- `d`: Remove path
|
|
176
|
+
- `Enter`: Jump to directory
|
|
177
|
+
- `ESC`: Close menu
|
|
178
178
|
|
|
179
|
-
###
|
|
179
|
+
### Supported Scripts
|
|
180
180
|
|
|
181
|
-
|
|
|
182
|
-
|
|
181
|
+
| Extension | Language |
|
|
182
|
+
|-----------|----------|
|
|
183
183
|
| `.rb` | Ruby |
|
|
184
184
|
| `.py` | Python |
|
|
185
185
|
| `.ps1` | PowerShell |
|
|
186
186
|
| `.sh` | Shell (bash/zsh) |
|
|
187
187
|
|
|
188
|
-
## DSL
|
|
188
|
+
## DSL Commands
|
|
189
189
|
|
|
190
|
-
`~/.config/rufio/commands.rb
|
|
190
|
+
Define custom commands in `~/.config/rufio/commands.rb`:
|
|
191
191
|
|
|
192
192
|
```ruby
|
|
193
193
|
command "hello" do
|
|
194
194
|
ruby { "Hello from rufio!" }
|
|
195
|
-
description "
|
|
195
|
+
description "Greeting command"
|
|
196
196
|
end
|
|
197
197
|
|
|
198
198
|
command "status" do
|
|
199
199
|
shell "git status"
|
|
200
|
-
description "Git
|
|
200
|
+
description "Git status"
|
|
201
201
|
end
|
|
202
202
|
|
|
203
203
|
command "build" do
|
|
204
204
|
script "~/.config/rufio/scripts/build.rb"
|
|
205
|
-
description "
|
|
205
|
+
description "Run build"
|
|
206
206
|
end
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
-
##
|
|
209
|
+
## Configuration
|
|
210
210
|
|
|
211
|
-
###
|
|
211
|
+
### Configuration File Structure
|
|
212
212
|
|
|
213
213
|
```
|
|
214
214
|
~/.config/rufio/
|
|
215
|
-
├── config.rb
|
|
216
|
-
├──
|
|
217
|
-
├── bookmarks.
|
|
218
|
-
├──
|
|
219
|
-
|
|
215
|
+
├── config.rb # DSL-style main configuration
|
|
216
|
+
├── script_paths.yml # Script directories (list format)
|
|
217
|
+
├── bookmarks.yml # Bookmarks (list format)
|
|
218
|
+
├── commands.rb # DSL command definitions
|
|
219
|
+
├── scripts/ # Script files
|
|
220
|
+
└── logs/ # Execution logs
|
|
220
221
|
```
|
|
221
222
|
|
|
222
|
-
###
|
|
223
|
+
### config.rb (DSL Configuration)
|
|
223
224
|
|
|
224
225
|
```ruby
|
|
225
226
|
# ~/.config/rufio/config.rb
|
|
227
|
+
|
|
228
|
+
# Language setting: 'en' or 'ja'
|
|
229
|
+
LANGUAGE = 'ja'
|
|
230
|
+
|
|
231
|
+
# Color settings (HSL format)
|
|
226
232
|
COLORS = {
|
|
227
|
-
directory: {hsl: [220, 80, 60]},
|
|
228
|
-
file: {hsl: [0, 0, 90]},
|
|
229
|
-
executable: {hsl: [120, 70, 50]},
|
|
230
|
-
selected: {hsl: [50, 90, 70]},
|
|
231
|
-
preview: {hsl: [180, 60, 65]}
|
|
232
|
-
}
|
|
233
|
+
directory: { hsl: [220, 80, 60] },
|
|
234
|
+
file: { hsl: [0, 0, 90] },
|
|
235
|
+
executable: { hsl: [120, 70, 50] },
|
|
236
|
+
selected: { hsl: [50, 90, 70] },
|
|
237
|
+
preview: { hsl: [180, 60, 65] }
|
|
238
|
+
}.freeze
|
|
239
|
+
|
|
240
|
+
# Keybind settings
|
|
241
|
+
KEYBINDS = {
|
|
242
|
+
quit: %w[q ESC],
|
|
243
|
+
up: %w[k UP],
|
|
244
|
+
down: %w[j DOWN]
|
|
245
|
+
}.freeze
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### script_paths.yml
|
|
249
|
+
|
|
250
|
+
```yaml
|
|
251
|
+
# ~/.config/rufio/script_paths.yml
|
|
252
|
+
- ~/.config/rufio/scripts
|
|
253
|
+
- ~/bin
|
|
254
|
+
- ~/scripts
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### bookmarks.yml
|
|
258
|
+
|
|
259
|
+
```yaml
|
|
260
|
+
# ~/.config/rufio/bookmarks.yml
|
|
261
|
+
- path: ~/Documents
|
|
262
|
+
name: Documents
|
|
263
|
+
- path: ~/projects
|
|
264
|
+
name: Projects
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Local Configuration
|
|
268
|
+
|
|
269
|
+
Place `rufio.yml` in your project root for project-specific script paths:
|
|
270
|
+
|
|
271
|
+
```yaml
|
|
272
|
+
# ./rufio.yml (project root)
|
|
273
|
+
script_paths:
|
|
274
|
+
- ./scripts
|
|
275
|
+
- ./bin
|
|
233
276
|
```
|
|
234
277
|
|
|
235
|
-
##
|
|
278
|
+
## External Tool Integration
|
|
236
279
|
|
|
237
|
-
rufio
|
|
280
|
+
rufio integrates with the following external tools to extend functionality:
|
|
238
281
|
|
|
239
|
-
|
|
|
240
|
-
|
|
241
|
-
| fzf |
|
|
242
|
-
| rga |
|
|
243
|
-
| zoxide |
|
|
282
|
+
| Tool | Purpose | Key |
|
|
283
|
+
|------|---------|-----|
|
|
284
|
+
| fzf | File name search | `s` |
|
|
285
|
+
| rga | File content search | `F` |
|
|
286
|
+
| zoxide | Directory history | `z` |
|
|
244
287
|
|
|
245
|
-
###
|
|
288
|
+
### Installation
|
|
246
289
|
|
|
247
290
|
```bash
|
|
248
291
|
# macOS
|
|
@@ -250,42 +293,42 @@ brew install fzf rga zoxide
|
|
|
250
293
|
|
|
251
294
|
# Ubuntu/Debian
|
|
252
295
|
apt install fzf zoxide
|
|
253
|
-
# rga
|
|
296
|
+
# rga requires separate installation: https://github.com/phiresky/ripgrep-all
|
|
254
297
|
```
|
|
255
298
|
|
|
256
|
-
##
|
|
299
|
+
## Advanced Features
|
|
257
300
|
|
|
258
|
-
###
|
|
301
|
+
### Native Scanner (Experimental)
|
|
259
302
|
|
|
260
|
-
|
|
303
|
+
Support for native implementation for fast directory scanning:
|
|
261
304
|
|
|
262
305
|
```bash
|
|
263
|
-
rufio --native #
|
|
264
|
-
rufio --native=zig # Zig
|
|
306
|
+
rufio --native # Auto-detect
|
|
307
|
+
rufio --native=zig # Zig implementation
|
|
265
308
|
```
|
|
266
309
|
|
|
267
|
-
### JIT
|
|
310
|
+
### JIT Compiler
|
|
268
311
|
|
|
269
312
|
```bash
|
|
270
313
|
rufio --yjit # Ruby 3.1+ YJIT
|
|
271
314
|
rufio --zjit # Ruby 3.4+ ZJIT
|
|
272
315
|
```
|
|
273
316
|
|
|
274
|
-
###
|
|
317
|
+
### Health Check
|
|
275
318
|
|
|
276
319
|
```bash
|
|
277
|
-
rufio -c #
|
|
278
|
-
rufio --check-health #
|
|
320
|
+
rufio -c # Check system dependencies
|
|
321
|
+
rufio --check-health # Same as above
|
|
279
322
|
```
|
|
280
323
|
|
|
281
|
-
##
|
|
324
|
+
## Development
|
|
282
325
|
|
|
283
|
-
###
|
|
326
|
+
### Requirements
|
|
284
327
|
|
|
285
|
-
- Ruby 2.7.0
|
|
328
|
+
- Ruby 2.7.0 or later
|
|
286
329
|
- io-console, pastel, tty-cursor, tty-screen gems
|
|
287
330
|
|
|
288
|
-
###
|
|
331
|
+
### Running Development Version
|
|
289
332
|
|
|
290
333
|
```bash
|
|
291
334
|
git clone https://github.com/masisz/rufio
|
|
@@ -294,17 +337,17 @@ bundle install
|
|
|
294
337
|
./bin/rufio
|
|
295
338
|
```
|
|
296
339
|
|
|
297
|
-
###
|
|
340
|
+
### Testing
|
|
298
341
|
|
|
299
342
|
```bash
|
|
300
343
|
bundle exec rake test
|
|
301
344
|
```
|
|
302
345
|
|
|
303
|
-
##
|
|
346
|
+
## License
|
|
304
347
|
|
|
305
348
|
MIT License
|
|
306
349
|
|
|
307
|
-
##
|
|
350
|
+
## Contributing
|
|
308
351
|
|
|
309
|
-
|
|
310
|
-
|
|
352
|
+
Bug reports and feature requests are welcome at [GitHub Issues](https://github.com/masisz/rufio/issues).
|
|
353
|
+
Pull requests are also welcome!
|