Skip to content

Instantly share code, notes, and snippets.

@WillSams
Last active December 31, 2024 22:48
Show Gist options
  • Save WillSams/0834c801cac5c5d6e40ae1a43adf9360 to your computer and use it in GitHub Desktop.
Save WillSams/0834c801cac5c5d6e40ae1a43adf9360 to your computer and use it in GitHub Desktop.
New Box Install Script
#!/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"
@WillSams
Copy link
Author

WillSams commented May 19, 2019

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.

@WillSams
Copy link
Author

Ding, fries are done.

@WillSams
Copy link
Author

WillSams commented May 4, 2020

5/4/2020 - Simplified the script; decided to use Retropie instead of avoiding it.

@WillSams
Copy link
Author

  • 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.

@WillSams
Copy link
Author

WillSams commented Apr 4, 2021

Fixed additional issue with Wakatime install; installed system python wakatime using sudo.'

@WillSams
Copy link
Author

Added (and subsequently commented out) snapd install instructions. Leaving it here as a placeholder while being mindful it gave me issues with git previously.

@WillSams
Copy link
Author

Adds Wine 6 install

@WillSams
Copy link
Author

Never noticed my WakaTime terminal install instruction was lacking a bit. Fixed.

@WillSams
Copy link
Author

Symlink'd python3->python.

@WillSams
Copy link
Author

WillSams commented Jan 6, 2023

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. :/

@WillSams
Copy link
Author

WillSams commented Jan 9, 2023

Added meeting tools I avoided previously: Slack and MS Teams. Have mercy.

@WillSams
Copy link
Author

WillSams commented Sep 28, 2023

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/

@WillSams
Copy link
Author

WillSams commented Oct 4, 2023

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

@WillSams
Copy link
Author

WillSams commented Oct 4, 2023

(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.

@WillSams
Copy link
Author

WillSams commented Oct 5, 2023

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

@WillSams
Copy link
Author

Removed LunarVim, just use Vim.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment