https://github.com/ac04-dump/gutu
The init system for your desktop session
https://github.com/ac04-dump/gutu
desktop go golang init-system linux linux-desktop manager process-manager startup startup-applications startup-manager systemd
Last synced: 7 months ago
JSON representation
The init system for your desktop session
- Host: GitHub
- URL: https://github.com/ac04-dump/gutu
- Owner: ac04-dump
- License: gpl-3.0
- Archived: true
- Created: 2022-08-03T20:11:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-31T12:27:59.000Z (over 3 years ago)
- Last Synced: 2024-12-16T23:23:02.272Z (over 1 year ago)
- Topics: desktop, go, golang, init-system, linux, linux-desktop, manager, process-manager, startup, startup-applications, startup-manager, systemd
- Language: Go
- Homepage:
- Size: 54.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gutu
[](https://github.com/alexcoder04/gutu/releases/latest)
[](https://aur.archlinux.org/packages/gutu)
[](https://github.com/alexcoder04/gutu/search?l=go)
[](https://github.com/alexcoder04/gutu/blob/main/LICENSE)
[](https://github.com/alexcoder04/gutu/issues)
[](https://github.com/alexcoder04/gutu/pulls)
`gutu` manages your desktop startup applications. Especially on standalone
window managers, it can be used to uniform the way you handle the processes you
need to run (e. g. notification daemon, keybind handler etc)
## Installation
### Arch Linux (AUR)
gutu is available on the [AUR](https://aur.archlinux.org/packages/gutu).
### Prebuild release (all distros, binary only)
Download the binary from [github.com/alexcoder04/gutu/releases/latest](https://github.com/alexcoder04/gutu/releases/latest)
and copy it to a directory in your `$PATH`.
### Other Distros (build from source)
```sh
git clone "https://github.com/alexcoder04/gutu.git"
cd gutu
go build . # build the binary
go install . # install the executable to your $GOPATH
```
## Usage
Auto-start gutu in your window manager / desktop environment startup: execute
`gutu`. For configuring the services, see below.
## Configuration
Every service file goes into a separate file in `$XDG_CONFIG_HOME/gutu`. These
files can have `.service`, `.yml` and `.yaml` extensions.
### Example service
```yaml
# your name for the service
Name: compositor
Command: picom
Args: ["--experimental-backends"]
# restart if fails, at most 3 times
KeepAlive: true
RetryNumber: 3
# start only on Xorg
When: x11
# kill picom instances that are still running
KillOld: true
```
For more examples, see [`contrib`](https://github.com/alexcoder04/gutu/tree/main/contrib).
### Configuration fields
```yaml
Name # Name of service
Command # Command to run
Args # Arguments for the command (["-c", "arg1", "arg2"])
Interval # Re-run command periodically in this interval (in seconds, 0=never)
KeepAlive # Restart the command if it exits (true/false)
RetryNumber # How often try to restart the command (if KeepAlive=true)
When # "wayland" / "x11" / "always" / "never"
Delay # Number of seconds to wait before starting
KillOld # Kill running "Command" processes
```