Gesture navigation requires android.permission.INJECT_EVENTS. The permission can only be granted in AOSP signatured ROM or disabled Android Signature Verification in Android 13 and bellow.
If you are using KernelSU, you need to disable Unmount Modules by Default in KernelSU app settings
Reboot
If you are using KernelSU, you need to allow superuser list manually all package name listed in package.txt (enable show system apps) and reboot afterwards
Change your default launcher to this Miui Home System Launcher via Settings app (or you can copy the content of default.sh and paste it to Termux app. Type su and grant root first!)
If you change from hardware navbar to software navbar or vice-versa, you need to force stop this launcher to fix display bug.
Known Issues
Some widgets doesn't work
Uninstall app requires 2 confirmations
Minimize button in Freeform window doesn't work because I'm using "setTaskAlwaysOnTop" method so it can be showed on top of current task
Split screen doesn't work except this launcher is set as default launcher if the recents provider is activated