# Workstation Configuration
## Add self as sudoer
!shell
su root
/sbin/visudo
Append: `angelo ALL=(ALL) NOPASSWD:ALL`
Save and exit: `CTRL+X, Y, ENTER`
!shell
exit
## Make home directory readable only by self
!shell
chmod 700 ~
## Update system and install applications
!shell
sudo apt update
sudo apt upgrade
sudo apt install \
openssh-server build-essential stow git zsh tree tmux progress \
libc6-dev libsodium-dev libsqlite3-dev libffi-dev libssl-dev \
zlib1g-dev autoconf sqlite3 apache2-utils dconf-cli htop iftop xvfb \
\
neovim openvpn sshfs rsync silversearcher-ag \
libncurses5-dev libncursesw5-dev libreadline-dev \
libpcre2-dev liblzma-dev libbz2-dev ccache patchelf \
\
devilspie2 unclutter obs-studio gimp piper rtorrent \
kaffeine libnotify-bin curl jq make whois w3m chromium
### Install Firefox
!shell
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla
sudo apt update
sudo apt install firefox
### Install Node
!shell
curl --proto '=https' --tlsv1.2 -fsSL https://deb.nodesource.com/setup_21.x | sudo bash -
sudo apt install -y nodejs
### Install Python
!shell
PYVERSION=3.12.2
wget https://www.python.org/ftp/python/$PYVERSION/Python-$PYVERSION.tar.xz
tar -xf Python-$PYVERSION.tar.xz
cd $PYVERSION
./configure --enable-optimizations
make
sudo make install
### Install Poetry & Pyright
!shell
curl --proto '=https' --tlsv1.2 -fsSL https://install.python-poetry.org | python3 -
sudo npm install -g pyright
### Install Docker & Act
!shell
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl --proto '=https' --tlsv1.2 -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
## Initialize directory structure
!shell
mkdir ~/media/cache/.rtorrent-session -p
mkdir ~/media/desktop
mkdir ~/media/documents
mkdir ~/media/downloads
mkdir ~/media/music
mkdir ~/media/pictures
mkdir ~/media/public
mkdir ~/media/templates
mkdir ~/media/videos/tv/timeshift -p
## Configure applications and install plugins
!shell
git clone --recurse-submodules https://ragt.ag/code/projects/dotfiles.git .dotfiles
cd .dotfiles
stow autostart devilspie2 dircolors git kaffeine neovim openvpn pypoetry \
rtorrent tmux user-dirs zsh
### Install Neovim Plugins
!shell
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim \
--create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
nvim --headless +PlugInstall +qa
nvim --headless UpdateRemotePlugins +qa
### Install Tmux Plugins
!shell
tmux
Install: `leader + I`
### Change shell to Zsh
!shell
chsh -s /bin/zsh
### Configure terminal
Open preferences:
- Text > Text Appearance > Custom font > "Ubuntu Mono derivative Powerline (10pt)"
- Text > Sound > Uncheck "Terminal bell"
- Scrolling > Uncheck "Show scrollbar"
!shell
./solarized-terminal/set_dark.sh
### Configure GNOME
Run `gnome-tweaks`:
- Keyboard & Mouse > Additional Layout Options > Ctrl position > "Caps Lock as Ctrl"
- Appearance > Themes > Applications > "Adwaita-dark"
Install [Hide Top Bar](https://extensions.gnome.org/extension/545/hide-top-bar).
Sign out, change session to "GNOME on Xorg" and sign back in.