Di macOS, tidak ada cara yang tepat untuk memeriksa ini dari shell. Ada cara terprogram, dan kami dapat menggunakan bahasa yang ditafsirkan untuk memanfaatkannya.
Berikut adalah skrip kecil yang menampilkan salah satu dari tiga status, Mac GUI, Mac non-GUI, atau X11:
#!/bin/bash
if [ `uname` = "Darwin" ]
then
if which swift >/dev/null && swift <(cat <<"EOF"
import Security
var attrs = SessionAttributeBits(rawValue:0)
let result = SessionGetInfo(callerSecuritySession, nil, &attrs)
exit((result == 0 && attrs.contains(.sessionHasGraphicAccess)) ? 0 : 1)
EOF
)
then
echo "Mac GUI session"
elif [ -n "$DISPLAY" ]
then
echo "Mac X11 GUI session"
else
echo "Mac non-GUI session"
fi
elif [ -n "$DISPLAY" ]
then
echo "X11 GUI session"
fi
Mac dapat menginstal server X, dalam hal ini DISPLAY
didefinisikan. Namun, saya tidak tahu apakah aplikasi Elektron Anda akan berfungsi dengan baik dalam konfigurasi tersebut. Jadi, saya mendeteksinya secara terpisah.