Skip to content

Instantly share code, notes, and snippets.

@patvdleer
Last active March 8, 2024 08:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patvdleer/156e623d40d64ab3c4f4f32b54d39793 to your computer and use it in GitHub Desktop.
Save patvdleer/156e623d40d64ab3c4f4f32b54d39793 to your computer and use it in GitHub Desktop.
install_script.sh
sudo apt install -y \
nemo ncdu htop curl tmux \
ca-certificates \
build-essential \
openssh-server \
git git-lfs \
aptitude \
openconnect network-manager-openconnect-gnome network-manager-openconnect \
python3-gpg \
gramps \
jq nmap \
gpgv2 gnupg \
vlc inkscape \
gparted mtools dosfstools squashfs-tools exfatprogs \
gnome-shell-extension-manager \
printer-driver-dymo \
gedit-plugins \
adb \
wget gpg \
apt-transport-https \
linux-headers-$(uname -r) linux-modules-extra-$(uname -r)
# set Nemo as default instead of Nautilus
xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
gsettings set org.gnome.shell.extensions.ding use-nemo true
#Tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
echo '
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-logging'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g history-limit 50000
# Initialize TMUX plugin manager (keep at bottom)
run '~/.tmux/plugins/tpm/tpm'
' | tee ~/.tmux.conf
tmux source ~/.tmux.conf
# Python
sudo ln -s /usr/bin/python3 /usr/bin/python
# Python PIP
wget https://bootstrap.pypa.io/get-pip.py
sudo -H python get-pip.py
rm get-pip.py
# Git easy commit
# From https://github.com/ngerakines/commitment/issues/69#issuecomment-91053061
git config --global alias.yolo '!git add -A && git commit -m "$(curl --silent --fail https://whatthecommit.com/index.txt)"'
# TransIP - Stack Storage
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/transip-stack.gpg] https://filehosting-client.transip.nl/packages/stack-ubuntu-22.04/ ./' | sudo tee /etc/apt/sources.list.d/stack-client.list
sudo wget -O /usr/share/keyrings/transip-stack.gpg https://filehosting-client.transip.nl/transip-stack.gpg
# OneDrive
wget -qO - https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /usr/share/keyrings/obs-onedrive.gpg > /dev/null
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/obs-onedrive.gpg] https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_22.04/ ./" | sudo tee /etc/apt/sources.list.d/onedrive.list
# VirtualBox
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian jammy contrib' | sudo tee /etc/apt/sources.list.d/virtualbox.list
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg
# Signal
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list
wget -O- https://updates.signal.org/desktop/apt/keys.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/signal-desktop-keyring.gpg
# Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Spotify
curl -sS https://download.spotify.com/debian/pubkey_7A3A762FAFD4A51F.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg
echo "deb http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list
# Vysor
echo 'deb [arch=amd64, trusted=yes] https://nuts.vysor.io/apt ./' | sudo tee /etc/apt/sources.list.d/vysor.list
# ROCm
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
## ROCm
# ROCm repositories for jammy
# Kernel driver repository for jammy
sudo tee /etc/apt/sources.list.d/amdgpu.list <<'EOF'
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/6.0/ubuntu jammy main
EOF
# ROCm repository for jammy
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/6.0 jammy main" \
| sudo tee --append /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| sudo tee /etc/apt/preferences.d/rocm-pin-600
# VSCode
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
# Firefox
sudo add-apt-repository -y -n ppa:mozillateam/ppa
# FlatPak
sudo add-apt-repository -y -n ppa:flatpak/stable
# OBS
sudo add-apt-repository -y -n ppa:obsproject/obs-studio
# DBeaver
sudo add-apt-repository -y -n ppa:serge-rider/dbeaver-ce
# ZFS
sudo add-apt-repository -y -n https://github.com/mikefarah/yq/ppa:zfs-native/stable
# CKB for Corsair
sudo add-apt-repository -y -n ppa:tatokis/ckb-next
# CoreCtrl and AMDGPU
sudo add-apt-repository -y -n ppa:ernstp/mesarc
# KiCad v7 + v8
sudo add-apt-repository -y -n ppa:kicad/kicad-7.0-releases
sudo add-apt-repository -y -n ppa:kicad/kicad-8.0-releases
# NodeJS
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
# Pin Firefox PPA
echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
Package: firefox
Pin: version 1:1snap1-0ubuntu2
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
# Pin CoreCtrl PPA
echo '
# Never prefer packages from the ernstp repository
Package: *
Pin: release o=LP-PPA-ernstp-mesarc
Pin-Priority: 1
# Allow upgrading only corectrl from LP-PPA-ernstp-mesarc
Package: corectrl
Pin: release o=LP-PPA-ernstp-mesarc
Pin-Priority: 500
' | sudo tee /etc/apt/preferences.d/corectrl
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
# Somu key
echo '
# Notify ModemManager this device should be ignored
ACTION!="add|change|move", GOTO="mm_usb_device_blacklist_end"
SUBSYSTEM!="usb", GOTO="mm_usb_device_blacklist_end"
ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_device_blacklist_end"
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ca", ENV{ID_MM_DEVICE_IGNORE}="1"
LABEL="mm_usb_device_blacklist_end"
# Solo bootloader + firmware access
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ca", TAG+="uaccess"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ca", TAG+="uaccess"
# ST DFU access
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
# U2F Zero
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8acf", TAG+="uaccess"
' | sudo tee /etc/udev/rules.d/70-solokeys-access.rules
# AppImageLauncher
sudo add-apt-repository -y ppa:appimagelauncher-team/stable
sudo snap remove firefox
sudo apt install \
firefox \
corectrl \
dbeaver-ce docker-compose-plugin \
ckb-next \
appimagelauncher \
stack-client stack-client-nemo \
docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \
flatpak gnome-software-plugin-flatpak \
ffmpeg obs-studio \
vysor \
kicad \
nodejs npm \
code \
signal-desktop
# docker for my user
sudo usermod -aG docker $USER
# NPM - Yarn
sudo npm install -g yarn
# Arduino
sudo adduser $USER dialout
sudo adduser $USER plugdev
echo 'SUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="arduino arduino_$attr{serial}"' > /etc/udev/rules.d/09-local.rules
echo 'SUBSYSTEMS=="usb", ATTRS{product}=="ARDUINO NANO", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="arduino arduino_nano_$attr{serial}"' >> /etc/udev/rules.d/09-local.rules
echo '#Google Inc. Nexus/Pixel Device (SDK)' >> /etc/udev/rules.d/51-android.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", GROUP="plugdev", SYMLINK+="android%n"' >> /etc/udev/rules.d/51-android.rules
echo '#Arduino UNO' >> /etc/udev/rules.d/09-local.rules
echo 'SUBSYSTEMS=="usb", ATTRS{idProduct}=="0043", ATTRS{idVendor}=="2341", SYMLINK+="arduino arduino_uno_$attr{serial}"' >> /etc/udev/rules.d/09-local.rules
# PlatformIO
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
sudo udevadm control --reload-rules
# Flatpak repo
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# docker-compose
sudo -H pip install docker-compose
# onedrive
sudo apt install --no-install-recommends --no-install-suggests onedrive
# Prep/fix for steam
sudo dpkg --remove libgl1-amber-dri
sudo apt install --fix-broken --no-install-recommends
# ROCm
# # sudo apt install rocm-hip-sdk
# # sudo apt install rocm-dkms
# sudo apt install amdgpu-dkms
# sudo apt install rocm-hip-libraries
sudo usermod -a -G render,video $LOGNAME
# sudo tee --append /etc/ld.so.conf.d/rocm.conf <<EOF
# /opt/rocm/lib
# /opt/rocm/lib64
# EOF
# echo 'export PATH=$PATH:/opt/rocm-5.3.2/bin:/opt/rocm-5.2.1/opencl/bin' >> ~/.bashrc
# Krita
flatpak install flathub org.kde.krita
# Nano
curl https://raw.githubusercontent.com/scopatz/nanorc/master/install.sh | sh
# Bitwarden-CLI
# via API https://vault.bitwarden.com/#/settings/security/security-keys
wget -qO- "https://vault.bitwarden.com/download/?app=cli&platform=linux" | zcat >> bw
sudo install -D -o root -g root -m 755 bw /usr/bin/bw
# YQ - https://github.com/mikefarah/yq
wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq && chmod +x /usr/bin/yq
# FlameShot - custom screenshot tool
# sudo apt install flameshot
# gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"
# gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name 'flameshot'
# gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command '/usr/bin/flameshot gui'
# gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding '<Primary>Print'
# Dive - https://github.com/wagoodman/dive
echo 'alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"' >> ~/.bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment