feat: add openrc support

This commit is contained in:
javalsai 2024-09-04 19:39:39 +02:00
parent b4fbe68542
commit ae4e4df7cd
Signed by: javalsai
SSH Key Fingerprint: SHA256:3G83yKhBUWVABVX/vPWH88xnK4+ptMtHkZGCRXD4Mk8
4 changed files with 47 additions and 9 deletions

View File

@ -55,11 +55,14 @@ install-service:
fi
install-service-systemd:
install -m655 ./assets/services/systemd.service /etc/systemd/system/lidm.service
install -m644 ./assets/services/systemd.service /etc/systemd/system/lidm.service
@printf '\x1b[1m%s\x1b[0m\n\n' " don't forget to run 'systemctl enable lidm'"
install-service-dinit:
install -m655 ./assets/services/dinit /etc/dinit.d/lidm
install -m644 ./assets/services/dinit /etc/dinit.d/lidm
@printf '\x1b[1m%s\x1b[0m\n\n' " don't forget to run 'dinitctl enable lidm'"
install-service-runit:
rsync -a --no-owner --no-group ./assets/services/runit/. /etc/runit/sv/lidm
@printf '\x1b[1m%s\x1b[0m\n\n' " don't forget to run 'ln -s /etc/runit/sv/lidm /run/runit/service' and 'sv enable lidm'"
install-service-openrc:
install -m755 ./assets/services/openrc /etc/init.d/lidm
@printf '\x1b[1m%s\x1b[0m\n\n' " don't forget to run 'rc-update add lidm'"

View File

@ -24,7 +24,7 @@ LiDM is like any [X Display Manager](https://en.wikipedia.org/wiki/X_display_man
* Fast and possibly efficient.
* Fully customizable, from strings, including action keys, to colors (I hope you know ansi escape codes)
* Automatically detects xorg and wayland sessions, plus allowing to launch the default user shell (if enabled in config)
* Starts with many init systems (systemd, dinit and runit).
* Starts with many init systems (systemd, dinit, runit and openrc).
## WIP
* Desktop's file `TryExec` key.
@ -60,7 +60,7 @@ We all know that the most important thing in a project is the ideology of the au
# Usage
### Arguments
If a single argument is provided (don't even do `--` or standard parsing...), it passes that argument to `chvt` on startup, used (at least) by the dinit and runit services.
If a single argument is provided (don't even do `--` or standard parsing...), it passes that argument to `chvt` on startup, used (at least) by most service files.
### Program
On top of pure intuition:

View File

@ -8,17 +8,21 @@ There's make scripts to automatically copy the service files to the proper locat
The manuall steps for installation are:
## Systemd
* Copy `systemd.service` to `/etc/systemd/system/lidm.service`.
* Copy `systemd.service` to `/etc/systemd/system/lidm.service`
* To enable it you can run `systemctl enable lidm`
## Dinit
* Copy `dinit` to `/etc/dinit.d/lidm`.
* To enable it, run `dinitctl enable lidm`.
* Copy `dinit` to `/etc/dinit.d/lidm`
* To enable it, run `dinitctl enable lidm`
## Runit
* Copy `runit/` to `/etc/runit/sv/lidm/`.
* Add the service with `ln -s /etc/runit/sv/lidm /run/runit/service`.
* Copy `runit/` to `/etc/runit/sv/lidm/`
* Add the service with `ln -s /etc/runit/sv/lidm /run/runit/service`
* And to enable it `sv enable lidm`
## OpenRC
* Copy `openrc` to `/etc/init.d/lidm`
* Enable the service with `rc-update add lidm`
> [!WARNING]
> Make sure to disable any other service that might run on tty7, such us lightdm or most display managers out there.

31
assets/services/openrc Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/openrc-run
description="start agetty on a terminal line"
supervisor=supervise-daemon
port=tty7
respawn_period="${respawn_period:-60}"
term_type="${term_type:-linux}"
command=/sbin/agetty
command_args_foreground="${agetty_options} ${port} ${baud} ${term_type} -nl /bin/lidm -o 7"
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
after local
keyword -prefix
provide getty
}
start_pre() {
if [ "$port" = "$RC_SVCNAME" ]; then
eerror "${RC_SVCNAME} cannot be started directly. You must create"
eerror "symbolic links to it for the ports you want to start"
eerror "agetty on and add those to the appropriate runlevels."
return 1
else
export EINFO_QUIET="${quiet:-yes}"
fi
}
stop_pre()
{
export EINFO_QUIET="${quiet:-yes}"
}