siv.exeHigh-speed TUI image viewer using Kitty Graphics Protocol
日本語 - README-ja.md
- Fast Differential Display: Optimized rendering for consecutive images
- LRU Caching: Memory-efficient image management
- Debounce Control: Optimized preview updates on cursor movement
- Natural Sort: Display file names in order 1,2,3,10,11,12
- Must support Kitty Graphics Protocol
- Wezterm Nightly
- Windows Terminal
- Windows 11 (64bit)
- Linux
- Mac
cargo install garoucargo binstall garoucargo install --git https://github.com/c0b23092db/garou> siv --help
TUI: Simple Image Protocol Viewer for Kitty Graphics Protocol
Usage: siv.exe [PATH]
Arguments:
[PATH] Open Image file or Directory [defaults: current directory]
Options:
-h, --help Print help
-V, --version Print version
Q / esc: QuitO: Open with default programR: Refresh imageShift + R: Refresh screenAlt + S: Toggle sidebarAlt + D: Toggle statusbarAlt + F: Toggle header
H / ←: Previous imageL / →: Next image
J / ↓: Move cursor down (instant preview)K / ↑: Move cursor up (instant preview)G: Move to top (instant preview)Shift + G: Move to bottom (instant preview)Ctrl + B: Move up one page (instant preview)Ctrl + F: Move down one page (instant preview)H / ←: Collapse folderL / →: Expand folderEnter: Toggle folderLeft Click: Select fileWheel: Move cursor
- (preview)
0: Fit image to view - (preview)
+: Zoom in - (preview)
-: Zoom out - (preview)
Shift + J,Shift + K,Shift + H,Shift + L: Pan image - (preview)
Wheel: Image Zoom in / out
Reads from ~/.config/garou/config.toml.
[image]
extensions = ["png", "jpg", "jpeg", "gif", "webp", "bmp"]
diff_mode = "Full"
transport_mode = "auto"
filter_type = "Nearest"
image_width = 5120
image_height = 2880
dirty_ratio = 0.1
tile_grid = 32
skip_step = 1
[display]
sidebar = true
header = true
statusbar = true
sidebar_size = 20
preview_debounce = 100 # Preview update debounce (milliseconds)
poll_interval = 10 # Idle polling interval (milliseconds)
prefetch_interval = 100 # Idle prefetch interval (milliseconds)
header_bg_color = "dark_blue" # Header background color
header_fg_color = "white" # Header text color
statusbar_bg_color = "dark_gray" # Statusbar background color
statusbar_fg_color = "white" # Statusbar text color
[cache]
lru_size = 10 # Maximum LRU cache entries
prefetch_size = 1 # Prefetch cache size
max_bytes = 268435456 # Cache total size limit (bytes)All: No differential check, refresh image every timeFull: Check all RGB (FFFFFF) addresses, update only if changes detectedHalf: Check only RGB addresses 0, 2, 4
autodirect(d)file(f)temp_file(t)shared_memory(s)
- Linux:
shared_memory->direct - Windows:
direct
When using file, temp_file, or shared_memory, images larger than this size will fall back to direct mode. Default allows loading images up to 5K resolution.
Used when transport_mode = "direct" See: image::imageops::FilterType
NearestTriangleCatmullRomGaussianLanczos3
Threshold for determining if differential. Can be set from 0.0 to 1.0.
Pixel size of one side of tiles used for change detection.
Scan at specified pixel intervals.
Settings for initial open/closed state.
- sidebar
- header
- statusbar
The following colors are available:
- black
- dark_gray
- gray
- white
- red
- dark_red
- green
- dark_green
- yellow
- dark_yellow
- blue
- dark_blue
- magenta
- dark_magenta
- cyan
- dark_cyan
- #RRGGBB (e.g., #1E90FF)
- rgb(r,g,b) (e.g., rgb(30,144,255))
Specifies the debounce time in milliseconds for preview updates during user operations.
Specifies the maximum wait time in milliseconds before checking for keyboard or mouse activity during idle state.
Specifies the minimum interval in milliseconds for prefetching adjacent images while the application is idle.
Default value is 268435456 (256 * 1024 * 1024).
[image]
diff_mode = "All"
transport_mode = "file"
[display]
sidebar = true
header = true
statusbar = false
sidebar_size = 20
preview_debounce = 50
[cache]
lru_size = 5
prefetch_size = 1- Fast differential display
- Fast display for large size images
Please refer to the Japanese version of README.md for other details.
- Kitty Graphics Protocol (terminal image rendering)
- yazi (high-speed image preview)
- Neovim (keyboard-driven operation)
Bug reports, feature suggestions, and pull requests are welcome. The agents directory includes details such as future prospects and plans.
MIT License / http://opensource.org/licenses/MIT
- ikata
