Skip to content

Instantly share code, notes, and snippets.

@thetillhoff
Last active December 5, 2022 19:12
Show Gist options
  • Save thetillhoff/38b109abe1782708c0059f7f99e1426f to your computer and use it in GitHub Desktop.
Save thetillhoff/38b109abe1782708c0059f7f99e1426f to your computer and use it in GitHub Desktop.
# Prerequisites
# - install debian netinst iso in non-graphical mode
# - deselect *all* packages that are advertised at the end of the installer
# Usage
# `wget -O - "https://gist.githubusercontent.com/thetillhoff/38b109abe1782708c0059f7f99e1426f/raw/setup-debian-desktop.sh" | sh`
# or
# `wget -O - "https://link.thetillhoff.de/debian-desktop" | sh`
# Result
# - minimal customized graphical setup with gnome
# update packages
apt-get update && apt-get upgrade -y
# install sudo
apt-get install -y sudo
# add user to sudoers
/sbin/usermod -aG sudo $USER
# [optional] log out and in again to apply group settings
# install gnome minimal desktop, graphical file explorer and themes like adwaita-dark
sudo apt-get install -y gdm3 nautilus gnome-themes-extra
# install gnome-terminal (supports copy-paste) in a dedicated command so they don't remove other default packages from gnome
sudo apt-get install -y gnome-terminal
# [optional] reboot now to autostart gnome
# install basic tools
apt-get install -y --no-install-recommends \
# download tools
git wget curl \
# coreutils contains tools like cat md5sum, head, tail ,...
coreutils \
# time sync tool
ntp \
# file sync tool
rsync
# set timezone (optional - is taken over from initially set up timezone)
timedatectl set-timezone Europe/Berlin
# set gnome theme (as non-root, default is "Adwaita")
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
# set power options (as non-root, default is 300)
gsettings set org.gnome.desktop.session idle-delay 0
# install zsh (as root)
apt-get install -y zsh
# make zsh the default shell (as root?)
#chsh -s $(which zsh)
# install oh-my-zsh
git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh ~/.oh-my-zsh
# install powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k ~/.oh-my-zsh/custom/themes/powerlevel10k
# configure zsh, oh-my-zsh and powerlevel10k
wget -O ~/.zshrc \
https://gist.githubusercontent.com/thetillhoff/38b109abe1782708c0059f7f99e1426f/raw/zshrc
wget -O ~/.p10k.zsh \
https://gist.githubusercontent.com/thetillhoff/38b109abe1782708c0059f7f99e1426f/raw/p10k.zsh
# install a powerline fonts for powerlevel10k
cd /usr/local/share/fonts && \
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20{Regular,Bold,Italic,Bold%20Italic}.ttf
# update font cache
fc-cache
# set gnome-terminal to use zsh
terminal_id=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d "'")
gsettings set org.gnome.Terminal.Legacy.Profile:/org.gnome.terminal.legacy/profiles:/:$terminal_id/ custom-command "zsh"
gsettings set org.gnome.Terminal.Legacy.Profile:/org.gnome.terminal.legacy/profiles:/:$terminal_id/ use-custom-command true
gsettings set org.gnome.Terminal.Legacy.Profile:/org.gnome.terminal.legacy/profiles:/:$terminal_id/ login-shell true
# [optional] restart gnome terminal now
# install firefox
apt-get install -y firefox-esr
# install libreoffice
apt-get install -y libreoffice
# set network connection to managed (removes question mark from network symbol in gnome)
sed -i 's/^managed=false$/managed=true/' /etc/NetworkManager/NetworkManager.conf
systemctl restart NetworkManager
# allow non-free packages
sed -i 's/bullseye main$/bullseye main non-free contrib/' /etc/apt/sources.list
sed -i 's/bullseye-security main$/bullseye-security main non-free contrib/' /etc/apt/sources.list
# enable multi-arch (to be able to install 32bit software on a 64bit os)
dpkg --add-architecture i386
# update apt cache
apt-get update
# install steam
apt-get install -y steam
# install hyperv tooling
# wget https://raw.githubusercontent.com/Hinara/linux-vm-tools/ubuntu20-04/ubuntu/20.04/install.sh
# chmod -x ./install.sh
# ./install.sh # this script needs to be run twice - with a reboot in between
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment