I forget a lot of stuff. Plus I should stop flushing my PC after every minor inconvenience. So I made this list of scripts and configurations. Also applies to Ubuntu 22.04 LTS.
🚫👿 I hate Snaps. They are slow to install, slow to start, take too much RAM, too much disk space and they auto-update themselves without asking, taking up bandwidth. I would try to avoid snaps as much as possible.
- Settings > Accessibility > Seeing > Pointer Control > 2 or 3 Points.
- Settings > Accessibility > Seeing > Large Text > Turn ON.
- Settings > Accessibility > Pointing & Clicking > Locate Pointer.
- Settings > Privacy > Screen Lock > Blank Screen Delay > 15 minutes or Never.
- Settings > Privacy > Screen Lock > Blank Screen Delay > Lock Screen on Suspend.
- Settings > Set your DNS to your Pi-Hole.
- Settings > About > Change Hostname.
- GNOME Tweaks > General > Turn OFF "Suspend When laptop lid is closed".
- GNOME Tweaks > General > Turn ON "Over Amplification".
- GNOME Tweaks > Window Titlebars > Titlebar Buttons > Turn ON Maximize & Minimize.
- Change
Root
Passwordsudo passwd root
, - Automatically mount Network Drives and setup NextCloud.
- Install ICC profile GA503QR_1002_AE0D1540_CMDEF.icm for ASUS ROG Zephyrus G15 (2021).
Wallpaper, Cursor (We10XOS-cursors), Icons (Papirus) etc.
echo "Changing Wallapaper..." && \
mkdir /home/${USER}/Pictures/Wallpapers && \
wget -q -P /home/${USER}/Pictures/Wallpapers https://thekrishna.in/my-popos-setup/configs/wallpaper/Abstract-Wallpaper.jpg && \
gsettings set org.gnome.desktop.background picture-uri file:////home/${USER}/Pictures/Wallpapers/Abstract-Wallpaper.jpg && \
echo "Changing Icon Theme to Papirus..." && \
sudo add-apt-repository -y ppa:papirus/papirus > /dev/null 2>&1 && \
sudo apt install -y -qq papirus-icon-theme && \
gsettings set org.gnome.desktop.interface icon-theme 'Papirus' && \
echo "Changing Cursor to We10XOS-cursors..." && \
git clone -q https://github.com/yeyushengfan258/We10XOS-cursors.git && \
sudo ./We10XOS-cursors/install.sh > /dev/null 2>&1 && \
gsettings set org.gnome.desktop.interface cursor-theme 'We10XOS-cursors'
sudo rm -r We10XOS-cursors && \
echo "Done :)"
sudo apt update && sudo apt upgrade -y
sudo apt update && \
sudo apt install -y -qq software-properties-common apt-transport-https ca-certificates wget curl gnupg git
cd ~ && sudo apt update && \
sudo wget -qO - https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - && \
sudo wget -qO - http://repo.vivaldi.com/stable/linux_signing_key.pub | sudo apt-key add - && \
sudo add-apt-repository -y "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" && \
sudo add-apt-repository -y "deb [arch=amd64] http://repo.vivaldi.com/stable/deb/ stable main"
sudo apt install -y flatpak net-tools tilix mc tmux htop neofetch screen remmina grub-customizer vlc code vivaldi-stable
cd ~ && sudo apt update && \
sudo add-apt-repository -y ppa:team-xbmc/ppa && \
sudo add-apt-repository -y ppa:lutris-team/lutris && \
sudo add-apt-repository -y ppa:qbittorrent-team/qbittorrent-stable && \
sudo curl -1sLf 'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' | sudo -E bash
sudo apt install -y kodi balena-etcher-electron qbittorrent lutris default-jre
APT
will upgrade the standalone Debian packages, if possible.
mkdir ~/.temp_deb && cd ~/.temp_deb && sudo apt update && \
wget -O peazip.deb -c https://github.com/peazip/PeaZip/releases/download/8.6.0/peazip_8.6.0.LINUX.GTK2-1_amd64.deb && \
wget -O github_desktop.deb -c https://github.com/shiftkey/desktop/releases/download/release-3.0.0-linux2/GitHubDesktop-linux-3.0.0-linux2.deb && \
wget -O zoom.deb -c https://zoom.us/client/latest/zoom_amd64.deb && \
wget -O discord.deb -c https://dl.discordapp.net/apps/linux/0.0.17/discord-0.0.17.deb && \
wget -O mongodb_compass.deb -c https://downloads.mongodb.com/compass/mongodb-compass_1.26.1_amd64.deb && \
sudo apt install -y ./peazip.deb ./github_desktop.deb ./zoom.deb ./discord.deb ./mongodb_compass.deb && \
sudo apt upgrade -y && \
sudo rm -rf ~/.temp_deb && sudo apt autoremove
python3
is usually shipped with Ubuntu 20.04 and other versions of Debian Linux.
sudo apt update && \
sudo apt install -y python3 python-is-python3 python3-pip libopencv-dev python3-opencv && \
pip3 install wheel flask flask-restx numpy pymongo opencv-python bs4 matplotlib scikit-learn Pillow pandas requests nltk bokeh pytest
Always check for latest version once.
cd ~ && \
curl -OL https://golang.org/dl/go1.18.3.linux-amd64.tar.gz && \
sudo tar -C /usr/local -xvf go1.18.3.linux-amd64.tar.gz && \
echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile && \
source ~/.profile
# Requires Console Intervention to Accept T&C
sudo wget -qO - https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo apt-key add - && \
sudo wget -qO - https://www.virtualbox.org/download/oracle_vbox.asc | sudo apt-key add - && \
sudo add-apt-repository -y "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian jammy contrib" && \
sudo apt install -y virtualbox && \
sudo apt install -y virtualbox-ext-pack
sudo add-apt-repository multiverse && \
sudo apt install ttf-mscorefonts-installer && \
sudo fc-cache -f -v
VirtIO drivers for Windows Guest Machines
sudo apt -y install qemu-kvm bridge-utils virt-manager libvirt-daemon-system libvirt-clients qemu virt-viewer spice-vdagent && \
sudo adduser ${USER} libvirt && \
sudo adduser ${USER} kvm
mkdir ~/.AppImages && \
flatpak install --assumeyes --noninteractive --system https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref && \
flatpak install --assumeyes --noninteractive --system flathub org.onlyoffice.desktopeditors && \
flatpak install --assumeyes --noninteractive --system flathub org.inkscape.Inkscape && \
flatpak install --assumeyes --noninteractive --system flathub org.telegram.desktop && \
wget -O "~/.AppImages/Nextcloud.AppImage" https://github.com/nextcloud/desktop/releases/download/v3.1.2/Nextcloud-3.1.2-x86_64.AppImage
# GIMP must installed as a Flatpak before this
cd ~ && wget -O "PhotoGIMP.zip" -c https://github.com/Diolinux/PhotoGIMP/releases/download/1.1/PhotoGIMP.by.Diolinux.v2020.1.for.Flatpak.zip && \
unzip PhotoGIMP.zip -d /home/$USER && rm -rf PhotoGIMP.zip
sudo apt install -y wine wine64 winetricks mono-complete && \
git clone -q https://github.com/Gictorbit/photoshopCClinux.git && \
cd photoshopCClinux/scripts && \
chmod +x PhotoshopSetup.sh && \
./PhotoshopSetup.sh
Installing Powerline for Bash 💥
sudo apt install -y powerline fonts-powerline fonts-font-awesome && \
echo -e "\nif [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then \n powerline-daemon -q\n POWERLINE_BASH_CONTINUATION=1\n POWERLINE_BASH_SELECT=1\n source /usr/share/powerline/bindings/bash/powerline.sh\n fi\n" >> $HOME/.bashrc
Powerlevel10k for Zsh, Znap, zsh-autocomplete, zsh-autosuggestions
# Powerlevel10k configuration wizard will require manual intervention
sudo apt install -y zsh && \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && \
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k && \
sed -i 's/robbyrussell/powerlevel10k\/powerlevel10k/' ~/.zshrc
pip3 install psutil i3ipc powerline-mem-segment && \
git clone --depth 1 -- https://github.com/marlonrichert/zsh-snap.git && \
source zsh-snap/install.zsh
echo -e "znap source marlonrichert/zsh-autocomplete" >> ~/.zshrc
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
echo -e "\033[0;32m'Add 'zsh-autosuggestions' to Plugins in ~/.zshrc\033[0m"
# Change default shell to Zsh (If necessary)
chsh -s $(which zsh)
mkdir -p ~/.local/share/fonts && cd ~/.local/share/fonts && \
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf && \
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf && \
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf && \
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf && \
fc-cache -f -v
sudo add-apt-repository -y universe && \
sudo apt update && \
sudo apt install -y gnome-tools && \
sudo apt install -y gnome-shell-extension-gsconnect clipit
sudo apt update && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt update && \
sudo apt install docker-ce && \
sudo usermod -aG docker ${USER} && \
su - ${USER}
Portainer, MongoDB_Server, MySQL_Server + PhpMyAdmin, Grafana
docker volume create portainer_data && \
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce --logo "https://thekrishna.in/assets/img/KK.png"
sudo mkdir -p /mongodata && \
docker run -d -t -v /data/db:/mongodata -p 27017:27017 --name mongodb mongo && \
docker run --name=grafana -d -p 3000:3000 grafana/grafana && \
docker run --name mysql -e MYSQL_ROOT_PASSWORD="0000" -p 3306:3306 -d mysql && \
docker run --name phpmyadmin -d --link mysql:db -p 8080:80 phpmyadmin/phpmyadmin
- Use bearlike/dotfiles to (re)configure machines.
.zshrc
,.bashrc
etc. - Clone bearlike/scripts for a collection of automation scripts.
"Have fun using your completely configured system, future me." - Old you.