#!/bin/bash # # Installs some core Ham Apps # flsuite (flrig, fldigi, flmsgi, flAmp) # WSJT-X # GridTracker # Js8Call # HamClock # Pat (packet & ARDOP) # And some utilities for remote access # X11VNC # NoMachine # Tailscale # # v1.1: 3-22-23 # Adds rigctl set mode (USB for ARDOP, FM for packet) # Adds flAmp to flSuite # Adds instructions for Tailscale # # v1.2: 4-9-23 # Add hamRS 1.0.6 64-bit # # v1.3: 4-23-23 # Add direwolf & YAAC # # v1.4: 5-22-23 # Update Pat (uses AGWPE) # # Let us know what other apps you'd like to see! # install_nomachine () { echo " ********************************************* ** ** ** INSTALLING NOMACHINE ** ** ** ********************************************* " wget https://inovato.net/ham/files/nomachine_8.4.2_1_arm64.deb sudo dpkg -i nomachine_8.4.2_1_arm64.deb rm nomachine_8.4.2_1_arm64.deb echo " ********************************************* ** ** ** SUCCESSFULLY INSTALLED NOMACHINE ** ** ** ********************************************* " } install_x11vnc () { echo " ********************************************* ** ** ** INSTALLING X11VNC ** ** ** ********************************************* " # install X11VNC sudo apt install -y x11vnc sudo rm /etc/systemd/system/x11vnc.service cat <> x11vnc.service [Unit] Description=x11vnc remote desktop server Wants=network-online.target After=network-online.target [Service] ExecStart=/usr/bin/x11vnc -ncache 10 -geometry 1920x1080 -many -nevershared -display :0 -no6 -auth /var/run/lightdm/root/:0 Restart=on.failure [Install] WantedBy=graphical.target EOT sudo mv x11vnc.service /etc/systemd/system sudo systemctl daemon-reload sudo systemctl start x11vnc sudo systemctl enable x11vnc.service echo " ********************************************* ** ** ** SUCCESSFULLY INSTALLED X11VNC ** ** ** ********************************************* " } install_tailscale () { echo " ********************************************* ** ** ** INSTALLING TAILSCALE ** ** ** ********************************************* " curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list sudo apt-get update sudo apt-get install -y tailscale echo " ********************************************* ** ** ** SUCCESSFULLY INSTALLED TAILSCALE ** ** ** ********************************************* " } install_wsjtx () { echo " ********************************************* ** ** ** INSTALLING WSJTX/JS8CALL ** ** ** ********************************************* " sudo apt install -y wsjtx js8call wget https://inovato.net/ham/files/wsjtx_2.6.1_arm64.deb sudo dpkg --force-overwrite -i ./wsjtx_2.6.1_arm64.deb rm ./wsjtx_2.6.1_arm64.deb # remove these so icons can show (artifact of older build) if [ -f ~/.local/share/applications/wsjtx.desktop ]; then rm ~/.local/share/applications/wsjtx.desktop fi if [ -f ~/.local/share/applications/js8call.desktop ]; then rm ~/.local/share/applications/js8call.desktop fi echo " ********************************************* ** ** ** WSJTX / JS8CALL SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_gridtracker () { echo " ********************************************* ** ** ** INSTALLING GRIDTRACKER ** ** ** ********************************************* " if [ -d ~/GridTracker ]; then rm -r ~/GridTracker fi wget https://inovato.net/ham/files/GridTracker-1.23.0402-linux-arm64.tar.gz tar -xf GridTracker-1.23.0402-linux-arm64.tar.gz -C ~/ rm GridTracker-1.23.0402-linux-arm64.tar.gz mv ~/GridTracker-1.23.0402-linux-arm64 ~/GridTracker cat >GridTracker.desktop << EOF [Desktop Entry] Name=GridTracker Comment=GridTracker GenericName=GridTracker, a WSJT-X Companion Exec=$HOME/GridTracker/GridTracker Icon=$HOME/GridTracker/gridtracker.png Path=$HOME/GridTracker Type=Application Encoding=UTF-8 Terminal=false Categories=HamRadio; EOF sudo mv GridTracker.desktop /usr/local/share/applications echo " ********************************************* ** ** ** GRIDTRACKER SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_hotspot () { echo " ********************************************* ** ** ** INSTALLING HOTSPOT ** ** ** ********************************************* " wget -N https://inovato.net/ham/files/hotspot.tar.gz tar -xf hotspot.tar.gz rm hotspot.tar.gz source hotspot-install rm hotspot-install echo " ********************************************* ** ** ** HOTSPOT SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_flsuite () { echo " ********************************************* ** ** ** INSTALLING FLSUITE ** ** ** ********************************************* " sudo apt install -y flrig fldigi flmsg flamp wget https://inovato.net/ham/files/flsuite.tar.gz tar -xf flsuite.tar.gz rm flsuite.tar.gz sudo mv fl* /usr/local/bin echo " ********************************************* ** ** ** FLSUITE SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_pat () { echo " ********************************************* ** ** ** INSTALLING PAT (Winlink Client) ** ** ** ********************************************* " # we need Direwolf (will also install flrig) install_direwolf wget https://inovato.net/ham/files/pat.tar.gz tar -xf pat.tar.gz rm pat.tar.gz mkdir -p ~/.config/pat mv config.json.template ~/.config/pat/config.json.template cp ~/.config/pat/config.json.template ~/.config/pat/config.json sudo mv pat /usr/bin/pat sudo mv pat_config.sh /usr/local/bin #sudo mv pat_ardop.sh /usr/local/bin sudo mv pat_packet.sh /usr/local/bin sudo mv pat.png /usr/share/pixmaps # Add Pat desktop items cat >pat-config.desktop << EOF [Desktop Entry] Name=Pat Winlink Configure Icon=pat Comment=Configure Pat files Exec=pat_config.sh Terminal=false Type=Application Categories=HamRadio EOF cat >pat-packet.desktop << EOF [Desktop Entry] Name=Pat Winlink (packet) Icon=pat Comment=Pat Winlink using AX.25 (pat-gensio) Exec=pat_packet.sh Terminal=true Type=Application Categories=HamRadio EOF sudo mv pat-config.desktop /usr/local/share/applications/ sudo mv pat-packet.desktop /usr/local/share/applications/ # configure PAT (dialog) source pat_config.sh echo " ********************************************* ** ** ** PAT SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_ardop () { echo " ********************************************* ** ** ** INSTALLING ARDOP MODEM ** ** ** ********************************************* " wget https://inovato.net/ham/files/ardopc.tar.gz tar -xf ardopc.tar.gz rm ardopc.tar.gz if [ ! -f ~/.asoundrc.save ]; then if [ -f ~/.asoundrc ]; then mv ~/.asoundrc ~/.asoundrc.save fi fi # get sound card info and write to config.json line=$(aplay -l | grep USB) card=$(echo "$line" | awk '{print $2}' | tr -d ':') device=$(echo "$line" | awk '{print $8}' | tr -d ':') sed -i "s/hw:1,0/hw:$card,$device/g" ./asoundrc mv ./asoundrc ~/.asoundrc sudo mv ardopc /usr/local/bin sudo mv pat_ardop.sh /usr/local/bin cat >pat-ardop.desktop << EOF [Desktop Entry] Name=Pat Winlink (ARDOP) Icon=pat Comment=Pat Winlink using ARDOP modem Exec=pat_ardop.sh Terminal=true Type=Application Categories=HamRadio EOF sudo mv pat-ardop.desktop /usr/local/share/applications/ echo " ********************************************* ** ** ** ARDOP SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_hamclock () { echo " ********************************************* ** ** ** INSTALLING HAMCLOCK ** ** ** ********************************************* " sudo apt install -y xorg-dev libx11-dev #curl -O https://www.clearskyinstitute.com/ham/HamClock/ESPHamClock.zip #unzip ESPHamClock.zip #cd ESPHamClock #make -j 4 hamclock-800x480 #sudo make install #cd .. #rm ESPHamClock.zip #sudo rm -r ESPHamClock #create hamclock menu item cat >hamclock.desktop << EOF [Desktop Entry] Name=HamClock Icon=hamclock Comment=a handy clock with features for amateur radio operators Exec=hamclock Terminal=false Type=Application Categories=HamRadio EOF sudo mv hamclock.desktop /usr/local/share/applications/ wget https://inovato.net/ham/files/hamclock.png sudo mv hamclock.png /usr/share/pixmaps # get setup files wget https://inovato.net/ham/files/hamclock-setup sudo mv hamclock-setup /usr/local/bin sudo chmod +x /usr/local/bin/hamclock-setup wget https://inovato.net/ham/files/hamclock-xrandr-wrapper sudo mv hamclock-xrandr-wrapper /usr/local/bin sudo chmod +x /usr/local/bin/hamclock-xrandr-wrapper wget https://inovato.net/ham/files/hamclock-setup.desktop sudo mv hamclock-setup.desktop /usr/local/share/applications sudo chmod +x /usr/local/share/applications/hamclock-setup.desktop wget https://inovato.net/ham/files/hamclock-no-borders.desktop sudo mv hamclock-no-borders.desktop /usr/local/share/applications sudo chmod +x /usr/local/share/applications/hamclock-no-borders.desktop wget https://inovato.net/ham/files/hamclock-screenshot-small.png sudo mv hamclock-screenshot-small.png /usr/share/pixmaps wget https://inovato.net/ham/files/hamclock-borders-compare.png sudo mv hamclock-borders-compare.png /usr/share/pixmaps echo " ********************************************* ** ** ** HAMCLOCK SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_hamrs () { echo " ********************************************* ** ** ** INSTALLING HAMRS ** ** ** ********************************************* " wget https://hamrs-releases.s3.us-east-2.amazonaws.com/1.0.6/hamrs-1.0.6-linux-arm64.AppImage sudo chmod +x hamrs-1.0.6-linux-arm64.AppImage sudo mv hamrs-1.0.6-linux-arm64.AppImage /usr/local/bin cat > hamrs.desktop <>YAAC echo "java -jar ${HOME}/YAAC/YAAC.jar" >>YAAC chmod +x YAAC cat >yaac.desktop <${HOME}/.local/share/applications/conky.desktop [Desktop Entry] Name=Conky Comment=Conky GenericName=Conky Screen Background Monitor Exec=conky --pause=5 Icon=/usr/share/pixmaps/conky-logo.png Type=Application Encoding=UTF-8 Terminal=false Categories=HamRadio Keywords=Radio EOF # misc dependencies sudo touch ${HOME}/.local/share/WSJT-X/wsjtx.log #conky will fail to load if this file doesn't exist sudo touch /var/lib/misc/dnsmasq.leases #conky will fail to load if this file doesn't exist wget https://inovato.net/ham/files/conky-logo.png sudo mv conky-logo.png /usr/share/pixmaps/conky-logo.png # autostart ln -sf ${HOME}/.local/share/applications/conky.desktop ${HOME}/.config/autostart/conky.desktop echo " ********************************************* ** ** ** CONKY SUCCESSFULLY INSTALLED ** ** ** ********************************************* " } install_chirp () { echo " ********************************************* ** ** ** INSTALLING CHIRP ** ** ** ********************************************* " date=$(curl -s https://github.com/goldstar611/chirp-appimage | grep "releases/tag/" | sed 's|.*releases/tag/||;s|">||') wget https://github.com/goldstar611/chirp-appimage/releases/download/$date/Chirp-next-$date-aarch64.AppImage chirp=$(ls | grep Chirp-next) sudo mv $chirp /usr/local/bin/chirp sudo chmod +x /usr/local/bin/chirp # Create desktop entry wget https://www.inovato.net/ham/files/chirp.png sudo mv chirp.png /usr/share/pixmaps/chirp.png cat >chirp.desktop <ham_installer.desktop <ham_installer <