devcontainer: expose host config, fix mac screen issues (#29932)
* export host config via .host/.env file. fix mac display issues
* append instead of replace for bashrc
* Log when mac display override happens
* Update xauthority path in json
old-commit-hash: dd26a1faad
test-msgs
parent
ace695bcea
commit
109515a208
6 changed files with 52 additions and 21 deletions
@ -1 +1,3 @@ |
||||
.Xauthority |
||||
.Xauthority |
||||
.env |
||||
.host/ |
@ -0,0 +1,14 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
source .devcontainer/.host/.env |
||||
|
||||
# override display flag for mac |
||||
if [[ $HOST_OS == darwin ]]; then |
||||
echo "Setting up DISPLAY override for macOS..." |
||||
cat <<EOF >> /root/.bashrc |
||||
if [ -n "\$DISPLAY" ]; then |
||||
DISPLAY_NUM=\$(echo "\$DISPLAY" | awk -F: '{print \$NF}') |
||||
export DISPLAY=host.docker.internal:\$DISPLAY_NUM |
||||
fi |
||||
EOF |
||||
fi |
@ -0,0 +1,7 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
# setup safe directories for submodules |
||||
SUBMODULE_DIRS=$(git config --file .gitmodules --get-regexp path | awk '{ print $2 }') |
||||
for DIR in $SUBMODULE_DIRS; do |
||||
git config --global --add safe.directory "$PWD/$DIR" |
||||
done |
@ -0,0 +1,24 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
# setup .host dir |
||||
mkdir -p .devcontainer/.host |
||||
|
||||
# setup links to Xauthority |
||||
XAUTHORITY_LINK=".devcontainer/.host/.Xauthority" |
||||
rm -f $XAUTHORITY_LINK |
||||
if [[ -z $XAUTHORITY ]]; then |
||||
echo "XAUTHORITY not set. Fallback to ~/.Xauthority ..." |
||||
if ! [[ -f $HOME/.Xauthority ]]; then |
||||
echo "~/.XAuthority file does not exist. GUI tools may not work properly." |
||||
touch $XAUTHORITY_LINK # dummy file to satisfy container volume mount |
||||
else |
||||
ln -sf $HOME/.Xauthority $XAUTHORITY_LINK |
||||
fi |
||||
else |
||||
ln -sf $XAUTHORITY $XAUTHORITY_LINK |
||||
fi |
||||
|
||||
# setup host env file |
||||
HOST_INFO_FILE=".devcontainer/.host/.env" |
||||
SYSTEM=$(uname -s | tr '[:upper:]' '[:lower:]') |
||||
echo "HOST_OS=\"$SYSTEM\"" > $HOST_INFO_FILE |
@ -1,16 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
# setup links to Xauthority |
||||
XAUTHORITY_LINK=".devcontainer/.Xauthority" |
||||
rm -f $XAUTHORITY_LINK |
||||
if [[ -z $XAUTHORITY ]]; then |
||||
echo "XAUTHORITY not set. Fallback to ~/.Xauthority ..." |
||||
if ! [[ -f $HOME/.Xauthority ]]; then |
||||
echo "~/.XAuthority file does not exist. GUI tools may not work properly." |
||||
touch $XAUTHORITY_LINK # dummy file to satisfy container volume mount |
||||
else |
||||
ln -sf $HOME/.Xauthority $XAUTHORITY_LINK |
||||
fi |
||||
else |
||||
ln -sf $XAUTHORITY $XAUTHORITY_LINK |
||||
fi |
Loading…
Reference in new issue