[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)