This commit is contained in:
gfdgd xi 2023-06-26 15:47:39 +08:00
parent 219dc9c02e
commit 1ae38adb59
3 changed files with 31 additions and 1 deletions

@ -1,7 +1,27 @@
#!/usr/bin/env python3
import os
import sys
import PyQt5.QtWidgets as QtWidgets
def RunProgram():
window.hide()
if os.system("which gx-env-run"):
QtWidgets.QMessageBox.critical(window, "错误", "gx-env-run 不存在!")
return
if runProgramWithRoot.isChecked():
if os.getenv("HOME") + "/.config/gx-env/bwrap":
envDist = os.environ
envSet = "DISPLAY=$DISPLAY "
for i in envDist:
envSet += "{}=${} ".format(i, i)
os.system("pkexec env " + envSet + " gx-env-run " + programPath.text())
return
else:
os.system("gx-env-run-root " + programPath.text())
return
os.system("gx-env-run " + programPath.text())
sys.exit(0)
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
widget = QtWidgets.QWidget()
@ -18,6 +38,7 @@ layout.addWidget(programPath, 1, 1, 1, 3)
controlLayout = QtWidgets.QHBoxLayout()
cancelButton = QtWidgets.QPushButton("取消")
okButton = QtWidgets.QPushButton("确定")
okButton.clicked.connect(RunProgram)
controlLayout.addWidget(runProgramWithRoot)
controlLayout.addWidget(browser)
controlLayout.addWidget(cancelButton)

@ -16,6 +16,6 @@ if [[ ! -f $chrootEnvPath/tmp/env-$USER.txt ]]; then
fi
command="$@"
#echo $command
pkexec env DISPLAY=$DISPLAY chroot $chrootEnvPath sudo -u $USER bash -c "$command"
pkexec env `printenv` chroot $chrootEnvPath sudo -u $USER bash -c "$command"
#echo $@
pkexec gx-env-load-desktop

@ -4,6 +4,15 @@ chrootEnvPath=/opt/new-system-env
# echo 请使用 root 权限运行
# exit 1
#fi
if [[ -f ~/.config/gx-env/bwrap ]]; then
if [[ `whoami` != "root" ]]; then
echo 请使用 root 权限运行
exit 1
fi
bwrap --dev-bind / / --dev-bind $chrootEnvPath/etc /etc --dev-bind $chrootEnvPath/opt /opt --dev-bind $chrootEnvPath/usr /usr --dev-bind $chrootEnvPath/var /var --dev-bind $chrootEnvPath/bin /bin --dev-bind $chrootEnvPath/boot /boot --dev-bind $chrootEnvPath/lib /lib --dev-bind $chrootEnvPath/lib32 /lib32 --dev-bind $chrootEnvPath/lib64 /lib64 --dev-bind $chrootEnvPath/libx32 /libx32 --dev-bind $chrootEnvPath/gx-env /gx-env "$@"
pkexec gx-env-load-desktop
exit
fi
echo aa > /tmp/env-$USER.txt
if [[ ! -f $chrootEnvPath/tmp/env-$USER.txt ]]; then
echo 未挂载目录,立即挂载