Automatically detect loaded module.

This commit is contained in:
redxef 2024-04-15 17:47:15 +02:00
parent 7af9381e6e
commit 2aedbced66
Signed by: redxef
GPG key ID: 7DAC3AA211CBD921
4 changed files with 20 additions and 10 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
pkg/
src/
sway-dynamic-*/
sway-dynamic-*.pkg.tar.zst

View file

@ -1,6 +1,6 @@
# Maintainer redxef <redxef@redxef.at>
pkgname=sway-dynamic
pkgver=1.0.0
pkgver=1.0.1
pkgrel=1
pkgdesc="Helper files to dynamically launch sway for NVIDIA comaptibility or not"
arch=('any')

View file

@ -4,11 +4,6 @@ Dynamically switch between sway and sway-nvidia based on active gpu.
## Usage
When booting a GPU set the environment variable `GPUMODE=<driver>` with something
like `systemd.setenv=GPUMODE=<driver>`. The script will decide how to
launch sway depending on this variable. Possible values:
- `nvidia`
- `nouveau`
Blacklist the module which should not be loaded on boot, the script
detects if the `nvidia` or `nouveau` driver is loaded and either calls
`sway-nvidia` or `sway`.

View file

@ -1,6 +1,17 @@
#!/bin/sh
if [ "$GPUMODE" = 'nvidia' ]; then
active_module() {
if [ -n "$(lsmod | grep "nvidia")" ]; then
echo "nvidia"
elif [ -n "$(lsmod | grep "nouveau")" ]; then
echo nouveau
else
# no nvidia modules loaded
echo ""
fi
}
if [ "$(active_module)" = 'nvidia' ]; then
exec sway-nvidia
else
exec sway