MCPcopy Index your code
hub / github.com/FShou/hypr-zoom

github.com/FShou/hypr-zoom @v0.0.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.3 ↗ · + Follow
7 symbols 11 edges 1 files 3 documented · 43%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

hypr-zoom

hypr-zoom is a command-line tool written in Go that smoothly animates the Hyprland cursor zoom-factor changes using variety of easing functions. It simply uses the hyprctl command to adjust the cursor zoom-factor and the ease library for animation interpolation.

Why ?

Hyprland cursor zoom factor changes happen instantly, which can feel ood since Hyprland has cool animations. This little CLI solves that.

Features

  • Smoothly animates cursor zoom-factor using a variety of easing and interpolation functions.
  • Configurable animation duration and steps.

Installation

install from aur: hypr-zoom

Grab from release or : 1. Clone the repository: sh git clone https://github.com/FaqihS/hypr-zoom.git cd hypr-zoom

  1. Build the project: sh go build -o hypr-zoom

Usage

The hypr-zoom command has several flags to configure the animation:

  • -duration: Duration of the animation in milliseconds (default: 500)
  • -steps: Number of steps in the animation (default: 100)
  • -easing: Easing function to use for the animation (default: InOutExpo)
  • -easingOut: Easing function to use for the zoom-out animation (optional)
  • -target: Target zoom factor (default: 2.0)
  • -interp: Interpolation Function used for animation(default: Log)
  • -force : Forcing target parameter (default: false)

Example

hypr-zoom -easing=InOutExpo -duration=500 -steps=60 -target=1.2

This command will animate the zoom factor to 1.2 using the InOutExpo easing function over 500 milliseconds with 60 steps.

hypr-zoom -easing=OutBack -easingOut=OutExpo 

This command will animate the zoom factor using the OutBack easing function when zooming-in and OutExpo when zooming-out.

[!WARNING]
Adjust duration and steps wisely.

Supported Easing Functions

The following easing functions are supported:

  • Linear
  • InQuad, OutQuad, InOutQuad
  • InCubic, OutCubic, InOutCubic
  • InQuart, OutQuart, InOutQuart
  • InQuint, OutQuint, InOutQuint
  • InSine, OutSine, InOutSine
  • InExpo, OutExpo, InOutExpo
  • InCirc, OutCirc, InOutCirc
  • InBack, OutBack, InOutBack
  • InBounce, OutBounce, InOutBounce
  • InSquare, OutSquare, InOutSquare

For animation preview see here.

Supported Interpolation function

  • Linear
  • Log (Logarithmic)

Showcase

Default+Linear

hypr-zoom -interp=Linear

https://github.com/user-attachments/assets/261aff62-955f-49e6-9a7b-c5f714389dc4

InOutCubic

hypr-zoom -easing=InOutCubic -interp=Linear

https://github.com/user-attachments/assets/622d4a4b-b805-495d-8178-ad5e130279c2

OutBack-Inback

hypr-zoom -duration=600 -steps=150 -easing=OutBack -easingOut=InBack -interp=Linear

https://github.com/user-attachments/assets/de4f2924-b5e8-43a8-9bbf-6f1ac795687c

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes. Although i'm not real Go Dev :p

Acknowledgements

Extension points exported contracts — how you extend this code

EasingFunction (FuncType)
(no doc)
hypr-zoom.go
InterpolatorFunc (FuncType)
(no doc)
hypr-zoom.go

Core symbols most depended-on inside this repo

zoom
called by 1
hypr-zoom.go
executeCommand
called by 1
hypr-zoom.go
lerp
called by 0
hypr-zoom.go
logInterp
called by 0
hypr-zoom.go
main
called by 0
hypr-zoom.go

Shape

Function 5
FuncType 2

Languages

Go100%

Modules by API surface

hypr-zoom.go7 symbols

For agents

$ claude mcp add hypr-zoom \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page