502 lines
9.6 KiB
Markdown
502 lines
9.6 KiB
Markdown
# Workstation
|
|
|
|
- [Workstation](#workstation)
|
|
- [Podman](#podman)
|
|
- [Docker](#docker)
|
|
- [QEMU/KVM](#qemukvm)
|
|
- [Arch Guests](#arch-guests)
|
|
- [Kubernetes](#kubernetes)
|
|
- [VSCode](#vscode)
|
|
- [Shell](#shell)
|
|
- [Fonts](#fonts)
|
|
- [Navigation](#navigation)
|
|
- [Extensions](#extensions)
|
|
- [Wireguard](#wireguard)
|
|
- [Remote Desktop](#remote-desktop)
|
|
- [Transmission](#transmission)
|
|
- [VLC](#vlc)
|
|
- [Bitwarden](#bitwarden)
|
|
- [Nextcloud](#nextcloud)
|
|
- [Insomnia](#insomnia)
|
|
- [QMK](#qmk)
|
|
- [Initialization](#initialization)
|
|
- [Development](#development)
|
|
- [Cura](#cura)
|
|
- [Creality Print](#creality-print)
|
|
- [Bambu Studio](#bambu-studio)
|
|
- [Orca Slicer](#orca-slicer)
|
|
- [AWS CLI](#aws-cli)
|
|
- [NSlookup](#nslookup)
|
|
- [rpi-imager](#rpi-imager)
|
|
- [qFlipper](#qflipper)
|
|
- [Nextcloud Talk](#nextcloud-talk)
|
|
- [FFMpeg](#ffmpeg)
|
|
- [Youtube-dlp](#youtube-dlp)
|
|
- [Iperf3](#iperf3)
|
|
- [Glances](#glances)
|
|
|
|
## Podman
|
|
|
|
Install with the following
|
|
|
|
`pacman -S podman buildah cni-plugins slirp4netns podman-dnsname aardvark-dns`
|
|
|
|
Then you can run rootless containers like so:
|
|
|
|
```bash
|
|
podman pull docker.io/library/python:3.11
|
|
podman run -it python:3.11 bash
|
|
|
|
podman network create test
|
|
podman pod create --network test --publish 8000:8000 test1
|
|
podman run -it --pod test1 python:3.11 bash
|
|
```
|
|
|
|
You can also deploy pods with kubernetes yamls.
|
|
|
|
```bash
|
|
podman network create test
|
|
podman kube play --network test podman-deploy.yaml --replace
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
pacman -Sy docker docker-compose
|
|
usermod -aG docker ducoterra
|
|
```
|
|
|
|
logout, log back in to use docker as non-root user.
|
|
|
|
You can use btrfs as your storage driver by following these instructions:
|
|
|
|
<https://docs.docker.com/storage/storagedriver/btrfs-driver/>
|
|
|
|
## QEMU/KVM
|
|
|
|
Install virtualization capabilties
|
|
|
|
```bash
|
|
# DNSMasq is required - do not start it with systemd, qemu will handle that.
|
|
pacman -S qemu-full dnsmasq virt-manager
|
|
systemctl enable --now libvirtd
|
|
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 use the AUR:
|
|
|
|
<https://aur.archlinux.org/packages/visual-studio-code-bin>
|
|
|
|
```bash
|
|
cd ~/aur
|
|
git clone https://aur.archlinux.org/visual-studio-code-bin.git
|
|
cd visual-studio-code-bin
|
|
makepkg -si
|
|
```
|
|
|
|
### 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": "Intel One Mono",
|
|
"editor.fontLigatures": true,
|
|
"terminal.integrated.fontFamily": "Intel One Mono",
|
|
}
|
|
```
|
|
|
|
### Navigation
|
|
|
|
The best navigation shortcut ever is alt+left and alt+right to move the cursor to it's
|
|
previous positions.
|
|
|
|
```json
|
|
[
|
|
{
|
|
"key": "alt+left",
|
|
"command": "workbench.action.navigateBack",
|
|
"when": ""
|
|
},
|
|
{
|
|
"key": "alt+right",
|
|
"command": "workbench.action.navigateForward",
|
|
"when": ""
|
|
}
|
|
]
|
|
```
|
|
|
|
### 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
|
|
```
|
|
|
|
## Wireguard
|
|
|
|
Wireguard requires `linux-headers`. If that isn't installed or is misconfigured your
|
|
vpn likely won't activate.
|
|
|
|
```bash
|
|
pacman -S wireguard-tools
|
|
```
|
|
|
|
## Remote Desktop
|
|
|
|
```bash
|
|
pacman -S remmina freerdp
|
|
```
|
|
|
|
## Transmission
|
|
|
|
```bash
|
|
pacman -S gtk4 transmission-gtk
|
|
```
|
|
|
|
## VLC
|
|
|
|
```bash
|
|
pacman -S vlc
|
|
```
|
|
|
|
## Bitwarden
|
|
|
|
<https://bitwarden.com/download/>
|
|
|
|
```bash
|
|
mv ~/Downloads/Bitwarden*.AppImage ~/Applications/Bitwarden.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Bitwarden
|
|
Exec=/home/ducoterra/Applications/Bitwarden.AppImage
|
|
Icon=/home/ducoterra/.icons/bitwarden.png
|
|
Type=Application
|
|
```
|
|
|
|
## Nextcloud
|
|
|
|
<https://nextcloud.com/install/#install-clients>
|
|
|
|
```bash
|
|
mv ~/Downloads/Nextcloud*.AppImage ~/Applications/Nextcloud.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Nextcloud
|
|
Exec=/home/ducoterra/Applications/Nextcloud.AppImage
|
|
Icon=/home/ducoterra/.icons/nextcloud.png
|
|
Type=Application
|
|
```
|
|
|
|
## Insomnia
|
|
|
|
<https://github.com/Kong/insomnia/releases/tag/core@2023.5.7>
|
|
|
|
```bash
|
|
mv ~/Downloads/Insomnia*.AppImage ~/Applications/Insomnia.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Insomnia
|
|
Exec=/home/ducoterra/Applications/Insomnia.AppImage
|
|
Icon=/home/ducoterra/.icons/insomnia.png
|
|
Type=Application
|
|
```
|
|
|
|
## QMK
|
|
|
|
### Initialization
|
|
|
|
I have a mirror and a fork of the mirror on my personal Gitea. For this strategy you'll
|
|
need to checkout the fork and add the mirror. This ensures I'll always have an up-to-date
|
|
mirror of qmk while also giving me a repo to make changes for my personal keyboards.
|
|
|
|
```bash
|
|
git clone git@gitea.reeseapps.com:ducoterra/qmk_firmware.git
|
|
cd qmk_firmware
|
|
git remote add mirror git@gitea.reeseapps.com:mirrors/qmk_firmware.git
|
|
git fetch mirror
|
|
git rebase mirror/master
|
|
pacman -S qmk
|
|
qmk setup
|
|
sudo cp /home/ducoterra/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/
|
|
qmk config user.keyboard=keychron/q11/ansi_encoder
|
|
qmk config user.keymap=ducoterra
|
|
```
|
|
|
|
### Development
|
|
|
|
Every time you start a project you'll want to sync with the mirror.
|
|
|
|
```bash
|
|
git fetch mirror
|
|
git rebase mirror/master
|
|
```
|
|
|
|
Commit to master while you're in the fork.
|
|
|
|
## Cura
|
|
|
|
<https://ultimaker.com/software/ultimaker-cura/#links>
|
|
|
|
```bash
|
|
mv ~/Downloads/*Cura*.AppImage ~/Applications/Cura.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Cura
|
|
Exec=/home/ducoterra/Applications/Cura.AppImage
|
|
Icon=/home/ducoterra/.icons/cura.png
|
|
Type=Application
|
|
```
|
|
|
|
## Creality Print
|
|
|
|
<https://www.creality.com/pages/download-software?spm=..page_11657537.creality_print_1.1>
|
|
|
|
```bash
|
|
mv ~/Downloads/Creality_Print*.AppImage ~/Applications/Creality_Print.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Creality Print
|
|
Exec=/home/ducoterra/Applications/Creality_Print.AppImage
|
|
Icon=/home/ducoterra/.icons/creality_print.png
|
|
Type=Application
|
|
```
|
|
|
|
## Bambu Studio
|
|
|
|
<https://github.com/bambulab/BambuStudio/releases>
|
|
|
|
I usually grab the Ubuntu appimage. The Fedora one seems to crash when displaying the camera.
|
|
|
|
```bash
|
|
# You might need to install webkit2gtk
|
|
pacman -S webkit2gtk
|
|
```
|
|
|
|
```bash
|
|
mv ~/Downloads/Bambu_Studio_linux*.AppImage ~/Applications/BambuStudio.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
Note! The file name "BambuStudio.desktop" must match the appimage name "BambuStudio" for the icon to show up.
|
|
|
|
~/.local/share/applications/BambuStudio.desktop
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Bambu Studio
|
|
Exec=/home/ducoterra/Applications/BambuStudio.AppImage
|
|
Icon=/home/ducoterra/.icons/bambu_studio.png
|
|
Type=Application
|
|
```
|
|
|
|
```bash
|
|
update-desktop-database
|
|
```
|
|
|
|
|
|
## Orca Slicer
|
|
|
|
<https://github.com/SoftFever/OrcaSlicer>
|
|
|
|
This is an open source fork of Bambu Slicer with more features.
|
|
|
|
```bash
|
|
# You might need to install webkit2gtk
|
|
pacman -S webkit2gtk
|
|
```
|
|
|
|
```bash
|
|
mv ~/Downloads/OrcaSlicer*.AppImage ~/Applications/OrcaSlicer.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Orca Slicer
|
|
Exec=/home/ducoterra/Applications/OrcaSlicer.AppImage
|
|
Icon=/home/ducoterra/.icons/orca_slicer.png
|
|
Type=Application
|
|
```
|
|
|
|
|
|
## AWS CLI
|
|
|
|
<https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html>
|
|
|
|
```bash
|
|
# Install less if you don't have it already
|
|
pacman -S less
|
|
|
|
cd ~/Downloads
|
|
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
|
unzip awscliv2.zip
|
|
sudo ./aws/install
|
|
```
|
|
|
|
Add the following to your .zshrc:
|
|
|
|
```bash
|
|
complete -C '/usr/local/bin/aws_completer' aws
|
|
```
|
|
|
|
## NSlookup
|
|
|
|
```bash
|
|
# Do this in a toolbox
|
|
toolbox enter
|
|
|
|
# Install
|
|
pacman -S bind
|
|
```
|
|
|
|
## rpi-imager
|
|
|
|
<https://github.com/raspberrypi/rpi-imager>
|
|
|
|
```bash
|
|
toolbox create -d ubuntu -r 24.04
|
|
toolbox enter toolbox enter ubuntu-toolbox-24.04
|
|
sudo apt install rpi-imager
|
|
```
|
|
|
|
## qFlipper
|
|
|
|
<https://flipperzero.one/update>
|
|
|
|
```bash
|
|
mv ~/Downloads/*qFlipper*.AppImage ~/Applications/qFlipper.AppImage
|
|
chmod +x ~/Applications/*.AppImage
|
|
```
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=qFlipper
|
|
Exec=/home/ducoterra/Applications/qFlipper.AppImage
|
|
Icon=/home/ducoterra/.icons/qFlipper.png
|
|
Type=Application
|
|
```
|
|
|
|
## Nextcloud Talk
|
|
|
|
<https://github.com/nextcloud-releases/talk-desktop/releases>
|
|
|
|
```bash
|
|
mv ~/Downloads/Nextcloud.Talk-linux-*/Nextcloud* ~/Applications/NextcloudTalk
|
|
```
|
|
|
|
vim ~/.local/share/applications/nextcloud-talk.desktop
|
|
|
|
```conf
|
|
[Desktop Entry]
|
|
Name=Nextcloud Talk
|
|
Exec="/home/ducoterra/Applications/NextcloudTalk/Nextcloud Talk" %u
|
|
Icon=/home/ducoterra/.icons/NextcloudTalk.png
|
|
Type=Application
|
|
```
|
|
|
|
```bash
|
|
update-desktop-database
|
|
```
|
|
|
|
## FFMpeg
|
|
|
|
```bash
|
|
# Select pipewire-jack when prompted
|
|
pacman -S ffmpeg
|
|
```
|
|
|
|
## Youtube-dlp
|
|
|
|
<https://github.com/yt-dlp/yt-dlp>
|
|
|
|
1. Download `yt-dlp_linux`
|
|
2. `clamdscan yt-dlp_linux`
|
|
3. `cp yt-dlp_linux /usr/local/bin/yt-dlp`
|
|
4. Install ffmpeg `pacman -S ffmpeg`
|
|
|
|
Download the best quality video:
|
|
|
|
```bash
|
|
yt-dlp -f "bv+ba/b" https://...
|
|
```
|
|
|
|
## Iperf3
|
|
|
|
```bash
|
|
pacman -S iperf3
|
|
```
|
|
|
|
## Glances
|
|
|
|
```bash
|
|
pacman -S glances
|
|
``` |