-
-
Save WillSams/0834c801cac5c5d6e40ae1a43adf9360 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
echo "===================================================================" | |
echo | |
echo " Fresh Debian-Based Extras Install Script " | |
echo " You may be prompted for root credentials to complete the install. " | |
echo | |
echo "===================================================================" | |
SCRIPTVERSION="2024.02.20-Debian" | |
SCRIPTNAME="new_box_extras.sh" | |
SCRIPTFULLNAME="$0" | |
echo 'set -o noclobber | |
PS1="\[\e]0;[email protected] \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\][email protected]\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\]" | |
' >> ~/.bashrc | |
source ~/.bashrc | |
. /etc/os-release; OS=$ID | |
. /etc/os-release; RELEASE=$UBUNTU_CODENAME | |
. /etc/os-release; VERSION=$VERSION_CODENAME | |
sudo bash -c "ufw enable" | |
sudo bash -c "echo 'ulimit -u unlimited' >> /root/.bashrc" | |
sudo bash -c "apt-get update && apt upgrade -y" | |
if [ "$OS" == 'ubuntu' ] || [ "$OS" == 'linuxmint' ]; then | |
sudo bash -c "apt install ubuntu-restricted-extras -y" | |
fi | |
if [ "$OS" == 'LinuxMint']; then | |
sudo bash -c "apt install mint-backgrounds-* marble mint-meta-codecs -y" | |
fi | |
sudo bash -c "apt install cpufrequtils -y" | |
sudo bash -c "cpufreq-set -r -g performance" | |
sudo bash -c "apt install libavcodec-extra libdvd-pkg gstreamer1.0-plugins-ugly mencoder icedax -y" | |
sudo bash -c "apt install vlc ffmpeg easytag id3tool lame libmad0 mpg321 gstreamer1.0-libav -y" | |
sudo bash -c "apt install shellcheck gnome-disk-utility handbrake inxi ninja-build -y" | |
sudo bash -c "apt install unace p7zip-rar sharutils rar arj lunzip lzip universal-ctags -y" | |
sudo bash -c "apt install cheese xsane gimp-plugin-registry gimp-data-extras vim ufw -y" | |
sudo bash -c "apt install playonlinux steam jstest-gtk uget aria2 -y" | |
sudo bash -c "apt install libsdl2-dev libboost-system-dev libboost-filesystem-dev libboost-date-time-dev -y" | |
sudo bash -c "apt install libboost-locale-dev libfreeimage-dev libfreetype6-dev libeigen3-dev -y" | |
sudo bash -c "apt install libcurl4-openssl-dev libasound2-dev libgl1-mesa-dev build-essential cmake gdb -y" | |
sudo bash -c "apt install zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev -y" | |
sudo bash -c "apt install git dialog unzip xmlstarlet android-tools-adb automake autoconf -y" | |
sudo bash -c "apt install libmagickwand-dev direnv gparted xclip inotify-tools subversion -y" | |
sudo bash -c "apt install libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libpq-dev -y" | |
sudo bash -c "apt install libcurl4-openssl-dev software-properties-common libffi-dev yarn -y" | |
sudo bash -c "apt install k3b wodim texinfo libflac-dev xorriso cppcheck gnome-terminal alien cups ipcalc -y" | |
# Xclip | |
sudo bash -c "apt install xclip -y" | |
# usage example: xclip -selection clipboard < ~/.ssh/id_codecommit_rsa.pub | |
echo ' | |
eval "$(direnv hook bash)"' >> ~/.bashrc | |
source ~/.bashrc | |
sudo bash -c "apt install fuse" | |
sudo bash -c "modprobe fuse && groupadd fuse" | |
sudo bash -c "usermod -a -G fuse $(whoami)" | |
# Config Git globally | |
git config --global user.email "[email protected]" | |
git config --global user.name "Will Sams" | |
git config --global core.editor "vim" | |
git config --global init.defaultBranch "main" | |
# Install Go | |
wget https://go.dev/dl/go1.20.linux-amd64.tar.gz -O go-lang.tar.gz | |
sudo bash -c "rm -rf /usr/local/go && tar -C /usr/local/bin -xzf go-lang.tar.gz" | |
rm go-lang.tar.gz | |
echo 'export PATH=$PATH:/usr/local/bin/go/bin' >> ~/.bashrc | |
source ~/.bashrc | |
go version | |
# Let's setup Vim for editing JavaScript & Python | |
## Upgrade Vim to version 9 since the GitHub CoPilot plugin needs it | |
## extra: a good logo to use for your termial background: https://vectorified.com/images/vim-icon-4.png | |
sudo bash -c "add-apt-repository ppa:jonathonf/vim -y" | |
sudo bash -c "apt update && apt upgrade vim -y" | |
## Install Vim Plug | |
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ | |
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | |
## Use an already crafted .vimrc | |
wget -O ~/.vimrc \ | |
https://gist.githubusercontent.com/WillSams/cff72dc2fba2f5e18ab3a14ae69846ca/raw/d90f9617ac5de444655d030d57b8a214eee32481/vimrc | |
vim +PluginInstall +qall | |
sudo bash -c "apt install openjdk-17-jdk -y" | |
echo ' | |
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64/bin/java" | |
export PATH=$JAVA_HOME"/bin":$PATH' >> ~/.bashrc | |
source ~/.bashrc | |
# to mirror/control your Android phone, go todeveloper options and set USB debugging to enabled | |
#sudo rm /etc/apt/preferences.d/nosnap.pref | |
#sudo apt update | |
#sudo bash -c "snap install scrcpy -y" | |
#echo 'export PATH="/snap/bin:$PATH"' >> ~/.bashrc | |
#source ~/.bashrc | |
# Etcher disk flash utility | |
curl -1sLf \ | |
'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' \ | |
| sudo -E bash | |
sudo bash -c "apt update && apt install -y balena-etcher-electron" | |
################################################################################################ | |
# Python | |
sudo bash -c "apt update && apt upgrade -y" | |
sudo bash -c "apt install python3-pip -y" | |
sudo bash -c "ln -s $(which python3) /usr/local/bin/python" | |
echo ' | |
alias python="python3"' >> ~/.bashrc | |
source ~/.bashrc | |
python -m pip install --upgrade pip | |
python -m pip install setuptools | |
python -m pip install pgzero | |
python -m pip install cookiecutter | |
python -m pip install lizard | |
python -m pip install flake8 | |
python -m pip install black | |
#AWS CLI | |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" | |
unzip awscliv2.zip | |
sudo bash -c "./aws/install" | |
# Don't forget to run `aws configure` later to create ~/.aws/credentials. | |
# To do a quick sanity check,`aws sts --profile <yourprofile> get-caller-identity` | |
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh | |
# Switch/Wii dev | |
wget https://apt.devkitpro.org/install-devkitpro-pacman | |
chmod +x ./install-devkitpro-pacman | |
sudo bash -c "./install-devkitpro-pacman" | |
sudo dkp-pacman -Syu | |
sudo dkp-pacman -S wii-dev | |
sudo dkp-pacman -S switch-dev | |
sudo bash -c "dpkg --add-architecture i386" | |
wget -nc https://dl.winehq.org/wine-builds/winehq.key | |
sudo bash -c "apt-key add winehq.key" | |
sudo bash -c "add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ $RELEASE main'" | |
sudo bash -c "apt-get update && apt upgrade -y" | |
sudo apt install --install-recommends winehq-stable -y | |
python -m pip install protontricks | |
git clone https://github.com/pyenv/pyenv.git ~/.pyenv | |
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc | |
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc | |
echo 'eval "$(pyenv init -)"' >> ~/.bashrc | |
source ~/.bashrc | |
git clone https://github.com/pyenv/pyenv-virtualenv.git $HOME/.pyenv/plugins/pyenv-virtualenv | |
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc | |
source ~/.bashrc | |
# note, for this to source correctly, add your api key to ~/wakatime.cfg | |
sudo bash -c "python -m pip install wakatime" | |
git clone https://github.com/gjsheep/bash-wakatime.git | |
chmod +x bash-wakatime/*.sh | |
./bash-wakatime/install_cli.sh | |
echo 'source $HOME/bash-wakatime/bash-wakatime.sh' >> ~/.bashrc | |
source ~/.bashrc | |
echo '*** IMPORTANT *** : DO NOT forget to add your Wakatime API key to ~/.wakatime.cfg' | |
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash | |
echo 'export NVM_DIR="$HOME/.nvm" | |
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm | |
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> ~/.bashrc | |
source ~/.bashrc | |
nvm install lts/* | |
npm -g commitizen @aws-amplify/cli uuid-cli | |
git clone https://github.com/asdf-vm/asdf.git ~/.asdf | |
cd ~/.asdf | |
git checkout "$(git describe --abbrev=0 --tags)" | |
echo 'source $HOME/.asdf/asdf.sh' >> ~/.bashrc | |
echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc | |
source ~/.bashrc | |
asdf plugin add erlang | |
asdf install erlang 23.2.3 | |
asdf plugin add elixir | |
asdf install elixir 1.11.3 | |
asdf plugin add nodejs # I prefer to use nvm, but this can be handy for others | |
cd .. | |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - | |
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo bash -c "tee /etc/apt/sources.list.d/yarn.list" | |
sudo apt update && sudo apt upgrade -y | |
# starting to low-key hate RVM... | |
# If running the following commands outside of the context of this script, | |
# then you should scortch earth by executing `rvm implode --force` first. | |
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - | |
curl -sSL https://get.rvm.io | bash -s stable | |
echo " | |
source ~/.rvm/scripts/rvm" >> ~/.bashrc | |
source ~/.bashrc | |
rvm pkg install openssl | |
# rvm install 2.7.2 --with-openssl-dir=$HOME/.rvm/usr # note, this will not fix issues with pg and mysql2 gems for me | |
rvm install 3.1.2 | |
rvm use 3.1.2 --default | |
gem install bundler rails pg mysql2 | |
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg | |
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ | |
sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' | |
sudo bash -c "apt install apt-transport-https" | |
sudo bash -c "apt update -y" | |
sudo bash -c "apt install code" | |
echo -e "export DOTNET_CLI_TELEMETRY_OPTOUT=1" >> ~/.bashrc | |
source ~/.bashrc | |
# Re-adding Dotnet since I want to continue working w/ it. And I want to mess around with the Xbox... | |
# note: Xbox maybe a no-go. It looks like we need version 5 of dotnet, but Mint 22 doesn't have openssl version 1 (it has version 3) | |
# which is needed by that version of .NET. Same fuckery we have with older versions of Ruby. Niiiiiiice. | |
wget https://dot.net/v1/dotnet-install.sh | |
chmod +x dotnet-install.sh | |
./dotnet-install.sh --version latest | |
echo " | |
export DOTNET_ROOT=$HOME/.dotnet | |
export PATH=$DOTNET_ROOT:$PATH" >> ~/.bashrc | |
source ~/.bashrc | |
dotnet new --install Uno.ProjectTemplates.Dotnet | |
dotnet tool install -g uno.check | |
$DOTNET_ROOT/tools/uno-check --non-interactive | |
# sanity check | |
dotnet new unoapp -o MyUnoApp --mobile=false -skia-wpf=false | |
cd MyUnoApp && dotnet run --project MyApp.Skia.Gtk | |
# Install Unity | |
wget -qO - https://hub.unity3d.com/linux/keys/public | | sudo apt-key add - | |
sudo sh -c 'echo "deb https://hub.unity3d.com/linux/repos/deb stable main" > /etc/apt/sources.list.d/unityhub.list' | |
sudo bash -c "apt update && apt install unityhub -y" | |
curl -sS https://download.spotify.com/debian/pubkey_5E3C45D7B312C643.gpg | sudo apt-key add - | |
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list | |
sudo bash -c "apt update && apt install spotify-client" -y | |
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add | |
sudo bash -c "echo 'deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$RELEASE pgadmin4 main' > /etc/apt/sources.list.d/pgadmin4.list && apt update" | |
sudo bash -c "apt update && apt install pgadmin4 -y" | |
sudo bash -c "apt install mysql-server libmysqlclient-dev redis" | |
# Note: if you want to set a password for the root mysql user, execute | |
# `sudo mysql -u root` then at the mysql> command prompt, do the following: | |
# | |
# DROP USER 'root'@'localhost'; | |
# CREATE USER 'root'@'%' IDENTIFIED BY 'your_new_password'; | |
# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; | |
# FLUSH PRIVILEGES; | |
# exit; | |
# DBeaver | |
wget https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb -O /tmp/dbeaver-ce.deb | |
sudo dpkg -i /tmp/dbeaver-ce.deb | |
rm -rf /tmp/dbeaver-ce.deb | |
# AWS NoSQL Workbench | |
AWSNOSQLDIR=/opt/nosql-workbench | |
sudo bash -c "mkdir -p $AWSNOSQLDIR" | |
sudo bash -c "chown -R $USER:$USER $AWSNOSQLDIR" | |
wget https://s3.amazonaws.com/nosql-workbench/workbenchDDBLocal-linux.run -O $AWSNOSQLDIR/installer.run | |
chmod +x $AWSNOSQLDIR/installer.run | |
# Note: Later you can just install (to anywhere you choose but I'll be installing wherever I set $AWSNOSQLDIR) | |
# by executing /./opt/nosql-workbench/installer.run | |
# Once installed, (as an example) /./$AWSNOSQLDIR/DynamoDB/*.AppImage will start the program. | |
sudo bash -c "apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ACCAF35C" | |
sudo bash -c "echo 'deb http://apt.insync.io/mint $VERSION non-free contrib' > /etc/apt/sources.list.d/insync.list && apt update" | |
sudo bash -c "apt update && apt install insync -y" | |
# Docker | |
sudo bash -c "add-apt-repository 'deb [arch=amd64] https://download.docker.com/linux/ubuntu $RELEASE stable'" | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - | |
sudo bash -c "apt update && apt install docker.io docker-ce docker-ce-cli containerd.io -y" | |
sudo bash -c "apt upgrade docker-compose" | |
# sudo bash -c "groupadd docker" | |
# sudo bash -c "usermod -aG docker $USER" | |
# newgrp docker | |
# Docker Compose...wtf is going on with this lately? | |
sudo bash -c 'curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose' | |
sudo bash -c 'chmod +x /usr/local/bin/docker-compose' | |
# NOTE: Docker login and Docker compose may not work out-of-the box anymore. If so, execute 'gpg --generate-key', | |
# then pass the public generated to 'pass init <public key>'. Should work flawlessly afterwards. | |
# Terraform | |
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - | |
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $RELEASE main" | |
sudo bash -c "apt update && apt install terraform -y" | |
# Terraformer | |
PROVIDER=aws | |
curl -LO https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64 | |
chmod +x terraformer-${PROVIDER}-linux-amd64 | |
sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer | |
mkdir -p ~/.terraform.d/plugins/linux_amd64 #we'll need this =) | |
# kubectl tool used to run commands against Kubernetes cluster | |
sudo bash -c "curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg" | |
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo bash -c "tee /etc/apt/sources.list.d/kubernetes.list" | |
sudo bash -c "apt update && apt install kubectl -y" | |
# Install Helm to use to manage your K8 deployments | |
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null | |
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list | |
sudo bash -c "apt update && apt install helm" | |
helm repo add stable https://kubernetes-charts.storage.googleapis.com/ | |
helm repo add bitnami https://charts.bitnami.com/bitnami | |
helm repo add janpreet https://janpreet.github.io/helm-charts/ | |
helm repo update | |
# Use Flux to keep k8 clusters in sync when config changes or when there is new code to deploy. | |
# curl -s https://fluxcd.io/install.sh | sudo bash | |
# Argo CD (my preference instead of Flux) | |
helm repo add argo https://argoproj.github.io/argo-helm | |
helm repo update | |
helm install argo-cd argo/argo-cd | |
# Act - Run GitHub Workflow | |
curl -s https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash | |
sudo bash -c "mv bin/act /usr/local/bin" | |
# Minikube local Kubernetes for leraing/development | |
# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 | |
# sudo install minikube-linux-amd64 /usr/local/bin/minikube | |
# echo ' | |
# alias kubectl="minikube kubectl --"' >> ~/.bashrc | |
# source ~/.bashrc | |
# Kind - my preference instead of Minikube | |
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.17.0/kind-linux-amd64 | |
chmod +x ./kind | |
sudo bash -c "mv ./kind /usr/local/bin/kind" | |
# Sealed Secrets - enables you to manage your Kubernetes secrets in public repos | |
wget https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.18.2/kubeseal-0.18.2-linux-amd64.tar.gz | |
tar -xvzf kubeseal-0.18.2-linux-amd64.tar.gz kubeseal | |
sudo install -m 755 kubeseal /usr/local/bin/kubeseal | |
# OpenLens | |
curl -fsSL https://downloads.k8slens.dev/keys/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/lens-archive-keyring.gpg > /dev/null | |
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/lens-archive-keyring.gpg] https://downloads.k8slens.dev/apt/debian stable main" | sudo tee /etc/apt/sources.list.d/lens.list > /dev/null | |
sudo bash -c "apt update && apt install lens" | |
# Insomnia | |
echo "deb [trusted=yes arch=amd64] https://download.konghq.com/insomnia-ubuntu/ default all" \ | |
| sudo bash -c "tee -a /etc/apt/sources.list.d/insomnia.list" | |
sudo bash -c "apt update && apt install insomnia -y" | |
# Use this to download videos from Microsoft Streams | |
# usage -> ./destreamer.sh -i "https://web.microsoftstream.com/video/xxxxxx-xxxxx-xxxx-xxxx" | |
git clone https://github.com/snobu/destreamer.git | |
cd destreamer | |
git checkout aria2c_forRealNow | |
echo `nvm version lts/fermium` >| .nvmrc | |
nvm use && npm i | |
npm audit fix | |
npm run build | |
# CircleCI CLI - for more info, including steps to setup personal token - https://circleci.com/docs/2.0/local-cli/ | |
sudo bash -c "curl -fLSs https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | bash" | |
# MS (ewww) Teams (ewww) | |
# Note: if you have an old organization tied to Teams, delete config by running: | |
# rm -rf ~/.config/teams && rm -rf ~/.config/Microsoft/Microsoft\ Teams | |
wget https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_1.5.00.23861_amd64.deb | |
sudo bash -c "dpkg -i teams_*.deb" | |
rm teams_*.deb | |
# Salesforce (ewww) Slack | |
wget https://downloads.slack-edge.com/releases/linux/4.29.149/prod/x64/slack-4.29.149-0.1.el8.x86_64.rpm | |
sudo bash -c "alien slack-*.rpm" | |
rm -rf slack-*.rpm | |
# Remove unecessary packages | |
sudo bash -c "apt remove gnome-orca && apt purge gnome-orca" | |
sudo bash -c "apt autoremove -y && apt clean" | |
sudo bash -c "systemctl disable apport.service" | |
sudo bash -c "systemctl disable ModemManager.service" | |
sudo sed -i 's/timeout=30/timeout=5/g' /lib/systemd/system/NetworkManager-wait-online.service | |
sudo sed -i 's/quiet splash//g' /etc/default/grub | |
sudo update-grub | |
# if you did a release upgrade after your fresh install, the old UID of other drives will need to be removed below. | |
rm -f /etc/initramfs-tools/conf.d/resume | |
sudo bash -c 'echo "RESUME=none" >> /etc/initramfs-tools/conf.d/resume' | |
sudo update-initramfs -u | |
sudo ufw allow ssh | |
echo "$SCRIPTFULLNAME ($SCRIPTVERSION) complete. Please reboot your computer." | |
exec "$SHELL" |
Ding, fries are done.
5/4/2020 - Simplified the script; decided to use Retropie instead of avoiding it.
- Fixed issues w/ script that I didn't noticed w/ pyenv & wakatime
- Removed retroarch and snapd. The latter caused issues with git not being installed.
- Added asdf installer, and subsequently it's erlang and elixir plugins.
- Added docker. Will still need to modify this further to use the Ubuntu code name from a variable.
Fixed additional issue with Wakatime install; installed system python wakatime using sudo.'
Added (and subsequently commented out) snapd install instructions. Leaving it here as a placeholder while being mindful it gave me issues with git previously.
Adds Wine 6 install
Never noticed my WakaTime terminal install instruction was lacking a bit. Fixed.
Symlink'd python3->python.
Fixed an issue with the Ruby install step: using a version of OpenSSL local to RVM will resolve an issue that seems to pop up from time-to-time. I finally hit that issue myself. :/
Added meeting tools I avoided previously: Slack and MS Teams. Have mercy.
To-do: install NeoVim from source, then install nvchad
# sudo apt purge neovim
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
sudo bash -c "apt update && apt install ripgrep gettext lua5.1 -y"
cd ~/
wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz
sudo tar -xzf nvim-linux64.tar.gz -C /tmp/
cd /tmp/nvim-linux64 && sudo cp -r * /usr
cd ~/ && sudo rm -rf /tmp/nvim-linux64
rm nvim-linux64.tar.gz
pip install pynvim
npm i -g neovim
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1 && \
git clone https://github.com/PatrickKoss/NvChad-Custom-Config.git ~/.config/nvim/lua/custom --depth 1 && nvim
Probably try LunarVim as well.
LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh)
Looks like the Neovim from scratch series covers Neovim in general.
Better, I'm just really looking for a different, lightweight IDE experience: https://github.com/LunarVim/nvim-basic-ide
git clone https://github.com/LunarVim/nvim-basic-ide.git ~/.config/nvim
And the original point: find a nice editor for Godot for the ultimate, lightweight games development setup. https://mb-izzo.github.io/nvim-godot-solution/
Nerd Fonts:
mkdir -p ~/.local/share/fonts && cd $_
curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/ComicShannsMono/ComicShannsMonoNerdFont-Regular.otf
curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/DroidSansMono/DroidSansMNerdFont-Regular.otf
(using LunarVim as an example) To get the Godot language server up and running, open up LunarVim and press 'c' to open up the configurator. Inside the config file, add:
local dap = require('dap')
dap.adapters.godot = {
type = "server",
host = '127.0.0.1',
port = 6008,
}
dap.configurations.gdscript = {
{
type = "godot",
request = "launch",
name = "Launch scene",
project = "${workspaceFolder}",
launch_scene = true,
}
}
require 'lspconfig'.gdscript.setup {
force_setup = true,
single_file_support = false,
root_dir = require('lspconfig.util').root_pattern('project.godot', '.git'),
filetypes = { "gd", "gdscript", "gdscript3" },
}
With the Godot Editor open, navigate to Editor->Editor Settings->Text Editor->External. The following will do:
Exec Path: /home//.local/bin/lvim
Exec Flags: "{file}" "{line},{col}"
Then, lvim .
inside a project folder:
cd ~/Projects/test_game && cd $_
lvim .
Once you open a gdscript, you should see the language server running in the bottom right hand side. Win.
I think I've settled on LunarVim. Any hoot, configs:
My ~/.config/lvim/config.lua file. Start LunarVim, then let plugins install afterward
wget -O ~/.config/lvim/config.lua \
https://gist.githubusercontent.com/WillSams/20c63ba7e57cd1c713b36a781fb34371/raw/6e4c77de6e413a3e3f8db27d3d450b5c2db5d9b8/config.lua-20231005
NVM Basic IDE (for NeoVim)
# NVM Basic IDE - start NeoVim, then let plugins install afterward (5 minutes)
# Subsequently, run `:checkhealth` to see what else is needed
# Additionally, run `:Mason` to install additional features and or upgrade features
git clone https://github.com/LunarVim/nvim-basic-ide.git ~/.config/nvim
Removed LunarVim, just use Vim.
Trying to avoid using the Linux Retropie package, which heavily edits configuration of both Retroarch & Emulation Station. The emulation specific section of this script is a work in progress as I work to get stuff configured correctly on my latest Lubuntu desktop machine.