# #!/data/data/com.termux/files/usr/bin/bash # # This script is _EXPERIMENTAL_ # # vassal_version=3.7.9 java_version=17 github_dl=https://github.com/vassalengine/vassal/releases/download/ cat < update.log 2>&1 pkg upgrade -y >> update.log 2>&1 echo "done" # --- "Install" X repo ----------------------------------------------- echo -n "Adding X repo and installing X packages, log in x.log ... " pkg install -y x11-repo > x.log 2>&1 pkg update -y >> x.log 2>&1 pkg install -y tigervnc xfce4 netsurf >> x.log 2>&1 echo "done" # --- Install JAVA --------------------------------------------------- echo -n "Installing JAVA ${java_version}, log in java.log ... " pkg install -y openjdk-${java_version}-x which nano > java.log 2>&1 echo "done" # --- Configure VNC server ------------------------------------------- echo "Creating ~/.vnc" mkdir -p $HOME/.vnc echo "Creating ~/.vnc/config" cat < ${HOME}/.vnc/config # See https://tigervnc.org/doc/x0vncserver.html for more settings localhost depth=24 geometry=2400x1080 EOF echo "Creating ~/.vnc/xstartup" cat < ${HOME}/.vnc/xstartup #!/data/data/com.termux/files/usr/bin/sh # # This will launch a XFCE desktop environment. For other # options, see # https://wiki.termux.com/wiki/Graphical_Environment # xfce4-session & EOF chmod a+x ${HOME}/.vnc/xstartup echo "Creating ~/.vnc/xvassal" cat < ${HOME}/.vnc/xvassal #!/data/data/com.termux/files/usr/bin/bash # # This will launch a XFCE desktop environment. For other # options, see # https://wiki.termux.com/wiki/Graphical_Environment # xfce4-session & # # This will execute VASSAL as the X session application. # When VASSAL is exited, the X session will automatically end. # env bash \$HOME/VASSAL-current/VASSAL.sh EOF chmod a+x ${HOME}/.vnc/xvassal # --- Widget set-up -------------------------------------------------- echo "Creating ~/.shortcuts" mkdir -p ${HOME}/.shortcuts echo "Creating ~/.shortcuts/VASSAL" cat < ${HOME}/.shortcuts/VASSAL #!/data/data/com.termux/files/usr/bin/bash # # This will start up an X session with VASSAL running in it. # When youstop the VASSAL application, the X session will # automatically end. This will run whatever X session # defined in ~/.vnc/xvassal. Please see that file for more. xstart=\$HOME/.vnc/xvassal oper=start read -n 1 -p "Do want to start? (Y/n) " case x\$REPLY in xy|xY|x) oper=start ;; *) oper=stop ;; esac case \$oper in start) echo "IMPORTANT: Enable Termux Wake-Lock through its notification" termux-wake-lock if test \$? -ne 0 ; then read -n 1 -p "Failed to aquire Wake-lock, exiting" exit 1 fi vncserver \\ -xstartup \$xstart \\ -autokill \\ -fg \\ :1 & vnc_pid=\$! sleep 3 termux-open-url vnc://localhost:5901 wait \$vnc_pid termux-wake-unlock ;; stop) echo "Stopping the VNC server" vncserver -clean -kill :1 ;; esac EOF chmod a+x ${HOME}/.shortcuts/VASSAL # --- Create directory for VASSAL modules ---------------------------- mkdir -p ${HOME}/VMods # --- Desktop setup -------------------------------------------------- echo "Creating ~/Desktop" mkdir -p ${HOME}/Desktop echo "Creating ~/Desktop/VASSAL.desktop" cat < ${HOME}/Desktop/VASSAL.desktop [Desktop Entry] Type=Application MimeType=application/x-vassal-module;application/x-vassal-log;application/x-vassal-save Name=VASSAL Exec=${HOME}/VASSAL-current/VASSAL.sh Icon=${HOME}/VASSAL-current/VASSAL.svg Actions=Run;Edit; [Desktop Action Run] Name=Run Exec=${HOME}/VASSAL-current/VASSAL.sh -l %f [Desktop Action Edit] Name=Edit Exec=${HOME}/VASSAL-current/VASSAL.sh -e %f EOF chmod a+x $HOME/Desktop/VASSAL.desktop dsk_dir=$HOME/.local/share/applications/ mkdir -p ${dsk_dir} cp ${HOME}/Desktop/VASSAL.desktop ${dsk_dir}/ echo -n "Updating Desktop database ... " update-desktop-database ${dsk_dir} echo "done" mime_dir=${HOME}/.local/share/mime/ echo "Creating ~/.local/share/mime/packages/application-x-vassal.xml" mkdir -p ${mime_dir} cat < ${mime_dir}/packages/application-x-vassal.xml VASSAL module file VASSAL log file VASSAL save file EOF echo -n "Updating Mime database ... " update-mime-database ${mime_dir} echo "done" # --- VNC password --------------------------------------------------- cat <