Skip to content

bearlike/my-popos-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Pop!_OS 22.04 LTS: Personal Setup 🤙

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.

Update System Preferences 💿🔧

  • 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 Password sudo passwd root,
  • Automatically mount Network Drives and setup NextCloud.
  • Install ICC profile GA503QR_1002_AE0D1540_CMDEF.icm for ASUS ROG Zephyrus G15 (2021).

Change Appearance to my Liking 🌻

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 :)"

Installing Essential Programs 💯

Upgrade Existing Packages ⬆️

sudo apt update && sudo apt upgrade -y

Super Essential Programs ⏫

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 

Essential Programs 🔼

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

Installing Programs as Standalone Important Packages ⏬

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

Essential Python3 Packages 🐍

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

Installing Go 🚩

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

Installing Virtualbox 💠

# 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 

Install Microsoft TrueType Fonts ✏️

sudo add-apt-repository multiverse && \
sudo apt install ttf-mscorefonts-installer && \
sudo fc-cache -f -v

Installing KVM + related tools (KVM >>> VirtualBox) ⚡️

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

Installing AppImages and Flatpaks ❤️

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 

Shell and GNOME Customizations

Installing Powerline for Bash 💥

Bash Preview

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

Installing Zsh and some plugins ⚡⚡

Powerlevel10k for Zsh, Znap, zsh-autocomplete, zsh-autosuggestions ZSH Preview

# 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)

Install MesloLGS NF (Nerd) font ✒️

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

GNOME Tweaks and Extensions ⚡️

sudo add-apt-repository -y universe && \
sudo apt update && \
sudo apt install -y gnome-tools && \
sudo apt install -y gnome-shell-extension-gsconnect clipit

Installing Docker and Deploying Containers 🐳

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}

Deploying Essential Containers 🚛

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

Configurations 🔩

  1. Use bearlike/dotfiles to (re)configure machines. .zshrc, .bashrc etc.
  2. Clone bearlike/scripts for a collection of automation scripts.

Yesssss! 👊❤️

"Have fun using your completely configured system, future me." - Old you.