# Fedora Kinoite - [Fedora Kinoite](#fedora-kinoite) - [Podman](#podman) - [Autostarting services with quadlets](#autostarting-services-with-quadlets) - [Libvirt, Qemu, KVM](#libvirt-qemu-kvm) - [Network](#network) - [VLAN Setup with nmcli](#vlan-setup-with-nmcli) - [Apps](#apps) - [VSCode](#vscode) - [Bitwarden](#bitwarden) - [MPV](#mpv) - [Nextcloud Desktop](#nextcloud-desktop) - [Nextcloud Talk](#nextcloud-talk) - [Discord](#discord) - [Proton Mail](#proton-mail) - [Gimp](#gimp) - [Minecraft](#minecraft) - [Moonlight](#moonlight) - [Steam](#steam) - [Raspberry Pi Imager](#raspberry-pi-imager) - [Fedora Media Writer](#fedora-media-writer) - [Pods](#pods) - [Bambu Studio](#bambu-studio) - [Eyedropper](#eyedropper) - [Mingle](#mingle) - [Obsidian](#obsidian) - [Dev Toolbox](#dev-toolbox) - [Junction](#junction) - [Kdenlive](#kdenlive) - [The Powder Toy](#the-powder-toy) - [Pika](#pika) - [Filezilla](#filezilla) - [Transmission](#transmission) - [AdwSteamGtk](#adwsteamgtk) - [Frog](#frog) - [CPU-X](#cpu-x) - [Ungoogled Chromium](#ungoogled-chromium) - [Signal](#signal) - [Toolbox](#toolbox) - [Reese's Arch Toolbox](#reeses-arch-toolbox) - [Pipx/Poetry](#pipxpoetry) - [Using Reese's Arch Toolbox](#using-reeses-arch-toolbox) - [Updating Reese's Arch Toolbox](#updating-reeses-arch-toolbox) - [Building Reese's Arch Toolbox](#building-reeses-arch-toolbox) ## 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`: ```bash # Podman auth file export REGISTRY_AUTH_FILE=$HOME/.podman-auth.json ``` Source that and then run `podman login` to create the file. ### Autostarting services with quadlets If you want to run something as your user at boot (like a systemd process, think ollama) you can create a user quadlets like so: ```bash # Generate the .container file podman run --rm ghcr.io/containers/podlet --install --description "Local AI" \ podman run \ -d \ -v ollama:/root/.ollama \ -p 11434:11434 \ --name ollama \ --restart always \ docker.io/ollama/ollama > ~/.config/containers/systemd/ollama.container # Verify the service (Note the filename:service, this is required! You will get "Failed to prepare filename" without it) systemd-analyze verify ~/.config/containers/systemd/ollama.container:ollama.service # Start the service systemctl --user daemon-reload systemctl --user start ollama ``` ## Libvirt, Qemu, KVM ```bash rpm-ostree install virt-manager libvirt systemctl enable --now libvirtd ``` ## Network ### VLAN Setup with nmcli ```bash # 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. Add flathub with: ```bash flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo ``` When prompted, prefer flathub. ### VSCode Write code. ```bash flatpak install com.visualstudio.code ``` Add to settings.json so the host shell is spawned ```json { "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: ```json [ ... { "key": "alt+left", "command": "workbench.action.navigateBack" }, { "key": "alt+right", "command": "workbench.action.navigateForward" }, ... ] ``` ### Bitwarden Password manager. ```bash flatpak install com.bitwarden.desktop ``` ### MPV Video player (like VLC but can frame-by-frame in reverse). ```bash flatpak install io.mpv.Mpv ``` ### Nextcloud Desktop Sync your files. ```bash flatpak install com.nextcloud.desktopclient.nextcloud ``` ```bash # Autostart ln -s ~/.local/share/applications/com.nextcloud.talk.desktop ~/.config/autostart/ ``` ### Nextcloud Talk Talk to your friends. Download nextcloud talk from: ```bash 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. ```bash flatpak install com.discordapp.Discord ``` ### Proton Mail Talk to your business partners? ```bash flatpak install me.proton.Mail ``` ```bash # Autostart ln -s ~/.local/share/applications/me.proton.Mail.desktop ~/.config/autostart/ ``` ### Gimp Photoshop for Linux. ```bash flatpak install org.gimp.GIMP ``` ### Minecraft Mine. Craft. ```bash flatpak install com.mojang.Minecraft ``` ### Moonlight Mine. Craft. But somewhere else. ```bash flatpak install com.moonlight_stream.Moonlight flatpak install flathub org.freedesktop.Platform.GL.default//22.08-extra ``` ### Steam Play games. ```bash flatpak install com.valvesoftware.Steam ``` ### MangoHud Pretty Numbers for your Games. ```bash flatpak install org.freedesktop.Platform.VulkanLayer.MangoHud flatpak override --user --env=MANGOHUD=1 com.valvesoftware.Steam # Allow flatpak apps to read Mangohud config flatpak override --user --filesystem=xdg-config/MangoHud:ro ``` Edit `~/.config/MangoHud/MangoHud.conf` ```conf ### pre defined presets # -1 = default # 0 = no display # 1 = fps only # 2 = horizontal view # 3 = extended # 4 = high detailed information preset=2 ### Enable most of the toggleable parameters (currently excludes `histogram`) # full ``` ### Raspberry Pi Imager Flash your pi. ```bash flatpak install org.raspberrypi.rpi-imager ``` ### Fedora Media Writer Flash your stick. ```bash flatpak install org.fedoraproject.MediaWriter ``` ### Pods Remember Docker Desktop? Pods is the new Docker Desktop. ```bash flatpak install com.github.marhkb.Pods systemctl --user enable --now podman.socket ``` ### Bambu Studio Benchy benchy benchy benchy ```bash 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.) ```json { "user_access_code": { "printer serial number": "access code here" }, ... } ``` ### Eyedropper Pick a color, any color (from your screen). ```bash flatpak install com.github.finefindus.eyedropper ``` ### Mingle Create custom emojis. ```bash flatpak install io.github.halfmexican.Mingle ``` ### Obsidian Show your friends your massive graph ```bash flatpak install md.obsidian.Obsidian ``` ### Dev Toolbox Format JSON, base64 encode, and color blindness simulator. ```bash flatpak install me.iepure.devtoolbox ``` ### Junction Choose how to open links you click on ```bash flatpak install re.sonny.Junction ``` ### Kdenlive Edit videos without Adobe ```bash flatpak install org.kde.kdenlive ``` ### The Powder Toy I love sandboxes. ```bash flatpak install uk.co.powdertoy.tpt ``` ### Pika Backup with Borg. ```bash flatpak install org.gnome.World.PikaBackup ``` ### Filezilla Really easy ftp, ftps, sftp, etc. file transfer. ```bash flatpak install org.filezillaproject.Filezilla ``` ### Transmission Bittorent Client. ```bash flatpak install com.transmissionbt.Transmission ``` ### Frog Extract text, scan QR codes, from images. ```bash flatpak install com.github.tenderowl.frog ``` ### CPU-X CPU-Z but X this time ```bash flatpak install io.github.thetumultuousunicornofdarkness.cpu-x ``` ### Ungoogled Chromium Chrom ```bash flatpak install io.github.ungoogled_software.ungoogled_chromium ``` ### Signal Chat when Nextcloud Talk is down ```bash flatpak install org.signal.Signal ``` ```bash # Autostart ln -s ~/.local/share/applications/org.signal.Signal.desktop ~/.config/autostart/ ``` ## Toolbox ```bash # 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 ```bash # 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 ```bash # 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 ```bash toolbox create -i gitea.reeseapps.com/services/arch-toolbox:latest SHELL=/bin/zsh toolbox enter arch-toolbox-latest ``` ### Updating Reese's Arch Toolbox ```bash # 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): ```bash # 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 ```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 } } ] } ```