@capgo/capacitor-home-indicator
Hide or show the home indicator bar from your Capacitor app for immersive screens like video, games and kiosks.
Capgo: push fixes to your Capacitor users in minutes, build signed iOS and Android apps without a Mac, and roll back in one click.
➡️ Get started for free
14-day unlimited free trial. No credit card required
🤖 Building with an AI coding agent? Install Capgo skills so Claude Code, Codex, Cursor, Copilot, or Gemini CLI know how to install and use
@capgo/capacitor-home-indicatorin your Capacitor app:npx skills add Cap-go/capgo-skills. Then ask your agent: "Add @capgo/capacitor-home-indicator to my Capacitor app and wire it up." Agent setup guides · Hosted MCP
Key features
- Hide:
hide()hides the home indicator. - Show:
show()brings it back. - State:
isHidden()reports the current state. - iOS: uses the view controller's auto-hidden home indicator preference.
- Platforms: iOS and Android. Android needs a small
MainActivitychange described below.
hide and show home button indicator in Capacitor app
Android
To be able to hide the home indicator on Android, you need to
update your MainActivity.java file to add the following code:
// ...
import android.os.Build;
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
public class MainActivity extends BridgeActivity {
void fixSafeArea() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
getWindow().setDecorFitsSystemWindows(false);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fixSafeArea();
}
// on resume
@Override
public void onResume() {
super.onResume();
fixSafeArea();
}
// on pause
@Override
public void onPause() {
super.onPause();
fixSafeArea();
}
}
And the update styles.xml to add the following code:
<item name="android:statusBarColor">
@android:color/transparent
</item>
Documentation
The most complete doc is available here: https://capgo.app/docs/plugins/home-indicator/
Compatibility
| Plugin version | Capacitor compatibility | Maintained |
|---|---|---|
| v8.*.* | v8.*.* | ✅ |
| v7.*.* | v7.*.* | On demand |
| v6.*.* | v6.*.* | ❌ |
| v5.*.* | v5.*.* | ❌ |
Note: The major version of this plugin follows the major version of Capacitor. Use the version that matches your Capacitor installation (e.g., plugin v8 for Capacitor 8). Only the latest major version is actively maintained.
Install
You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
Then use the following prompt:
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-home-indicator` plugin in my project.
If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:
bun add @capgo/capacitor-home-indicator
bunx cap sync
API
Capacitor Home Indicator Plugin for controlling the iOS home indicator visibility. The home indicator is the horizontal bar at the bottom of iOS devices without a physical home button.
hide()
hide() => Promise<void>
Hide the home indicator at the bottom of the screen.
This visually hides the iOS home indicator bar, providing a more immersive full-screen experience. Users can still swipe up to access home, but the indicator will not be visible until they start the gesture.
iOS only. Has no effect on Android or web.
Since: 0.0.1
show()
show() => Promise<void>
Show the home indicator at the bottom of the screen.
This restores the default iOS home indicator visibility, making it always visible to the user. This is the default behavior.
iOS only. Has no effect on Android or web.
Since: 0.0.1
isHidden()
isHidden() => Promise<{ hidden: boolean; }>
Check whether the home indicator is currently hidden.
Returns the current visibility state of the iOS home indicator.
Returns: Promise<{ hidden: boolean; }>
Since: 0.0.1
getPluginVersion()
getPluginVersion() => Promise<{ version: string; }>
Get the native Capacitor plugin version.
Returns: Promise<{ version: string; }>
Since: 0.0.1
CSS Variables
You can use --safe-area-inset-bottom to make sure your content is not hidden by the home indicator
This variable is injected by the plugin for android.
It's useful if you set real fullscreen mode on android.
with :
getWindow().setDecorFitsSystemWindows(false);