Advertisement
KC9UZR

Bash Install All Ham Radio Apps

Aug 1st, 2024 (edited)
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.27 KB | Help | 0 0
  1. #!/bin/bash
  2. #
  3. # Installs some core Ham Apps
  4. # flsuite (flrig, fldigi, flmsgi, flAmp)
  5. # WSJT-X
  6. # GridTracker
  7. # Js8Call
  8. # HamClock
  9. # Pat (packet & ARDOP)
  10. # And some utilities for remote access
  11. # X11VNC
  12. # NoMachine
  13. # Tailscale
  14. #
  15. # v1.1: 3-22-23
  16. # Adds rigctl set mode (USB for ARDOP, FM for packet)
  17. # Adds flAmp to flSuite
  18. # Adds instructions for Tailscale
  19. #
  20. # v1.2: 4-9-23
  21. # Add hamRS 1.0.6 64-bit
  22. #
  23. # v1.3: 4-23-23
  24. # Add direwolf & YAAC
  25. #
  26. # v1.4: 5-22-23
  27. # Update Pat (uses AGWPE)
  28. #
  29. # Let us know what other apps you'd like to see!
  30. #
  31.  
  32. install_nomachine () {
  33. echo "
  34.  
  35. *********************************************
  36. ** **
  37. ** INSTALLING NOMACHINE **
  38. ** **
  39. *********************************************
  40.  
  41. "
  42. wget https://inovato.net/ham/files/nomachine_8.4.2_1_arm64.deb
  43. sudo dpkg -i nomachine_8.4.2_1_arm64.deb
  44. rm nomachine_8.4.2_1_arm64.deb
  45. echo "
  46.  
  47. *********************************************
  48. ** **
  49. ** SUCCESSFULLY INSTALLED NOMACHINE **
  50. ** **
  51. *********************************************
  52.  
  53. "
  54. }
  55.  
  56. install_x11vnc () {
  57. echo "
  58.  
  59. *********************************************
  60. ** **
  61. ** INSTALLING X11VNC **
  62. ** **
  63. *********************************************
  64.  
  65. " # install X11VNC
  66. sudo apt install -y x11vnc
  67. sudo rm /etc/systemd/system/x11vnc.service
  68. cat <<EOT >> x11vnc.service
  69. [Unit]
  70. Description=x11vnc remote desktop server
  71. Wants=network-online.target
  72. After=network-online.target
  73.  
  74. [Service]
  75. ExecStart=/usr/bin/x11vnc -ncache 10 -geometry 1920x1080 -many -nevershared -display :0 -no6 -auth /var/run/lightdm/root/:0
  76.  
  77. Restart=on.failure
  78.  
  79. [Install]
  80. WantedBy=graphical.target
  81. EOT
  82. sudo mv x11vnc.service /etc/systemd/system
  83. sudo systemctl daemon-reload
  84. sudo systemctl start x11vnc
  85. sudo systemctl enable x11vnc.service
  86. echo "
  87.  
  88. *********************************************
  89. ** **
  90. ** SUCCESSFULLY INSTALLED X11VNC **
  91. ** **
  92. *********************************************
  93.  
  94. "
  95. }
  96.  
  97.  
  98. install_tailscale () {
  99. echo "
  100.  
  101. *********************************************
  102. ** **
  103. ** INSTALLING TAILSCALE **
  104. ** **
  105. *********************************************
  106.  
  107. "
  108. curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
  109. curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
  110. sudo apt-get update
  111. sudo apt-get install -y tailscale
  112. echo "
  113.  
  114. *********************************************
  115. ** **
  116. ** SUCCESSFULLY INSTALLED TAILSCALE **
  117. ** **
  118. *********************************************
  119.  
  120. "
  121. }
  122.  
  123.  
  124. install_wsjtx () {
  125. echo "
  126.  
  127. *********************************************
  128. ** **
  129. ** INSTALLING WSJTX/JS8CALL **
  130. ** **
  131. *********************************************
  132.  
  133. "
  134. sudo apt install -y wsjtx js8call
  135. wget https://inovato.net/ham/files/wsjtx_2.6.1_arm64.deb
  136. sudo dpkg --force-overwrite -i ./wsjtx_2.6.1_arm64.deb
  137. rm ./wsjtx_2.6.1_arm64.deb
  138. # remove these so icons can show (artifact of older build)
  139. if [ -f ~/.local/share/applications/wsjtx.desktop ]; then
  140. rm ~/.local/share/applications/wsjtx.desktop
  141. fi
  142. if [ -f ~/.local/share/applications/js8call.desktop ]; then
  143. rm ~/.local/share/applications/js8call.desktop
  144. fi
  145. echo "
  146.  
  147. *********************************************
  148. ** **
  149. ** WSJTX / JS8CALL SUCCESSFULLY INSTALLED **
  150. ** **
  151. *********************************************
  152.  
  153. "
  154. }
  155.  
  156.  
  157. install_gridtracker () {
  158. echo "
  159.  
  160. *********************************************
  161. ** **
  162. ** INSTALLING GRIDTRACKER **
  163. ** **
  164. *********************************************
  165.  
  166. "
  167. if [ -d ~/GridTracker ]; then
  168. rm -r ~/GridTracker
  169. fi
  170. wget https://downloads.gridtracker.org/v1.24.0512-2/GridTracker-1.24.0512-linux-arm64.tar.gz
  171. tar -xf GridTracker-1.24.0512-linux-arm64.tar.gz -C ~/
  172. rm GridTracker-1.24.0512-linux-arm64.tar.gz
  173. mv ~/GridTracker-1.24.0512-linux-arm64 ~/GridTracker
  174. cat >GridTracker.desktop << EOF
  175. [Desktop Entry]
  176. Name=GridTracker
  177. Comment=GridTracker
  178. GenericName=GridTracker, a WSJT-X Companion
  179. Exec=$HOME/GridTracker/GridTracker
  180. Icon=$HOME/GridTracker/gridtracker.png
  181. Path=$HOME/GridTracker
  182. Type=Application
  183. Encoding=UTF-8
  184. Terminal=false
  185. Categories=HamRadio;
  186.  
  187. EOF
  188. sudo mv GridTracker.desktop /usr/local/share/applications
  189. echo "
  190.  
  191. *********************************************
  192. ** **
  193. ** GRIDTRACKER SUCCESSFULLY INSTALLED **
  194. ** **
  195. *********************************************
  196.  
  197. "
  198. }
  199.  
  200. install_hotspot () {
  201. echo "
  202.  
  203. *********************************************
  204. ** **
  205. ** INSTALLING HOTSPOT **
  206. ** **
  207. *********************************************
  208.  
  209. "
  210. wget -N https://inovato.net/ham/files/hotspot.tar.gz
  211. tar -xf hotspot.tar.gz
  212. rm hotspot.tar.gz
  213. source hotspot-install
  214. rm hotspot-install
  215. echo "
  216.  
  217. *********************************************
  218. ** **
  219. ** HOTSPOT SUCCESSFULLY INSTALLED **
  220. ** **
  221. *********************************************
  222.  
  223. "
  224. }
  225. install_flsuite () {
  226. echo "
  227.  
  228. *********************************************
  229. ** **
  230. ** INSTALLING FLSUITE **
  231. ** **
  232. *********************************************
  233.  
  234. "
  235. sudo apt install -y flrig fldigi flmsg flamp
  236. wget https://inovato.net/ham/files/flsuite.tar.gz
  237. tar -xf flsuite.tar.gz
  238. rm flsuite.tar.gz
  239. sudo mv fl* /usr/local/bin
  240. echo "
  241.  
  242. *********************************************
  243. ** **
  244. ** FLSUITE SUCCESSFULLY INSTALLED **
  245. ** **
  246. *********************************************
  247.  
  248. "
  249. }
  250.  
  251. install_pat () {
  252. echo "
  253.  
  254. *********************************************
  255. ** **
  256. ** INSTALLING PAT (Winlink Client) **
  257. ** **
  258. *********************************************
  259.  
  260. "
  261. # we need Direwolf (will also install flrig)
  262. install_direwolf
  263.  
  264. wget https://inovato.net/ham/files/pat.tar.gz
  265. tar -xf pat.tar.gz
  266. rm pat.tar.gz
  267. mkdir -p ~/.config/pat
  268. mv config.json.template ~/.config/pat/config.json.template
  269. cp ~/.config/pat/config.json.template ~/.config/pat/config.json
  270. sudo mv pat /usr/bin/pat
  271. sudo mv pat_config.sh /usr/local/bin
  272. #sudo mv pat_ardop.sh /usr/local/bin
  273. sudo mv pat_packet.sh /usr/local/bin
  274. sudo mv pat.png /usr/share/pixmaps
  275.  
  276. # Add Pat desktop items
  277. cat >pat-config.desktop << EOF
  278. [Desktop Entry]
  279. Name=Pat Winlink Configure
  280. Icon=pat
  281. Comment=Configure Pat files
  282. Exec=pat_config.sh
  283. Terminal=false
  284. Type=Application
  285. Categories=HamRadio
  286.  
  287. EOF
  288.  
  289. cat >pat-packet.desktop << EOF
  290. [Desktop Entry]
  291. Name=Pat Winlink (packet)
  292. Icon=pat
  293. Comment=Pat Winlink using AX.25 (pat-gensio)
  294. Exec=pat_packet.sh
  295. Terminal=true
  296. Type=Application
  297. Categories=HamRadio
  298.  
  299. EOF
  300.  
  301. sudo mv pat-config.desktop /usr/local/share/applications/
  302. sudo mv pat-packet.desktop /usr/local/share/applications/
  303.  
  304. # configure PAT (dialog)
  305. source pat_config.sh
  306. echo "
  307.  
  308. *********************************************
  309. ** **
  310. ** PAT SUCCESSFULLY INSTALLED **
  311. ** **
  312. *********************************************
  313.  
  314. "
  315. }
  316.  
  317.  
  318. install_ardop () {
  319. echo "
  320.  
  321. *********************************************
  322. ** **
  323. ** INSTALLING ARDOP MODEM **
  324. ** **
  325. *********************************************
  326.  
  327. "
  328.  
  329. wget https://inovato.net/ham/files/ardopc.tar.gz
  330. tar -xf ardopc.tar.gz
  331. rm ardopc.tar.gz
  332. if [ ! -f ~/.asoundrc.save ]; then
  333. if [ -f ~/.asoundrc ]; then
  334. mv ~/.asoundrc ~/.asoundrc.save
  335. fi
  336. fi
  337. # get sound card info and write to config.json
  338. line=$(aplay -l | grep USB)
  339. card=$(echo "$line" | awk '{print $2}' | tr -d ':')
  340. device=$(echo "$line" | awk '{print $8}' | tr -d ':')
  341. sed -i "s/hw:1,0/hw:$card,$device/g" ./asoundrc
  342.  
  343. mv ./asoundrc ~/.asoundrc
  344. sudo mv ardopc /usr/local/bin
  345. sudo mv pat_ardop.sh /usr/local/bin
  346. cat >pat-ardop.desktop << EOF
  347. [Desktop Entry]
  348. Name=Pat Winlink (ARDOP)
  349. Icon=pat
  350. Comment=Pat Winlink using ARDOP modem
  351. Exec=pat_ardop.sh
  352. Terminal=true
  353. Type=Application
  354. Categories=HamRadio
  355.  
  356. EOF
  357. sudo mv pat-ardop.desktop /usr/local/share/applications/
  358. echo "
  359.  
  360. *********************************************
  361. ** **
  362. ** ARDOP SUCCESSFULLY INSTALLED **
  363. ** **
  364. *********************************************
  365.  
  366. "
  367. }
  368.  
  369.  
  370. install_hamclock () {
  371. echo "
  372.  
  373. *********************************************
  374. ** **
  375. ** INSTALLING HAMCLOCK **
  376. ** **
  377. *********************************************
  378.  
  379. "
  380. sudo apt install -y xorg-dev libx11-dev
  381. curl -O https://www.clearskyinstitute.com/ham/HamClock/ESPHamClock.zip
  382. unzip ESPHamClock.zip
  383. cd ESPHamClock
  384. make -j 4 hamclock-1600x960
  385. sudo make install
  386. cd ..
  387. rm ESPHamClock.zip
  388. sudo rm -r ESPHamClock
  389. #create hamclock menu item
  390. cat >hamclock.desktop << EOF
  391. [Desktop Entry]
  392. Name=HamClock
  393. Icon=hamclock
  394. Comment=a handy clock with features for amateur radio operators
  395. Exec=hamclock
  396. Terminal=false
  397. Type=Application
  398. Categories=HamRadio
  399.  
  400. EOF
  401. sudo mv hamclock.desktop /usr/local/share/applications/
  402. wget https://inovato.net/ham/files/hamclock.png
  403. sudo mv hamclock.png /usr/share/pixmaps
  404.  
  405. # get setup files
  406. wget https://inovato.net/ham/files/hamclock-setup
  407. sudo mv hamclock-setup /usr/local/bin
  408. sudo chmod +x /usr/local/bin/hamclock-setup
  409. wget https://inovato.net/ham/files/hamclock-xrandr-wrapper
  410. sudo mv hamclock-xrandr-wrapper /usr/local/bin
  411. sudo chmod +x /usr/local/bin/hamclock-xrandr-wrapper
  412. wget https://inovato.net/ham/files/hamclock-setup.desktop
  413. sudo mv hamclock-setup.desktop /usr/local/share/applications
  414. sudo chmod +x /usr/local/share/applications/hamclock-setup.desktop
  415. wget https://inovato.net/ham/files/hamclock-no-borders.desktop
  416. sudo mv hamclock-no-borders.desktop /usr/local/share/applications
  417. sudo chmod +x /usr/local/share/applications/hamclock-no-borders.desktop
  418. wget https://inovato.net/ham/files/hamclock-screenshot-small.png
  419. sudo mv hamclock-screenshot-small.png /usr/share/pixmaps
  420. wget https://inovato.net/ham/files/hamclock-borders-compare.png
  421. sudo mv hamclock-borders-compare.png /usr/share/pixmaps
  422. echo "
  423.  
  424. *********************************************
  425. ** **
  426. ** HAMCLOCK SUCCESSFULLY INSTALLED **
  427. ** **
  428. *********************************************
  429.  
  430. "
  431. }
  432.  
  433.  
  434. install_hamrs () {
  435. echo "
  436.  
  437. *********************************************
  438. ** **
  439. ** INSTALLING HAMRS **
  440. ** **
  441. *********************************************
  442.  
  443. "
  444. wget https://hamrs-releases.s3.us-east-2.amazonaws.com/1.0.6/hamrs-1.0.6-linux-arm64.AppImage
  445.  
  446. sudo chmod +x hamrs-1.0.6-linux-arm64.AppImage
  447. sudo mv hamrs-1.0.6-linux-arm64.AppImage /usr/local/bin
  448.  
  449. cat > hamrs.desktop <<EOF
  450. [Desktop Entry]
  451. Name=HAMRS
  452. Comment=POTA Logging Software
  453. Exec=/usr/local/bin/hamrs-1.0.6-linux-arm64.AppImage
  454. Icon=/usr/share/pixmaps/hamrs-logo.png
  455. Terminal=false
  456. Type=Application
  457. Categories=HamRadio
  458. EOF
  459.  
  460. sudo mv hamrs.desktop /usr/share/applications/
  461. wget https://inovato.net/ham/files/hamrs-logo.png
  462. sudo mv hamrs-logo.png /usr/share/pixmaps/hamrs-logo.png
  463.  
  464. echo "
  465.  
  466. *********************************************
  467. ** **
  468. ** HAMRS SUCCESSFULLY INSTALLED **
  469. ** **
  470. *********************************************
  471.  
  472. "
  473. }
  474.  
  475.  
  476. install_direwolf () {
  477.  
  478. echo "
  479.  
  480. *********************************************
  481. ** **
  482. ** INSTALLING DIREWOLF **
  483. ** **
  484. *********************************************
  485.  
  486. "
  487. INFO=$(yad --form --width=420 --text-align=center --center --title="direwolf Setup" \
  488. --separator="|" --item-separator="|" \
  489. --text="<b>Make sure your rig is connected to the Quadra and powered on before continuing\r\rPlease enter your callsign below:</b>" \
  490. --field="Callsign" \
  491. --button="Continue":0 \
  492. --button="Exit":1 "" "" "")
  493. BUT=$(echo $?)
  494.  
  495. if [ ${BUT} = 1 ]; then
  496. exit
  497. fi
  498. callsign=$(echo ${INFO} | awk -F "|" '{print $1}')
  499. callsign=${callsign^^}
  500.  
  501. # we need at least flRig
  502. if [ ! -f /usr/local/bin/flrig ]; then
  503. wget https://inovato.net/ham/files/flsuite.tar.gz
  504. tar -xf flsuite.tar.gz
  505. rm flsuite.tar.gz
  506. sudo apt install -y flrig
  507. sudo mv flrig /usr/local/bin
  508. rm fldigi flmsg flamp
  509. fi
  510.  
  511. sudo apt-get install -y libasound2-dev libudev-dev direwolf
  512. rm ~/direwolf.conf
  513. wget https://www.inovato.net/ham/files/direwolf.conf ~/
  514.  
  515. # use our start_direwolf command to start rigctld/flRig
  516. wget https://inovato.net/ham/files/start_direwolf
  517. sudo chmod +x start_direwolf
  518. sudo mv start_direwolf /usr/local/bin
  519. sudo sed -i 's/\/usr\/bin\/x-terminal-emulator -e direwolf/start_direwolf/' /usr/share/applications/direwolf.desktop
  520.  
  521. # edit direwolf config to use your callsign, USB soundcard & rigctld/flRig
  522. sed -i "s/N0CALL/${callsign}/" ~/direwolf.conf
  523. # get sound card info and write to direwolf.conf
  524. line=$(aplay -l | grep USB)
  525. card=$(echo "$line" | awk '{print $2}' | tr -d ':')
  526. device=$(echo "$line" | awk '{print $8}' | tr -d ':')
  527.  
  528. sed -i "s/# ADEVICE plughw:1,0/ADEVICE plughw:$card,$device/" ~/direwolf.conf
  529. sed -i '/#PTT\ \/dev\/ttyUSB0\ RTS/a #Change line below if not using Hamlib/flrig for PTT\nPTT RIG 2 localhost:4532' ~/direwolf.conf
  530.  
  531. # start flrig now so user can configure radio
  532. pid=$(pidof -x flrig)
  533. if [ -z $pid ]; then
  534. echo "starting flrig"
  535. flrig &
  536. fi
  537.  
  538. yad --width=400 --height=100 --title="Direwolf Setup" --wrap \
  539. --text="\rConfigure your rig in flrig under 'config'/'Setup'/'Transceiver' then close it to save the configuration.\r\rIf you need help, Google your rig model number plus 'flrig'.\r" \
  540. --button="Exit":1
  541.  
  542. echo "
  543.  
  544. *********************************************
  545. ** **
  546. ** DIREWOLF SUCCESSFULLY INSTALLED **
  547. ** **
  548. *********************************************
  549.  
  550. "
  551. }
  552.  
  553. install_yaac () {
  554. echo "
  555.  
  556. *********************************************
  557. ** **
  558. ** INSTALLING YAAC **
  559. ** **
  560. *********************************************
  561.  
  562. "
  563.  
  564. # Script thanks to KM4ACK 73Linux, with minor edits
  565. cd ~
  566. wget --tries 2 --connect-timeout=60 https://www.ka2ddo.org/ka2ddo/YAAC.zip
  567. sudo apt-get install -y librxtx-java default-jre
  568. mkdir -p ${HOME}/YAAC
  569. cd ${HOME}/YAAC || return
  570. #Fix issue 375 to prevent YAAC from reopening
  571. if [ -f ${HOME}/YAAC/YAAC ]; then
  572. rm ${HOME}/YAAC/YAAC
  573. fi
  574. touch YAAC
  575. echo "#!/bin/bash" >>YAAC
  576. echo "java -jar ${HOME}/YAAC/YAAC.jar" >>YAAC
  577. chmod +x YAAC
  578. cat >yaac.desktop <<EOF
  579. [Desktop Entry]
  580. Name=YAAC
  581. GenericName=YAAC
  582. Comment=APRS Client
  583. Exec=${HOME}/YAAC/YAAC
  584. Icon=~/usr/share/pixmaps/YAAC.png
  585. Terminal=false
  586. Type=Application
  587. Categories=Network;HamRadio;
  588. EOF
  589.  
  590. sudo mv yaac.desktop /usr/share/applications/
  591. mv ~/YAAC.zip $HOME/YAAC
  592. unzip -o ${HOME}/YAAC/YAAC.zip
  593. rm $HOME/YAAC/YAAC.zip
  594. echo "
  595.  
  596. *********************************************
  597. ** **
  598. ** YAAC SUCCESSFULLY INSTALLED **
  599. ** **
  600. *********************************************
  601.  
  602. "
  603. }
  604.  
  605. install_conky () {
  606.  
  607. echo "
  608.  
  609. *********************************************
  610. ** **
  611. ** INSTALLING CONKY **
  612. ** **
  613. *********************************************
  614.  
  615. "
  616. # set user info in pat config file
  617. INFO=$(yad --form --width=420 --text-align=center --center --title="Conky Setup" \
  618. --separator="|" --item-separator="|" \
  619. --text="<b>Please enter your information below:</b>" \
  620. --field="Callsign" \
  621. --field="Six Character Gridsquare" \
  622. --button="Continue":0 \
  623. --button="Exit":1 "" "" "")
  624. BUT=$(echo $?)
  625. if [ ${BUT} = 1 ]; then
  626. exit
  627. fi
  628. callsign=$(echo ${INFO} | awk -F "|" '{print $1}')
  629. callsign=${callsign^^}
  630. gridsquare=$(echo ${INFO} | awk -F "|" '{print $2}')
  631. gridsquare=${gridsquare^^}
  632.  
  633. # install conky & GPS support via apt
  634. # remove gpsd first so re-install works
  635. sudo apt remove gpsd
  636. sudo apt install -y conky gpsd gpsd-clients pip
  637. pip install gridtools
  638. wget https://www.inovato.net/ham/files/gpsd
  639. # default is ttyACM0, but if ttyACM1 exists, use it (eg, IC705)
  640. if [ -e /dev/ttyACM1 ]; then
  641. sed -i "s/ACM0/ACM1/" gpsd
  642. fi
  643. sudo mv gpsd /etc/default
  644. sudo systemctl enable gpsd
  645. sudo systemctl start gpsd
  646. wget https://www.inovato.net/ham/files/get_gps
  647. #sed -i "s/MYGRID/$gridsquare/" get_gps
  648. sudo chmod +x get_gps
  649. sudo mv get_gps /usr/local/bin
  650. wget https://www.inovato.net/ham/files/get_freq
  651. sudo chmod +x get_freq
  652. sudo mv get_freq /usr/local/bin
  653.  
  654.  
  655. # install conkyrc file & related
  656. wget https://www.inovato.net/ham/files/vcgencmd
  657. chmod +x vcgencmd
  658. sudo mv vcgencmd /usr/bin
  659. wget https://www.inovato.net/ham/files/conkyrc
  660. sed -i "s/MYGRID/$gridsquare/" ./conkyrc
  661. sed -i "s/MYCALL/$callsign/" ./conkyrc
  662. mv conkyrc .conkyrc
  663.  
  664. # menu
  665. cat <<EOF >${HOME}/.local/share/applications/conky.desktop
  666. [Desktop Entry]
  667. Name=Conky
  668. Comment=Conky
  669. GenericName=Conky Screen Background Monitor
  670. Exec=conky --pause=5
  671. Icon=/usr/share/pixmaps/conky-logo.png
  672. Type=Application
  673. Encoding=UTF-8
  674. Terminal=false
  675. Categories=HamRadio
  676. Keywords=Radio
  677. EOF
  678.  
  679.  
  680. # misc dependencies
  681. sudo touch ${HOME}/.local/share/WSJT-X/wsjtx.log #conky will fail to load if this file doesn't exist
  682. sudo touch /var/lib/misc/dnsmasq.leases #conky will fail to load if this file doesn't exist
  683. wget https://inovato.net/ham/files/conky-logo.png
  684. sudo mv conky-logo.png /usr/share/pixmaps/conky-logo.png
  685.  
  686. # autostart
  687. ln -sf ${HOME}/.local/share/applications/conky.desktop ${HOME}/.config/autostart/conky.desktop
  688.  
  689. echo "
  690.  
  691. *********************************************
  692. ** **
  693. ** CONKY SUCCESSFULLY INSTALLED **
  694. ** **
  695. *********************************************
  696.  
  697. "
  698. }
  699.  
  700. install_chirp () {
  701.  
  702. echo "
  703.  
  704. *********************************************
  705. ** **
  706. ** INSTALLING CHIRP **
  707. ** **
  708. *********************************************
  709.  
  710. "
  711.  
  712. date=$(curl -s https://github.com/goldstar611/chirp-appimage | grep "releases/tag/" | sed 's|.*releases/tag/||;s|">||')
  713.  
  714. wget https://github.com/goldstar611/chirp-appimage/releases/download/$date/Chirp-next-$date-aarch64.AppImage
  715.  
  716. chirp=$(ls | grep Chirp-next)
  717. sudo mv $chirp /usr/local/bin/chirp
  718. sudo chmod +x /usr/local/bin/chirp
  719.  
  720. # Create desktop entry
  721. wget https://www.inovato.net/ham/files/chirp.png
  722. sudo mv chirp.png /usr/share/pixmaps/chirp.png
  723.  
  724. cat >chirp.desktop <<EOF
  725. [Desktop Entry]
  726. Name=Chirp
  727. Comment=Radio Programming Software
  728. GenericName=Chirp
  729. Exec=/usr/local/bin/chirp
  730. Icon=/usr/share/pixmaps/chirp.png
  731. Type=Application
  732. Terminal=false
  733. Categories=HamRadio;
  734. EOF
  735.  
  736. sudo mv chirp.desktop /usr/share/applications/
  737.  
  738.  
  739. echo "
  740.  
  741. *********************************************
  742. ** **
  743. ** CHIRP SUCCESSFULLY INSTALLED **
  744. ** **
  745. *********************************************
  746.  
  747. "
  748. }
  749.  
  750.  
  751. #
  752. # Application starts here
  753. #
  754. # make sure yad installed
  755. sudo apt install yad
  756. sudo mkdir /usr/local/share/applications
  757.  
  758. # display menu
  759. wget -N https://inovato.net/ham/files/install.txt
  760. options_file=install.txt
  761. yad_options=()
  762.  
  763. while IFS='|' read -r option desc version
  764. do
  765. yad_options+=(FALSE "$option" "$desc" "$version")
  766. done < $options_file
  767.  
  768. selected_options=$(yad --height=460 --width=730 --title="Quadra Installer" --center --list --print-all --search-column=2 \
  769. --multiple --borders=20 --checklist --grid-lines=hor --column="Select" --column="Name" --column="Description" --column="Version" \
  770. --text="Select apps to install. You can sort, or search by typing." --button="cancel":1 --button="Install":2 "${yad_options[@]}")
  771. exval=$?
  772. if [ $exval = 1 ]; then
  773. # cancel button pressed
  774. exit
  775. fi
  776.  
  777. echo "
  778.  
  779. *********************************************
  780. ** **
  781. ** CHECKING DEPENDENCIES **
  782. ** **
  783. *********************************************
  784.  
  785. "
  786. sudo apt update
  787.  
  788. # Make sure we have a HamRadio menu
  789. if [ -f ~/.config/menus/xfce-applications.menu ]; then
  790. rm ~/.config/menus/xfce-applications.menu
  791. fi
  792.  
  793. # install our installer in it
  794. if [ ! -f /usr/local/bin/ham_installer ]; then
  795. cat >ham_installer.desktop <<EOF
  796. [Desktop Entry]
  797. Name=Quadra Ham Apps Installer
  798. GenericName=Ham Installer
  799. Comment=Ham Installer
  800. Exec=/usr/local/bin/ham_installer
  801. Icon=/usr/share/icons/gnome/32x32/apps/system-software-install.png
  802. Terminal=true
  803. Type=Application
  804. Categories=HamRadio;
  805. EOF
  806.  
  807. sudo mv ham_installer.desktop /usr/share/applications
  808. cat >ham_installer <<EOF
  809. #!/bin/bash
  810. cd ~/
  811. wget -N https://inovato.net/ham/install
  812. sudo chmod +x install
  813. ./install
  814. EOF
  815.  
  816. sudo mv ham_installer /usr/local/bin
  817. sudo chmod +x /usr/local/bin/ham_installer
  818. fi
  819.  
  820. #sudo apt update
  821. sudo apt install -y extra-xdg-menus
  822. # use updated rig icon instead of CQ icon which is hard to see
  823. wget https://inovato.net/ham/files/hamradio.png
  824. sudo mv hamradio.png /usr/share/pixmaps/CQ.png
  825.  
  826. # Remove old hand-built Hamradio menu if it exists
  827. if [ -f ~/.config/menus/applications-merged/user-menulibre-ham-radio.menu ]; then
  828. rm ~/.config/menus/applications-merged/user-menulibre-ham-radio.menu
  829. fi
  830. # These cause duplicated multimedia and internet menus
  831. if [ -f ~/.config/menus/applications-merged/user-xfce-multimedia.menu ]; then
  832. rm ~/.config/menus/applications-merged/user-xfce-multimedia.menu
  833. fi
  834. if [ -f ~/.config/menus/applications-merged/user-xfce-network.menu ]; then
  835. rm ~/.config/menus/applications-merged/user-xfce-network.menu
  836. fi
  837.  
  838. # Remove brltty
  839. sudo apt remove -y brltty
  840.  
  841. # Install HamLib
  842. sudo apt -y install libhamlib4 libhamlib-utils
  843.  
  844. # make sure all wireless connections are set as available for all users (permission blank) so avaialable at boot!
  845. interfaces=$(nmcli -t c)
  846. while IFS= read -r line
  847. do
  848. name="$(cut -f1 -d: <<< $line)"
  849. type="$(echo $line | cut -f3 -d:)"
  850. if [ "$type" == "802-11-wireless" ]; then
  851. sudo nmcli con modify "$name" connection.permissions ""
  852. fi
  853. done <<< "${interfaces}"
  854.  
  855. # Add GPS support in chrony if not already done
  856. CHRONYCHK=$(grep "refclock SHM 0 offset 0.5 delay 0.2 refid NMEA" /etc/chrony/chrony.conf)
  857. if [ -z "$CHRONYCHK" ]; then
  858. echo "refclock SHM 0 offset 0.5 delay 0.2 refid NMEA" | sudo tee -a /etc/chrony/chrony.conf
  859. fi
  860.  
  861.  
  862. # process selected apps from YAD menu
  863. while IFS= read -r line
  864. do
  865. check=$(echo $line | cut -f1 -d'|' )
  866. name=$(echo $line | cut -f2 -d'|' )
  867. if [ $check = TRUE ]; then
  868. prefix="install_"
  869. # execute function to install this app
  870. $prefix$name
  871. fi
  872. done <<< "${selected_options}"
  873.  
  874. sleep 10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement