Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vinceglb/autolaunch

Launch your Kotlin / KMP app automatically on system startup ✨
https://github.com/vinceglb/autolaunch

kmp kotlin kotlin-desktop kotlin-jvm kotlin-multiplatform

Last synced: about 18 hours ago
JSON representation

Launch your Kotlin / KMP app automatically on system startup ✨

Awesome Lists containing this project

README

        


AutoLaunch Kotlin




AutoLaunch Kotlin


Lightweight Kotlin library to enable auto-launch on system startup.


AutoLaunch Maven Version
Badge JVM

## đŸ“Ļ Installation

AutoLaunch targets JVM platform.

```kotlin
repositories {
mavenCentral()
}

dependencies {
implementation("io.github.vinceglb:auto-launch:0.4.0")
}
```

## 🚀 Quick start

```kotlin
// 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()

// Check if the app was started by autostart.
val isStartedViaAutostart = autoLaunch.isStartedViaAutostart()
```

> ℹī¸ **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

```kotlin
// 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 `.exe` file.

```kotlin
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: create a `.desktop` file in `~/.config/autostart/` directory.

## 🌱 Sample project

You can find a sample project in the `sample` directory. Run the following command to test the auto-launch feature:

```shell
:sample:runDistributable
```

## 😎 Contribution

Your contributions are welcome đŸ”Ĩ Here are some features that are missing:

- [x] Linux support
- [ ] Pass optional arguments to the application

---

Made with ❤ī¸ by Vince