# Workstation - [Workstation](#workstation) - [Base Tools](#base-tools) - [ZSH](#zsh) - [Podman](#podman) - [QEMU/KVM](#qemukvm) - [Arch Guests](#arch-guests) - [Kubernetes](#kubernetes) - [VSCode](#vscode) - [Shell](#shell) - [Fonts](#fonts) - [Extensions](#extensions) - [Remote Desktop](#remote-desktop) - [Transmission](#transmission) - [Wireguard](#wireguard) ## Base Tools ```bash pacman -S rsync which git iperf3 ``` ## ZSH ```bash pacman -S zsh grml-zsh-config chsh -s $(which zsh) echo "autoload -U compinit; compinit" > ~/.zshrc ``` ## Podman 1. `pacman -S podman buildah cni-plugins slirp4netns` 2. `podman pull docker.io/debian:latest` 3. `podman run -it debian:latest bash` ## QEMU/KVM 1. Install virtualization capabilties ```bash pacman -S qemu-full libvirt iptables-nft dnsmasq virt-manager qemu-desktop swtpm usermod -aG libvirt ducoterra ``` 2. Edit /etc/libvirt/libvirtd.conf ```conf ... unix_sock_group = 'libvirt' ... unix_sock_rw_perms = '0770' ... ``` 3. Edit /etc/libvirt/qemu.conf ```conf # Some examples of valid values are: # # user = "qemu" # A user named "qemu" # user = "+0" # Super user (uid=0) # user = "100" # A user named "100" or a user with uid=100 # user = "ducoterra" # The group for QEMU processes run by the system instance. It can be # specified in a similar way to user. group = "ducoterra" ``` 4. `sudo systemctl enable --now libvirtd` 5. `sudo virsh net-autostart default` If you get a blank screen when launching a VM check that you've used the correct bios - either secboot or not secboot. This is the most common problem. ### Arch Guests In order to get drivers for spice you'll need the guest spice drivers: ```bash sudo pacman -S qemu-guest-agent spice-vdagent ``` ## Kubernetes ```bash pacman -S kubectl helm ``` ## VSCode For the open source version of code install `code`: ```bash sudo pacman -S code ``` For the proprietary version of vscode install `yay` and then: ```bash yay -S visual-studio-code-bin ``` ### Shell Edit settings.json ```json { "terminal.integrated.defaultProfile.linux": "zsh", } ``` ### Fonts Intel One Mono is designed to be easily readable for developers. Download and extract the ttf.zip ```bash mkdir ~/.local/share/fonts rsync -av /path/to/download/*.ttf ~/.local/share/fonts/ ``` Edit settings.json ```json { "editor.fontFamily": "IntelOne Mono", "editor.fontLigatures": true, "terminal.integrated.fontFamily": "IntelOne Mono", } ``` ### Extensions To save a list of installed extensions run: ```bash code --list-extensions >> vscode_extensions.txt ``` To install that list of extensions run: ```bash cat vscode_extensions.txt | xargs -L 1 code --install-extension ``` ## Remote Desktop ```bash pacman -S remmina freerdp ``` ## Transmission ```bash pacman -S gtk4 transmission-gtk ``` ### Wireguard Wireguard requires `linux-headers`. If that isn't installed or is misconfigured your vpn likely won't activate. ```bash pacman -S wireguard-tools ```