include = ["~/.cache/matugen/remage.toml"] [general] open_siblings = true # a single file argument opens its whole directory recursive = false # descend into directory arguments sort = "natural" # natural | name | mtime | size | random reverse = false start_mode = "image" # image | grid wrap = true # next on the last image goes to the first watch_dir = true # add and drop files that appear or vanish on disk [window] decorations = false title = "{name} — remage" # placeholders as in ui.statusbar_left class = "remage" # Wayland app_id / X11 class fullscreen = false [image] fit = "down" # down (fit, never enlarge) | fit | fill | width | height | original zoom_step = 1.25 filter = "auto" # auto (nearest above 300%) | linear | nearest alpha_background = "dots" # dots | checker | solid auto_orient = true # apply EXIF orientation color_management = true # convert ICC / CICP colour to sRGB preload = 2 # images decoded and uploaded on each side cache_mb = 512 # decoded-image cache budget slideshow_delay = 5.0 # seconds [grid] sizes = [96, 128, 160, 224, 320] size = 160 gap = 16 thumbnail_cache = true # read and write the shared freedesktop thumbnail cache names = false # filenames under thumbnails [ui] statusbar = true which_key_delay_ms = 300 # pending keys wait this long before which-key shows scale = 1.0 # UI size multiplier on top of the display scale # Status bar templates. Placeholders: {name} {path} {dir} {stem} {ext} {format} {width} # {height} {zoom} {index} {count} {marked} {frame} {mode} {filter} {info}. Two or more spaces # separate segments; a segment whose placeholder is empty right now (no image in the grid, # say) drops out. statusbar_left = "{name}" statusbar_right = "{format} {width}×{height} {zoom}% {index}/{count}" # Run for each image shown, like nsxiv's image-info: ` FILE WIDTH HEIGHT` through # sh. Its last stdout line fills {info}, or replaces the left side if no template has {info}. info_command = "" font_ui = "Space Grotesk" font_mono = "Space Mono" font_display = "Doto" [animation] enabled = true duration_ms = 180 transition = "fade" # fade | none [theme] preset = "nothing-dark" # nothing-dark | nothing-light # Read colours from pywal: special.background / special.foreground / colors.color1. # pywal = "~/.cache/wal/colors.json" # # background, foreground and accent are enough; every other token is derived from them. # Any token can be set explicitly as "#RRGGBB" or "#RRGGBBAA": # background = "#000000" # foreground = "#FFFFFF" # accent = "#D71921" # surface surface_raised border border_visible text_disabled text_secondary # text_primary text_display success warning image_background # Key bindings. Values are an action, an array of actions run in order, or "none" to remove # a default. Mode tables override [keys.global]; visual mode also inherits [keys.grid]. # Notation is vim's: n G w , plus # with modifiers (). # A count typed first applies to the action: 5n, 12G, 3+. [keys.global] "q" = "quit" "" = "mode toggle" "n" = "next" "p" = "prev" "" = "prev" "]" = "next 10" "[" = "prev 10" "gg" = "first" "G" = "last" "" = "first" "" = "last" "m" = "mark" "M" = "invert-marks" "u" = "unmark-all" "N" = "next-mark" "P" = "prev-mark" "f" = "fullscreen" "b" = "bar" "i" = "info" "r" = "reload" "D" = "remove" "s" = "slideshow" ":" = "palette" "/" = "search" "?" = "help" "" = "cancel" [keys.image] "h" = "pan left" "j" = "pan down" "k" = "pan up" "l" = "pan right" "" = "pan left" "" = "pan down" "" = "pan up" "" = "pan right" "H" = "pan-edge left" "J" = "pan-edge down" "K" = "pan-edge up" "L" = "pan-edge right" "z" = "center" "+" = "zoom in" "-" = "zoom out" "=" = "zoom 100%" "w" = "fit fit" "W" = "fit fill" "e" = "fit width" "E" = "fit height" "" = "rotate ccw" ">" = "rotate cw" "|" = "flip h" "_" = "flip v" "a" = "filter toggle" "A" = "alpha-bg cycle" "{" = "gamma -" "}" = "gamma +" "" = "play" "" = "next-frame" "" = "prev-frame" "" = "zoom in" "" = "zoom out" # In the grid a click selects a thumbnail and a double-click opens it; dragging scrolls. [keys.grid] "h" = "move left" "j" = "move down" "k" = "move up" "l" = "move right" "" = "move left" "" = "move down" "" = "move up" "" = "move right" "" = "page half-down" "" = "page half-up" "" = "page down" "" = "page up" "" = "page down" "" = "page up" "0" = "row-start" "^" = "row-start" "$" = "row-end" "+" = "grid-size +" "-" = "grid-size -" "v" = "visual" "" = "scroll up" "" = "scroll down" [keys.visual] "m" = "mark on" "v" = "mode grid" "" = "mode grid" # User commands: bind them as "run "; unbound ones still show in the : palette. [commands.wallpaper] desc = "Set as wallpaper" run = ["setwall", "-p", "{file}"] # array: exec directly, {files} expands to N args [commands.copy] desc = "Copy image" run = "wl-copy --type image/png < {file}" # string: sh -c, placeholders shell-quoted for you [commands.delete] desc = "Delete files" run = ["rm", "--", "{files}"] confirm = "Delete {count} file(s)?" # asks inline; y runs it, any other key cancels # External decoders for anything else; they write PNG, PPM or TIFF to stdout. # [[decoders]] # match = ["*.psd"] # run = ["magick", "{file}[0]", "png:-"]