AutoLaunch
AutoLaunch copied to clipboard
Launch your Kotlin / KMP app automatically on system startup â¨
AutoLaunch Kotlin
Lightweight Kotlin library to enable auto-launch on system startup.
đĻ Installation
AutoLaunch targets JVM platform.
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.vinceglb:auto-launch:0.1.0")
}
đ Quick start
// Create an instance of AutoLaunch.
val autoLaunch = AutoLaunch(appPackageName = "com.autolaunch.sample")
// Enable or disable launch at startup.
autoLaunch.enable()
autoLaunch.disable()
// Check if auto launch is enabled.
val isEnabled = autoLaunch.isEnabled()
âšī¸ Note: To test the auto-launch feature, your application must be distributed. With Compose Multiplatform, you can run a distributable package using
./gradlew :runDistributable
đ Advanced
âĄī¸ Convenient methods
// Get the app resolved executable path
val appPath = AutoLaunch.resolvedExecutable
// Determine whether the app is distributable
val isDistributable = AutoLaunch.isRunningFromDistributable
đ§ Customizing the application path
By default, your application path is detected automatically. You can customize the application path that will be launched at startup:
- MacOS: something like
/Applications/JetBrains Toolbox.app/Contents/MacOS/jetbrains-toolbox. - Windows: the path to the
.exefile.
val autoLaunch = AutoLaunch(
appPackageName = "com.autolaunch.sample",
appPath = "/path/to/your/app"
)
⨠Behind the scene
Depending on the platform, AutoLaunch uses the following techniques:
- MacOS: create a plist file in
~/Library/LaunchAgents/directory. - Windows: create a registry key in
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run. - Linux: to be implemented đ§
đą Sample project
You can find a sample project in the sample directory. Run the following command to test the auto-launch feature:
:sample:runDistributable
đ Contribution
Your contributions are welcome đĨ Here are some features that are missing:
- [ ] Linux support
- [ ] Pass optional arguments to the application
Made with â¤ī¸ by Vince