diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..ac3dbac --- /dev/null +++ b/.Xresources @@ -0,0 +1,103 @@ +!------------------------------------------------------------------------------ +! This is a sample ~/.Xresources file, demonstrating some basic X/Motif and +! EMWM configuration. Refer to EMWM FAQ/Guide and manpages for further info. +!------------------------------------------------------------------------------ + +!------------------------------------------------------------------------------ +! Global X/Motif setup +!------------------------------------------------------------------------------ + +!! Make sure to adjust this for your screen to have properly sized fonts +Xft.dpi: 160 + +!! Default variable width font for all Motif user interface elements +*renderTable.variable.fontType: FONT_IS_XFT +*renderTable.variable.fontName: Liberation Sans +*renderTable.variable.fontSize: 10 +*renderTable: variable + +!! In case fixed width font is preferred for text input widgets... +*renderTable.fixed.fontType: FONT_IS_XFT +*renderTable.fixed.fontName: Liberation Mono +*renderTable.fixed.fontSize: 10 +!! ...uncomment lines below to enable +! *XmText*renderTable: fixed +! *XmTextField*renderTable: fixed + +!! Default background and highlight colors +*background: #d2d2d2 +*highlightColor: #5f8ba0 + +!! Lighter and somewhat saturated background for lists and text input widgets +*XmList.background: #b6b6aa +*XmText.background: #d3b5b5 +*XmTextField.background: #d3b5b5 + +!! Tool tip appearance +*TipLabel.background: antiquewhite +*TipShell.borderColor: black +*TipShell.borderWidth: 1 + +!! Some tweaks +*multiClickTime: 260 +*XmScrollBar.width: 14 +*XmScrollBar.height: 14 + + +!------------------------------------------------------------------------------ +! Window and icon decorations +!------------------------------------------------------------------------------ +Emwm*client*background: #8C8C8C +Emwm*client*activeBackground: #aba68c +Emwm*icon*activeBackground: #aba68c + +!! Dithered frame borders (somewhat reminiscent of Indigo Magic) +! Emwm*client*topShadowPixmap: 1x1 +! Emwm*client*activeTopShadowPixmap: 1x1 + +!------------------------------------------------------------------------------ +! Client icon substitution +!------------------------------------------------------------------------------ +!! Note that unless full path is given, images must reside in one of +!! default locations like $APPLRESDIR/bitmaps (see XmGetPixmap(3)) +Emwm*XTerm*iconImage: terminal.xpm +Emwm*NEdit*iconImage: textedit.xpm +Emwm*XFile*iconImage: xfile.xpm + +!------------------------------------------------------------------------------ +! CDE 2.0 Motif look defaults +!------------------------------------------------------------------------------ +*enableThinThickness: True +*enableBtn1Transfer: button2_adjust +*enableButtonTab: True +*enableDefaultButton: True +*enableEtchedInMenu: True +*enableMenuInCascade: True +*enableMultiKeyBindings: False +*enableToggleColor: True +*enableToggleVisual: False +*enableDragIcon: False + +!------------------------------------------------------------------------------ +! CDE 2.0 bindings for text input widgets +!------------------------------------------------------------------------------ +*XmText*Translations:#override\n\ + Ctrlu:delete-to-start-of-line()\n\ + Ctrlk:delete-to-end-of-line()\n\ + Ctrla:beginning-of-line()\n\ + Ctrle:end-of-line()\n\ + Ctrlp:process-up()\n\ + Ctrlb:backward-character()\n\ + Ctrln:process-down()\n\ + Ctrlf:forward-character() + +*XmTextField*Translations:#override\n\ + Ctrlu:delete-to-start-of-line()\n\ + Ctrlk:delete-to-end-of-line()\n\ + Ctrla:beginning-of-line()\n\ + Ctrle:end-of-line()\n\ + Ctrlb:backward-character()\n\ + Ctrlf:forward-character() + +!----------------------------------- EOF -------------------------------------- +! $Id: Xresources-sample,v 1.8 2024/12/25 21:30:19 alx Exp alx $ diff --git a/.bashrc b/.bashrc index 7d5fc77..c7c48fd 100644 --- a/.bashrc +++ b/.bashrc @@ -1,3 +1,11 @@ alias amrvis2d='/Amrvis2D/amrvis2d.gnu.ex' alias amrvis3d='/Amrvis3D/amrvis3d.gnu.ex' +alias amrprofparser='/AmrProfParser/amrvis2d.gnu.TRACE_PROF.ex' + +echo "*** Welcome to Amrvis-container! ***" +echo "" +echo "Type 'amrvis2d' or 'amrvis3d' to start Amrvis." +echo "Type 'amrprofparser' to start AmrProfParser." +echo "Exiting this terminal will stop this container." +echo "" diff --git a/Amrvis.pdf b/Amrvis.pdf index de1e94f..5bd9884 100644 Binary files a/Amrvis.pdf and b/Amrvis.pdf differ diff --git a/Dockerfile b/Dockerfile index 6dee446..e1ec092 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,19 @@ FROM mcr.microsoft.com/devcontainers/cpp:ubuntu-24.04 RUN apt-get --yes -qq update \ && apt-get --yes -qq upgrade \ - && apt-get --yes -qq install build-essential m4 \ - libmotif-dev libxext-dev libxpm-dev \ + && apt-get --yes -qq install build-essential gfortran m4 bison flex \ + libmotif-dev libxext-dev libxpm-dev libxinerama-dev libjpeg-dev \ + python3-setuptools \ + && apt-get --yes -qq clean \ + && rm -rf /var/lib/apt/lists/* + +## add xpra repositories +RUN git clone https://github.com/Xpra-org/xpra && cd xpra \ + && ./setup.py install-repo + +# install xpra +RUN apt-get --yes -qq update && apt-get --yes -qq upgrade \ + && apt-get --yes -qq install xpra xpra-html5 \ && apt-get --yes -qq clean \ && rm -rf /var/lib/apt/lists/* @@ -13,21 +24,46 @@ RUN git clone https://ccse.lbl.gov/pub/Downloads/volpack.git && cd volpack && ma ## download AMReX RUN git clone https://github.com/AMReX-Codes/amrex.git +## build AmrProfParser +RUN git clone https://github.com/BenWibking/Amrvis.git AmrProfParser && cd AmrProfParser && git checkout logspace-colorbar +COPY GNUmakefile AmrProfParser/GNUmakefile +RUN cd AmrProfParser && make DIM=2 USE_PROFPARSER=TRUE -j`nproc` + ## build Amrvis (2D) -RUN git clone https://github.com/AMReX-Codes/Amrvis.git Amrvis2D -COPY GNUmakefile.2d Amrvis2D/GNUmakefile -RUN cd Amrvis2D && make -j`nproc` +RUN git clone https://github.com/BenWibking/Amrvis.git Amrvis2D && cd Amrvis2D && git checkout logspace-colorbar +COPY GNUmakefile Amrvis2D/GNUmakefile +RUN cd Amrvis2D && make DIM=2 -j`nproc` ## build Amrvis (3D) -RUN git clone https://github.com/AMReX-Codes/Amrvis.git Amrvis3D -COPY GNUmakefile.3d Amrvis3D/GNUmakefile -RUN cd Amrvis3D && make -j`nproc` +RUN git clone https://github.com/BenWibking/Amrvis.git Amrvis3D && cd Amrvis3D && git checkout logspace-colorbar +COPY GNUmakefile Amrvis3D/GNUmakefile +RUN cd Amrvis3D && make DIM=3 -j`nproc` + +## build X11 file viewer +RUN wget https://fastestcode.org/dl/xfile-src-1.0-beta.tar.xz && tar xvf xfile-src-1.0-beta.tar.xz +RUN cd xfile-beta && make Linux && make install + +## build X11 image viewer +RUN apt-get --yes -qq update \ + && apt-get --yes -qq upgrade \ + && apt-get --yes -qq install libjpeg-dev libtiff-dev x11-apps xpdf nedit \ + && apt-get --yes -qq clean \ + && rm -rf /var/lib/apt/lists/* +RUN wget https://fastestcode.org/dl/ximaging-src-1.8.tar.xz && tar xvf ximaging-src-1.8.tar.xz +RUN cd ximaging-src-1.8 && make Linux && make install ## copy settings COPY .bashrc /home/vscode/.bashrc COPY amrvis.defaults /home/vscode/.amrvis.defaults COPY Palette /home/vscode/Palette +## configure X11 server +COPY ./xpra.conf /etc/xpra/xpra.conf +COPY ./start_http_server.sh /home/vscode/start_http_server.sh +RUN mkdir -p /run/user/1000 && chown vscode /run/user/1000 +ENV XDG_RUNTIME_DIR=/run/user/1000 +EXPOSE 8080 + WORKDIR /home/vscode USER vscode -CMD [ "/Amrvis3D/amrvis3d.gnu.ex" ] +CMD [ "./start_http_server.sh" ] diff --git a/GNUmakefile.2d b/GNUmakefile similarity index 100% rename from GNUmakefile.2d rename to GNUmakefile diff --git a/GNUmakefile.3d b/GNUmakefile.3d deleted file mode 100644 index b66ecdb..0000000 --- a/GNUmakefile.3d +++ /dev/null @@ -1,245 +0,0 @@ -### ------------------------------------------------------ -### GNUmakefile for Amrvis -### ------------------------------------------------------ -AMREX_HOME ?= ../amrex - -PRECISION = FLOAT -PRECISION = DOUBLE - -PROFILE = FALSE -TRACE_PROFILE = FALSE -COMM_PROFILE = FALSE - -COMP = gnu - -DEBUG = FALSE -#DEBUG = TRUE - -DIM = 3 - -USE_ARRAYVIEW = TRUE -USE_ARRAYVIEW = FALSE - -USE_MPI=TRUE -USE_MPI=FALSE - -USE_CXX11 = TRUE - -USE_VOLRENDER = FALSE -USE_VOLRENDER = TRUE - -USE_PARALLELVOLRENDER = TRUE -USE_PARALLELVOLRENDER = FALSE - -USE_PROFPARSER = TRUE -USE_PROFPARSER = FALSE - -ifeq ($(DIM), 1) - USE_PROFPARSER = FALSE -endif -ifeq ($(DIM), 3) - USE_PROFPARSER = FALSE -endif -ifeq ($(USE_PROFPARSER), TRUE) - PROFILE = TRUE - TRACE_PROFILE = TRUE - BL_NO_FORT = FALSE -else - BL_NO_FORT = TRUE -endif - -#DEFINES += -DAV_CGS_FIXSLNC - -include $(AMREX_HOME)/Tools/GNUMake/Make.defs - -EBASE = amrvis -HERE = . - -INCLUDE_LOCATIONS += $(HERE) -INCLUDE_LOCATIONS += $(AMREX_HOME)/Src/Base -INCLUDE_LOCATIONS += $(AMREX_HOME)/Src/Extern/amrdata - -DEFINES += -DBL_OPTIO - -############################################### x includes and libraries - -ifeq ($(MACHINE), OSF1) - LIBRARIES += -lXm -lXt -lX11 -endif - -ifeq ($(WHICHLINUX), ATLAS) - LIBRARY_LOCATIONS += /usr/X11R6/lib64 -endif - -ifneq ($(which_site), unknown) - LIBRARY_LOCATIONS += /usr/lib64 - INCLUDE_LOCATIONS += /usr/include/Xm - INCLUDE_LOCATIONS += /usr/include/ - - LIBRARIES += -lXm -lXt -lXext -lSM -lICE -lXpm -lX11 - - ifeq ($(which_computer), edison) - ifeq ($(USE_MPI), TRUE) - LDFLAGS += -dynamic - endif - endif - - ifeq ($(which_computer), cori) - ifeq ($(USE_MPI), TRUE) - LDFLAGS += -dynamic - endif - endif -endif - -ifeq ($(MACHINE), AIX) - INCLUDE_LOCATIONS += /usr/include/X11 - INCLUDE_LOCATIONS += /usr/include/Xm - #INCLUDE_LOCATIONS += /usr/include/X11/Xaw - LIBRARIES += -lXm -lXt -lX11 - DEFINES += -D_ALL_SOURCE -endif - -ifeq ($(MACHINE), CYGWIN_NT) - INCLUDE_LOCATIONS += /usr/X11R6/include - LIBRARY_LOCATIONS += /usr/X11R6/lib - LIBRARIES += -lXm -lXt -lSM -lICE -lXpm -lX11 -endif - -# last chance catch-all -ifeq ($(which_site), unknown) - INCLUDE_LOCATIONS += /usr/include/ - - # check if running on macOS (as there are some subtle differences to linux). - UNAME_S = $(shell uname -s) - ifeq ($(UNAME_S), Darwin) - # these assume that dependencies are installed via homebrew, which symlinks - # everything into the /usr/local tree. - INCLUDE_LOCATIONS += /usr/local/include - LIBRARY_LOCATIONS += /usr/local/lib - - # if dependencies installed via macport, everything symlinks - # to /opt/local/ - INCLUDE_LOCATIONS += /opt/local/include - LIBRARY_LOCATIONS += /opt/local/lib - - # on macOS X11 is installed into the /opt tree - INCLUDE_LOCATIONS += /opt/X11/include - LIBRARY_LOCATIONS += /opt/X11/lib - else - # if not running macOS, then assume we are looking at a standard - # ubuntu-like linux. - INCLUDE_LOCATIONS += /usr/include/Xm - LIBRARY_LOCATIONS += /usr/lib64 - endif - - LIBRARIES += -lXm -lXt -lXext -lSM -lICE -lXpm -lX11 -endif - - -# JFG: this line is needed on hive -# LIBRARY_LOCATIONS += /usr/X11R6/lib64 - - - -############################################### arrayview -ifeq ($(USE_ARRAYVIEW), TRUE) - DEFINES += -DBL_USE_ARRAYVIEW - ARRAYVIEWDIR = . - INCLUDE_LOCATIONS += $(ARRAYVIEWDIR) - #LIBRARY_LOCATIONS += $(ARRAYVIEWDIR) - #LIBRARIES += -larrayview$(DIM)d.$(machineSuffix) -endif - - -############################################### volume rendering -ifeq ($(DIM),3) - ifeq ($(MACHINE), T3E) - USE_VOLRENDER = FALSE - endif - ifeq ($(MACHINE), AIX) -# USE_VOLRENDER = FALSE - endif - ifeq ($(USE_VOLRENDER), TRUE) - DEFINES += -DBL_VOLUMERENDER - VOLPACKDIR = ../volpack - INCLUDE_LOCATIONS += $(VOLPACKDIR) - LIBRARY_LOCATIONS += $(VOLPACKDIR) - LIBRARIES += -lvolpack - #DEFINES += -DVOLUMEBOXES - endif -endif - -############################################### parallel volume rendering -ifeq ($(DIM),3) - ifeq ($(USE_PARALLELVOLRENDER), TRUE) - DEFINES += -DBL_PARALLELVOLUMERENDER - endif -endif - -############################################### other defines -#DEFINES += -DSCROLLBARERROR -#DEFINES += -DFIXDENORMALS - -ifdef CONFIG_FILEPATH - DEFINES += -DAMRVIS_CONFIG_FILEPATH='"${CONFIG_FILEPATH}"' -endif -############################################### float fix -# if we are using float override FOPTF which sets -real_size 64 -ifeq ($(PRECISION), FLOAT) - ifeq ($(MACHINE), OSF1) - FDEBF += -C - FDEBF += -fpe2 - FOPTF = -fast -O5 -tune ev5 - endif -endif - -include $(HERE)/Make.package -include $(AMREX_HOME)/Src/Base/Make.package -#include $(AMREX_HOME)/Src/Extern/ProfParser/Make.package -include $(AMREX_HOME)/Src/Extern/amrdata/Make.package - -#INCLUDE_LOCATIONS += $(AMREX_HOME)/Src/Extern/ProfParser - -VPATH_LOCATIONS += $(HERE) -VPATH_LOCATIONS += $(AMREX_HOME)/Src/Base -#VPATH_LOCATIONS += $(AMREX_HOME)/Src/Extern/ProfParser -VPATH_LOCATIONS += $(AMREX_HOME)/Src/Extern/amrdata - -ifeq ($(USE_PROFDATA), TRUE) - #SED0 = | sed 's/\#define vout/\/\//' - #SED1 = | sed 's/vout/\/\//' - SED0 = - SED1 = -endif - -vpath %.cpp $(VPATH_LOCATIONS) -vpath %.H $(VPATH_LOCATIONS) -vpath %.F $(VPATH_LOCATIONS) -vpath %.f $(VPATH_LOCATIONS) -vpath %.f90 $(VPATH_LOCATIONS) -vpath %.c $(VPATH_LOCATIONS) -vpath %.h $(VPATH_LOCATIONS) -vpath %.l $(VPATH_LOCATIONS) -vpath %.y $(VPATH_LOCATIONS) -vpath %.a $(LIBRARY_LOCATIONS) - -all: $(executable) - -ifeq ($(USE_PROFDATA), TRUE) - -#BLProfParser.tab.H BLProfParser.tab.cpp: $(AMREX_HOME)/Src/Extern/ProfParser/BLProfParser.y -# cat $(AMREX_HOME)/Src/Extern/ProfParser/BLProfParser.y $(SED0) $(SED1) > BLProfParserNC.y -# bison --defines=BLProfParser.tab.H --output=BLProfParser.tab.cpp \ -# BLProfParserNC.y -# rm BLProfParserNC.y - - -#BLProfParser.lex.yy.cpp: BLProfParser.tab.H $(AMREX_HOME)/Src/Extern/ProfParser/BLProfParser.l -# flex --outfile=BLProfParser.lex.yy.cpp $(AMREX_HOME)/Src/Extern/ProfParser/BLProfParser.l - -endif - -include $(AMREX_HOME)/Tools/GNUMake/Make.rules - -### ------------------------------------------------------ -### ------------------------------------------------------ diff --git a/Palette b/Palette index 1a87a2a..3c9e9d8 100644 Binary files a/Palette and b/Palette differ diff --git a/README.md b/README.md index fc88cea..683abb1 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,19 @@ A short guide to Amrvis is available [here](https://amrex-codes.github.io/amrex/ The complete LaTeX-formatted documentation is available as a [PDF](Amrvis.pdf). +## Running from within a browser +You can launch a browser-based X11 server by running +```console +$ ./launch_amrvis_browser.sh +``` +Then open http://localhost:8080/ and copy-and-paste the autogenerated password printed to the terminal. + +An `xterm` window should appear. Then you can type either `amrvis2d` or `amrvis3d` to launch Amrvis: + +Screenshot 2025-05-25 at 2 00 36 PM + +**Caveat: The container hangs when clicking on the orthonormal viewports in Amrvis. No workaround is currently known, so this feature remains on the `xpra` branch, rather than on `main`.** + ## Running on macOS ### Install XQuartz and allow remote clients diff --git a/launch_amrvis_browser.sh b/launch_amrvis_browser.sh new file mode 100755 index 0000000..e6661a1 --- /dev/null +++ b/launch_amrvis_browser.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +## Wrapper script to launch xterm and connect with a browser-based X11 server + +MOUNT_DIR=${1:-`pwd`} + +docker run --init -p 8080:8080 --platform linux/amd64 -v $MOUNT_DIR:/home/vscode/data ghcr.io/benwibking/amrvis-container:latest + +## open your web browser to http://localhost:$PORT +## enter the autogenerated password printed to the terminal +## type `amrvis2d' or `amrvis3d' in order to launch amrvis diff --git a/launch_amrvis2d_linux.sh b/legacy_launchers/launch_amrvis2d_linux.sh similarity index 61% rename from launch_amrvis2d_linux.sh rename to legacy_launchers/launch_amrvis2d_linux.sh index 3b82892..fa2c090 100755 --- a/launch_amrvis2d_linux.sh +++ b/legacy_launchers/launch_amrvis2d_linux.sh @@ -5,4 +5,4 @@ MOUNT_DIR=${1:-`pwd`} AMRVIS_EXE=/Amrvis2D/amrvis2d.gnu.ex DOCKER_CMD=singularity -$DOCKER_CMD run --env DISPLAY=$DISPLAY docker://ghcr.io/benwibking/amrvis-container:main $AMRVIS_EXE +$DOCKER_CMD run --env DISPLAY=$DISPLAY docker://ghcr.io/amrex-codes/amrvis-container:main $AMRVIS_EXE diff --git a/launch_amrvis2d_macos.sh b/legacy_launchers/launch_amrvis2d_macos.sh similarity index 90% rename from launch_amrvis2d_macos.sh rename to legacy_launchers/launch_amrvis2d_macos.sh index 9280834..075d88e 100755 --- a/launch_amrvis2d_macos.sh +++ b/legacy_launchers/launch_amrvis2d_macos.sh @@ -8,7 +8,7 @@ AMRVIS_EXE=/Amrvis2D/amrvis2d.gnu.ex open -a XQuartz xhost +localhost -docker run --platform linux/amd64 -v $MOUNT_DIR:/home/vscode/data -e DISPLAY=docker.for.mac.host.internal:$PORT ghcr.io/benwibking/amrvis-container:main $AMRVIS_EXE +docker run --platform linux/amd64 -v $MOUNT_DIR:/home/vscode/data -e DISPLAY=docker.for.mac.host.internal:$PORT ghcr.io/amrex-codes/amrvis-container:main $AMRVIS_EXE # If you get an error message like this: # Error: Can't open display: docker.for.mac.host.internal:0 diff --git a/launch_amrvis3d_linux.sh b/legacy_launchers/launch_amrvis3d_linux.sh similarity index 61% rename from launch_amrvis3d_linux.sh rename to legacy_launchers/launch_amrvis3d_linux.sh index f5e3fab..9af776c 100755 --- a/launch_amrvis3d_linux.sh +++ b/legacy_launchers/launch_amrvis3d_linux.sh @@ -5,4 +5,4 @@ MOUNT_DIR=${1:-`pwd`} AMRVIS_EXE=/Amrvis3D/amrvis3d.gnu.ex DOCKER_CMD=singularity -$DOCKER_CMD run --env DISPLAY=$DISPLAY docker://ghcr.io/benwibking/amrvis-container:main $AMRVIS_EXE +$DOCKER_CMD run --env DISPLAY=$DISPLAY docker://ghcr.io/amrex-codes/amrvis-container:main $AMRVIS_EXE diff --git a/launch_amrvis3d_macos.sh b/legacy_launchers/launch_amrvis3d_macos.sh similarity index 90% rename from launch_amrvis3d_macos.sh rename to legacy_launchers/launch_amrvis3d_macos.sh index 85e7833..1225795 100755 --- a/launch_amrvis3d_macos.sh +++ b/legacy_launchers/launch_amrvis3d_macos.sh @@ -8,7 +8,7 @@ AMRVIS_EXE=/Amrvis3D/amrvis3d.gnu.ex open -a XQuartz xhost +localhost -docker run --platform linux/amd64 -v $MOUNT_DIR:/home/vscode/data -e DISPLAY=docker.for.mac.host.internal:$PORT ghcr.io/benwibking/amrvis-container:main $AMRVIS_EXE +docker run --platform linux/amd64 -v $MOUNT_DIR:/home/vscode/data -e DISPLAY=docker.for.mac.host.internal:$PORT ghcr.io/amrex-codes/amrvis-container:main $AMRVIS_EXE # If you get an error message like this: # Error: Can't open display: docker.for.mac.host.internal:0 diff --git a/start_http_server.sh b/start_http_server.sh new file mode 100755 index 0000000..957f7c7 --- /dev/null +++ b/start_http_server.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +## Wrapper script to launch browser-based X11 session +## (NOTE: This should only be called from within the Docker container.) +PORT=8080 +EXE=xterm +export XPRA_PASSWORD=$(openssl rand -hex 16) + +echo "" +echo "" +echo "************************************************************" +echo "Starting xpra server on http://localhost:$PORT/" +echo "Autogenerated password: $XPRA_PASSWORD" +echo "************************************************************" +echo "" +echo "" + +# use xpra as window manager +xpra start --start-child=$EXE --bind-tcp=0.0.0.0:$PORT --ssl-cert=/etc/xpra/ssl-cert.pem --exit-with-children --no-daemon > xpra_logfile.txt 2>&1 +# use emwm as window manager (buggy) +#xpra desktop --start-child=emwm --bind-tcp=0.0.0.0:$PORT --ssl-cert=/etc/xpra/ssl-cert.pem --exit-with-children --no-daemon > xpra_logfile.txt 2>&1 + +wait $! + +## open your web browser to http://localhost:$PORT +## enter the autogenerated password printed to the terminal +## type `amrvis2d' or `amrvis3d' in order to launch amrvis diff --git a/xpra.conf b/xpra.conf new file mode 100644 index 0000000..4c110d8 --- /dev/null +++ b/xpra.conf @@ -0,0 +1,15 @@ +tcp-auth=env +html=on +exit-with-children=yes +printing=no +mdns=no +notifications=no +dbus-proxy=no +dbus-control=no +dbus-launch=no +systemd-run=no +ssl=auto +ssl-cert=/etc/xpra/ssl-cert.pem +ssl-client-verify-mode=none +speaker=disabled +microphone=disabled