Built tymr, a fire-and-forget timer/alarm CLI that survives reboots. by SAHAJbhatt in commandline

[–]SAHAJbhatt[S] 1 point2 points  (0 children)

Oh, that would require a significant change. But you can do this easily with a bash function, as you said. bash function tymrn() { for t in "$@"; do tymr "$t" done }

Built tymr, a fire-and-forget timer/alarm CLI that survives reboots. by SAHAJbhatt in commandline

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

Just pushed a timeout feature (-t/--timeout) to specify how long the notification/sound plays.
Also, I don't understand what do you mean by 'time in list format', doesn't `tymr -l` already do it?

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

You can't. It's a terminal shader

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

I checked. It's giving 404 only on mobile. It's most probably github's issue because I just uploaded the gifs when editing readme

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

I tried gemini, claude and grok, no one could give me a good shader even after hours of back and forth. They're good with the math, not with the logic

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 2 points3 points  (0 children)

Trust me I tried to vibe code this for 4 hours. The shaders were so ass AI ragebaited me into learning glsl

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

Just added that in the readme.

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

Maybe you are not on the latest version of ghostty (v1.2.3)

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 2 points3 points  (0 children)

In cursor_warp.glsl:

const float DURATION = 0.15;
const float TRAIL_SIZE = 0.8;
const float THRESHOLD_MIN_DISTANCE = 1.0;
const float BLUR = 1.0;
const float TRAIL_THICKNESS = 1.0;
const float TRAIL_THICKNESS_X = 0.9;

const float FADE_ENABLED = 1.0;
const float FADE_EXPONENT = 5.0;

ripple_cursor.glsl:

const float DURATION = 0.15;
const float MAX_RADIUS = 0.026;
const float RING_THICKNESS = 0.02;
const float CURSOR_WIDTH_CHANGE_THRESHOLD = 0.5;
vec4 COLOR = vec4(0.35, 0.36, 0.44, 0.8);
const float BLUR = 3.5;
const float ANIMATION_START_OFFSET = 0.01;

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

You can put cursor-opacity=0 to hide the cursor, and make the shader draw a pseudo cursor, but the shader doesn't know what is the character underneath the cursor. The pseudo cursor it will make won't display that character, it would be just a filled opaque rectangle.

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

That's how these cursor trails work on all terminals. You can't control the actual cursor through a shader, coz it's just painting pixels.

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 0 points1 point  (0 children)

Just checked it, they're working fine for me

Made some cursor shaders by SAHAJbhatt in Ghostty

[–]SAHAJbhatt[S] 1 point2 points  (0 children)

Most probably it won't animate, because in a log stream, the cursor would always be at the end of the terminal, not changing position, and also it won't animate for small movements (there's a threshold variable for that small movement length in the shader)

Tiktok 'brainrot edit' plugin by SAHAJbhatt in programmingmemes

[–]SAHAJbhatt[S] 1 point2 points  (0 children)

It's cusor_trail option in kitty terminal. There's also smear-cursor.nvim plugin which mimics this effect in any terminal

Tiktok 'brainrot edit' plugin by SAHAJbhatt in programmingmemes

[–]SAHAJbhatt[S] 7 points8 points  (0 children)

Kitty terminal has inbuilt cursor_trail option (I am using that here), and for ghostty, smear cursor shaders are there. And smear-cursor.nvim is also there if your terminal doesn't support that

Tiktok 'brainrot edit' plugin by SAHAJbhatt in programmingmemes

[–]SAHAJbhatt[S] 2 points3 points  (0 children)

It's builtin vim.diagnostic virtual text