[HN Gopher] Animated Cursors
       ___________________________________________________________________
        
       Animated Cursors
        
       Author : speckx
       Score  : 227 points
       Date   : 2025-07-25 17:59 UTC (1 days ago)
        
 (HTM) web link (tattoy.sh)
 (TXT) w3m dump (tattoy.sh)
        
       | baq wrote:
       | This is way cooler than I expected.
       | 
       | It's an over-the-top animation of a _terminal_ cursor moving from
       | position to position, helps notice where it moved to. I thought
       | it 'll be something about mouse cursor animations. I could see
       | myself using this if a) I was using more TUI apps and b) it'd be
       | toned down quite a bit.
        
         | jasonjmcghee wrote:
         | I think was popularized by Neovide
         | 
         | https://neovide.dev/features.html#animated-cursor
        
           | nine_k wrote:
           | Here it's less dramatic and hence more useful.
           | 
           | I wish more terminals implemented something similar.
        
             | tombh wrote:
             | Author here, I just chose the fire cursor for the demo.
             | There are lots of other shaders available, eg
             | https://github.com/KroneCorylus/ghostty-shader-
             | playground/tr..., they have a simple smear cursor like
             | Neovide's.
        
               | nine_k wrote:
               | The fire is _perfect_ for the demo, and for screencasts
               | maybe.
        
               | throwanem wrote:
               | Strong second.
        
           | echelon wrote:
           | I never knew this was a thing.
           | 
           | This is so fucking cool. I'm going to add this right away.
        
           | danieldk wrote:
           | Kitty also supports them with the _cursor_trail_ option:
           | https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.cursor_trail
        
         | Rendello wrote:
         | Reminds me of the old Compiz plugin that would make your
         | windows burst into flames on closing.
        
           | andrepd wrote:
           | Compiz effects was truly the killer feature for Linux for 12
           | year old me :)
        
             | Rendello wrote:
             | 14 year-old me set up Linux Mint with this LSD Conky
             | display for my grandmother. I said something like "Well
             | technically it's LSD but it looks cool so don't worry about
             | it".
             | 
             | https://github.com/matmutant/LSD-Conky
        
               | eMPee584 wrote:
               | in hindsight, I do regret not yet being able to supply my
               | <3 grandma with a small dose, might have condoled her
               | senseless fury (dementia rage or so).. RIP
        
         | tombh wrote:
         | The home page has GIFs of both a simpler smear-fade cursor and
         | a wilder manga-slash cursor https://tattoy.sh
        
           | rendaw wrote:
           | Where? I only see the fire one too.
        
             | ldjb wrote:
             | Under the Animated Cursors heading. Here are direct links
             | to the webms if you still can't find them:
             | 
             | https://tattoy.sh/assets/screenshots/cursor_smear_fade.webm
             | 
             | https://tattoy.sh/assets/screenshots/manga_slash.webm
        
       | isoprophlex wrote:
       | Barely useable, pfff. Needs at least two out of three of
       | 
       | - airhorn and/or light saber sound effects,
       | 
       | - a sixel-based rendering of lens flares, or
       | 
       | - a fluid dynamics engine to simulate rippling of characters
       | around the path along which the cursor moves
       | 
       | (Joke, looks very cool even though i'd probably find it too
       | distracting)
        
         | Nevermark wrote:
         | > - airhorn and/or light saber sound effects,
         | 
         | I will take the light saber sounds.
         | 
         | With stereo-spacial transformation, so the sounds "direction"
         | and "distance" match my own physical dynamic orientation
         | relative to the cursor's motion on the screen.
         | 
         | And, the ability to open a small window, which gives me the
         | cursor's visual point-of-view, as it zooms through the graphics
         | on the screen.
         | 
         | Also, each traversed character should get "hot" as the curser
         | goes over it, indicated with a stable glow for a quarter of a
         | second, followed by an exponential fade over another second.
         | 
         | I think we can all agree that when in flow, functional
         | distractions need to work harder, be more immersive, to be
         | effective.
        
         | somat wrote:
         | Here you go.
         | 
         | https://ash-k.itch.io/textreme
        
         | 0xFEE1DEAD wrote:
         | Testimonial:
         | 
         | > I've never been asked to pair up eversince I've started using
         | tattoy
        
       | mholm wrote:
       | iTerm2 has a basic animated cursor that I like, just a frame or
       | two long, and fairly subtle. It would be nice if it expanded to
       | support this type of animation, I do wish it were a bit more
       | visible (though not, perhaps, the EDM show presented)
        
         | knodi123 wrote:
         | This (OP) project is inspired by neovide, a recent neovim gui.
         | And iterm2's animated cursor is a brand new feature, also
         | inspired by neovide.
         | 
         | Honestly, iterm2 is way too nice a piece of software
         | considering the price. A real labor of love from a guy who
         | apparently has lots more free time than me. :-)
        
       | renewiltord wrote:
       | This is pretty cool. Helps trace where the cursor is going. I
       | prefer the Ghostty style now that I see it, but nonetheless cool
       | UI feature.
        
       | pimlottc wrote:
       | I assumed this meant mouse cursors, so I was confused why the
       | pointer didn't move in the same video. Would have been better
       | just to turn it off for the recording.
        
       | dangoodmanUT wrote:
       | i swear to god i can hear the laser sounds
        
       | kingforaday wrote:
       | I applaud this effort and think it is amazing graphically for a
       | tty, but serious question: does anyone use this as their daily
       | driver?
        
         | tombh wrote:
         | I'm the creator of Tattoy, so thanks. A significant part of the
         | motivation for the project is that it's fun, like a "toy", as
         | the name suggests. I do use it everyday, but only for one
         | serious usecase, to allow my Twitch chatters to visually
         | interact with my terminal by sending emotes to it. I'm not
         | personally into the animated cursors, they were just easy to
         | implement because I'd already built out support for Ghostty's
         | background shaders.
         | 
         | But, if you want a truly serious usecase, then my pipe dream is
         | that Tattoy becomes the "XWayland" for an entirely new protocol
         | for terminals that explores moving on from ANSI codes, the
         | terminfo database and so on. I wrote a blog post about this
         | idea: https://tattoy.sh/news/an-end-to-terminal-ansi-codes
        
         | VTimofeenko wrote:
         | As in the cursor trailing to new position? I use it, albeit on
         | a different emulator.
         | 
         | Greatly helps when demoing something from my terminal and
         | having multiple splits open.
        
       | coldblues wrote:
       | Emacs has https://github.com/Malabarba/beacon
        
       | o11c wrote:
       | Honestly, just `:set cursorcolumn` is far more useful. Less
       | distractions at the moment of change, but still visible if you
       | alt-tab back.
        
       | ionwake wrote:
       | I installed it with homebrew but I dont see this shader tracer, I
       | even see the blue pixel top right. Ive read the docs but it
       | doesnt seem to explain if I need to do anything further which
       | means it must be my already customised iterm which is the issue.
       | Ill see if I can sort it.
        
         | tombh wrote:
         | The creator here, sounds like I need to improve the docs. Did
         | you set `enabled = true` in the `[animated_cursors]` section of
         | the config? If so, then this could be bug, and I'd be very
         | grateful for a report in the repo's issues:
         | https://github.com/tattoy-org/tattoy
        
           | ionwake wrote:
           | tbh im not sure what Im doing wrong, I already have a highly
           | customised iterm window and have spent a hour with chatgpt
           | trying to troubleshoot this to no avail... must just be my
           | setup for some reason. I will let you know if I figure it out
           | - thanks
        
           | Vlasar wrote:
           | Sorry if I'm missing something, but isn't the homebrew
           | version outdated?
        
             | tombh wrote:
             | Oh! You weren't missing anything, the automated Homebrew
             | builds have been giving false positive successes since
             | v0.1.3. I've updated it to v0.1.7 now. Thank you for
             | mentioning this.
        
       | getflourish wrote:
       | Inspiring. So cool, yet useful.
        
       | incognito124 wrote:
       | Love to see another atuin user
        
       | thanhhaimai wrote:
       | For a demo of the new Cursor feature in Ghostty:
       | https://www.youtube.com/watch?v=enwDjM7pNNE
        
       | ipsum2 wrote:
       | Wonder what this looks like in asciinema. Does it show up
       | properly?
       | 
       | I wasn't able to get this working. MacOS, homebrew, added
       | [animated_cursor] to the tattoy.toml and the glsl file.
        
         | tombh wrote:
         | It very much should work on asciinema, it's all pure text after
         | all.
         | 
         | I'd very much appreciate a bug report. It looks like maybe
         | Tattoy isn't connecting to the GPU on Mac:
         | https://github.com/tattoy-org/tattoy/issues/129
        
       | magicalhippo wrote:
       | Looks very nice and fun, and potentially very useful. I was going
       | to say I'd prefer a gradient effect to emulate motion blur, but
       | stepping through the video I see you've already implemented
       | something like that.
       | 
       | However, when making large moves, it seems a bit disorienting and
       | the gradient effect seems very subtle in the video. Perhaps make
       | the effect depend on distance, like actual motion blur would?
       | 
       | I was also thinking about having a color shift when moving up vs
       | moving down, not sure about that one but certainly something I'd
       | play with.
        
         | tombh wrote:
         | I think this is something that is quite actively being explored
         | in the Ghostty community. And Tattoy automatically benefits
         | from that because it supports the very same cursor shaders. You
         | could check out the Ghostty Discord if you're interested. And
         | of course you can experiment with your own cursor shaders, they
         | follow the same syntax as Shader Toy:
         | https://tattoy.sh/docs/shaders
        
       | eviks wrote:
       | Have you ever lost track of the cursor to require a trail? (and
       | if yes, what shape/color was the cursor)
        
         | iforgotpassword wrote:
         | Yes, happens occasionally. I just wiggle it left/right or
         | up/down so I can see where it is. No big deal. But put of
         | curiosity I might still try that one day, with a more subtle
         | effect though. ;)
        
           | eviks wrote:
           | What's the shape/color? I guess, non-blinking?
           | 
           | (they have other effects, check effects in neovide for better
           | defaults)
        
       | bombela wrote:
       | This looks cool. I am a bit off topic here. But my only fear is
       | this entices some people to make it the default in terminals over
       | time.
       | 
       | Like all moderne UIs now have animations, ranging from very slow
       | to barely fast enough for my personal perception.
       | 
       | And it becomes increasingly hard to disable those animations.
       | They creep up absolutely everywhere. And they drive me crazy. I
       | want my computer to act instantaneously. Redraw within 8ms.
       | 
       | Almost all animations are also impossible to abort or skip. Worse
       | plenty will animate concurrently. So you might be jumping around
       | on a webpage faster than the animation, which then jumps you back
       | to then slowly animate.
       | 
       | My life on this planet is finite. A computer isstupidly fast. Why
       | waste my precious lifetime? How many minute of life do developers
       | of animations steal from people?
       | 
       | I do understand that I process visual stimulus faster than most
       | people. Making me an outlier. Modern interfaces are devoided of
       | identifiable buttons and all look like a smear of emptiness with
       | a few dollops of text and burger icons to interact with. Making
       | it hard to notice what changed between two actions. Maybe
       | increasing the need for animations to help people follow
       | 
       | In any case, I suffer greatly with animations.
        
         | radicality wrote:
         | On Mac, I recently mistakenly held Shift (or some other key
         | combo?), before hitting Space to open QuickLook as I was gonna
         | select a few image files. It proceeded to open quicklook with
         | an incredibly slow >5s animation, very annoying :S
        
       | __MatrixMan__ wrote:
       | I've not heard of tattoy but I'm glad I ran across it. Most of
       | its usage is not to my taste, but it appears to scratch an itch
       | I've had for some time. I've been chewing on this idea for a...
       | terminal emulator? shell? editor plugin?... something where you
       | could annotate an error message with something like:
       | 
       | > This is fixed in the next release, nothing to see here
       | 
       | or
       | 
       | > I think think one is actually a problem, see issue 1657
       | 
       | And then your coworkers could view the logs in some way (special
       | terminal emulator? piped through some kind of filter? idk) and
       | your annotations would appear in a column next to the logs,
       | perhaps with some background coloring to indicate which
       | annotation goes with which log message. This way you don't all
       | duplicate the effort of deciding whether this particular error is
       | worth worrying about--instead you'd leave notes right there on
       | the error (anchored via context triggered piecewise hashes).
       | 
       | The tattoy protocol seems like it be a good way to apply the
       | highlighting on the logs whenever one that has a matching
       | annotation appears on screen (https://tattoy.sh/docs/plugins/).
        
         | tombh wrote:
         | This is exactly the kind of creative thinking I want Tattoy to
         | both inspire and make easy to implement.
        
         | DiggyJohnson wrote:
         | That would actually be cool. We have a couple issue patterns
         | with the interface between front and backend that leads to our
         | frontend guys always misinterpreting the reason their API call
         | are failing. Wound be cool to annotate "this error message is
         | usually caused by another error message in <this controller>.
         | Please check for this before assuming..."
        
           | __MatrixMan__ wrote:
           | It's part of a bigger vision, a sort of general-purpose
           | digital spraypaint, where you don't need write access to the
           | data in order to annotate it and we use patterns in the data
           | itself to index the annotations such that you can direct any
           | bitstream into the app and ask:
           | 
           | > do any of my peers have annotations on any of this?
           | 
           | But I think the way to get there is to make a variety of
           | purpose built apps which all follow the same pattern, and I
           | figure annotations on logs is one of the first ones I'll do.
           | It has been slow going though, holidays and weekends, so
           | it'll be a while.
        
       | Animats wrote:
       | Comet Cursor! [1]
       | 
       | [1] https://en.wikipedia.org/wiki/Comet_Cursor
        
       ___________________________________________________________________
       (page generated 2025-07-26 23:01 UTC)