Last active
January 22, 2024 06:49
-
-
Save brmo/62a363a3e99e40502d09dbcd3b398ee9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# | |
# Script is a mini version of https://github.com/jules-ch/Ubuntu20-Setup-XPS13/blob/master/setup.sh | |
set -ex | |
# Get the Ubuntu version installed | |
DISTRO_VER=$(lsb_release -r -s) | |
LOGIN_USER=$(logname) | |
if [ "$DISTRO_VER" != "22.04" ] | |
then echo "Your installed Ubuntu version is $DISTRO_VER, this script only works with 22.04 LTS." | |
exit | |
fi | |
sudo add-apt-repository universe -y | |
sudo add-apt-repository multiverse -y | |
sudo apt-get upgrade -yqq | |
# Ubuntu apt repos | |
sudo sh -c 'cat > /etc/apt/sources.list.d/focal-dell.list << EOF | |
deb http://dell.archive.canonical.com/updates/ focal-dell public | |
# deb-src http://dell.archive.canonical.com/updates/ focal-dell public | |
deb http://dell.archive.canonical.com/updates/ focal-oem public | |
# deb-src http://dell.archive.canonical.com/updates/ focal-oem public | |
deb http://dell.archive.canonical.com/updates/ focal-somerville public | |
# deb-src http://dell.archive.canonical.com/updates/ focal-somerville public | |
deb http://dell.archive.canonical.com/updates/ focal-somerville-melisa public | |
# deb-src http://dell.archive.canonical.com/updates focal-somerville-melisa public | |
EOF' | |
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null | |
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list | |
sudo 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 | |
wget -qO- https://repo.vivaldi.com/archive/linux_signing_key.pub | sudo gpg --dearmor -o /etc/apt/keyrings/vivaldi.gpg | |
sudo sh -c 'echo "deb [arch=amd64,armhf signed-by=/etc/apt/keyrings/vivaldi.gpg] https://repo.vivaldi.com/archive/deb stable main" > /etc/apt/sources.list.d/vivaldi.list' | |
curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /etc/apt/keyrings/kopia-keyring.gpg | |
echo "deb [signed-by=/etc/apt/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list | |
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo 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 packages.microsoft.gpg | |
echo 'deb http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.10/ /' | sudo tee /etc/apt/sources.list.d/home:vtrefny.list | |
curl -fsSL https://download.opensuse.org/repositories/home:vtrefny/xUbuntu_22.10/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_vtrefny.gpg > /dev/null | |
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg | |
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list | |
# Face recognition and TLP | |
sudo add-apt-repository ppa:linrunner/tlp -y > /dev/null 2>&1 | |
sudo add-apt-repository ppa:persepolis/ppa -y > /dev/null 2>&1 | |
sudo add-apt-repository ppa:sebastian-stenzel/cryptomator -y > /dev/null 2>&1 | |
sudo add-apt-repository ppa:yannick-mauray/quickgui -y > /dev/null 2>&1 | |
sudo apt-add-repository ppa:flexiondotorg/quickemu -y > /dev/null 2>&1 | |
sudo add-apt-repository ppa:fish-shell/release-3 -y > /dev/null 2>&1 | |
set -x | |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F9FDA6BED73CDC22 | |
sudo apt update -qq | |
# Install hardware device drivers for fingerprint and power management tools | |
sudo apt install oem-somerville-melisa-meta libfprint-2-tod1-goodix oem-somerville-meta tlp tlp-config fprintd libpam-fprintd -y | |
sudo systemctl start fprintd | |
sudo pam-auth-update | |
sudo sed -i 's/max-tries=1/max-tries=3/' /etc/pam.d/common-auth | |
# Install general utilities | |
sudo apt install git ncdu htop net-tools flatpak tailscale vivaldi-stable cryptomator code gparted \ | |
sshfs flameshot nano clusterssh iftop iotop gir1.2-gda-5.0 gir1.2-gsound-1.0 gir1.2-gtop-2.0 \ | |
vlc gnome-tweaks ubuntu-restricted-extras kopia-ui bat \ | |
ffmpeg tmux build-essential apt-transport-https gnome-boxes persepolis \ | |
ca-certificates curl gnupg gnome-software-plugin-flatpak flameshot tilix \ | |
python3 python3-pip python-is-python3 pipx gnupg-agent gnupg2 software-properties-common \ | |
gconf2 gconf-service traceroute nautilus-admin \ | |
qemu bash coreutils ovmf grep jq lsb procps python3 genisoimage usbutils util-linux sed spice-client-gtk swtpm wget xdg-user-dirs zsync unzip \ | |
quickgui quickemu blivet-gui fish kubectl \ | |
docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin spell synaptic -y -qq | |
sudo apt remove brltty -yqq | |
echo /usr/bin/fish | sudo tee -a /etc/shells | |
chsh -s /usr/bin/fish | |
pipx install gnome-extensions-cli | |
pipx ensurepath | |
sudo wget https://github.com/Eugeny/tabby/releases/download/v1.0.196/tabby-1.0.205-linux-x64.deb -O /tmp/tabby-1.0.205-linux-x64.deb | |
sudo dpkg -i /tmp/tabby-1.0.205-linux-x64.deb | |
sudo wget https://download.nomachine.com/download/8.10/Linux/nomachine_8.10.1_1_amd64.deb -O /tmp/nomachine.deb | |
sudo dpkg -i /tmp/nomachine.deb | |
curl https://rclone.org/install.sh | sudo bash | |
sudo sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin | |
sudo wget https://github.com/mozilla/sops/releases/download/v3.8.1/sops_3.8.1_amd64.deb -O /tmp/sops_3.8.1_amd64.deb | |
sudo dpkg -i /tmpsops_3.8.1_amd64.deb | |
sudo python3 -m pip install -U pip setuptools wheel | |
sudo gpasswd -a $USER input | |
sudo apt install libinput-tools xdotool ruby -y -qq | |
sudo gem install --silent fusuma | |
sudo usermod -aG docker $USER | |
sudo systemctl enable docker.service | |
sudo systemctl enable containerd.service | |
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | |
sudo flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | |
flatpak install --user flathub org.remmina.Remmina -y | |
flatpak install --user flathub com.belmoussaoui.Authenticator -y | |
flatpak install --user betterbird -y | |
code --install-extension ms-python.python | |
code --install-extension visualstudioexptteam.vscodeintellicode | |
code --install-extension eamodio.gitlens | |
code --install-extension redhat.vscode-yaml | |
code --install-extension ms-azuretools.vscode-docker | |
code --install-extension esbenp.prettier-vscode | |
code --install-extension Pkief.material-icon-theme | |
code --install-extension zhuangtongfa.material-theme | |
code --install-extension ms-kubernetes-tools.vscode-kubernetes-tools | |
code --install-extension christian-kohler.path-intellisense | |
code --install-extension ms-vscode.cpptools | |
code --install-extension platformio.platformio-ide | |
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 | |
# Install Gnome Extensions | |
gext install 906 3222 3981 5278 5004 5219 5410 5461 906 1070 5470 1486 4356 755 1085 4254 5377 4170 4551 1097 | |
gsettings set org.gnome.desktop.wm.preferences button-layout 'appmenu:minimize,maximize,close' | |
gsettings set org.gnome.desktop.interface clock-show-weekday true | |
gsettings set org.gnome.desktop.sound allow-volume-above-100-percent true | |
gsettings set org.gnome.desktop.interface document-font-name 'Open Sans 11' | |
gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' | |
gsettings set org.gnome.desktop.interface monospace-font-name 'Fira Code weight=453 11' | |
gsettings set org.gnome.shell.extensions.pop-cosmic clock-alignment 'RIGHT' | |
gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize-or-previews' | |
gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 40 | |
gsettings set org.gnome.shell.extensions.dash-to-dock dock-fixed false | |
gsettings set org.gnome.shell.extensions.dash-to-dock multi-monitor true | |
gsettings set org.gnome.desktop.interface show-battery-percentage true | |
gsettings set org.gnome.settings-daemon.plugins.power power-button-action 'suspend' | |
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing' | |
gsettings set org.gnome.desktop.wm.keybindings activate-window-menu @as [] | |
gsettings set org.gnome.desktop.wm.keybindings switch-input-source @as [] | |
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward @as [] | |
gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']" | |
gsettings set org.gnome.settings-daemon.plugins.media-keys email "@as []" | |
gsettings set org.gnome.settings-daemon.plugins.media-keys search "@as []" | |
gsettings set org.gnome.shell.extensions.pop-shell activate-launcher "['<Super>slash', '<Super>space']" | |
sh -c 'cat >> ~/.config/mimeapps.list << EOF | |
x-scheme-handler/http=vivaldi-stable.desktop | |
x-scheme-handler/https=vivaldi-stable.desktop | |
text/html=vivaldi-stable.desktop | |
application/xhtml+xml=vivaldi-stable.desktop | |
x-scheme-handler/mailto=eu.betterbird.Betterbird.desktop | |
audio/x-vorbis+ogg=mpv.desktop | |
audio/aac=mpv.desktop | |
audio/x-aac=mpv.desktop | |
audio/vnd.dolby.heaac.1=mpv.desktop | |
audio/vnd.dolby.heaac.2=mpv.desktop | |
audio/x-aiff=mpv.desktop | |
audio/m4a=mpv.desktop | |
audio/x-m4a=mpv.desktop | |
audio/mp1=mpv.desktop | |
audio/x-mp1=mpv.desktop | |
audio/mp2=mpv.desktop | |
audio/x-mp2=mpv.desktop | |
audio/mp3=mpv.desktop | |
audio/x-mp3=mpv.desktop | |
audio/mpeg=mpv.desktop | |
audio/mpegurl=mpv.desktop | |
audio/x-mpegurl=mpv.desktop | |
audio/mpg=mpv.desktop | |
audio/x-mpg=mpv.desktop | |
audio/x-musepack=mpv.desktop | |
audio/ogg=mpv.desktop | |
audio/scpls=mpv.desktop | |
audio/x-scpls=mpv.desktop | |
audio/vnd.rn-realaudio=mpv.desktop | |
audio/wav=mpv.desktop | |
audio/x-pn-wav=mpv.desktop | |
audio/x-realaudio=mpv.desktop | |
audio/x-pn-realaudio=mpv.desktop | |
audio/x-ms-wma=mpv.desktop | |
audio/x-wav=mpv.desktop | |
audio/x-ms-asf=mpv.desktop | |
audio/x-matroska=mpv.desktop | |
audio/webm=mpv.desktop | |
audio/vorbis=mpv.desktop | |
audio/x-vorbis=mpv.desktop | |
audio/x-shorten=mpv.desktop | |
audio/x-ape=mpv.desktop | |
audio/x-wavpack=mpv.desktop | |
audio/x-tta=mpv.desktop | |
audio/AMR=mpv.desktop | |
audio/ac3=mpv.desktop | |
audio/eac3=mpv.desktop | |
audio/flac=mpv.desktop | |
audio/mp4=mpv.desktop | |
audio/x-pn-au=mpv.desktop | |
audio/3gpp=mpv.desktop | |
audio/3gpp2=mpv.desktop | |
audio/dv=mpv.desktop | |
audio/opus=mpv.desktop | |
audio/vnd.dts=mpv.desktop | |
audio/vnd.dts.hd=mpv.desktop | |
audio/x-adpcm=mpv.desktop | |
video/x-ogm+ogg=vlc.desktop | |
video/ogg=vlc.desktop | |
video/x-theora+ogg=vlc.desktop | |
video/x-theora=vlc.desktop | |
video/x-ms-asf=vlc.desktop | |
video/x-ms-asf-plugin=vlc.desktop | |
video/x-ms-asx=vlc.desktop | |
video/x-ms-wm=vlc.desktop | |
video/x-ms-wmv=vlc.desktop | |
video/x-ms-wmx=vlc.desktop | |
video/x-ms-wvx=vlc.desktop | |
video/x-msvideo=vlc.desktop | |
video/divx=vlc.desktop | |
video/msvideo=vlc.desktop | |
video/vnd.divx=vlc.desktop | |
video/x-avi=vlc.desktop | |
video/vnd.rn-realvideo=vlc.desktop | |
video/mp2t=vlc.desktop | |
video/mpeg=vlc.desktop | |
video/mpeg-system=vlc.desktop | |
video/x-mpeg=vlc.desktop | |
video/x-mpeg2=vlc.desktop | |
video/mp4=vlc.desktop | |
video/mp4v-es=vlc.desktop | |
video/x-m4v=vlc.desktop | |
video/quicktime=vlc.desktop | |
video/x-matroska=vlc.desktop | |
video/webm=vlc.desktop | |
video/3gp=vlc.desktop | |
video/3gpp=vlc.desktop | |
video/3gpp2=vlc.desktop | |
video/vnd.mpegurl=vlc.desktop | |
video/dv=vlc.desktop | |
video/x-anim=vlc.desktop | |
video/x-nsv=vlc.desktop | |
video/fli=vlc.desktop | |
video/flv=vlc.desktop | |
video/x-flc=vlc.desktop | |
video/x-fli=vlc.desktop | |
video/x-flv=vlc.desktop | |
EOF' | |
# Configure TLP | |
sudo sh -c 'cat > /etc/tlp.d/00-xps-profile.conf << EOF | |
CPU_SCALING_GOVERNOR_ON_AC=powersave | |
CPU_SCALING_GOVERNOR_ON_BAT=powersave | |
CPU_SCALING_MIN_FREQ_ON_AC=800000 | |
CPU_SCALING_MAX_FREQ_ON_AC=4800000 | |
CPU_SCALING_MIN_FREQ_ON_BAT=400000 | |
CPU_SCALING_MAX_FREQ_ON_BAT=2400000 | |
CPU_ENERGY_PERF_POLICY_ON_AC=performance | |
CPU_ENERGY_PERF_POLICY_ON_BAT=power | |
CPU_BOOST_ON_AC=1 | |
CPU_BOOST_ON_BAT=0 | |
SCHED_POWERSAVE_ON_AC=0 | |
SCHED_POWERSAVE_ON_BAT=1 | |
PLATFORM_PROFILE_ON_AC=performance | |
PLATFORM_PROFILE_ON_BAT=low-power | |
EOF' | |
# Update tlp.conf settings | |
sudo sed -i "s/^#TLP_PERSISTENT_DEFAULT\b.*$/TLP_PERSISTENT_DEFAULT=0/" /etc/tlp.conf | |
sudo sed -i "s/^#TLP_DEFAULT_MODE\b.*$/TLP_DEFAULT_MODE=AC/" /etc/tlp.conf | |
sudo service tlp restart | |
echo | |
echo "Done" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment