Files
homelab/infrastructure/graduated/fedora/fedora-kinoite.md
2024-12-06 14:38:03 -05:00

12 KiB

Fedora Kinoite

Podman

Since you'll be using podman for most container-based services, you'll want to set the the podman auth file to somewhere persistent, otherwise it'll get deleted every time you reboot.

Add this to your .bashrc:

# Podman auth file
export REGISTRY_AUTH_FILE=$HOME/.podman-auth.json

Source that and then run podman login to create the file.

Libvirt, Qemu, KVM

rpm-ostree install virt-manager
systemctl enable --now libvirtd

Network

VLAN Setup with nmcli

# VLAN 2
nmcli conn
export NMCLI_DEVICE=enp195s0f4u1u3
nmcli connection add type VLAN con-name $NMCLI_DEVICE.2 dev $NMCLI_DEVICE id 2

Apps

Flatpak installs are from Flathub unless otherwise noted.

VSCode

Write code.

flatpak install com.visualstudio.code

# Fix wayland scaling issues
cp /var/lib/flatpak/exports/share/applications/com.visualstudio.code ~/.local/share/applications
# Add `--socket=wayland` and `--ozone-platform=wayland` to the correct locations in the "Exec" field
sed \
    -ri 's/(Exec=.* run )(.*)(com.visualstudio.code)/\1--socket=wayland \2\3 --ozone-platform=wayland/g' \
    ~/.local/share/applications/com.visualstudio.code

# Validate desktop database and reload
desktop-file-validate ~/.local/share/applications/com.nextcloud.talk.desktop
update-desktop-database

Add to settings.json so the host shell is spawned

{
    "terminal.integrated.defaultProfile.linux": "bash",
    "terminal.integrated.profiles.linux": {
        "bash": {
            "path": "/app/bin/host-spawn",
            "args": ["bash"],
            "icon": "terminal-bash",
            "overrideName": true
        }
    }
}

Add these keyboard shortcuts to allow forward and back with alt:

[
    ...
    { "key": "alt+left",         "command": "workbench.action.navigateBack" },
    { "key": "alt+right",        "command": "workbench.action.navigateForward" },
    ...
]

Bitwarden

Password manager.

flatpak install com.bitwarden.desktop

MPV

Video player (like VLC but can frame-by-frame in reverse).

flatpak install io.mpv.Mpv

Nextcloud Desktop

Sync your files.

flatpak install com.nextcloud.desktopclient.nextcloud

# Fix wayland scaling issues
cp /var/lib/flatpak/exports/share/applications/com.visualstudio.code ~/.local/share/applications
# Add `--socket=wayland` and `--ozone-platform=wayland` to the correct locations in the "Exec" field
sed \
    -ri 's/(Exec=.* run )(.*)(com.visualstudio.code)/\1--socket=wayland \2\3 --ozone-platform=wayland/g' \
    ~/.local/share/applications/com.visualstudio.code

# Validate desktop database and reload
desktop-file-validate ~/.local/share/applications/com.nextcloud.talk.desktop
update-desktop-database
# Autostart
ln -s ~/.local/share/applications/com.nextcloud.talk.desktop ~/.config/autostart/

Nextcloud Talk

Talk to your friends.

Download nextcloud talk from:

https://github.com/nextcloud-releases/talk-desktop/releases

flatpak install ./Nextcloud.Talk-linux-x64.flatpak

# autostart
ln -s /var/lib/flatpak/exports/share/applications/com.nextcloud.talk.desktop ~/.config/autostart/

Discord

Talk to your enemies.

flatpak install com.discordapp.Discord

Proton Mail

Talk to your business partners?

flatpak install me.proton.Mail

# Fix wayland scaling issues
cp /var/lib/flatpak/exports/share/applications/me.proton.Mail.desktop ~/.local/share/applications

# Add `--socket=wayland` and `--ozone-platform=wayland` to the correct locations in the "Exec" field
sed \
    -ri 's/(Exec=.* run )(.*)(me.proton.Mail)/\1--socket=wayland \2\3 --ozone-platform=wayland/g' \
    ~/.local/share/applications/me.proton.Mail.desktop

# Validate desktop database and reload
desktop-file-validate ~/.local/share/applications/me.proton.Mail.desktop
update-desktop-database
# Autostart
ln -s ~/.local/share/applications/me.proton.Mail.desktop ~/.config/autostart/

Gimp

Photoshop for Linux.

flatpak install org.gimp.GIMP

Minecraft

Mine. Craft.

flatpak install com.mojang.Minecraft

Moonlight

Mine. Craft. But somewhere else.

flatpak install com.moonlight_stream.Moonlight

Steam

Play games.

flatpak install com.valvesoftware.Steam

Raspberry Pi Imager

Flash your pi.

flatpak install org.raspberrypi.rpi-imager

Fedora Media Writer

Flash your stick.

flatpak install org.fedoraproject.MediaWriter

Pods

Remember Docker Desktop? Pods is the new Docker Desktop.

flatpak install com.github.marhkb.Pods

Bambu Studio

Benchy benchy benchy benchy

flatpak install com.bambulab.BambuStudio

The config is located at ~/.var/app/com.bambulab.BambuStudio/config/BambuStudio/BambuStudio.conf

At the very top of the config you can add a pin for a printer permanently with:

(Do this with Bambu Studio closed, it'll overwrite if it's open.)

{
    "user_access_code": {
        "printer serial number": "access code here"
    },
    ...
}

Eyedropper

Pick a color, any color (from your screen).

flatpak install com.github.finefindus.eyedropper

Mingle

Create custom emojis.

flatpak install io.github.halfmexican.Mingle

Obsidian

Show your friends your massive graph

flatpak install md.obsidian.Obsidian

Dev Toolbox

Format JSON, base64 encode, and color blindness simulator.

flatpak install me.iepure.devtoolbox

Junction

Choose how to open links you click on

flatpak install re.sonny.Junction

Kdenlive

Edit videos without Adobe

flatpak install org.kde.kdenlive

The Powder Toy

I love sandboxes.

uk.co.powdertoy.tpt

Pika

Backup with Borg.

flatpak install org.gnome.World.PikaBackup

Filezilla

Really easy ftp, ftps, sftp, etc. file transfer.

flatpak install org.filezillaproject.Filezilla

Transmission

Bittorent Client.

flatpak install com.transmissionbt.Transmission

AdwSteamGtk

Make Steam look like a KDE App... you know you want to.

flatpak install io.github.Foldex.AdwSteamGtk

Frog

Extract text, scan QR codes, from images.

flatpak install com.github.tenderowl.frog

CPU-X

CPU-Z but X this time

flatpak install io.github.thetumultuousunicornofdarkness.cpu-x

Ungoogled Chromium

Chrom

flatpak install io.github.ungoogled_software.ungoogled_chromium

# Fix wayland scaling issues
cp /var/lib/flatpak/exports/share/applications/io.github.ungoogled_software.ungoogled_chromium.desktop ~/.local/share/applications
# Add `--socket=wayland` and `--ozone-platform=wayland` to the correct locations in the "Exec" field
sed \
    -ri 's/(Exec=.* run )(.*)(io.github.ungoogled_software.ungoogled_chromium)/\1--socket=wayland \2\3 --ozone-platform=wayland/g' \
    ~/.local/share/applications/io.github.ungoogled_software.ungoogled_chromium.desktop

# Validate and reload desktop database
desktop-file-validate ~/.local/share/applications/io.github.ungoogled_software.ungoogled_chromium.desktop
update-desktop-database

Signal

Chat when Nextcloud Talk is down

flatpak install org.signal.Signal

# Fix wayland scaling issues
cp /var/lib/flatpak/exports/share/applications/org.signal.Signal.desktop ~/.local/share/applications
# Add `--socket=wayland` and `--ozone-platform=wayland` to the correct locations in the "Exec" field
sed \
    -ri 's/(Exec=.* run )(.*)(org.signal.Signal)/\1--socket=wayland \2\3 --ozone-platform=wayland/g' \
    ~/.local/share/applications/org.signal.Signal.desktop

# Validate and reload desktop database
desktop-file-validate ~/.local/share/applications/org.signal.Signal.desktop
update-desktop-database
# Autostart
ln -s ~/.local/share/applications/org.signal.Signal.desktop ~/.config/autostart/

Toolbox

# Create and use an Arch Toolbox
toolbox create --distro arch
toolbox enter arch-toolbox-latest

I'd recommend adding this alias to your .bashrc to make things easier

# Toolbox quick enter
alias tbox='SHELL=zsh toolbox enter arch-toolbox-latest'

Reese's Arch Toolbox

I have a custom arch image based on the default arch-toolbox image. It offers:

  • zsh with many completions installed/enabled
  • vim
  • nslookup
  • iperf3
  • kubectl
  • helm
  • nethogs
  • python, pip, and pipx
  • ansible
  • aws cli
  • ollama (add export OLLAMA_HOST=my.ollama.host to your .zshrc to use a remote host)
  • podman (connected automatically to the host machine via the unix socket)
  • tmux
  • ffmpeg
  • wine
  • podman
  • unzip
  • bat
  • btop
  • jq
  • yq
  • imagemagick

Pipx/Poetry

https://python-poetry.org/docs/

# pipx is already installed but the pathing won't work for installed apps
pipx ensurepath # then source ~/.zshrc or ~/.bashrc

pipx install poetry
# Now this should work.
poetry new test-project

Using Reese's Arch Toolbox

toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest
SHELL=/bin/zsh toolbox enter arch-toolbox-latest

Updating Reese's Arch Toolbox

# Stop the current arch toolbox
podman container stop arch-toolbox-latest
# Remove the old container
podman container rm arch-toolbox-latest
# Pull the new image
podman pull gitea.reeseapps.com/services/arch-toolbox:latest
# Start with the new image
toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest

Building Reese's Arch Toolbox

You can build and run the image wit this (See Containerfile in this directory):

# Build latest image
podman build \
    --no-cache \
    -t gitea.reeseapps.com/services/arch-toolbox:latest \
    -f ./infrastructure/graduated/fedora/Containerfile

# Test with podman
podman run -it --rm gitea.reeseapps.com/services/arch-toolbox:latest

# Stop the current arch toolbox
podman container stop arch-toolbox-latest
# Remove the old container
podman container rm arch-toolbox-latest
# Start with the new image
toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest
SHELL=/bin/zsh toolbox enter

In vscode you can set this as your default build task for homelab and trigger it with ctrl shift B

.vscode/tasks.json

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build arch-toolbox",
            "type": "shell",
            "command": "./infrastructure/graduated/fedora/arch-build.sh",
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}