# Fedora Software

- [Fedora Software](#fedora-software)
  - [Common CLI Apps](#common-cli-apps)
  - [Podman](#podman)
  - [Gear Lever](#gear-lever)
  - [VSCode](#vscode)
    - [DNF](#dnf)
    - [rpm-ostree](#rpm-ostree)
    - [Flatpak](#flatpak)
  - [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)
  - [MangoHud](#mangohud)
  - [Raspberry Pi Imager](#raspberry-pi-imager)
  - [Fedora Media Writer](#fedora-media-writer)
  - [Pods](#pods)
  - [Bambu Studio](#bambu-studio)
  - [Freecad](#freecad)
  - [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)
  - [Frog](#frog)
  - [CPU-X](#cpu-x)
  - [Ungoogled Chromium](#ungoogled-chromium)
  - [Signal](#signal)
  - [Remmina](#remmina)
  - [Mission Center](#mission-center)
  - [Librewolf](#librewolf)
  - [Yakuake](#yakuake)
  - [Bruno](#bruno)
  - [DBeaver](#dbeaver)
  - [draw.io](#drawio)
  - [GHex](#ghex)
  - [KDiskMark](#kdiskmark)
  - [Local Send](#local-send)
  - [Evolution](#evolution)
  - [Virtualization](#virtualization)
  - [NVM](#nvm)
  - [Ollama](#ollama)
  - [UV](#uv)
  - [Pipenv](#pipenv)
  - [Docker](#docker)
  - [Boxes](#boxes)
  - [ffmpeg](#ffmpeg)
    - [AMD GPU VAAPI ffmpeg Acceleration](#amd-gpu-vaapi-ffmpeg-acceleration)
  - [Containers](#containers)
  - [XSane](#xsane)

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.

## Common CLI Apps

Some common apps you'll probably want available.

```bash
sudo dnf install \
  # Advanced text editor for code editing and other tasks.
  vim \
  # Network bandwidth measuring tool.
  iperf3 \
  # Command-line interface for managing Kubernetes clusters.
  kubectl \
  # Package manager and deployment tool for Kubernetes.
  helm \
  # Utility to monitor real-time network usage of processes.
  nethogs \
  # DevOps configuration management tool.
  ansible \
  # Terminal multiplexer.
  tmux \
  # Microsoft Windows compatibility layer.
  wine \
  # Archive utility similar to GNU tar, used to package files into single archive files.
  unzip \
  # A terminal activity monitor (top clone).
  btop \
  # Command-line JSON processor.
  jq \
  # YAML-based configuration-as-code tool for command-line interfaces written in Go, Rust, Python, and more.
  yq \
  # An image manipulation software suite based on ImageMagick.
  ImageMagick \
  # The Go programming language environment including a toolchain (gc) and libraries.
  go \
  # Rust package manager and compiler installation utility.
  rust rustup \
  # Distributed version control system, Git extension that adds support for large files like multimedia assets.
  git git-lfs \
  # Provides traditional network tools such as ifconfig, netstat, hostname, etc., in a single package.
  net-tools \
  # Document conversion tool and markup language converter.
  pandoc \
  # Comprehensive LaTeX distribution for high-quality typesetting of documents.
  texlive-latex texlive-scheme-full \
  # Generate strong passwords.
  pwgen \
  # Reattach to running processes
  reptyr \
  # Netcat, for basic tcp/udp operations
  netcat \
  # 7zip support
  p7zip \
  # Make
  make \
  # GCC for compile
  gcc
```

## Podman

```bash
dns install -y podman
```

## Gear Lever

I would recommend you install Gear Lever to manage App Images:

```bash
flatpak install it.mijorus.gearlever
```

## VSCode

Write code.

### DNF

<https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions>

### rpm-ostree

This layers vscode on the system and lets you download the latest release without waiting
for flathub to update the flatpak. Offers some advantages over flatpak, like not needing
to use flatseal/other to manage host permissions, but the flatpak install works just fine.

<https://code.visualstudio.com/docs/setup/linux#_installing-rpm-package-manually>

1. Download the rpm
2. sudo rpm-ostree install ./vscode-something-something.rpm
3. Reboot

### Flatpak

```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
# DNF
dnf install mpv

# Flatpak
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:

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

```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

<https://github.com/flightlessmango/MangoHud?tab=readme-ov-file#flatpak>

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"
    },
    ...
}
```

You'll need to open port 2021 udp

```bash
firewall-cmd --add-port=2021/udp --permanent
```

## Freecad

Benchy benchy benchy oh no, I can't do that, this is hard.

Download the AppImage and use [Gear Lever](#apps) to install:

<https://www.freecad.org/downloads.php>

## 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

Expand your "ISO" collection.

```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

<https://github.com/ungoogled-software/ungoogled-chromium?tab=readme-ov-file#automated-or-maintained-builds>

```bash
sudo dnf copr enable wojnilowicz/ungoogled-chromium
sudo dnf install 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/
```

## Remmina

REMote desktop IN An app

```bash
flatpak install org.remmina.Remmina
```

## Mission Center

It looks like Windows Task Manager but it plays like "Change Graph to Logical Processors"

```bash
flatpak install io.missioncenter.MissionCenter
```

## Librewolf

Louis Rossmann said to use this instead of Firefox

```bash
flatpak install org.localsend.localsend_app
```

## Yakuake

Drop down terminal when you press `f12`

```bash
flatpak install org.kde.yakuake
```

## Bruno

Remember when postman was good? Remember with Insomnia was good? This one's good for now.

```bash
flatpak install com.usebruno.Bruno
```

## DBeaver

You know you like databases

```bash
flatpak install io.dbeaver.DBeaverCommunity
```

## draw.io

Quickly make shitty diagrams

```bash
flatpak install com.jgraph.drawio.desktop
```

## GHex

Hex view like it's 2005

```bash
flatpak install org.gnome.GHex
```

## KDiskMark

Crystal Disk Mark but, like, k disk mark

```bash
flatpak install io.github.jonmagon.kdiskmark
```

## Local Send

Send anywhere used to be so cool. Unrelated, but I loved that app back in like 2014

```bash
flatpak install org.localsend.localsend_app
```

## Evolution

You still use email? I still use email.

```bash
flatpak install org.gnome.Evolution
```

## Virtualization

```bash
# Virtualization
sudo dnf group install --with-optional virtualization

sudo systemctl start libvirtd
```

## NVM

<https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating>

## Ollama

<https://ollama.com/download>

Run the installation script as normal. Make sure you have the [ROCM](#rocm)
drivers installed for GPU acceleration. The script *should* automatically pull
the ROCM drivers after installing the base packages. If not, you should install
them manually.

For starting ollama as a service, follow the link below:

<https://github.com/ollama/ollama/blob/main/docs/linux.md#adding-ollama-as-a-startup-service-recommended>

## UV

<https://docs.astral.sh/uv/getting-started/installation/>

## Pipenv

<https://pipenv.pypa.io/en/latest/installation.html#installing-pipenv>

## Docker

<https://docs.docker.com/engine/install/fedora/>

```bash
dnf -y install dnf-plugins-core
dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker
```

## Boxes

Virtualization at its boxiest.

```bash
flatpak install org.gnome.Boxes
```

## ffmpeg

- 1080p h264 at 10M is good quality

### AMD GPU VAAPI ffmpeg Acceleration

1. Enable [RPM Fusion](https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup/)
2. Install [ffmpeg non-free](https://rpmfusion.org/Howto/Multimedia)

```bash
# Enable RPM Fusion
sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# Install ffmpeg non-free
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
sudo dnf swap mesa-va-drivers.i686 mesa-va-drivers-freeworld.i686
sudo dnf swap mesa-vdpau-drivers.i686 mesa-vdpau-drivers-freeworld.i686
```

ffmpeg with vaapi

```bash
ffmpeg \
-hwaccel vaapi \
-hwaccel_output_format vaapi \
-i VID_20250804_120159.mp4 \
-vf 'format=nv12,hwupload' \
-vf scale_vaapi=1080:1920 \
-c:v h264_vaapi \
-c:a copy \
-qp 18 \
VID_20250804_120159_1.mp4
```

## Containers

In order to enter a shell with systemd-user access via `machinectl`, install systemd-container

```bash
dnf install -y systemd-container
```

Then you can run `machinectl shell myuser@` to enter a shell which can execute `systemctl --user` commands.

## XSane

Scan stuff

```bash
dnf install xsane
```
