aboutsummaryrefslogtreecommitdiff
path: root/hypr/hypr-zoom/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'hypr/hypr-zoom/readme.md')
-rw-r--r--hypr/hypr-zoom/readme.md104
1 files changed, 104 insertions, 0 deletions
diff --git a/hypr/hypr-zoom/readme.md b/hypr/hypr-zoom/readme.md
new file mode 100644
index 0000000..ab938ad
--- /dev/null
+++ b/hypr/hypr-zoom/readme.md
@@ -0,0 +1,104 @@
+# 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](https://aur.archlinux.org/packages/hypr-zoom)
+
+Grab from release or :
+1. Clone the repository:
+ ```sh
+ git clone https://github.com/FaqihS/hypr-zoom.git
+ cd hypr-zoom
+ ```
+
+2. 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
+
+```sh
+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.
+
+```sh
+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](https://github.com/fogleman/ease).
+
+### Supported Interpolation function
+- Linear
+- Log (Logarithmic)
+
+## Showcase
+### Default+Linear
+```sh
+hypr-zoom -interp=Linear
+```
+https://github.com/user-attachments/assets/261aff62-955f-49e6-9a7b-c5f714389dc4
+### InOutCubic
+```sh
+hypr-zoom -easing=InOutCubic -interp=Linear
+```
+https://github.com/user-attachments/assets/622d4a4b-b805-495d-8178-ad5e130279c2
+### OutBack-Inback
+```sh
+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
+- [fogleman/ease](https://github.com/fogleman/ease) - Easing functions library used in this project.
+- [Hyprland](https://hyprland.org)