Skip to content

Palette contains less than 256 colours #129

@atsai1220

Description

@atsai1220

Hey there! I'm trying to play around with this and tattoy is unable to start successfully.

I've tried to set environment variables and edit my .zshrc file to include export TERM=xterm-256color and I believe ultimately I'm probably doing something wrong. Would appreciate guidance as I imagine I'm doing something wrong here but I'm not sure what I'm doing wrong. Based on the documentation, I believe I should be able to try this out.

However, if I disable oh-my-zsh.sh then it starts fine. Was wondering if anyone has ran into this before?

My set up:

  • iterm2 3.5.13
  • Report terminal type for iterm2 → xterm-256color
  • Logini shell → /bin/zsh
  • Using this source $ZSH/oh-my-zsh.sh in .zshrc

Logs

2025-07-25T21:44:36.485215Z  INFO tattoy::run: Starting Tattoy
2025-07-25T21:44:36.485415Z DEBUG tattoy::run: Loaded config: Config { command: "/bin/zsh", log_level: Debug, log_path: "/Users/atsai/Desktop/mobililty-dev/log", keybindings: {ToggleScrolling: KeybindingConfigRaw { mods: Some("ALT"), key: "s" }, ShaderNext: KeybindingConfigRaw { mods: Some("ALT"), key: "0" }, ScrollDown: KeybindingConfigRaw { mods: None, key: "DownArrow" }, ToggleTattoy: KeybindingConfigRaw { mods: Some("ALT"), key: "t" }, ToggleMinimap: KeybindingConfigRaw { mods: Some("ALT"), key: "M" }, ScrollUp: KeybindingConfigRaw { mods: None, key: "UpArrow" }, ScrollExit: KeybindingConfigRaw { mods: None, key: "Escape" }, ShaderPrev: KeybindingConfigRaw { mods: Some("ALT"), key: "9" }}, 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: true, max_width: 10, animation_speed: 0.15 }, shader: Config { enabled: true, 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-07-25T21:44:36.487802Z DEBUG tattoy::raw_input: Starting to listen on STDIN
2025-07-25T21:44:36.490381Z DEBUG tattoy::run: Starting Tattoy with command: '"/bin/zsh"'
2025-07-25T21:44:36.490404Z DEBUG tattoy::run: Waiting for renderer to initialise...
2025-07-25T21:44:36.490416Z DEBUG shadow_terminal::active_terminal: Starting shadow terminal...
2025-07-25T21:44:36.490493Z DEBUG shadow_terminal::shadow_terminal: Creating the in-memory Wezterm terminal
2025-07-25T21:44:36.490608Z DEBUG tattoy::config::main: Watching config ("/Users/atsai/Library/Application Support/tattoy") for changes.
2025-07-25T21:44:36.491481Z DEBUG shadow_terminal::active_terminal: Shadow terminal started.
2025-07-25T21:44:36.491530Z  INFO tattoy::config::main: Loading the terminal palette's true colours from config
2025-07-25T21:44:36.491672Z DEBUG shadow_terminal::shadow_terminal: Starting Shadow Terminal loop...
2025-07-25T21:44:36.491705Z DEBUG shadow_terminal::shadow_terminal: Starting Shadow Terminal main loop
2025-07-25T21:44:36.491862Z DEBUG shadow_terminal::pty: Setting up PTY
2025-07-25T21:44:36.493730Z DEBUG tattoy::renderer: Putting user's terminal into raw mode
2025-07-25T21:44:36.493750Z DEBUG tattoy::renderer: Starting render loop
2025-07-25T21:44:36.494968Z DEBUG tattoy::run: ...renderer system initialised.
2025-07-25T21:44:36.495014Z  INFO tattoy::config::main: Loading the terminal palette's true colours from config
2025-07-25T21:44:36.497071Z DEBUG shadow_terminal::pty: Launching `["/bin/zsh"]` on PTY
2025-07-25T21:44:36.497242Z  INFO tattoy::loader: Starting 'startup_logo' tattoy...
2025-07-25T21:44:36.497258Z  INFO tattoy::loader: Starting 'notifications' tattoy...
2025-07-25T21:44:36.497276Z DEBUG tattoy::run: Waiting for notifications to initialise...
2025-07-25T21:44:36.497330Z  INFO tattoy::config::main: Loading the terminal palette's true colours from config
2025-07-25T21:44:36.499590Z DEBUG tattoy::run: ...notifications system initialised.
2025-07-25T21:44:36.499600Z  INFO tattoy::loader: Starting 'scrollbar' tattoy...
2025-07-25T21:44:36.499621Z  INFO tattoy::loader: Starting 'minimap' tattoy...
2025-07-25T21:44:36.499625Z  INFO tattoy::loader: Starting 'shaders' tattoy...
2025-07-25T21:44:36.499671Z  INFO tattoy::tattoys::shaders::gpu: Initialising GPU pipeline for "/Users/atsai/Library/Application Support/tattoy/shaders/soft_shadows.glsl" with dimensions 206x156
2025-07-25T21:44:36.500319Z DEBUG shadow_terminal::pty: Starting to wait for PTY end
2025-07-25T21:44:36.500346Z DEBUG shadow_terminal::pty: Starting loop for PTY spawn to receive protocol messages
2025-07-25T21:44:36.500357Z DEBUG shadow_terminal::pty: Starting PTY reader loop
2025-07-25T21:44:36.500467Z DEBUG shadow_terminal::pty: Starting `forward_input` loop
2025-07-25T21:44:36.546467Z DEBUG tattoy::tattoys::shaders::gpu: Resizing output texture: 256x256
2025-07-25T21:44:36.627927Z ERROR tattoy::run: Caught panic (crates/tattoy/src/palette/converter.rs@32:14): "Palette contains less than 256 colours"
2025-07-25T21:44:36.630015Z DEBUG shadow_terminal::active_terminal: `kill()` called on `ActiveTerminal`
2025-07-25T21:44:36.630047Z DEBUG shadow_terminal::pty: PTY received Tattoy message End
2025-07-25T21:44:36.630057Z DEBUG shadow_terminal::pty: `forward_input` loop finished
2025-07-25T21:44:36.630077Z DEBUG shadow_terminal::pty: PTY reader loop finished
2025-07-25T21:44:36.630093Z DEBUG shadow_terminal::pty: PTY dropped, broadcasting `End` signal.
2025-07-25T21:44:36.630090Z DEBUG shadow_terminal::shadow_terminal: Shadow Terminal received protocol message: End
2025-07-25T21:44:36.630109Z DEBUG shadow_terminal::shadow_terminal: Shadow Terminal loop finished
2025-07-25T21:44:36.630116Z DEBUG shadow_terminal::shadow_terminal: `ShadowTerminal.kill()` called
2025-07-25T21:44:36.630117Z ERROR shadow_terminal::pty: Broadcasting PTY output: SendError { .. }
2025-07-25T21:44:36.630178Z ERROR tattoy::loader: Tattoy task join error: JoinError::Cancelled(Id(20))
2025-07-25T21:44:36.630186Z ERROR tattoy::loader: Tattoy task join error: JoinError::Cancelled(Id(21))
2025-07-25T21:44:36.630193Z ERROR tattoy::loader: Tattoy task join error: JoinError::Cancelled(Id(18))
2025-07-25T21:44:36.630198Z ERROR tattoy::loader: Tattoy task join error: JoinError::Cancelled(Id(17))
2025-07-25T21:44:36.630369Z DEBUG shadow_terminal::pty: `kill()` (which includes OS kill signals) sent to PTY spawn process
2025-07-25T21:44:36.630375Z DEBUG shadow_terminal::pty: Leaving spawn shutdown listener loop.
2025-07-25T21:44:36.643251Z ERROR shadow_terminal::pty: Sending `Protocol::End` after: SendError(End)
2025-07-25T21:44:36.643281Z  INFO shadow_terminal::pty: PTY ended by its own accord
2025-07-25T21:44:36.648984Z ERROR tattoy::tattoys::shaders::main: GPU pipeline error:
   0: channel closed

Location:
   crates/tattoy/src/tattoys/tattoyer.rs:163

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
2025-07-25T21:44:36.649238Z ERROR tattoy::shared_state: Error sending notification: SendError(Notification(Message { title: "GPU pipeline error", body: Some("channel closed\n\nCheck logs for more details: /Users/atsai/Desktop/mobililty-dev/log"), timestamp: Instant { tv_sec: 2778925, tv_nsec: 676124958 }, level: Error }))
2025-07-25T21:44:36.650421Z DEBUG tattoy::loader: A tattoy succesfully exited

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions