~ cat ./tattoy/tattoy.log
2025-06-13T17:10:56.157491Z INFO tattoy::run: Starting Tattoy
2025-06-13T17:10:56.157539Z DEBUG tattoy::run: Loaded config: Config { command: "/opt/homebrew/bin/zsh", log_level: Off, log_path: "./tattoy/tattoy.log", keybindings: {ToggleMinimap: KeybindingConfigRaw { mods: Some("ALT"), key: "M" }, ShaderNext: KeybindingConfigRaw { mods: Some("ALT"), key: "0" }, ScrollExit: KeybindingConfigRaw { mods: None, key: "Escape" }, ScrollUp: KeybindingConfigRaw { mods: None, key: "UpArrow" }, ScrollDown: KeybindingConfigRaw { mods: None, key: "DownArrow" }, ShaderPrev: KeybindingConfigRaw { mods: Some("ALT"), key: "9" }, ToggleScrolling: KeybindingConfigRaw { mods: Some("ALT"), key: "s" }, ToggleTattoy: KeybindingConfigRaw { mods: Some("ALT"), key: "t" }}, frame_rate: 30, show_tattoy_indicator: true, show_startup_logo: true, scrollback_size: 1000, color: Color { saturation: 0.0, brightness: 0.0, hue: 0.0 }, text_contrast: TextContrast { enabled: true, target_contrast: 2.0, apply_to_readable_text_only: true }, plugins: [], minimap: Config { enabled: false, max_width: 10, animation_speed: 0.15 }, shader: Config { enabled: false, path: "shaders/soft_shadows.glsl", opacity: 0.75, layer: -10, render: true, upload_tty_as_pixels: true, render_shader_colours_to_text: false }, bg_command: Config { enabled: false, opacity: 0.75, layer: -5, command: ["echo", "Hello World"], expect_exit: false }, notifications: Config { enabled: true, opacity: 0.9, level: Info, duration: 5.0 } }
2025-06-13T17:10:56.176418Z DEBUG tattoy::palette::state_machine: Starting palette parse of image with 2631024 pixels
2025-06-13T17:10:56.176431Z DEBUG tattoy::palette::state_machine: Looking for first redish palette row start
2025-06-13T17:10:56.179133Z DEBUG tattoy: Tattoy is exiting 🙇
2025-06-13T17:10:56.179139Z ERROR tattoy:
0: Palette parsing failed.
Location:
crates/tattoy/src/palette/parser.rs:66
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
2: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
3: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
4: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
5: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
6: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
7: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
8: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
9: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
10: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
11: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
12: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
13: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>