begin flushing out arch workstation + base

This commit is contained in:
2023-08-30 00:47:37 -04:00
parent 52244f140c
commit 98962eea3a
3 changed files with 576 additions and 472 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
.vscode/
venv/

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,173 @@
# Workstation
## Setup
- [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)
### Disks
## Base Tools
1. 1GB Fat32 boot sector
2. 1GB Fat32 bios sector
3. 500GB BTRFS Gaming sector
4. Remaining BTRFS Workstation sector
```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.
<https://github.com/intel/intel-one-mono>
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
```