├── .github └── workflows │ ├── ci.yml │ └── docker-build.yml.saved ├── .gitignore ├── .travis.yml ├── CONTRIBUTORS.md ├── Dockerfile ├── LICENSE ├── README.md ├── TROUBLESHOOTING.md ├── alternatives.txt ├── app ├── app.sh ├── imagestart.sh ├── tiger.sh └── tight.sh ├── bin └── set_wallpaper.sh ├── conf ├── autostart ├── bash.colors ├── color_prompt.sh ├── fbpaneldefault ├── lang.sh ├── menu.xml ├── sudo └── xstartup ├── images ├── openbox_error_1.jpg └── openbox_error_2.jpg ├── scripts ├── 4pane.sh ├── amarok.sh ├── archipelago.AI.sh ├── audacious.sh ├── avidemux.AI.sh ├── banshee.sh ├── biglybt.sh ├── bitstormlite.sh ├── blender.sh ├── bluefish.sh ├── brave_beta.sh ├── brave_nightly.sh ├── brave_release.sh ├── caja.sh ├── cherrytree.sh ├── chrome.sh ├── chromium.sh ├── clementine.sh ├── compile_cherrytree.sh ├── cutter.AI.sh ├── deadbeef.sh ├── deluge.sh ├── discord.sh ├── doublecmd.sh ├── dropbox.sh ├── eclipse_cpp.sh ├── eclipse_java.sh ├── eclipse_php.sh ├── edge_dev.sh ├── electorrent.AI.sh ├── empathy.sh ├── eterm.sh ├── firefox.sh ├── flowblade.sh ├── galculator.sh ├── geany.sh ├── gedit.sh ├── gftp.sh ├── gimp.sh ├── gmusicbrowser.sh ├── gopchop.sh ├── gpodder.sh ├── gst.FP.sh ├── guvcview.sh ├── gvim.sh ├── hexchat.sh ├── hyper.AI.sh ├── inkscape.sh ├── install_archipelago.AI.sh ├── install_avidemux.AI.sh ├── install_biglybt.sh ├── install_brave_beta_repo.sh ├── install_brave_nightly_repo.sh ├── install_brave_release_repo.sh ├── install_chrome.sh ├── install_cutter.AI.sh ├── install_deadbeef.sh ├── install_discord.sh ├── install_dropbox.sh ├── install_eclipse.sh ├── install_electorrent.AI.sh ├── install_gst.FP.sh ├── install_hyper.AI.sh ├── install_libreoffice.AI.sh ├── install_ncsa_mosiac.AI.sh ├── install_netbeans.sh ├── install_ngrev.AI.sh ├── install_nomachine.sh ├── install_openshot.sh ├── install_opera.sh ├── install_palemoon.sh ├── install_panwriter.AI.sh ├── install_pktsender.AI.sh ├── install_powershell.sh ├── install_slack.sh ├── install_steam.sh ├── install_strawberry_repo.sh ├── install_sublimetext_repo.sh ├── install_torbrowser.sh ├── install_torbrowser_manual.sh ├── install_veracrypt.sh ├── install_vidcutter_repo.sh ├── install_videocut_repo.sh ├── install_vivaldi.sh ├── install_vivaldi_repo.sh ├── install_vscode.sh ├── install_vscode_repo.sh ├── install_zenbrowser.sh ├── kcalc.sh ├── kdenlive.sh ├── kitty.sh ├── konversation.sh ├── kopete.sh ├── krita.sh ├── krusader.sh ├── ktorrent.sh ├── launch_torbrowser.sh ├── libreoffice.AI.sh ├── libreoffice.sh ├── lives.sh ├── loqui.sh ├── medit.sh ├── ncsa_mosiac.AI.sh ├── nemo.sh ├── netbeans.sh ├── ngrev.AI.sh ├── olive.sh ├── openshot.sh ├── opera.sh ├── palemoon.sh ├── panwriter.AI.sh ├── pcmanfm.sh ├── pidgin.sh ├── pktsender.AI.sh ├── polari.sh ├── powershell.sh ├── pragha.sh ├── prepare_debian_chromium.sh ├── prepare_edge_dev_repo.sh ├── prepare_firefox_ppa.sh ├── qbittorrent.sh ├── qchat.sh ├── quodlibet.sh ├── remove_chrome_key.sh ├── rhythmbox.sh ├── ring.sh ├── sakura.sh ├── seamonkey.sh ├── shotcut.sh ├── slack.sh ├── smplayer.sh ├── spacefm.sh ├── steam.sh ├── strawberry.sh ├── sublimetext.sh ├── terminator.sh ├── terminology.sh ├── thonny.sh ├── thunar.sh ├── tilda.sh ├── tilix.sh ├── transmissiongtk.sh ├── veracrypt.sh ├── vidcutter.sh ├── videocut.sh ├── vivaldi.sh ├── vscode.sh ├── wait_for_vivaldi_media_codecs.sh ├── winff.sh ├── worker.sh ├── xchat.sh ├── xfe.sh ├── xfw.sh ├── zenbrowser.sh └── zenmap.sh └── tests ├── deadbeef.sh ├── tor.sh └── vivaldi.sh /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: CI 4 | 5 | # Controls when the workflow will run 6 | on: 7 | # Allows you to run this workflow manually from the Actions tab 8 | workflow_dispatch: 9 | 10 | # Triggers the workflow on push or pull request events but only for the master branch 11 | push: 12 | branches: [ master ] 13 | pull_request: 14 | branches: [ master ] 15 | 16 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 17 | jobs: 18 | # This workflow contains a single job called "build" 19 | build: 20 | # The type of runner that the job will run on 21 | runs-on: ubuntu-22.04 22 | 23 | # Steps represent a sequence of tasks that will be executed as part of the job 24 | steps: 25 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 26 | - uses: actions/checkout@v3 27 | 28 | # Runs a single command using the runners shell 29 | - name: Install dev packages 30 | run: sudo apt-get install -y curl wget xz-utils gnupg2 dpkg-sig 31 | 32 | # Runs a set of commands using the runners shell 33 | - name: Check software downloads 34 | run: | 35 | cd tests 36 | ./tor.sh 37 | ./deadbeef.sh 38 | -------------------------------------------------------------------------------- /.github/workflows/docker-build.yml.saved: -------------------------------------------------------------------------------- 1 | name: Build and Push Docker Image 2 | 3 | on: 4 | # Allows you to run this workflow manually from the Actions tab 5 | workflow_dispatch: 6 | 7 | # This workflow will run after "ci.yml" is completed 8 | workflow_run: 9 | workflows: ["ci.yml"] 10 | types: 11 | - completed 12 | 13 | jobs: 14 | build: 15 | # Run this workflow only if ci.yml succeeded 16 | if: ${{ github.event.workflow_run.conclusion == 'success' }} 17 | runs-on: ubuntu-latest 18 | 19 | steps: 20 | - name: Checkout code 21 | uses: actions/checkout@v3 22 | 23 | - name: Log in to Docker Hub 24 | uses: docker/login-action@v2 25 | with: 26 | username: ${{ secrets.DOCKER_USERNAME }} 27 | password: ${{ secrets.DOCKER_PASSWORD }} 28 | 29 | - name: Build and Push Docker image 30 | uses: docker/build-push-action@v5 31 | with: 32 | context: . 33 | push: true 34 | tags: fullaxx/ubuntu-desktop:latest 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: focal 2 | sudo: false 3 | language: c 4 | compiler: 5 | - gcc 6 | addons: 7 | apt: 8 | packages: 9 | - curl 10 | - wget 11 | - xz-utils 12 | - gnupg2 13 | - dpkg-sig 14 | script: 15 | - cd tests 16 | - ./tor.sh 17 | - ./deadbeef.sh 18 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | * Brett Kuskie (fullaxx@gmail.com) 2 | * Christoph Wempe (@CWempe) 3 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------------ 2 | # Pull base image 3 | FROM ubuntu:jammy 4 | LABEL author="Brett Kuskie " 5 | 6 | # ------------------------------------------------------------------------------ 7 | # Set environment variables 8 | ENV DEBIAN_FRONTEND=noninteractive 9 | ENV WINDOWMANAGER=openbox 10 | ENV LOCALE=en_US 11 | ENV LANG=C 12 | 13 | # ------------------------------------------------------------------------------ 14 | # Install tigervnc,openbox and clean up 15 | RUN apt-get update && \ 16 | apt-get install -y --no-install-recommends \ 17 | ca-certificates \ 18 | curl \ 19 | dbus-x11 \ 20 | fbpanel \ 21 | hsetroot \ 22 | less \ 23 | locales \ 24 | nano \ 25 | obconf \ 26 | openbox \ 27 | sudo \ 28 | tigervnc-common \ 29 | tigervnc-standalone-server \ 30 | tigervnc-tools \ 31 | tzdata \ 32 | wget \ 33 | x11-utils \ 34 | x11-xserver-utils \ 35 | xfonts-base \ 36 | xterm && \ 37 | apt-get clean && \ 38 | rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* 39 | 40 | # ------------------------------------------------------------------------------ 41 | # Configure locale 42 | RUN echo "LC_ALL=${LOCALE}.UTF-8" >> /etc/environment && \ 43 | echo "LANG=${LOCALE}.UTF-8" > /etc/locale.conf && \ 44 | echo "${LOCALE}.UTF-8 UTF-8" >> /etc/locale.gen && \ 45 | locale-gen 46 | 47 | # ------------------------------------------------------------------------------ 48 | # Configure XTerm 49 | RUN sed -e 's/saveLines: 1024/saveLines: 8192/' -i /etc/X11/app-defaults/XTerm 50 | 51 | # ------------------------------------------------------------------------------ 52 | # Configure openbox 53 | RUN mkdir -p /usr/share/ubuntu-desktop/openbox && \ 54 | cat /etc/xdg/openbox/rc.xml \ 55 | | sed -e 's@4@8@' \ 56 | > /usr/share/ubuntu-desktop/openbox/rc.xml 57 | 58 | # ------------------------------------------------------------------------------ 59 | # Install scripts and configuration files 60 | COPY app/app.sh app/imagestart.sh app/tiger.sh /app/ 61 | COPY bin/set_wallpaper.sh /usr/bin/ 62 | COPY conf/xstartup /usr/share/ubuntu-desktop/vnc/ 63 | COPY conf/autostart conf/menu.xml /usr/share/ubuntu-desktop/openbox/ 64 | COPY conf/fbpaneldefault /usr/share/ubuntu-desktop/fbpanel/default 65 | COPY conf/sudo /usr/share/ubuntu-desktop/sudo 66 | COPY conf/bash.colors conf/color_prompt.sh conf/lang.sh /opt/bash/ 67 | COPY scripts/*.sh /app/scripts/ 68 | 69 | # ------------------------------------------------------------------------------ 70 | # Expose ports 71 | EXPOSE 5901 72 | 73 | # ------------------------------------------------------------------------------ 74 | # Define default command 75 | CMD ["/app/app.sh"] 76 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Brett Kuskie 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ubuntu Desktop running Openbox/Xfce4/i3 in VNC/RDP 2 | 3 | ## Base Docker Image 4 | [Ubuntu](https://hub.docker.com/_/ubuntu) (x64) 5 | 6 | ## Get the image from Docker Hub 7 | ``` 8 | docker pull fullaxx/ubuntu-desktop 9 | docker pull fullaxx/ubuntu-desktop:focal 10 | docker pull fullaxx/ubuntu-desktop:bionic 11 | docker pull fullaxx/ubuntu-desktop:xfce4 12 | docker pull fullaxx/ubuntu-desktop:i3 13 | docker pull fullaxx/ubuntu-desktop:rdp 14 | ``` 15 | 16 | ## Build it locally using the github repository 17 | ``` 18 | docker build -t="fullaxx/ubuntu-desktop" github.com/Fullaxx/ubuntu-desktop 19 | docker build -t="fullaxx/ubuntu-desktop:focal" github.com/Fullaxx/ubuntu-desktop#focal 20 | docker build -t="fullaxx/ubuntu-desktop:bionic" github.com/Fullaxx/ubuntu-desktop#bionic 21 | docker build -t="fullaxx/ubuntu-desktop:xfce4" github.com/Fullaxx/ubuntu-desktop#xfce4 22 | docker build -t="fullaxx/ubuntu-desktop:i3" github.com/Fullaxx/ubuntu-desktop#i3 23 | docker build -t="fullaxx/ubuntu-desktop:rdp" github.com/Fullaxx/ubuntu-desktop#rdp 24 | ``` 25 | 26 | ## VNC Options 27 | Optional: Set Depth 16 \ 28 | Default: 24 29 | ``` 30 | -e VNCDEPTH='16' 31 | ``` 32 | Optional: Set 1920x1080 Resolution \ 33 | Default: 1280x800 34 | ``` 35 | -e VNCRES='1920x1080' 36 | ``` 37 | Optional: Bind to Port 5909 \ 38 | Default: port 5901 39 | ``` 40 | -e VNCPORT='9' 41 | ``` 42 | Optional: Set Password Authentication \ 43 | Default: No Authentication 44 | ``` 45 | -e VNCPASS='vncpass' 46 | ``` 47 | Optional: Set Read-Write and Read-Only password \ 48 | Default: No Authentication 49 | ``` 50 | -e VNCPASS='vncpass' -e VNCPASSRO='readonly' 51 | ``` 52 | Optional: Run as a new non-root user \ 53 | Default: root (UID: 0) 54 | ``` 55 | -e VNCUSER='guest' -e VNCUID='1000' 56 | ``` 57 | Optional: If you want your non-root user to be part of the users group \ 58 | Default: same as VNCUSER and VNCUID \ 59 | Pre-Req: VNCUSER and VNCUID must be set 60 | ``` 61 | -e VNCGROUP='users' 62 | ``` 63 | Optional: Define a new group for non-root user \ 64 | Default: same as VNCUSER and VNCUID \ 65 | Pre-Req: VNCUSER and VNCUID must be set 66 | ``` 67 | -e VNCGROUP='guests' -e VNCGID='1001' 68 | ``` 69 | Optional: Set a password for the VNCUSER account \ 70 | Default: none and the account is locked \ 71 | Pre-Req: VNCUSER and VNCUID must be set 72 | ``` 73 | -e ACCTPASS='mysecretpassword' 74 | ``` 75 | Optional: Set umask to define permission for new files \ 76 | Default: 0022 77 | ``` 78 | -e VNCUMASK='0002' 79 | ``` 80 | 81 | ## TimeZone Configuration 82 | Set the timezone to be used inside the container \ 83 | Default: UTC 84 | ``` 85 | -e TZ='Asia/Tokyo' 86 | -e TZ='Europe/London' 87 | -e TZ='America/Los_Angeles' 88 | -e TZ='America/Denver' 89 | -e TZ='America/Chicago' 90 | -e TZ='America/New_York' 91 | ``` 92 | 93 | ## Wallpaper Configuration 94 | Set a background image for the openbox desktop \ 95 | Default: None \ 96 | Image Links: 97 | [1](https://www.rapidlinux.org/udwp/metallurgy1HDfree.jpg) / 98 | [2](https://www.rapidlinux.org/udwp/portals1HDfree.jpg) / 99 | [3](https://www.rapidlinux.org/udwp/cronusrising2k141HDfree.jpg) / 100 | [4](https://www.rapidlinux.org/udwp/harbinger2k91HDfree.jpg) / 101 | [5](https://www.rapidlinux.org/udwp/arcana2HDfree.jpg) / 102 | [6](https://www.rapidlinux.org/udwp/rivenHDfree.jpg) / 103 | [7](https://www.rapidlinux.org/udwp/circularlogicHDfree.jpg) / 104 | [8](https://www.rapidlinux.org/udwp/gardener2k121HDfree.jpg) / 105 | [9](https://www.rapidlinux.org/udwp/overseer2k141_single_1920x1080.jpg) \ 106 | Layout Options: fill / extend / full / tile / cover / center \ 107 | Default Layout: center 108 | ``` 109 | -e WALLPAPER='1' 110 | -e WALLPAPER='3' 111 | -e WALLPAPER='5' -e WPLAYOUT='cover' 112 | ``` 113 | 114 | ## Sound Configuration (to support audio) 115 | Passthrough for audio devices inside the container 116 | ``` 117 | --device /dev/snd 118 | or 119 | --privileged 120 | ``` 121 | 122 | ## FUSE Configuration (to support AppImages) 123 | Set privileges to allow FUSE to work properly inside the container 124 | ``` 125 | --device /dev/fuse --cap-add SYS_ADMIN 126 | ``` 127 | 128 | ## Privileged Mode (to support FlatPak) 129 | Set privileged mode to allow FlatPaks to work properly inside the container 130 | ``` 131 | --privileged 132 | ``` 133 | 134 | ## Shared Memory Modification (to support Web Browsers) 135 | Increase the size of shared memory to prevent web browsers from crashing \ 136 | Thanks to [jlesage](https://hub.docker.com/r/jlesage/firefox/#increasing-shared-memory-size) 137 | ``` 138 | --shm-size 2g 139 | ``` 140 | 141 | ## Run the image 142 | Run the image on localhost port 5901 with default configuration 143 | ``` 144 | docker run -d -p 127.0.0.1:5901:5901 fullaxx/ubuntu-desktop 145 | ``` 146 | Run the image with Depth 16 147 | ``` 148 | docker run -d -p 127.0.0.1:5901:5901 -e VNCDEPTH='16' fullaxx/ubuntu-desktop 149 | ``` 150 | Run the image with 1920x1080 Resolution 151 | ``` 152 | docker run -d -p 127.0.0.1:5901:5901 -e VNCRES='1920x1080' fullaxx/ubuntu-desktop 153 | ``` 154 | Run the image with Password Authentication 155 | ``` 156 | docker run -d -p 127.0.0.1:5901:5901 -e VNCPASS='vncpass' fullaxx/ubuntu-desktop 157 | ``` 158 | Run the image with Read-Write and Read-Only password (Using R/O pass requires R/W pass) 159 | ``` 160 | docker run -d -p 127.0.0.1:5901:5901 -e VNCPASS='vncpass' -e VNCPASSRO='readonly' fullaxx/ubuntu-desktop 161 | ``` 162 | Run the image as a non-root user account 163 | ``` 164 | docker run -d -p 127.0.0.1:5901:5901 -e VNCUSER='guest' -e VNCUID='1000' fullaxx/ubuntu-desktop 165 | ``` 166 | Run the image as a non-root user account with custom group 167 | ``` 168 | docker run -d -p 127.0.0.1:5901:5901 -e VNCUSER='guest' -e VNCUID='1000' -e VNCGROUP='guests' -e VNCGID='1001' fullaxx/ubuntu-desktop 169 | ``` 170 | Run the image in Tokyo 171 | ``` 172 | docker run -d -p 127.0.0.1:5901:5901 -e TZ='Asia/Tokyo' fullaxx/ubuntu-desktop 173 | ``` 174 | Run the image with FUSE privileges 175 | ``` 176 | docker run --device /dev/fuse --cap-add SYS_ADMIN -d -p 127.0.0.1:5901:5901 fullaxx/ubuntu-desktop 177 | ``` 178 | Run the image using host networking binding tigervncserver to port 5909 179 | ``` 180 | docker run -d --network=host -e VNCPORT='9' fullaxx/ubuntu-desktop 181 | ``` 182 | Run the image on localhost port 5901 with a decent hostname 183 | ``` 184 | docker run -d -h mycagedbuntu -p 127.0.0.1:5901:5901 fullaxx/ubuntu-desktop 185 | ``` 186 | 187 | ## Connect using vncviewer or a web browser 188 | Use any standard VNC client to connect directly. \ 189 | For web access, check out [noVNC](https://hub.docker.com/r/fullaxx/novnc) to access your ubuntu-desktop with a web browser. 190 | ``` 191 | vncviewer 127.0.0.1:5901 192 | ``` 193 | 194 | ## Using the Openbox Desktop Environment 195 | Right-Click to activate the Openbox menu system. \ 196 | You will find a number of convenience scripts for running applications. 197 | 198 | Terminals: 199 | * [xterm](https://invisible-island.net/xterm/), uxterm, [Eterm](https://sourceforge.net/projects/eterm/), [kitty](https://github.com/kovidgoyal/kitty), [sakura](http://www.pleyades.net/david/projects/sakura), [terminology](https://www.enlightenment.org/about-terminology.md), [terminator](https://gnome-terminator.org/), [tilix](https://gnunn1.github.io/tilix-web/), [tilda](https://github.com/lanoxx/tilda), [archipelago (AI)](https://github.com/npezza93/archipelago), [hyper (AI)](https://github.com/zeit/hyper), [powershell](https://github.com/PowerShell/PowerShell) 200 | 201 | Browsers: 202 | * [chrome](https://www.google.com/chrome/), [chromium](https://www.chromium.org/), [firefox](https://www.mozilla.org/en-US/firefox/), [vivaldi](https://vivaldi.com/), [tor browser](https://www.torproject.org/), [ncsa mosiac (AI)](https://github.com/alandipert/ncsa-mosaic), [edge](https://www.microsoftedgeinsider.com/en-us/download/), [Pale Moon](https://www.palemoon.org/) 203 | 204 | Office: 205 | * [libreoffice](https://www.libreoffice.org/), [libreoffice fresh (AI)](https://www.libreoffice.org/download/appimage/) 206 | 207 | Editors: 208 | * [gedit](https://wiki.gnome.org/Apps/Gedit), gvim, [medit](http://mooedit.sourceforge.net/), [bluefish](http://bluefish.openoffice.nl/), [geany](https://www.geany.org/), [SublimeText](https://www.sublimetext.com/), [vscode](https://github.com/microsoft/vscode), [netbeans](https://netbeans.org/), [CherryTree](https://www.giuspen.com/cherrytree/), [panwriter (AI)](https://github.com/mb21/panwriter), xfw 209 | 210 | Torrenting: 211 | * [BiglyBT](https://www.biglybt.com/), [qbittorrent](https://www.qbittorrent.org/), [ktorrent](https://apps.kde.org/ktorrent/), [deluge](https://deluge-torrent.org/), transmission-gtk, [bitstormlite](https://sourceforge.net/projects/bbom/), [electorrent (AI)](https://github.com/tympanix/Electorrent) 212 | 213 | Chat: 214 | * [discord] (https://discord.com/), [empathy](https://wiki.gnome.org/action/show/Apps/Empathy), [hexchat](https://hexchat.github.io/), [loqui](https://launchpad.net/loqui), [konversation](https://konversation.kde.org/), [kopete](https://kde.org/applications/internet/org.kde.kopete), [pidgin](https://pidgin.im/), [polari](https://wiki.gnome.org/Apps/Polari), qchat, ring, [xchat](http://xchat.org/) 215 | 216 | Games: 217 | * [Steam](https://store.steampowered.com/) 218 | 219 | Music: 220 | * [amarok](https://amarok.kde.org/), [audacious](https://audacious-media-player.org/), [banshee](http://banshee.fm/), [clementine](https://www.clementine-player.org/), [deadbeef](https://deadbeef.sourceforge.io/), [gmusicbrowser](https://gmusicbrowser.org/), [gpodder](https://gpodder.github.io/), [pragha](https://pragha-music-player.github.io/), [quodlibet](https://quodlibet.readthedocs.io/en/latest/), [rhythmbox](https://wiki.gnome.org/Apps/Rhythmbox), [smplayer](https://www.smplayer.info/), [strawberry](https://www.strawberrymusicplayer.org/) 221 | 222 | Graphics: 223 | * [gimp](https://www.gimp.org/), [inkscape](https://inkscape.org/), [krita](https://krita.org/), [blender](https://www.blender.org/) 224 | 225 | AV: 226 | * [guvcview](https://guvcview.sourceforge.net/), [kdenlive](https://kdenlive.org/), [winff](https://github.com/WinFF/winff), [flowblade](https://jliljebl.github.io/flowblade/), [lives](http://www.lives-video.com/), [shotcut](https://www.shotcut.org/), [olive](https://www.olivevideoeditor.org/), [gopchop](https://gopchop.org/), [openshot](https://www.openshot.org/), [vidcutter](https://github.com/ozmartian/vidcutter), [videocut](https://github.com/kanehekili/VideoCut), [avidemux](https://avidemux.sourceforge.net/) 227 | 228 | File Managers: 229 | * [4pane](http://www.4pane.co.uk/), [caja](https://github.com/mate-desktop/caja), [doublecommander](https://doublecmd.sourceforge.io/), [krusader](https://krusader.org/), [nemo](https://github.com/linuxmint/nemo), [pcmanfm](https://wiki.lxde.org/en/PCManFM), [spacefm](https://ignorantguru.github.io/spacefm/), [thunar](https://docs.xfce.org/xfce/thunar/start), [xfe](http://roland65.free.fr/xfe/), [worker](http://www.boomerangsworld.de/cms/worker/) 230 | 231 | Utilities: 232 | * [galculator](http://galculator.mnim.org/), [kcalc](https://apps.kde.org/kcalc/) 233 | 234 | Reverse Engineering: 235 | * [cutter (AI)](https://github.com/radareorg/cutter), [packet sender (AI)](https://github.com/dannagle/PacketSender), [ngrev (AI)](https://github.com/mgechev/ngrev) 236 | 237 | Misc: 238 | * [veracrypt](https://veracrypt.fr/), [dropbox](https://www.dropbox.com/), [slack](https://slack.com/), [gtkstresstesting (FP)](https://gitlab.com/leinardi/gst) 239 | -------------------------------------------------------------------------------- /TROUBLESHOOTING.md: -------------------------------------------------------------------------------- 1 | # Helpful Hints 2 | 3 | ## Jammy and Seccomp 4 | If you see errors like the following: \ 5 | ![Openbox Error Message 1](images/openbox_error_1.jpg) 6 | ![Openbox Error Message 2](images/openbox_error_2.jpg) \ 7 | try adding --security-opt seccomp=unconfined to your docker run command: 8 | ``` 9 | docker run -it --rm --name ud --security-opt seccomp=unconfined -p 5901:5901 fullaxx/ubuntu-desktop 10 | ``` 11 | -------------------------------------------------------------------------------- /alternatives.txt: -------------------------------------------------------------------------------- 1 | # Alternative to (tigervnc-standalone-server tigervnc-common) 2 | # tightvncserver 3 | -------------------------------------------------------------------------------- /app/app.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source /app/imagestart.sh 4 | 5 | source /app/tiger.sh 6 | -------------------------------------------------------------------------------- /app/imagestart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # sudo configuration for ubuntu-desktop 4 | install -m 0440 /usr/share/ubuntu-desktop/sudo /etc/sudoers.d/ubuntudesktop 5 | 6 | # Delete old temp files in case the images was restarted 7 | # test case: docker restart ubuntu-desktop 8 | rm -f /tmp/.X*-lock 9 | rm -f /tmp/.X11-unix/* 10 | 11 | # Necessary for many applications 12 | # (i.e. Chrome, terminator, ktorrent, ...) 13 | /etc/init.d/x11-common start 14 | /etc/init.d/dbus start 15 | 16 | if [ -n "${VNCUSER}" ] && [ -n "${VNCUID}" ]; then 17 | # if VNCGROUP/VNCGID is unset, set it to VNCUSER/VNCUID 18 | VNCGROUP=${VNCGROUP:-$VNCUSER} 19 | VNCGID=${VNCGID:-$VNCUID} 20 | # If the GROUP already exists, use the existing GID (Thanks to elisionducoeur) 21 | if grep -q "^${VNCGROUP}:x:" /etc/group; then 22 | VNCGID=`grep "^${VNCGROUP}:x:" /etc/group | cut -d: -f3` 23 | fi 24 | # If the GID exists, but the GROUP is incorrect 25 | if grep -q ":x:${VNCGID}:$" /etc/group; then 26 | if ! grep -q "^${VNCGROUP}:x:${VNCGID}:$" /etc/group; then 27 | VNCGROUP=`grep ":x:${VNCGID}:$" /etc/group | cut -d: -f1` 28 | fi 29 | fi 30 | groupadd -g ${VNCGID} ${VNCGROUP} 31 | useradd -u ${VNCUID} -g ${VNCGID} -G sudo -s /bin/bash -m -d /home/${VNCUSER} ${VNCUSER} 32 | 33 | export USER="${VNCUSER}" 34 | export GROUP="${VNCGROUP}" 35 | if [ -n "${ACCTPASS}" ]; then 36 | echo "${VNCUSER}:${ACCTPASS}" | chpasswd 37 | unset ACCTPASS 38 | fi 39 | fi 40 | 41 | if [ -n "${USER}" ]; then 42 | export HOME=`getent passwd ${USER} | cut -d: -f6` 43 | fi 44 | 45 | # $HOME should always be set at this point 46 | # Set umask in all future bash shell instances 47 | if [ -n "${VNCUMASK}" ]; then 48 | echo >> ${HOME}/.bashrc 49 | echo "umask ${VNCUMASK}" >> ${HOME}/.bashrc 50 | fi 51 | 52 | # VNC configuration 53 | mkdir -p ${HOME}/.vnc 54 | install -m 0755 /usr/share/ubuntu-desktop/vnc/xstartup ${HOME}/.vnc/xstartup 55 | 56 | # Openbox configuration 57 | if [ "${WINDOWMANAGER}" == "openbox" ]; then 58 | mkdir -p ${HOME}/.config/{openbox,fbpanel} 59 | install -m 0755 /usr/share/ubuntu-desktop/openbox/autostart ${HOME}/.config/openbox/autostart 60 | install -m 0644 /usr/share/ubuntu-desktop/openbox/menu.xml ${HOME}/.config/openbox/menu.xml 61 | install -m 0644 /usr/share/ubuntu-desktop/openbox/rc.xml ${HOME}/.config/openbox/rc.xml 62 | install -m 0644 /usr/share/ubuntu-desktop/fbpanel/default ${HOME}/.config/fbpanel/default 63 | fi 64 | -------------------------------------------------------------------------------- /app/tiger.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | VNCDIR="${HOME}/.vnc" 4 | VNCAUTH="-SecurityTypes=None --I-KNOW-THIS-IS-INSECURE" 5 | VNCRES=${VNCRES:-1280x800} 6 | VNCDEPTH=${VNCDEPTH:-24} 7 | VNCSTART="${VNCDIR}/xstartup" 8 | VNCPORT=${VNCPORT:-1} 9 | 10 | # If a password was specified on the command line 11 | if [ -n "${VNCPASS}" ]; then 12 | echo "${VNCPASS}" | vncpasswd -f > ${VNCDIR}/passwd 13 | if [ -n "${VNCPASSRO}" ]; then 14 | echo -e "${VNCPASS}\n${VNCPASS}\ny\n${VNCPASSRO}\n${VNCPASSRO}\n" | vncpasswd 15 | fi 16 | chmod 0600 ${VNCDIR}/passwd 17 | VNCAUTH="" 18 | fi 19 | 20 | if [ -n "${USER}" ]; then 21 | chown -R ${USER}:${GROUP} ${HOME} 22 | SUDOUSEROPT="-u ${USER}" 23 | fi 24 | 25 | # -fg will allow the openbox exit button to bring us down 26 | # using sudo here will allow 'docker stop' to bring us down quickly 27 | exec sudo ${SUDOUSEROPT} tigervncserver :${VNCPORT} -fg -localhost no \ 28 | ${VNCAUTH} -geometry ${VNCRES} -depth ${VNCDEPTH} -xstartup ${VNCSTART} 29 | -------------------------------------------------------------------------------- /app/tight.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | VNCDIR="/root/.vnc" 4 | VNCRES="-geometry 1280x800" 5 | VNCDEPTH="-depth 24" 6 | 7 | chmod 0600 ${VNCDIR}/passwd 8 | 9 | USER="root" HOME="/root" vncserver :1 ${VNCRES} ${VNCDEPTH} && \ 10 | tail -F /root/.vnc/*.log 11 | -------------------------------------------------------------------------------- /bin/set_wallpaper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$1" ]; then 4 | echo "$0: [layout]" 5 | exit 1 6 | fi 7 | 8 | case "$1" in 9 | 1) WPURL="https://www.rapidlinux.org/udwp/metallurgy1HDfree.jpg" ;; 10 | 2) WPURL="https://www.rapidlinux.org/udwp/portals1HDfree.jpg" ;; 11 | 3) WPURL="https://www.rapidlinux.org/udwp/cronusrising2k141HDfree.jpg" ;; 12 | 4) WPURL="https://www.rapidlinux.org/udwp/harbinger2k91HDfree.jpg" ;; 13 | 5) WPURL="https://www.rapidlinux.org/udwp/arcana2HDfree.jpg" ;; 14 | 6) WPURL="https://www.rapidlinux.org/udwp/rivenHDfree.jpg" ;; 15 | 7) WPURL="https://www.rapidlinux.org/udwp/circularlogicHDfree.jpg" ;; 16 | 8) WPURL="https://www.rapidlinux.org/udwp/gardener2k121HDfree.jpg" ;; 17 | 9) WPURL="https://www.rapidlinux.org/udwp/overseer2k141_single_1920x1080.jpg" ;; 18 | *) WPURL="0" ;; 19 | esac 20 | 21 | case "$2" in 22 | "fill") HSRCMD="-fill" ;; 23 | "extend") HSRCMD="-extend" ;; 24 | "full") HSRCMD="-full" ;; 25 | "tile") HSRCMD="-tile" ;; 26 | "cover") HSRCMD="-cover" ;; 27 | "center") HSRCMD="-center" ;; 28 | *) HSRCMD="-center" ;; 29 | esac 30 | 31 | if [ -n "${WPURL}" ] && [ "${WPURL}" != "0" ]; then 32 | wget "${WPURL}" -O /tmp/wpimg && hsetroot "${HSRCMD}" /tmp/wpimg && rm /tmp/wpimg 33 | fi 34 | -------------------------------------------------------------------------------- /conf/autostart: -------------------------------------------------------------------------------- 1 | # 2 | # This script will run when an Openbox X Session is started. 3 | # You may place a similar script in $HOME/.config/openbox/autostart 4 | # to run user-specific things. 5 | # 6 | 7 | # if VNCUMASK was set at docker cmdline 8 | # make sure we set umask here also during autostart 9 | if [ -n "${VNCUMASK}" ]; then 10 | umask "${VNCUMASK}" 11 | # touch /tmp/TEST (test case should show umask taking affect) 12 | fi 13 | 14 | # https://github.com/jessfraz/dockerfiles/issues/4 15 | xhost local:root 16 | 17 | fbpanel & 18 | 19 | if [ -n "${WALLPAPER}" ]; then 20 | /usr/bin/set_wallpaper.sh ${WALLPAPER} ${WPLAYOUT} 21 | else 22 | hsetroot -solid "#333333" 23 | fi 24 | -------------------------------------------------------------------------------- /conf/bash.colors: -------------------------------------------------------------------------------- 1 | # Reset 2 | Color_Off='\e[0m' # Text Reset 3 | 4 | # Regular Colors 5 | Black='\e[0;30m' # Black 6 | Red='\e[0;31m' # Red 7 | Green='\e[0;32m' # Green 8 | Yellow='\e[0;33m' # Yellow 9 | Blue='\e[0;34m' # Blue 10 | Purple='\e[0;35m' # Purple 11 | Cyan='\e[0;36m' # Cyan 12 | White='\e[0;37m' # White 13 | 14 | # Bold 15 | BBlack='\e[1;30m' # Black 16 | BRed='\e[1;31m' # Red 17 | BGreen='\e[1;32m' # Green 18 | BYellow='\e[1;33m' # Yellow 19 | BBlue='\e[1;34m' # Blue 20 | BPurple='\e[1;35m' # Purple 21 | BCyan='\e[1;36m' # Cyan 22 | BWhite='\e[1;37m' # White 23 | 24 | # Underline 25 | UBlack='\e[4;30m' # Black 26 | URed='\e[4;31m' # Red 27 | UGreen='\e[4;32m' # Green 28 | UYellow='\e[4;33m' # Yellow 29 | UBlue='\e[4;34m' # Blue 30 | UPurple='\e[4;35m' # Purple 31 | UCyan='\e[4;36m' # Cyan 32 | UWhite='\e[4;37m' # White 33 | 34 | # Background 35 | On_Black='\e[40m' # Black 36 | On_Red='\e[41m' # Red 37 | On_Green='\e[42m' # Green 38 | On_Yellow='\e[43m' # Yellow 39 | On_Blue='\e[44m' # Blue 40 | On_Purple='\e[45m' # Purple 41 | On_Cyan='\e[46m' # Cyan 42 | On_White='\e[47m' # White 43 | 44 | # High Intensity 45 | IBlack='\e[0;90m' # Black 46 | IRed='\e[0;91m' # Red 47 | IGreen='\e[0;92m' # Green 48 | IYellow='\e[0;93m' # Yellow 49 | IBlue='\e[0;94m' # Blue 50 | IPurple='\e[0;95m' # Purple 51 | ICyan='\e[0;96m' # Cyan 52 | IWhite='\e[0;97m' # White 53 | 54 | # Bold High Intensity 55 | BIBlack='\e[1;90m' # Black 56 | BIRed='\e[1;91m' # Red 57 | BIGreen='\e[1;92m' # Green 58 | BIYellow='\e[1;93m' # Yellow 59 | BIBlue='\e[1;94m' # Blue 60 | BIPurple='\e[1;95m' # Purple 61 | BICyan='\e[1;96m' # Cyan 62 | BIWhite='\e[1;97m' # White 63 | 64 | # High Intensity backgrounds 65 | On_IBlack='\e[0;100m' # Black 66 | On_IRed='\e[0;101m' # Red 67 | On_IGreen='\e[0;102m' # Green 68 | On_IYellow='\e[0;103m' # Yellow 69 | On_IBlue='\e[0;104m' # Blue 70 | On_IPurple='\e[0;105m' # Purple 71 | On_ICyan='\e[0;106m' # Cyan 72 | On_IWhite='\e[0;107m' # White 73 | -------------------------------------------------------------------------------- /conf/color_prompt.sh: -------------------------------------------------------------------------------- 1 | source /opt/bash/bash.colors 2 | PS1="\[${BIWhite}\][\[${BIBlue}\]\t \[${BIGreen}\]\u\[${BIWhite}\]@\[${BIRed}\]\h \[${BIWhite}\](\[${BICyan}\]\w\[${BIWhite}\])\[${BIWhite}\]]\$ \[${Color_Off}\]" 3 | -------------------------------------------------------------------------------- /conf/fbpaneldefault: -------------------------------------------------------------------------------- 1 | ######################################## 2 | ## fbpanel configuration file ## 3 | ######################################## 4 | 5 | 6 | # DESCRIPTION 7 | # Configuration file consists of mandatory 'Global' block that MUST come first, 8 | # and optionally one or more 'Plugin' block. 9 | # Lines having '#' as first non-blank char or blank lines are ignored 10 | # Keywords are not case-sensitive 11 | # Values are case-sensitive 12 | # Value of variable is a text from first non-blank char after '=' 13 | # till the last non-blank char. '#' is NOT treated as coment in this context 14 | 15 | # 'Global' block describes global parameters like position, size and 16 | # some NETWM settings 17 | 18 | # Global { 19 | 20 | # # screen edge 21 | # # legal values are: left, right, top, bottom 22 | # edge = bottom 23 | 24 | # # allignment of a panel 25 | # # legal values are: left, right, center 26 | # allign = left 27 | 28 | # # length of margin (in pixels) 29 | # # legal values are numbers 30 | # margin = 0 31 | 32 | # # widthtype specifies how panel width is calculated 33 | # # legal values are: request, pixel, percent 34 | # # request - follow widgets' size requests. can shrink or grow dynamically 35 | # # pixel - occupy fixed number of pixels, then 'width' variable holds a number 36 | # # percent - be 'width' precent of an edge. 37 | # widthType = percent 38 | 39 | # # numerical value of width (not applicable for 'request' widthtype) 40 | # # legal values are numbers 41 | # width = 80 42 | 43 | # # heighttype specifies how panel height is calculated 44 | # # legal values are: pixel 45 | # # pixel - ocupy fixed number of pixels, then 'height' variable holds a number 46 | # heightType = pixel 47 | 48 | # # numerical value of height (if applicable) 49 | # # legal values are numbers 50 | # height = 28 51 | 52 | 53 | # # Identify panel window type as dock 54 | # # legal values are boolean 55 | # setDockType = true 56 | 57 | # # Reserve panel's space so that it will not be covered by maximazied windows 58 | # # legal values are boolean 59 | # # setPartialStrut = true 60 | 61 | 62 | # # Transparency stuff: 63 | # # tintColor is a color to composite on root background given as #RRGGBB or as name 64 | # # alpha is transparency of the tint color. 65 | # # transparent = true 66 | # # tintColor = #FFFFFF 67 | # or 68 | # # tintColor = white 69 | # # alpha = 127 70 | 71 | # # Autohide 72 | # # autoHide = false 73 | # # heightWhenHidden = 2 74 | 75 | # } 76 | 77 | 78 | 79 | # 'Plugin' block specifies a plugin to load. It has same syntax for both 80 | # builtin and external plugins. 81 | 82 | # First parameter is 'type'. It's mandatory and must come first 83 | # Legal values are plugin names. Names of builtin plugins are: 84 | # separator - visual separator 85 | # wincmd - 'show desktop' button 86 | # taskbar - lists all opened windows (tasks) 87 | # launchbar - bar with launch button 88 | # image - just shows an image 89 | # dclock - digital clock 90 | # space - just seize space 91 | # pager - thumbnailed view of the desktop 92 | # tray - tray for XEMBED icons (aka docklets) 93 | 94 | # expand - specifies if plugin can accomodate extra space or not [optional] 95 | # padding - extra padding around plugin [optional] 96 | # config {} - block of plugin's private configuration. 97 | # This part is plugin dependant 98 | 99 | 100 | # 101 | # Plugin { 102 | # type = wincmd 103 | # config { 104 | # image = ~/.fbpanel/images/Desktop2.png 105 | # tooltip = Left click to iconify all windows. Middle click to shade them. 106 | # } 107 | # } 108 | 109 | 110 | Global { 111 | edge = bottom 112 | allign = center 113 | margin = 0 114 | widthtype = percent 115 | width = 86 116 | height = 24 117 | transparent = true 118 | tintcolor = #ffffff 119 | alpha = 28 120 | setdocktype = true 121 | setpartialstrut = true 122 | autohide = false 123 | heightWhenHidden = 2 124 | roundcorners = true 125 | roundcornersradius = 7 126 | layer = none 127 | MaxElemHeight = 32 128 | } 129 | 130 | 131 | 132 | Plugin { 133 | type = space 134 | config { 135 | size = 2 136 | } 137 | } 138 | 139 | 140 | Plugin { 141 | type = menu 142 | config { 143 | IconSize = 22 144 | #icon = start-here 145 | # Use a nice Debian logo for the menu list ;-) 146 | image = /usr/share/pixmaps/debian-logo.png 147 | systemmenu { 148 | } 149 | separator { 150 | } 151 | menu { 152 | name = Computer 153 | icon = computer 154 | 155 | item { 156 | name = Terminal 157 | icon = terminal 158 | action = x-terminal-emulator 159 | } 160 | item { 161 | name = Lock Display 162 | icon = gnome-lockscreen 163 | action = slock 164 | } 165 | separator { 166 | } 167 | item { 168 | name = Reboot 169 | icon = gnome-session-reboot 170 | action = sudo reboot 171 | } 172 | item { 173 | name = Shutdown 174 | icon = gnome-session-halt 175 | action = sudo shutdown -h now 176 | } 177 | item { 178 | name = logout 179 | icon = gnome-session-logout 180 | action = /usr/lib/fbpanel/fbpanel/xlogout 181 | } 182 | } 183 | } 184 | } 185 | 186 | 187 | 188 | Plugin { 189 | type = space 190 | config { 191 | size = 15 192 | } 193 | } 194 | 195 | 196 | Plugin { 197 | type = launchbar 198 | config { 199 | button { 200 | icon = file-manager 201 | tooltip = File Manager 202 | action = x-file-manager 203 | } 204 | button { 205 | icon = terminal 206 | tooltip = Terminal 207 | action = x-terminal-emulator 208 | } 209 | button { 210 | icon = web-browser 211 | tooltip = Web Browser 212 | action = x-www-browser 213 | } 214 | } 215 | } 216 | 217 | Plugin { 218 | type = space 219 | config { 220 | size = 15 221 | } 222 | } 223 | 224 | 225 | Plugin { 226 | type = wincmd 227 | config { 228 | icon = gnome-fs-desktop 229 | tooltip = Left click to iconify all windows. Middle click to shade them. 230 | } 231 | } 232 | 233 | 234 | Plugin { 235 | type = space 236 | config { 237 | size = 15 238 | } 239 | } 240 | 241 | 242 | 243 | Plugin { 244 | type = taskbar 245 | expand = true 246 | config { 247 | ShowIconified = true 248 | ShowMapped = true 249 | ShowAllDesks = false 250 | tooltips = true 251 | IconsOnly = false 252 | MaxTaskWidth = 150 253 | } 254 | } 255 | 256 | 257 | Plugin { 258 | type = space 259 | config { 260 | size = 15 261 | } 262 | } 263 | 264 | Plugin { 265 | type = pager 266 | config { 267 | showwallpaper = true 268 | } 269 | } 270 | 271 | Plugin { 272 | type = space 273 | config { 274 | size = 10 275 | } 276 | } 277 | 278 | Plugin { 279 | type = mem 280 | expand = false 281 | padding = 2 282 | config { 283 | ShowSwap = false 284 | } 285 | } 286 | 287 | Plugin { 288 | type = cpu 289 | config { 290 | Color = green 291 | } 292 | } 293 | 294 | Plugin { 295 | type = net 296 | expand = false 297 | padding = 0 298 | config { 299 | #interface = ppp0 300 | interface = eth0 301 | # set connection limits to make traffic graph more accurate 302 | TxLimit = 20 303 | RxLimit = 190 304 | TxColor = violet 305 | RxColor = blue 306 | } 307 | } 308 | 309 | 310 | Plugin { 311 | type = space 312 | config { 313 | size = 10 314 | } 315 | } 316 | 317 | #plugin { 318 | # type = volume 319 | #} 320 | 321 | #plugin { 322 | # type = battery 323 | #} 324 | 325 | Plugin { 326 | type = tray 327 | } 328 | 329 | Plugin { 330 | type = space 331 | config { 332 | size = 10 333 | } 334 | } 335 | 336 | # Digital Clock 337 | Plugin { 338 | type = dclock 339 | config { 340 | ShowSeconds = false 341 | HoursView = 24 342 | TooltipFmt = %A %x 343 | #Action = xmessage Please define some command & 344 | } 345 | } 346 | 347 | # Text Clock 348 | # ClockFmt: (string) Clock format string. May contain strftime conversion 349 | # specifications and Pango markup information. 350 | # TooltipFmt: (string) Tooltip format string. 351 | # Action: (string) Shell command to execute when clock is clicked. 352 | # ShowCalendar: (boolean) Show a GTK calendar widget when the clock is 353 | # clicked. Only valid if Action is unset. 354 | # ShowTooltip: (boolean) Show tooltip for clock. 355 | #Plugin { 356 | # type = tclock 357 | # config { 358 | # ClockFmt = %I:%M 359 | # # 2 line view, time in bold above and date below 360 | # # ClockFmt = %-l:%M %P %a %B %-e 361 | # TooltipFmt = %A %x 362 | # #Action = xmessage Please define some command & 363 | # ShowCalendar = false 364 | # ShowTooltip = true 365 | # } 366 | #} 367 | 368 | # 'icons' plugin lets you customize window icons. 369 | # these changes apply to entire desktop 370 | Plugin { 371 | type = icons 372 | config { 373 | DefaultIcon = %%datadir%%/fbpanel/images/default.xpm 374 | application { 375 | icon = gnome-terminal 376 | ClassName = XTerm 377 | } 378 | application { 379 | icon = gnome-terminal 380 | ClassName = mlterm 381 | } 382 | application { 383 | icon = gnome-terminal 384 | ClassName = URxvt 385 | } 386 | application { 387 | icon = gnome-emacs 388 | ClassName = Emacs 389 | } 390 | application { 391 | icon = mozilla-firefox 392 | ClassName = Firefox-bin 393 | } 394 | application { 395 | icon = mozilla-firefox 396 | ClassName = Firefox 397 | } 398 | } 399 | } -------------------------------------------------------------------------------- /conf/lang.sh: -------------------------------------------------------------------------------- 1 | export LANG="C" 2 | -------------------------------------------------------------------------------- /conf/menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | xterm 7 | uxterm 8 | 9 | /app/scripts/eterm.sh 10 | /app/scripts/kitty.sh 11 | /app/scripts/sakura.sh 12 | /app/scripts/terminology.sh 13 | /app/scripts/terminator.sh 14 | /app/scripts/tilix.sh 15 | /app/scripts/tilda.sh 16 | /app/scripts/archipelago.AI.sh 17 | /app/scripts/hyper.AI.sh 18 | /app/scripts/powershell.sh 19 | 20 | 21 | 22 | /app/scripts/libreoffice.sh 23 | /app/scripts/libreoffice.AI.sh 24 | 25 | 26 | 27 | /app/scripts/gedit.sh 28 | /app/scripts/gvim.sh 29 | /app/scripts/medit.sh 30 | /app/scripts/bluefish.sh 31 | /app/scripts/geany.sh 32 | /app/scripts/thonny.sh 33 | /app/scripts/sublimetext.sh 34 | /app/scripts/vscode.sh 35 | /app/scripts/netbeans.sh 36 | /app/scripts/cherrytree.sh 37 | /app/scripts/panwriter.AI.sh 38 | /app/scripts/xfw.sh 39 | 40 | 41 | 42 | /app/scripts/chrome.sh 43 | /app/scripts/chromium.sh 44 | /app/scripts/vivaldi.sh 45 | /app/scripts/firefox.sh 46 | /app/scripts/zenbrowser.sh 47 | /app/scripts/opera.sh 48 | /app/scripts/brave_release.sh 49 | /app/scripts/brave_beta.sh 50 | /app/scripts/brave_nightly.sh 51 | /app/scripts/edge_dev.sh 52 | /app/scripts/launch_torbrowser.sh 53 | 54 | /app/scripts/palemoon.sh 55 | /app/scripts/ncsa_mosiac.AI.sh 56 | 57 | 58 | 59 | /app/scripts/biglybt.sh 60 | /app/scripts/deluge.sh 61 | /app/scripts/qbittorrent.sh 62 | /app/scripts/ktorrent.sh 63 | /app/scripts/transmissiongtk.sh 64 | /app/scripts/bitstormlite.sh 65 | /app/scripts/electorrent.AI.sh 66 | 67 | 68 | 69 | /app/scripts/discord.sh 70 | /app/scripts/empathy.sh 71 | /app/scripts/hexchat.sh 72 | /app/scripts/loqui.sh 73 | /app/scripts/konversation.sh 74 | /app/scripts/kopete.sh 75 | /app/scripts/pidgin.sh 76 | /app/scripts/polari.sh 77 | /app/scripts/qchat.sh 78 | /app/scripts/ring.sh 79 | /app/scripts/xchat.sh 80 | 81 | 82 | 83 | /app/scripts/gftp.sh 84 | /app/scripts/zenmap.sh 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | /app/scripts/steam.sh 96 | 97 | 98 | 99 | /app/scripts/amarok.sh 100 | /app/scripts/audacious.sh 101 | /app/scripts/banshee.sh 102 | /app/scripts/clementine.sh 103 | /app/scripts/deadbeef.sh 104 | /app/scripts/gmusicbrowser.sh 105 | /app/scripts/gpodder.sh 106 | /app/scripts/pragha.sh 107 | /app/scripts/quodlibet.sh 108 | /app/scripts/rhythmbox.sh 109 | /app/scripts/smplayer.sh 110 | /app/scripts/strawberry.sh 111 | 112 | 113 | 114 | /app/scripts/gimp.sh 115 | /app/scripts/inkscape.sh 116 | /app/scripts/krita.sh 117 | /app/scripts/blender.sh 118 | 119 | 120 | 121 | /app/scripts/4pane.sh 122 | /app/scripts/caja.sh 123 | /app/scripts/doublecmd.sh 124 | /app/scripts/krusader.sh 125 | /app/scripts/nemo.sh 126 | /app/scripts/pcmanfm.sh 127 | /app/scripts/spacefm.sh 128 | /app/scripts/thunar.sh 129 | /app/scripts/xfe.sh 130 | /app/scripts/worker.sh 131 | 132 | 133 | 134 | /app/scripts/guvcview.sh 135 | /app/scripts/kdenlive.sh 136 | /app/scripts/winff.sh 137 | /app/scripts/flowblade.sh 138 | /app/scripts/lives.sh 139 | /app/scripts/shotcut.sh 140 | /app/scripts/olive.sh 141 | /app/scripts/gopchop.sh 142 | /app/scripts/openshot.sh 143 | /app/scripts/vidcutter.sh 144 | /app/scripts/videocut.sh 145 | /app/scripts/avidemux.AI.sh 146 | 147 | 148 | 149 | /app/scripts/galculator.sh 150 | /app/scripts/kcalc.sh 151 | 152 | 153 | 154 | /app/scripts/cutter.AI.sh 155 | /app/scripts/pktsender.AI.sh 156 | /app/scripts/ngrev.AI.sh 157 | 158 | 159 | 160 | /app/scripts/veracrypt.sh 161 | /app/scripts/dropbox.sh 162 | /app/scripts/slack.sh 163 | /app/scripts/gst.FP.sh 164 | 165 | 166 | 167 | obconf 168 | 169 | 170 | 171 | 172 | 173 | xterm -bg black -fg white 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | yes 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /conf/sudo: -------------------------------------------------------------------------------- 1 | # if VNCUMASK or WALLPAPER were set at docker cmdline 2 | # make sure we pass them along through sudo to tigervncserver 3 | Defaults env_keep += "VNCUMASK WALLPAPER WPLAYOUT DEBIAN_FRONTEND BBTJAVAVERS BBTGUIINSTALL" 4 | 5 | # Allow members of group sudo to execute the following commands 6 | %sudo ALL=(ALL) NOPASSWD: /usr/bin/apt-get 7 | %sudo ALL=(ALL) NOPASSWD: /app/scripts/prepare_*.sh 8 | %sudo ALL=(ALL) NOPASSWD: /app/scripts/install_*.sh 9 | %sudo ALL=(ALL) NOPASSWD: /app/scripts/compile_*.sh 10 | -------------------------------------------------------------------------------- /conf/xstartup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | /usr/bin/vncconfig -nowin & 4 | exec /usr/bin/openbox-session 5 | -------------------------------------------------------------------------------- /images/openbox_error_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fullaxx/ubuntu-desktop/d8dc183a2428e11baaefead75beaac0e057a112a/images/openbox_error_1.jpg -------------------------------------------------------------------------------- /images/openbox_error_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fullaxx/ubuntu-desktop/d8dc183a2428e11baaefead75beaac0e057a112a/images/openbox_error_2.jpg -------------------------------------------------------------------------------- /scripts/4pane.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="4pane" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/amarok.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="amarok" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /scripts/archipelago.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/Archipelago.AppImage ]; then 9 | xterm -T InstallArchipelago -g 100x30 -e /app/scripts/install_archipelago.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/Archipelago.AppImage 13 | -------------------------------------------------------------------------------- /scripts/audacious.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="audacious" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/avidemux.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/avidemux.AppImage ]; then 9 | set -e 10 | 11 | xterm -T InstallAviDemux -g 100x30 -e /app/scripts/install_avidemux.AI.sh 12 | fi 13 | 14 | ${HOME}/AI/avidemux.AppImage 15 | -------------------------------------------------------------------------------- /scripts/banshee.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="banshee" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /scripts/biglybt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ ! -d /opt/biglybt ]; then 6 | xterm -T InstallBiglyBT -g 100x30 -e sudo /app/scripts/install_biglybt.sh 7 | fi 8 | 9 | if [ -x /opt/biglybt/biglybt ]; then 10 | /opt/biglybt/biglybt >>/opt/biglybt/biglybt.log 2>&1 & 11 | else 12 | xmessage "/opt/biglybt/biglybt not found!" & 13 | fi 14 | -------------------------------------------------------------------------------- /scripts/bitstormlite.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="bitstormlite" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/blender.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="blender" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/bluefish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="bluefish" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y build-essential ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/brave_beta.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="brave-browser-beta" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallBraveBeta -g 100x30 -e sudo /app/scripts/install_brave_beta_repo.sh 10 | fi 11 | 12 | ${BINARY} --no-sandbox --disable-gpu 13 | -------------------------------------------------------------------------------- /scripts/brave_nightly.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="brave-browser-nightly" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallBraveNightly -g 100x30 -e sudo /app/scripts/install_brave_nightly_repo.sh 10 | fi 11 | 12 | ${BINARY} --no-sandbox --disable-gpu 13 | -------------------------------------------------------------------------------- /scripts/brave_release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="brave-browser-stable" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallBraveRelease -g 100x30 -e sudo /app/scripts/install_brave_release_repo.sh 10 | fi 11 | 12 | ${BINARY} --no-sandbox --disable-gpu 13 | -------------------------------------------------------------------------------- /scripts/caja.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="caja" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/cherrytree.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="/opt/cherrytree/build/cherrytree" 4 | 5 | if [ ! -x ${BINARY} ]; then 6 | set -e 7 | 8 | xterm -T CompileCherryTree -g 100x30 -e sudo /app/scripts/compile_cherrytree.sh 9 | fi 10 | 11 | ${BINARY} 12 | -------------------------------------------------------------------------------- /scripts/chrome.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="google-chrome-stable" 4 | CMDARGS="--disable-gpu --disable-accelerated-2d-canvas --disable-gpu-rasterization" 5 | # https://www.ghacks.net/2013/10/06/list-useful-google-chrome-command-line-switches/ 6 | # https://peter.sh/experiments/chromium-command-line-switches/ 7 | 8 | BINARYLOC=`which ${BINARY}` 9 | if [ "$?" -ne "0" ]; then 10 | set -e 11 | 12 | xterm -T InstallChrome -g 100x30 -e sudo /app/scripts/install_chrome.sh 13 | fi 14 | 15 | ${BINARY} --no-sandbox ${CMDARGS} 16 | -------------------------------------------------------------------------------- /scripts/chromium.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 11 | CMDARGS="--disable-gpu --disable-accelerated-2d-canvas --disable-gpu-rasterization" 12 | # https://www.ghacks.net/2013/10/06/list-useful-google-chrome-command-line-switches/ 13 | # https://peter.sh/experiments/chromium-command-line-switches/ 14 | 15 | case "${OSV}" in 16 | '18.04') BINARY="chromium-browser" ;; 17 | '20.04') bailmsg "chromium is not supported in Ubuntu ${OSV}!" ;; 18 | '22.04') BINARY="chromium" ;; 19 | *) bailmsg "chromium is not supported in Ubuntu ${OSV}!" 20 | esac 21 | 22 | BINARYLOC=`which ${BINARY}` 23 | if [ "$?" -ne "0" ]; then 24 | set -e 25 | 26 | if [ "${BINARY}" == "chromium" ]; then 27 | xterm -T PrepareDebianChromium -g 100x30 -e sudo /app/scripts/prepare_debian_chromium.sh 28 | fi 29 | 30 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 31 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 32 | 33 | if [ "${BINARY}" == "chromium" ]; then 34 | # Clean up debian repo stuff after install as it causes apt-get update to error 35 | rm -f /etc/apt/sources.list.d/debian-stable.list /etc/apt/preferences.d/debian-chromium 36 | fi 37 | fi 38 | 39 | ${BINARY} --no-sandbox ${CMDARGS} 40 | -------------------------------------------------------------------------------- /scripts/clementine.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="clementine" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | 13 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 14 | if [ "${OSV}" == "18.04" ]; then 15 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y libssl1.0.0 16 | fi 17 | fi 18 | 19 | ${BINARY} 20 | -------------------------------------------------------------------------------- /scripts/compile_cherrytree.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y git build-essential cmake ninja-build libgtkmm-3.0-dev libgtksourceviewmm-3.0-dev libxml++2.6-dev libsqlite3-dev gettext libgspell-1-dev libcurl4-openssl-dev libuchardet-dev libfmt-dev libspdlog-dev gnome-icon-theme libfribidi-dev libvte-2.91-dev texlive-latex-base dvipng 9 | 10 | cd /opt 11 | if [ ! -d cherrytree ]; then 12 | git clone https://github.com/giuspen/cherrytree.git 13 | fi 14 | cd cherrytree 15 | git submodule update --init 16 | ./build.sh 17 | ./build/cherrytree 18 | 19 | # Install documentation: 20 | # apt-get install -y devhelp libgtkmm-3.0-doc libgtksourceviewmm-3.0-doc libglibmm-2.4-doc libpangomm-1.4-doc libxml++2.6-doc libgspell-1-doc 21 | -------------------------------------------------------------------------------- /scripts/cutter.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/Cutter.AppImage ]; then 9 | xterm -T InstallCutter -g 100x30 -e /app/scripts/install_cutter.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/Cutter.AppImage 13 | -------------------------------------------------------------------------------- /scripts/deadbeef.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="/opt/deadbeef/deadbeef" 4 | 5 | if [ ! -x ${BINARY} ]; then 6 | set -e 7 | 8 | xterm -T InstallDeadBeef -g 100x30 -e sudo /app/scripts/install_deadbeef.sh 9 | fi 10 | 11 | ${BINARY} 12 | -------------------------------------------------------------------------------- /scripts/deluge.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="deluge" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/discord.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="discord" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallOpera -g 100x30 -e sudo /app/scripts/install_discord.sh 10 | fi 11 | 12 | dbus-launch ${BINARY} --no-sandbox --disable-gpu 13 | -------------------------------------------------------------------------------- /scripts/doublecmd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="doublecmd" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y doublecmd-gtk 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/dropbox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="dropbox" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallDropbox -g 100x30 -e sudo /app/scripts/install_dropbox.sh 10 | ${BINARY} update 11 | fi 12 | 13 | ${BINARY} version | xmessage -file - 14 | -------------------------------------------------------------------------------- /scripts/eclipse_cpp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="eclipse_cpp" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T InstallEclipseCPP -g 100x30 -e sudo ECLPKG="CPP" /app/scripts/install_eclipse.sh 11 | fi 12 | 13 | ${BINARY} 14 | -------------------------------------------------------------------------------- /scripts/eclipse_java.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="eclipse_java" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T InstallEclipseJAVA -g 100x30 -e sudo ECLPKG="JAVA" /app/scripts/install_eclipse.sh 11 | fi 12 | 13 | ${BINARY} 14 | -------------------------------------------------------------------------------- /scripts/eclipse_php.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="eclipse_php" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T InstallEclipsePHP -g 100x30 -e sudo ECLPKG="PHP" /app/scripts/install_eclipse.sh 11 | fi 12 | 13 | ${BINARY} 14 | -------------------------------------------------------------------------------- /scripts/edge_dev.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="microsoft-edge-dev" 4 | CMDARGS="--disable-gpu --disable-accelerated-2d-canvas --disable-gpu-rasterization" 5 | # https://www.ghacks.net/2013/10/06/list-useful-google-chrome-command-line-switches/ 6 | # https://peter.sh/experiments/chromium-command-line-switches/ 7 | 8 | BINARYLOC=`which ${BINARY}` 9 | if [ "$?" -ne "0" ]; then 10 | set -e 11 | 12 | xterm -T PrepareEdgeDevRepo -g 100x30 -e sudo /app/scripts/prepare_edge_dev_repo.sh 13 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 14 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 15 | fi 16 | 17 | ${BINARY} --no-sandbox ${CMDARGS} 18 | -------------------------------------------------------------------------------- /scripts/electorrent.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/electorrent.AppImage ]; then 9 | xterm -T InstallHyper -g 100x30 -e /app/scripts/install_electorrent.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/electorrent.AppImage 13 | -------------------------------------------------------------------------------- /scripts/empathy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="empathy" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/eterm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="Eterm" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y eterm 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/firefox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="firefox" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 10 | case "${OSV}" in 11 | '22.04') xterm -T PrepareFirefoxPPA -g 100x30 -e sudo /app/scripts/prepare_firefox_ppa.sh ;; 12 | *) SOURCE="ubuntu" ;; 13 | esac 14 | 15 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 16 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 17 | fi 18 | 19 | ${BINARY} 20 | -------------------------------------------------------------------------------- /scripts/flowblade.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="flowblade" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/galculator.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="galculator" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/geany.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="geany" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y build-essential ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gedit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="gedit" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gftp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="gftp" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gimp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="gimp" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gmusicbrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="gmusicbrowser" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y alsa-base flac mpg321 vorbis-tools ${BINARY} 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /scripts/gopchop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="gopchop" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gpodder.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="gpodder" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gst.FP.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | privwarn() 4 | { 5 | rm -f /tmp/privwarn.txt 6 | echo "It would appear that you are not running this container in privileged mode" >> /tmp/privwarn.txt 7 | echo "FlatPaks require privileged mode (run this container with --privileged)" >> /tmp/privwarn.txt 8 | xmessage -file /tmp/privwarn.txt & 9 | } 10 | 11 | fperr() 12 | { 13 | rm -f /tmp/fperr.txt 14 | echo "FlatPak failed to run GST" >> /tmp/fperr.txt 15 | echo "The most likely cause of this is that this container was not run in privileged mode" >> /tmp/fperr.txt 16 | echo "FlatPaks require privileged mode (run this container with --privileged)" >> /tmp/fperr.txt 17 | xmessage -file /tmp/fperr.txt & 18 | } 19 | 20 | # HOW DO I CHECK FOR PRIVILEGED MODE?? 21 | # https://stackoverflow.com/questions/32144575/how-to-know-if-a-docker-container-is-running-in-privileged-mode 22 | DEVITEMS=`find /dev | wc -l` 23 | if [ ${DEVITEMS} -lt 32 ]; then 24 | privwarn 25 | fi 26 | 27 | BINARYLOC=`which flatpak` 28 | if [ "$?" -ne "0" ]; then 29 | INSTALLGST="1" 30 | fi 31 | 32 | if ! flatpak info com.leinardi.gst >/dev/null 2>&1 ; then 33 | INSTALLGST="1" 34 | fi 35 | 36 | if [ "${INSTALLGST}" == "1" ]; then 37 | xterm -T InstallGST -g 100x30 -e /app/scripts/install_gst.FP.sh 38 | fi 39 | 40 | flatpak run com.leinardi.gst || fperr 41 | -------------------------------------------------------------------------------- /scripts/guvcview.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="guvcview" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/gvim.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="gvim" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y vim-gtk3 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/hexchat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="hexchat" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/hyper.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/hyper.AppImage ]; then 9 | xterm -T InstallHyper -g 100x30 -e /app/scripts/install_hyper.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/hyper.AppImage 13 | -------------------------------------------------------------------------------- /scripts/inkscape.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="inkscape" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/install_archipelago.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/npezza93/archipelago/releases/download/v3.2.1/Archipelago-3.2.1-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse libnss3 libgtk-3-0 libasound2 9 | 10 | mkdir -p ${HOME}/AI 11 | wget ${URL} -O ${HOME}/AI/Archipelago.AppImage 12 | chmod 0755 ${HOME}/AI/Archipelago.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_avidemux.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="http://www.avidemux.org/nightly/appImage4/avidemuxUniversal_amd64_230208_177.app" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse libglu1 qt5dxcb-plugin 9 | 10 | mkdir -p ${HOME}/AI 11 | wget ${URL} -O ${HOME}/AI/avidemux.AppImage 12 | chmod 0755 ${HOME}/AI/avidemux.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_biglybt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | BBTJAVAVERS=${BBTJAVAVERS:-11} 6 | DEBIAN_FRONTEND="noninteractive" 7 | BBTINSTSCR="/tmp/BiglyBT_Installer.sh" 8 | 9 | if [ "${BBTGUIINSTALL}" == "1" ]; then 10 | OPENJDKPKG="openjdk-${BBTJAVAVERS}-jre" 11 | unset BBTQUIET 12 | else 13 | OPENJDKPKG="openjdk-${BBTJAVAVERS}-jre-headless" 14 | BBTQUIET="-q" 15 | fi 16 | 17 | # Install java 18 | apt-get update 19 | apt-get install -y --no-install-recommends ${OPENJDKPKG} webkit2gtk-driver 20 | if grep -q '^assistive_technologies' /etc/java-${BBTJAVAVERS}-openjdk/accessibility.properties; then 21 | sed -e 's/^assistive_technologies/#assistive_technologies/' -i /etc/java-${BBTJAVAVERS}-openjdk/accessibility.properties 22 | fi 23 | 24 | # Download BiglyBT (if not provided locally) 25 | if [ -x /app/BiglyBT_Installer.sh ]; then 26 | echo "Installing /app/BiglyBT_Installer.sh ..." 27 | cp -v /app/BiglyBT_Installer.sh ${BBTINSTSCR} 28 | else 29 | wget https://files.biglybt.com/installer/BiglyBT_Installer.sh -O ${BBTINSTSCR} 30 | chmod +x ${BBTINSTSCR} 31 | fi 32 | 33 | # Install BiglyBT 34 | chown ${SUDO_UID}:${SUDO_GID} /opt 35 | sudo -u ${SUDO_USER} app_java_home="/usr/lib/jvm/java-${BBTJAVAVERS}-openjdk-amd64/" ${BBTINSTSCR} ${BBTQUIET} -dir /opt/biglybt 36 | rm ${BBTINSTSCR} 37 | chown -R ${SUDO_UID}:${SUDO_GID} /opt/biglybt 38 | -------------------------------------------------------------------------------- /scripts/install_brave_beta_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 9 | 10 | wget -q https://brave-browser-apt-beta.s3.brave.com/brave-core-nightly.asc -O- | apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-prerelease.gpg add - 11 | # add-apt-repository "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ stable main" 12 | echo "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ stable main" > /etc/apt/sources.list.d/brave-browser-beta.list 13 | 14 | apt-get update 15 | apt-get install -y brave-browser-beta 16 | -------------------------------------------------------------------------------- /scripts/install_brave_nightly_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 9 | 10 | wget -q https://brave-browser-apt-nightly.s3.brave.com/brave-core-nightly.asc -O- | apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-prerelease.gpg add - 11 | # add-apt-repository "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ stable main" 12 | echo "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ stable main" > /etc/apt/sources.list.d/brave-browser-nightly.list 13 | 14 | apt-get update 15 | apt-get install -y brave-browser-nightly 16 | -------------------------------------------------------------------------------- /scripts/install_brave_release_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 9 | 10 | wget -q https://brave-browser-apt-release.s3.brave.com/brave-core.asc -O- | apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - 11 | # add-apt-repository "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" 12 | echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" > /etc/apt/sources.list.d/brave-browser-release.list 13 | 14 | apt-get update 15 | apt-get install -y brave-browser 16 | -------------------------------------------------------------------------------- /scripts/install_chrome.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | URL="https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" 7 | DEB="/tmp/chrome.deb" 8 | 9 | wget ${URL} -O ${DEB} 10 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 11 | rm ${DEB} 12 | 13 | # for some reason the google chrome deb installs an apt sources list file that causes problems 14 | # hopefully we can get rid of this hack in the future 15 | /app/scripts/remove_chrome_key.sh 16 | -------------------------------------------------------------------------------- /scripts/install_cutter.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/radareorg/cutter/releases/download/v1.8.0/Cutter-v1.8.0-x64.Linux.AppImage" 6 | #URL="https://github.com/radareorg/cutter/releases/download/v1.7.4/Cutter-v1.7.4-x64.Linux.AppImage" 7 | #URL="https://github.com/radareorg/cutter/releases/download/v1.6/Cutter-v1.6-x86_64.AppImage" 8 | #URL="https://github.com/radareorg/cutter/releases/download/v1.5/Cutter-v1.5-x86_64.AppImage" 9 | #URL="https://github.com/radareorg/cutter/releases/download/v1.4/Cutter-v1.4-x86_64.AppImage" 10 | 11 | sudo apt-get update 12 | sudo apt-get install -y fuse 13 | # v1.4 - v1.6: apt-get install -y fuse libnss3 libasound2 14 | 15 | mkdir -p ${HOME}/AI 16 | wget ${URL} -O ${HOME}/AI/Cutter.AppImage 17 | chmod 0755 ${HOME}/AI/Cutter.AppImage 18 | -------------------------------------------------------------------------------- /scripts/install_deadbeef.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | DBVERS="1.8.8" 7 | URL="https://downloads.sourceforge.net/project/deadbeef/travis/linux/${DBVERS}/deadbeef-static_${DBVERS}-1_x86_64.tar.bz2" 8 | TARBALL="/tmp/deadbeef.tar.bz2" 9 | 10 | wget ${URL} -O ${TARBALL} 11 | tar xf ${TARBALL} -C /opt/ 12 | mv /opt/deadbeef-${DBVERS} /opt/deadbeef 13 | rm ${TARBALL} 14 | -------------------------------------------------------------------------------- /scripts/install_discord.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | URL="https://discord.com/api/download?platform=linux&format=deb" 7 | DEB="/tmp/discord.deb" 8 | 9 | wget ${URL} -O ${DEB} 10 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y; apt-get install -y libgbm1) 11 | rm ${DEB} 12 | -------------------------------------------------------------------------------- /scripts/install_dropbox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://www.dropbox.com/en/install-linux 3 | 4 | set -e 5 | 6 | export DEBIAN_FRONTEND="noninteractive" 7 | URL="https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2020.03.04_amd64.deb" 8 | DEB="/tmp/dropbox.deb" 9 | 10 | apt-get update 11 | 12 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 13 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FC918B335044912E 14 | 15 | wget ${URL} -O ${DEB} 16 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 17 | rm ${DEB} 18 | -------------------------------------------------------------------------------- /scripts/install_eclipse.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://askubuntu.com/questions/26632/how-to-install-eclipse 3 | 4 | set -e 5 | 6 | bailmsg() 7 | { 8 | xmessage "$1" & 9 | exit 1 10 | } 11 | 12 | # The different Eclipse Packages 13 | # https://www.eclipse.org/downloads/packages/ 14 | ECLCPPPKG="https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2022-09/R/eclipse-cpp-2022-09-R-linux-gtk-x86_64.tar.gz" 15 | ECLJAVAPKG="https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2022-09/R/eclipse-java-2022-09-R-linux-gtk-x86_64.tar.gz" 16 | ECLPHPPKG="https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2022-09/R/eclipse-php-2022-09-R-linux-gtk-x86_64.tar.gz" 17 | 18 | ECLJAVAVERS=${ECLJAVAVERS:-11} 19 | ECLPKG=${ECLPKG:-CPP} 20 | export DEBIAN_FRONTEND="noninteractive" 21 | 22 | case "${ECLPKG}" in 23 | 'CPP') ECLIPSEURL="${ECLCPPPKG}"+'&r=1'; EDIR="/opt/eclipse_cpp" ;; 24 | 'JAVA') ECLIPSEURL="${ECLJAVAPKG}"+'&r=1'; EDIR="/opt/eclipse_java" ;; 25 | 'PHP') ECLIPSEURL="${ECLPHPPKG}"+'&r=1'; EDIR="/opt/eclipse_php" ;; 26 | *) bailmsg "Eclipse ${ECLPKG} not supported!" 27 | esac 28 | 29 | # Install java 30 | apt-get update 31 | apt-get install -y openjdk-${ECLJAVAVERS}-jre-headless webkit2gtk-driver 32 | if grep -q '^assistive_technologies' /etc/java-${ECLJAVAVERS}-openjdk/accessibility.properties; then 33 | sed -e 's/^assistive_technologies/#assistive_technologies/' -i /etc/java-${ECLJAVAVERS}-openjdk/accessibility.properties 34 | fi 35 | 36 | # Install Eclipse 37 | cd /tmp/ 38 | wget ${ECLIPSEURL} -O - | tar xz 39 | mv eclipse ${EDIR} 40 | chown -R ${SUDO_UID}:${SUDO_GID} ${EDIR} 41 | cp ${EDIR}/icon.xpm /usr/share/pixmaps/eclipse.xpm 42 | 43 | if [ "${ECLPKG}" == "CPP" ]; then 44 | ln -s ${EDIR}/eclipse /usr/local/bin/eclipse_cpp 45 | echo ' 46 | [Desktop Entry] 47 | Name=Eclipse CPP 48 | Type=Application 49 | Exec=env UBUNTU_MENUPROXY=0 eclipse_cpp 50 | Terminal=false 51 | Icon=eclipse 52 | Comment=Integrated Development Environment 53 | NoDisplay=false 54 | Categories=Development;IDE; 55 | Name[en]=Eclipse CPP 56 | ' | tee /usr/share/applications/eclipse_cpp.desktop 57 | fi 58 | 59 | if [ "${ECLPKG}" == "JAVA" ]; then 60 | ln -s ${EDIR}/eclipse /usr/local/bin/eclipse_java 61 | echo ' 62 | [Desktop Entry] 63 | Name=Eclipse JAVA 64 | Type=Application 65 | Exec=env UBUNTU_MENUPROXY=0 eclipse_java 66 | Terminal=false 67 | Icon=eclipse 68 | Comment=Integrated Development Environment 69 | NoDisplay=false 70 | Categories=Development;IDE; 71 | Name[en]=Eclipse JAVA 72 | ' | tee /usr/share/applications/eclipse_java.desktop 73 | fi 74 | 75 | if [ "${ECLPKG}" == "PHP" ]; then 76 | ln -s ${EDIR}/eclipse /usr/local/bin/eclipse_php 77 | echo ' 78 | [Desktop Entry] 79 | Name=Eclipse PHP 80 | Type=Application 81 | Exec=env UBUNTU_MENUPROXY=0 eclipse_php 82 | Terminal=false 83 | Icon=eclipse 84 | Comment=Integrated Development Environment 85 | NoDisplay=false 86 | Categories=Development;IDE; 87 | Name[en]=Eclipse PHP 88 | ' | tee /usr/share/applications/eclipse_php.desktop 89 | fi 90 | -------------------------------------------------------------------------------- /scripts/install_electorrent.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/tympanix/Electorrent/releases/download/v2.6.0/electorrent-2.6.0-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse libnss3 libgtk-3-0 libasound2 9 | 10 | mkdir -p ${HOME}/AI 11 | wget ${URL} -O ${HOME}/AI/electorrent.AppImage 12 | chmod 0755 ${HOME}/AI/electorrent.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_gst.FP.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | sudo apt-get update 6 | sudo apt-get install -y flatpak 7 | 8 | flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo 9 | flatpak --user -y install flathub com.leinardi.gst 10 | -------------------------------------------------------------------------------- /scripts/install_hyper.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/zeit/hyper/releases/download/2.1.2/hyper-2.1.2-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse libnss3 libasound2 libdbus-glib-1-2 9 | 10 | # Optional ?? 11 | # apt-get install -y --no-install-recommends libxss1 libgconf-2-4 12 | 13 | mkdir -p ${HOME}/AI 14 | wget ${URL} -O ${HOME}/AI/hyper.AppImage 15 | chmod 0755 ${HOME}/AI/hyper.AppImage 16 | -------------------------------------------------------------------------------- /scripts/install_libreoffice.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://libreoffice.soluzioniopen.com/stable/fresh/LibreOffice-fresh.basic-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse 9 | 10 | # Optional ?? 11 | # apt-get install -y --no-install-recommends openjdk-11-jre-headless 12 | 13 | mkdir -p ${HOME}/AI 14 | wget ${URL} -O ${HOME}/AI/LibreOffice-fresh.AppImage 15 | chmod 0755 ${HOME}/AI/LibreOffice-fresh.AppImage 16 | -------------------------------------------------------------------------------- /scripts/install_ncsa_mosiac.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/AppImage/NCSA-Mosaic-AppImage/releases/download/1/NCSA_Mosaic-git.6f488cb-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse 9 | 10 | mkdir -p ${HOME}/AI 11 | wget ${URL} -O ${HOME}/AI/NCSA_Mosaic.AppImage 12 | chmod 0755 ${HOME}/AI/NCSA_Mosaic.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_netbeans.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | NBVERS="16" 6 | NBFILE="netbeans-${NBVERS}-bin.zip" 7 | NBJAVAVERS=${NBJAVAVERS:-11} 8 | DEBIAN_FRONTEND="noninteractive" 9 | URL="https://dlcdn.apache.org/netbeans/netbeans/${NBVERS}/${NBFILE}" 10 | 11 | # Install java,unzip 12 | apt-get update 13 | apt-get install -y --no-install-recommends openjdk-${NBJAVAVERS}-jre unzip 14 | if grep -q '^assistive_technologies' /etc/java-${NBJAVAVERS}-openjdk/accessibility.properties; then 15 | sed -e 's/^assistive_technologies/#assistive_technologies/' -i /etc/java-${NBJAVAVERS}-openjdk/accessibility.properties 16 | fi 17 | 18 | # Download NetBeans 19 | cd /tmp/ 20 | wget ${URL} 21 | wget ${URL}.sha512 22 | cat ${NBFILE}.sha512 | sha512sum -c 23 | rm ${NBFILE}.sha512 24 | 25 | # Install NetBeans 26 | cd /opt/ 27 | unzip /tmp/${NBFILE} 28 | rm /tmp/${NBFILE} 29 | -------------------------------------------------------------------------------- /scripts/install_ngrev.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/mgechev/ngrev/releases/download/0.0.26/ngrev-0.0.26-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse libnss3 libgtk-3-0 libasound2 9 | 10 | mkdir -p ${HOME}/AI ${HOME}/.config/ngrev/themes 11 | wget ${URL} -O ${HOME}/AI/ngrev.AppImage 12 | chmod 0755 ${HOME}/AI/ngrev.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_nomachine.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | URL="https://download.nomachine.com/download/8.15/Linux/nomachine_8.15.3_1_amd64.deb" 7 | DEB="/tmp/nomachine.deb" 8 | 9 | sudo apt-get update 10 | sudo apt-get install -y cups pavucontrol pamix 11 | 12 | wget ${URL} -O ${DEB} 13 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 14 | rm ${DEB} 15 | -------------------------------------------------------------------------------- /scripts/install_openshot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common 9 | 10 | apt-add-repository -y ppa:openshot.developers/libopenshot-daily 11 | 12 | apt-get update 13 | apt-get install -y openshot-qt 14 | -------------------------------------------------------------------------------- /scripts/install_opera.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | OPERA_VERS=`curl 'https://download3.operacdn.com/pub/opera/desktop/' | grep "\-2024 " | awk -F\" '{print $2}' | cut -d/ -f1 | tail -n1` 7 | URL="https://download3.operacdn.com/pub/opera/desktop/${OPERA_VERS}/linux/opera-stable_${OPERA_VERS}_amd64.deb" 8 | DEB="/tmp/opera.deb" 9 | 10 | wget ${URL} -O ${DEB} 11 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y; apt-get install -y upower) 12 | rm ${DEB} 13 | -------------------------------------------------------------------------------- /scripts/install_palemoon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | #PMVERS=`curl -s http://linux.palemoon.org/download/mainline/ | grep -A 5 'Download x64 - GTK3 tarball' | grep 'Version:' | awk '{print $2}' | cut -d\< -f1` 7 | PMFILE=`curl -s http://linux.palemoon.org/download/mainline/ | grep 'Download x64 - GTK3 tarball' | cut -d\" -f2` 8 | SHA=`curl -s http://linux.palemoon.org/download/mainline/ | grep -A 5 'Download x64 - GTK3 tarball' | grep 'SHA-256:' | awk '{print $2}' | cut -d\< -f1` 9 | URL="http://linux.palemoon.org/${PMFILE}" 10 | TARBALL="/tmp/palemoon.tar.xz" 11 | 12 | sudo apt-get update 13 | sudo apt-get install -y libasound2 libdbus-glib-1-2 libgtk-3-0 libnss3 yaru-theme-icon xz-utils 14 | 15 | wget ${URL} -O ${TARBALL} 16 | echo "${SHA} ${TARBALL}" | sha256sum -c 17 | tar xf ${TARBALL} -C /opt/ 18 | ln -s /opt/palemoon/palemoon /usr/bin/palemoon 19 | chown -R ${SUDO_UID}:${SUDO_GID} /opt/palemoon 20 | rm ${TARBALL} 21 | 22 | #If you want Pale Moon to use the dictionaries from hunspell, run the following: 23 | #rm -r /opt/palemoon/dictionaries 24 | #ln -s /usr/share/hunspell /opt/palemoon/dictionaries 25 | -------------------------------------------------------------------------------- /scripts/install_panwriter.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/mb21/panwriter/releases/download/v0.6.2/panwriter-0.6.2-x86_64.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse libnss3 libgtk-3-0 libasound2 9 | 10 | mkdir -p ${HOME}/AI 11 | wget ${URL} -O ${HOME}/AI/panwriter.AppImage 12 | chmod 0755 ${HOME}/AI/panwriter.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_pktsender.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | URL="https://github.com/dannagle/PacketSender/releases/download/v6.1.25/PacketSender_Linux_x64_v6.1.25.AppImage" 6 | 7 | sudo apt-get update 8 | sudo apt-get install -y fuse 9 | 10 | mkdir -p ${HOME}/AI 11 | wget ${URL} -O ${HOME}/AI/pktsender.AppImage 12 | chmod 0755 ${HOME}/AI/pktsender.AppImage 13 | -------------------------------------------------------------------------------- /scripts/install_powershell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | bailmsg() 6 | { 7 | xmessage "$1" & 8 | exit 1 9 | } 10 | 11 | export DEBIAN_FRONTEND="noninteractive" 12 | URL="https://github.com/PowerShell/PowerShell/releases/download/v7.2.7/powershell-lts_7.2.7-1.deb_amd64.deb" 13 | SHA="DC85567C9A52E16EBED727F41389DE0B8E3275437E4B7A3905BC894F359A24F9" 14 | DEB="/tmp/powershell.deb" 15 | 16 | wget ${URL} -O ${DEB} 17 | echo "${SHA} ${DEB}" | sha256sum -c 18 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 19 | rm ${DEB} 20 | -------------------------------------------------------------------------------- /scripts/install_slack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://slack.com/downloads/linux 3 | 4 | set -e 5 | 6 | export DEBIAN_FRONTEND="noninteractive" 7 | URL="https://downloads.slack-edge.com/releases/linux/4.20.0/prod/x64/slack-desktop-4.20.0-amd64.deb" 8 | DEB="/tmp/slack.deb" 9 | 10 | apt-get update 11 | apt-get install -y wget libasound2 12 | 13 | wget ${URL} -O ${DEB} 14 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 15 | rm ${DEB} 16 | -------------------------------------------------------------------------------- /scripts/install_steam.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | URL="https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb" 7 | DEB="/tmp/steam.deb" 8 | 9 | apt-get update 10 | apt-get install -y file libnss3 python3-apt xdg-desktop-portal xdg-desktop-portal-gtk xz-utils zenity 11 | 12 | wget ${URL} -O ${DEB} 13 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 14 | rm ${DEB} 15 | 16 | # Allow to run as root 17 | sed -e 's/"$(id -u)" == "0"/`false`/' -i /usr/bin/steam 18 | xmessage "Please be patient. Steam might take a few seconds to initialize." & 19 | -------------------------------------------------------------------------------- /scripts/install_strawberry_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common 9 | 10 | add-apt-repository -y ppa:jonaski/strawberry 11 | 12 | apt-get update 13 | apt-get install -y strawberry 14 | -------------------------------------------------------------------------------- /scripts/install_sublimetext_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 9 | 10 | wget -q https://download.sublimetext.com/sublimehq-pub.gpg -O- | apt-key --keyring /etc/apt/trusted.gpg.d/sublimetext.gpg add - 11 | echo "deb https://download.sublimetext.com/ apt/stable/" > /etc/apt/sources.list.d/sublimetext.list 12 | 13 | apt-get update 14 | apt-get install -y sublime-text 15 | -------------------------------------------------------------------------------- /scripts/install_torbrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://linuxconfig.org/how-to-install-tor-browser-in-ubuntu-18-04-bionic-beaver-linux 3 | # https://linuxize.com/post/how-to-install-tor-browser-on-ubuntu-18-04/ 4 | # https://support.torproject.org/tbb/how-to-verify-signature/ 5 | 6 | set -e 7 | 8 | export DEBIAN_FRONTEND="noninteractive" 9 | 10 | apt-get update 11 | apt-get install -y file gnupg2 libasound2 libgtk-3-0 libdbus-glib-1-2 wget xz-utils 12 | 13 | TORPKG=`curl -s https://www.torproject.org/download/ 2>/dev/null | grep 'Download for Linux' | tr '"' '\n' | grep linux-x86_64 || true` 14 | TORSIG=`curl -s https://www.torproject.org/download/ 2>/dev/null | grep Signature | tr '"' '\n' | grep tar.xz.asc || true` 15 | 16 | if [ -z "${TORPKG}" ]; then 17 | echo "Hyperlinks have changed! TORPKG is not valid!" 18 | exit 1 19 | fi 20 | 21 | if [ -z "${TORSIG}" ]; then 22 | echo "Hyperlinks have changed! TORSIG is not valid!" 23 | exit 2 24 | fi 25 | 26 | # Download package 27 | wget https://www.torproject.org/${TORPKG} -O /tmp/tor.tar.xz 28 | wget https://www.torproject.org/${TORSIG} -O /tmp/tor.tar.xz.asc 29 | gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org 30 | gpg --verify /tmp/tor.tar.xz.asc /tmp/tor.tar.xz 31 | 32 | # Install package 33 | tar xf /tmp/tor.tar.xz -C /opt 34 | if [ ! -d /opt/tor-browser ]; then 35 | echo "tor-browser not found under /tmp/tor.tar.xz!" 36 | exit 3 37 | fi 38 | 39 | # Tweak package 40 | mv /opt/tor-browser /opt/tor 41 | sed -e 's/"`id -u`" -eq 0/`false`/g' -i /opt/tor/Browser/start-tor-browser 42 | sed -e 's/$SYSARCHITECTURE -ne $TORARCHITECTURE/"$SYSARCHITECTURE" != "$TORARCHITECTURE"/g' -i /opt/tor/Browser/start-tor-browser 43 | 44 | # Clean-up 45 | rm /tmp/tor.tar.xz /tmp/tor.tar.xz.asc 46 | -------------------------------------------------------------------------------- /scripts/install_torbrowser_manual.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://linuxconfig.org/how-to-install-tor-browser-in-ubuntu-18-04-bionic-beaver-linux 3 | # https://linuxize.com/post/how-to-install-tor-browser-on-ubuntu-18-04/ 4 | 5 | set -e 6 | 7 | export DEBIAN_FRONTEND="noninteractive" 8 | TORVERS="10.5.10" 9 | 10 | apt-get update 11 | apt-get install -y file libgtk-3-0 libdbus-glib-1-2 wget xz-utils 12 | 13 | # Download package 14 | SHA="8279652de22c9842755196cd861687ba73a3d46a1d5c94dc2c1253e104a46c57" 15 | wget https://www.torproject.org/dist/torbrowser/${TORVERS}/tor-browser-linux64-${TORVERS}_en-US.tar.xz -O /tmp/tor.tar.xz 16 | 17 | # Manual verification since key verification is borked 18 | echo ${SHA} /tmp/tor.tar.xz | sha256sum -c 19 | 20 | # Install package 21 | tar xf /tmp/tor.tar.xz -C /opt 22 | rm /tmp/tor.tar.xz 23 | 24 | # Tweak package 25 | mv /opt/tor-browser_* /opt/tor 26 | sed -e 's/"`id -u`" -eq 0/`false`/g' -i /opt/tor/Browser/start-tor-browser 27 | sed -e 's/$SYSARCHITECTURE -ne $TORARCHITECTURE/"$SYSARCHITECTURE" != "$TORARCHITECTURE"/g' -i /opt/tor/Browser/start-tor-browser 28 | -------------------------------------------------------------------------------- /scripts/install_veracrypt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | bailmsg() 6 | { 7 | xmessage "$1" & 8 | exit 1 9 | } 10 | 11 | export DEBIAN_FRONTEND="noninteractive" 12 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 13 | DEB="/tmp/veracrypt.deb" 14 | 15 | case "${OSV}" in 16 | '18.04') URL="https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-Ubuntu-18.04-amd64.deb" ;; 17 | '20.04') URL="https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-Ubuntu-20.04-amd64.deb" ;; 18 | '21.04') URL="https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-Ubuntu-21.04-amd64.deb" ;; 19 | '21.10') URL="https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-Ubuntu-21.10-amd64.deb" ;; 20 | '22.04') URL="https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-Ubuntu-22.04-amd64.deb" ;; 21 | *) bailmsg "Ubuntu ${OSV} not supported!" 22 | esac 23 | 24 | wget ${URL} -O ${DEB} 25 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 26 | rm ${DEB} 27 | -------------------------------------------------------------------------------- /scripts/install_vidcutter_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common 9 | 10 | apt-add-repository -y ppa:ozmartian/apps 11 | 12 | apt-get update 13 | apt-get install -y vidcutter 14 | -------------------------------------------------------------------------------- /scripts/install_videocut_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common 9 | 10 | apt-add-repository -y ppa:jentiger-moratai/mediatools 11 | 12 | apt-get update 13 | apt-get install -y videocut 14 | -------------------------------------------------------------------------------- /scripts/install_vivaldi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ###################################################### 4 | xmessage "This script is not used at the moment!" & # 5 | exit 1 # 6 | ###################################################### 7 | 8 | set -e 9 | 10 | export DEBIAN_FRONTEND="noninteractive" 11 | DEB="/tmp/vivaldi.deb" 12 | KEY="/tmp/vivaldi.pub" 13 | 14 | apt-get update 15 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget chromium-codecs-ffmpeg-extra dpkg-sig 16 | 17 | VPKG=`curl -s https://vivaldi.com/download/ 2>/dev/null | tr '"' '\n' | grep vivaldi-stable | grep amd64.deb | head -n1` 18 | VKEY="https://repo.vivaldi.com/stable/linux_signing_key.pub" 19 | 20 | # gpg --keyserver keyserver.ubuntu.com --recv-keys B44B85E3E1A6386BFC79D4119658E8044A3AA3D6 21 | 22 | wget ${VPKG} -O ${DEB} 23 | wget ${VKEY} -O ${KEY} 24 | gpg --import ${KEY} 25 | dpkg-sig --verify ${DEB} 26 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y) 27 | rm ${DEB} 28 | -------------------------------------------------------------------------------- /scripts/install_vivaldi_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 9 | 10 | # apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B44B85E3E1A6386BFC79D4119658E8044A3AA3D6 11 | wget -q https://repo.vivaldi.com/stable/linux_signing_key.pub -O- | apt-key --keyring /etc/apt/trusted.gpg.d/vivaldi.gpg add - 12 | 13 | # add-apt-repository "deb http://repo.vivaldi.com/stable/deb/ stable main" 14 | echo "deb http://repo.vivaldi.com/stable/deb/ stable main" > /etc/apt/sources.list.d/vivaldi.list 15 | 16 | apt-get update 17 | apt-get install -y vivaldi-stable 18 | 19 | # I wish there was a better way ... 20 | source /app/scripts/wait_for_vivaldi_media_codecs.sh 21 | -------------------------------------------------------------------------------- /scripts/install_vscode.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | URL="https://update.code.visualstudio.com/1.80.2/linux-deb-x64/stable" 7 | DEB="/tmp/vscode.deb" 8 | 9 | wget ${URL} -O ${DEB} 10 | dpkg -i ${DEB} || (set -e; apt-get update; apt-get install -f -y; apt-get install -y libasound2 libgbm1) 11 | rm ${DEB} 12 | -------------------------------------------------------------------------------- /scripts/install_vscode_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget libasound2 libgbm1 9 | 10 | wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | apt-key --keyring /etc/apt/trusted.gpg.d/microsoft.gpg add - 11 | # add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" 12 | echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list 13 | 14 | apt-get update 15 | apt-get install -y code 16 | -------------------------------------------------------------------------------- /scripts/install_zenbrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | ZBVERS="1.0.1-a.4" 7 | URL="https://github.com/zen-browser/desktop/releases/download/${ZBVERS}/zen.linux-specific.tar.bz2" 8 | 9 | apt-get update 10 | apt-get install -y bzip2 libasound2 11 | apt-get clean 12 | 13 | cd /opt 14 | wget ${URL} 15 | tar xf zen.linux-specific.tar.bz2 16 | rm zen.linux-specific.tar.bz2 17 | 18 | cd /usr/bin 19 | ln -s /opt/zen/zen zenbrowser 20 | 21 | -------------------------------------------------------------------------------- /scripts/kcalc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="kcalc" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/kdenlive.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="kdenlive" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/kitty.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="kitty" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/konversation.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="konversation" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/kopete.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="kopete" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/krita.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="krita" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | '22.04') SOURCE="ubuntu" ;; 20 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 21 | esac 22 | 23 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 24 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 25 | fi 26 | 27 | ${BINARY} 28 | -------------------------------------------------------------------------------- /scripts/krusader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="krusader" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y breeze-icon-theme kate kdiff3 kompare krename unzip xz-utils zip ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/ktorrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="ktorrent" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/launch_torbrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ ! -x /opt/tor/start-tor-browser.desktop ]; then 6 | xterm -T InstallTorBrowser -g 100x30 -e sudo /app/scripts/install_torbrowser.sh 7 | fi 8 | 9 | /opt/tor/Browser/start-tor-browser --detach 10 | -------------------------------------------------------------------------------- /scripts/libreoffice.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/LibreOffice-fresh.AppImage ]; then 9 | xterm -T InstallHyper -g 100x30 -e /app/scripts/install_libreoffice.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/LibreOffice-fresh.AppImage 13 | -------------------------------------------------------------------------------- /scripts/libreoffice.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="libreoffice" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/lives.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="lives" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y imagemagick ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/loqui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="loqui" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/medit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="medit" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /scripts/ncsa_mosiac.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/NCSA_Mosaic.AppImage ]; then 9 | xterm -T InstallNCSAMosaic -g 100x30 -e /app/scripts/install_ncsa_mosiac.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/NCSA_Mosaic.AppImage 13 | -------------------------------------------------------------------------------- /scripts/nemo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="nemo" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/netbeans.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="netbeans" 11 | 12 | # Configure PATH for either netbeans location 13 | if ! echo ${PATH} | grep -q ':/opt/netbeans/bin/'; then 14 | export PATH="${PATH}:/opt/netbeans/bin/" 15 | fi 16 | 17 | BINARYLOC=`which ${BINARY}` 18 | if [ "$?" -ne "0" ]; then 19 | set -e 20 | 21 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 22 | case "${OSV}" in 23 | '18.04') SOURCE="ubuntu" ;; 24 | '20.04') SOURCE="ubuntu" ;; 25 | '22.04') SOURCE="/app/scripts/install_netbeans.sh" ;; 26 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 27 | esac 28 | 29 | if [ "${SOURCE}" == "ubuntu" ]; then 30 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 31 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 32 | else 33 | xterm -T AptGetUpdate -g 100x30 -e sudo ${SOURCE} 34 | fi 35 | fi 36 | 37 | ${BINARY} 38 | -------------------------------------------------------------------------------- /scripts/ngrev.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/ngrev.AppImage ]; then 9 | xterm -T InstallHyper -g 100x30 -e /app/scripts/install_ngrev.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/ngrev.AppImage 13 | -------------------------------------------------------------------------------- /scripts/olive.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="olive-editor" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '20.04') SOURCE="ubuntu" ;; 19 | '22.04') SOURCE="ubuntu" ;; 20 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 21 | esac 22 | 23 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 24 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 25 | fi 26 | 27 | ${BINARY} 28 | -------------------------------------------------------------------------------- /scripts/openshot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="openshot-qt" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallOpenShot -g 100x30 -e sudo /app/scripts/install_openshot.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/opera.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="opera" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallOpera -g 100x30 -e sudo /app/scripts/install_opera.sh 10 | fi 11 | 12 | dbus-launch ${BINARY} --no-sandbox --disable-gpu 13 | -------------------------------------------------------------------------------- /scripts/palemoon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="palemoon" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallVivaldi -g 100x30 -e sudo /app/scripts/install_palemoon.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/panwriter.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/panwriter.AppImage ]; then 9 | xterm -T InstallHyper -g 100x30 -e /app/scripts/install_panwriter.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/panwriter.AppImage 13 | -------------------------------------------------------------------------------- /scripts/pcmanfm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="pcmanfm" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/pidgin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="pidgin" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/pktsender.AI.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ ! -c /dev/fuse ]; then 4 | xmessage "AppImages require FUSE (run this image with --device /dev/fuse --cap-add SYS_ADMIN)" & 5 | exit 1 6 | fi 7 | 8 | if [ ! -x ${HOME}/AI/pktsender.AppImage ]; then 9 | xterm -T InstallPktSender -g 100x30 -e /app/scripts/install_pktsender.AI.sh 10 | fi 11 | 12 | ${HOME}/AI/pktsender.AppImage 13 | -------------------------------------------------------------------------------- /scripts/polari.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="polari" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/powershell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="pwsh" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallPowerShell -g 100x30 -e sudo /app/scripts/install_powershell.sh 10 | fi 11 | 12 | xterm -T InstallPowerShell -e ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/pragha.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="pragha" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/prepare_debian_chromium.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | export DEBIAN_FRONTEND="noninteractive" 5 | # https://askubuntu.com/questions/1179273/how-to-remove-snap-completely-without-losing-the-chromium-browser 6 | 7 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 8 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y debian-archive-keyring 9 | 10 | cat >/etc/apt/sources.list.d/debian-stable.list << EOFF 11 | deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://ftp.us.debian.org/debian/ stable main 12 | deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://ftp.us.debian.org/debian/ stable main 13 | 14 | deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://security.debian.org/ stable/updates main 15 | deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://security.debian.org/ stable/updates main 16 | 17 | # stable-updates, previously known as 'volatile' 18 | deb [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://ftp.us.debian.org/debian/ stable-updates main 19 | deb-src [signed-by=/usr/share/keyrings/debian-archive-keyring.gpg] http://ftp.us.debian.org/debian/ stable-updates main 20 | EOFF 21 | 22 | cat >/etc/apt/preferences.d/debian-chromium << EOFF 23 | Explanation: Prevent installing from debian repo. 24 | Package: * 25 | Pin: origin "*.debian.org" 26 | Pin-Priority: 1 27 | 28 | Explanation: Allow installing chromium from debian repo. 29 | Package: chromium* 30 | Pin: origin "*.debian.org" 31 | Pin-Priority: 100 32 | EOFF 33 | -------------------------------------------------------------------------------- /scripts/prepare_edge_dev_repo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | 7 | apt-get update 8 | apt-get install -y gnupg2 software-properties-common apt-transport-https wget 9 | 10 | wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | apt-key --keyring /etc/apt/trusted.gpg.d/microsoft.gpg add - 11 | # add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" 12 | echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list 13 | -------------------------------------------------------------------------------- /scripts/prepare_firefox_ppa.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-deb-apt-ubuntu-22-04 3 | # https://www.addictivetips.com/ubuntu-linux-tips/how-to-disable-firefox-snap-package-in-ubuntu-22-04-lts/ 4 | 5 | set -e 6 | 7 | export DEBIAN_FRONTEND="noninteractive" 8 | 9 | apt-get update 10 | apt-get install -y gnupg2 software-properties-common 11 | add-apt-repository -y ppa:mozillateam/ppa 12 | 13 | echo ' 14 | Package: * 15 | Pin: release o=LP-PPA-mozillateam 16 | Pin-Priority: 1001 17 | ' | tee /etc/apt/preferences.d/mozilla-firefox 18 | -------------------------------------------------------------------------------- /scripts/qbittorrent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="qbittorrent" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/qchat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="qchat" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /scripts/quodlibet.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="quodlibet" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/remove_chrome_key.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # for some reason this file causes problems with apt 4 | 5 | cd /etc/apt/sources.list.d 6 | while [ true ]; do 7 | if [ -f google-chrome.list ]; then 8 | rm google-chrome.list 9 | exit 0 10 | else 11 | sleep 0.1 12 | fi 13 | done 14 | -------------------------------------------------------------------------------- /scripts/rhythmbox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="rhythmbox" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/ring.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="gnome-ring" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ring 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /scripts/sakura.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="sakura" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/seamonkey.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # https://sourceforge.net/p/ubuntuzilla/wiki/Main_Page/ 3 | 4 | export DEBIAN_FRONTEND="noninteractive" 5 | BINARY="seamonkey" 6 | 7 | BINARYLOC=`which ${BINARY}` 8 | if [ "$?" -ne "0" ]; then 9 | set -e 10 | 11 | xterm -T AptGetUpdate -g 100x30 -e apt-get update 12 | xterm -T AptGetInstall -g 100x30 -e apt-get install -y gnupg2 13 | 14 | # https://askubuntu.com/questions/1081382/how-can-i-install-seamonkey-on-ubuntu-18-04-lts 15 | # echo "deb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" > /etc/apt/sources.list.d/mozilla.list 16 | # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2667CA5C 17 | 18 | # http://linuxg.net/how-to-install-seamonkey-2-49-4-on-ubuntu-18-10-ubuntu-18-04-and-derivative-systems/ 19 | echo >> /etc/apt/sources.list 20 | echo "deb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" >> /etc/apt/sources.list 21 | apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C1289A29 22 | 23 | xterm -T AptGetUpdate -g 100x30 -e apt-get update 24 | xterm -T AptGetInstall -g 100x30 -e apt-get install seamonkey-mozilla-build 25 | fi 26 | 27 | ${BINARY} 28 | -------------------------------------------------------------------------------- /scripts/shotcut.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="shotcut" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '20.04') SOURCE="ubuntu" ;; 19 | '22.04') SOURCE="ubuntu" ;; 20 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 21 | esac 22 | 23 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 24 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 25 | fi 26 | 27 | ${BINARY} 28 | -------------------------------------------------------------------------------- /scripts/slack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="slack" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallSlack -g 100x30 -e sudo /app/scripts/install_slack.sh 10 | fi 11 | 12 | dbus-launch ${BINARY} --no-sandbox 13 | -------------------------------------------------------------------------------- /scripts/smplayer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="smplayer" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/spacefm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="spacefm" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') PKGS="lsof sshfs spacefm-gtk3" ;; 19 | '20.04') PKGS="lsof sshfs spacefm-gtk3 yaru-theme-icon" ;; 20 | '22.04') PKGS="lsof sshfs spacefm-gtk3 yaru-theme-icon" ;; 21 | *) bailmsg "Ubuntu ${OSV} not supported!" 22 | esac 23 | 24 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 25 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${PKGS} 26 | fi 27 | 28 | ${BINARY} 29 | -------------------------------------------------------------------------------- /scripts/steam.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="steam" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallSteam -g 100x30 -e sudo /app/scripts/install_steam.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/strawberry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="strawberry" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallStrawberry -g 100x30 -e sudo /app/scripts/install_strawberry_repo.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/sublimetext.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="subl" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallSublimeText -g 100x30 -e sudo /app/scripts/install_sublimetext_repo.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/terminator.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="terminator" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/terminology.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="terminology" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/thonny.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="thonny" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/thunar.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="thunar" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/tilda.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="tilda" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/tilix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="tilix" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} -e "bash -l" 15 | -------------------------------------------------------------------------------- /scripts/transmissiongtk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="transmission-gtk" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/veracrypt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="veracrypt" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallVeraCrypt -g 100x30 -e sudo /app/scripts/install_veracrypt.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/vidcutter.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | BINARY="vidcutter" 10 | 11 | BINARYLOC=`which ${BINARY}` 12 | if [ "$?" -ne "0" ]; then 13 | set -e 14 | 15 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 16 | case "${OSV}" in 17 | '22.04') SOURCE="/app/scripts/install_vidcutter_repo.sh" ;; 18 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 19 | esac 20 | 21 | xterm -T InstallVidCutter -g 100x30 -e sudo ${SOURCE} 22 | fi 23 | 24 | ${BINARY} 25 | -------------------------------------------------------------------------------- /scripts/videocut.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | BINARY="VideoCut" 10 | 11 | BINARYLOC=`which ${BINARY}` 12 | if [ "$?" -ne "0" ]; then 13 | set -e 14 | 15 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 16 | case "${OSV}" in 17 | '20.04') SOURCE="/app/scripts/install_videocut_repo.sh" ;; 18 | '22.04') SOURCE="/app/scripts/install_videocut_repo.sh" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T InstallVideoCut -g 100x30 -e sudo ${SOURCE} 23 | fi 24 | 25 | ${BINARY} 26 | -------------------------------------------------------------------------------- /scripts/vivaldi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="vivaldi-stable" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallVivaldi -g 100x30 -e sudo /app/scripts/install_vivaldi_repo.sh 10 | fi 11 | 12 | ${BINARY} --no-sandbox 13 | -------------------------------------------------------------------------------- /scripts/vscode.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="code" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallVSCode -g 100x30 -e sudo /app/scripts/install_vscode_repo.sh 10 | fi 11 | 12 | ${BINARY} --no-sandbox --user-data-dir "${HOME}/vscode" 13 | -------------------------------------------------------------------------------- /scripts/wait_for_vivaldi_media_codecs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Something is happening in the background ... 4 | COUNT="0" 5 | echo "Waiting for /var/opt/vivaldi to populate ..." 6 | while [ ! -d /var/opt/vivaldi/media-codecs-* ] && [ ${COUNT} -lt 70 ]; do 7 | echo -n "."; sleep 0.1; COUNT=$(( COUNT + 1 )) 8 | done 9 | 10 | # WTF, really? 11 | echo 12 | echo "Waiting just a little longer ..." 13 | echo -n "." 14 | sleep 1 15 | echo -n "." 16 | sleep 1 17 | echo -n "." 18 | sleep 1 19 | rm /opt/vivaldi/lib/libffmpeg.so 20 | -------------------------------------------------------------------------------- /scripts/winff.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="winff" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/worker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="worker" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y file unzip worker zip 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/xchat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="xchat" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/xfe.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="xfe" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/xfw.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DEBIAN_FRONTEND="noninteractive" 4 | BINARY="xfwrite" 5 | 6 | BINARYLOC=`which ${BINARY}` 7 | if [ "$?" -ne "0" ]; then 8 | set -e 9 | 10 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 11 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y xfe 12 | fi 13 | 14 | ${BINARY} 15 | -------------------------------------------------------------------------------- /scripts/zenbrowser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BINARY="zenbrowser" 4 | 5 | BINARYLOC=`which ${BINARY}` 6 | if [ "$?" -ne "0" ]; then 7 | set -e 8 | 9 | xterm -T InstallZenBrowser -g 100x30 -e sudo /app/scripts/install_zenbrowser.sh 10 | fi 11 | 12 | ${BINARY} 13 | -------------------------------------------------------------------------------- /scripts/zenmap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bailmsg() 4 | { 5 | xmessage "$1" & 6 | exit 1 7 | } 8 | 9 | export DEBIAN_FRONTEND="noninteractive" 10 | BINARY="zenmap" 11 | 12 | BINARYLOC=`which ${BINARY}` 13 | if [ "$?" -ne "0" ]; then 14 | set -e 15 | 16 | OSV=`grep VERSION_ID /etc/os-release | cut -d\" -f2` 17 | case "${OSV}" in 18 | '18.04') SOURCE="ubuntu" ;; 19 | *) bailmsg "${BINARY} is not supported in Ubuntu ${OSV}" ;; 20 | esac 21 | 22 | xterm -T AptGetUpdate -g 100x30 -e sudo apt-get update 23 | xterm -T AptGetInstall -g 100x30 -e sudo apt-get install -y ${BINARY} 24 | fi 25 | 26 | ${BINARY} 27 | -------------------------------------------------------------------------------- /tests/deadbeef.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | DBVERS="1.8.8" 7 | URL="https://downloads.sourceforge.net/project/deadbeef/travis/linux/${DBVERS}/deadbeef-static_${DBVERS}-1_x86_64.tar.bz2" 8 | TARBALL="/tmp/deadbeef.tar.bz2" 9 | 10 | wget ${URL} -O ${TARBALL} 11 | -------------------------------------------------------------------------------- /tests/tor.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | TORPKG=`curl https://www.torproject.org/download/ 2>/dev/null | grep 'Download for Linux' | tr '"' '\n' | grep x86_64` 6 | TORSIG=`curl https://www.torproject.org/download/ 2>/dev/null | grep Signature | tr '"' '\n' | grep tar.xz.asc` 7 | 8 | wget https://www.torproject.org/${TORPKG} -O /tmp/tor.tar.xz 9 | wget https://www.torproject.org/${TORSIG} -O /tmp/tor.tar.xz.asc 10 | gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org 11 | gpg --verify /tmp/tor.tar.xz.asc /tmp/tor.tar.xz 12 | -------------------------------------------------------------------------------- /tests/vivaldi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | export DEBIAN_FRONTEND="noninteractive" 6 | DEB="/tmp/vivaldi.deb" 7 | KEY="/tmp/vivaldi.pub" 8 | 9 | VPKG=`curl https://vivaldi.com/download/ 2>/dev/null | tr '"' '\n' | grep vivaldi-stable | grep amd64.deb | head -n1` 10 | VKEY="https://repo.vivaldi.com/stable/linux_signing_key.pub" 11 | 12 | wget ${VPKG} -O ${DEB} 13 | wget ${VKEY} -O ${KEY} 14 | gpg --import ${KEY} 15 | dpkg-sig --verify ${DEB} 16 | 17 | --------------------------------------------------------------------------------