-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.sh
More file actions
executable file
·55 lines (48 loc) · 1.64 KB
/
run.sh
File metadata and controls
executable file
·55 lines (48 loc) · 1.64 KB
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
49
50
51
52
53
54
55
#!/bin/bash
set -e
# Get absolute path of the binary
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BINARY="$SCRIPT_DIR/target/release/virtusdev"
if [ ! -f "$BINARY" ]; then
echo "❌ Binary not found. Building first..."
./build.sh
fi
echo "🚀 Starting VirtusDev Virtual Barcode Scanner..."
echo ""
# Check if pkexec is available (better for GUI apps)
if command -v pkexec > /dev/null 2>&1; then
echo "Using pkexec for privilege escalation..."
pkexec env DISPLAY="$DISPLAY" \
XAUTHORITY="$XAUTHORITY" \
XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
HOME="$HOME" \
LIBGL_ALWAYS_SOFTWARE=1 \
WINIT_UNIX_BACKEND=x11 \
WINIT_X11_SCALE_FACTOR=1 \
__GLX_VENDOR_LIBRARY_NAME=mesa \
"$BINARY"
else
# Fallback to sudo with X11 configuration
xhost +local:root > /dev/null 2>&1
# Create temporary XAUTHORITY for root if needed
if [ -n "$XAUTHORITY" ] && [ -f "$XAUTHORITY" ]; then
TEMP_XAUTH="/tmp/.virtusdev-xauth-$$"
cp "$XAUTHORITY" "$TEMP_XAUTH"
chmod 644 "$TEMP_XAUTH"
XAUTH_TO_USE="$TEMP_XAUTH"
else
XAUTH_TO_USE="$HOME/.Xauthority"
fi
sudo -E DISPLAY="$DISPLAY" \
XAUTHORITY="$XAUTH_TO_USE" \
XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
HOME="$HOME" \
LIBGL_ALWAYS_SOFTWARE=1 \
WINIT_UNIX_BACKEND=x11 \
WINIT_X11_SCALE_FACTOR=1 \
__GLX_VENDOR_LIBRARY_NAME=mesa \
"$BINARY"
# Cleanup
[ -n "${TEMP_XAUTH:-}" ] && rm -f "$TEMP_XAUTH"
xhost -local:root > /dev/null 2>&1
fi