summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b9e9d6dc42dc641e78c5d7356f5de0501427510b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Maintainer: Eduardo Vozniak <evozniak@users.noreply.github.com>
pkgname=tupiscreen
pkgver=1.0.1
pkgrel=1
pkgdesc="Auto-switch display layout and audio output when a game controller is connected"
arch=('x86_64')
url="https://github.com/evozniak/TupiScreen"
license=('MIT')
depends=('kscreen' 'libpipewire')
makedepends=('dotnet-sdk>=9')
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('817bc3cb00685fdc22a2c513f984b3c3531093d3ec994c31a6eb95b5f4b3f0d7')

build() {
    cd "TupiScreen-$pkgver"
    dotnet publish -c Release -r linux-x64 \
        -o "$srcdir/publish"
}

package() {
    # Install native libs + binary to /usr/lib/tupiscreen/
    install -dm755 "$pkgdir/usr/lib/$pkgname"
    install -Dm755 "$srcdir/publish/TupiScreen"           "$pkgdir/usr/lib/$pkgname/TupiScreen"
    install -Dm755 "$srcdir/publish/libSkiaSharp.so"      "$pkgdir/usr/lib/$pkgname/libSkiaSharp.so"
    install -Dm755 "$srcdir/publish/libHarfBuzzSharp.so"  "$pkgdir/usr/lib/$pkgname/libHarfBuzzSharp.so"

    # Wrapper script in /usr/bin so the native libs are on LD_LIBRARY_PATH
    install -dm755 "$pkgdir/usr/bin"
    cat > "$pkgdir/usr/bin/$pkgname" <<'EOF'
#!/bin/sh
export LD_LIBRARY_PATH="/usr/lib/tupiscreen:$LD_LIBRARY_PATH"
exec /usr/lib/tupiscreen/TupiScreen "$@"
EOF
    chmod 755 "$pkgdir/usr/bin/$pkgname"

    # .desktop file
    install -Dm644 "TupiScreen-$pkgver/packaging/tupiscreen.desktop" \
        "$pkgdir/usr/share/applications/tupiscreen.desktop"

    # Icon (512x512 PNG)
    install -Dm644 \
        "TupiScreen-$pkgver/assets/icons/hicolor/512x512/apps/tupiscreen.png" \
        "$pkgdir/usr/share/icons/hicolor/512x512/apps/tupiscreen.png"

    # License
    install -Dm644 "TupiScreen-$pkgver/LICENSE" \
        "$pkgdir/usr/share/licenses/$pkgname/LICENSE" 2>/dev/null || true
}