228 lines
4.8 KiB
Markdown
228 lines
4.8 KiB
Markdown
# Fedora Kinoite
|
|
|
|
- [Fedora Kinoite](#fedora-kinoite)
|
|
- [Adding users to groups (usermod replacement)](#adding-users-to-groups-usermod-replacement)
|
|
- [System Prereqs](#system-prereqs)
|
|
- [Toolbox](#toolbox)
|
|
- [Clipboard Sharing](#clipboard-sharing)
|
|
- [Running Host Commands](#running-host-commands)
|
|
- [Saving a Toolbox](#saving-a-toolbox)
|
|
- [Apps](#apps)
|
|
- [Gear Lever](#gear-lever)
|
|
- [VSCodium](#vscodium)
|
|
- [Ansible](#ansible)
|
|
- [OpenCode](#opencode)
|
|
- [Nextcloud](#nextcloud)
|
|
- [UV](#uv)
|
|
- [NVM](#nvm)
|
|
- [Set Hostname](#set-hostname)
|
|
- [rpm-ostree Notes](#rpm-ostree-notes)
|
|
- [Accent keys when holding a key](#accent-keys-when-holding-a-key)
|
|
|
|
## Adding users to groups (usermod replacement)
|
|
|
|
```bash
|
|
grep -E '^weldr:' /usr/lib/group | sudo tee -a /etc/group
|
|
sudo usermod -aG weldr $USER
|
|
```
|
|
|
|
## System Prereqs
|
|
|
|
```bash
|
|
# Appimage support
|
|
rpm-ostree install fuse fuse-libs
|
|
|
|
# Editor
|
|
rpm-ostree install vim
|
|
|
|
# Qemu/KVM
|
|
rpm-ostree install virt-manager libvirt virt-install
|
|
|
|
# OSBuild
|
|
rpm-ostree install -y osbuild-composer composer-cli openscap-scanner scap-security-guide
|
|
|
|
# Distrobox
|
|
rpm-ostree install -y distrobox
|
|
|
|
# BTRFS Snapshots
|
|
rpm-ostree install -y snapper
|
|
|
|
# Kitty Terminal
|
|
# terminfo prevents the "WARNING: terminal is not fully functional" error
|
|
rpm-ostree install -y kitty kitty-terminfo
|
|
```
|
|
|
|
## Toolbox
|
|
|
|
### Clipboard Sharing
|
|
|
|
Inside the toolbox run:
|
|
|
|
```bash
|
|
sudo dnf install -y wl-clipboard
|
|
```
|
|
|
|
### Running Host Commands
|
|
|
|
You'll want to use toolbox for development. Unfortunately, toolbox doesn't
|
|
integrate well with host system operations.
|
|
|
|
I create a `toolbox.sh` in `~/.bashrc.d` with functions that map to host
|
|
commands like so:
|
|
|
|
```bash
|
|
# Use flatpak-spawn --host podman inside toolbox, regular podman outside
|
|
podman() {
|
|
if [ -f /run/.containerenv ]; then
|
|
flatpak-spawn --host podman "$@"
|
|
else
|
|
command podman "$@"
|
|
fi
|
|
}
|
|
|
|
# Notify the user if they're trying to run a command that doesn't work in a toolbox
|
|
rpm-ostree() {
|
|
if [ -f /run/.containerenv ]; then
|
|
echo "Command must be run outside toolbox."
|
|
else
|
|
command rpm-ostree "$@"
|
|
fi
|
|
}
|
|
```
|
|
|
|
I have the following functions mapped:
|
|
|
|
1. podman
|
|
2. rpm-ostree
|
|
3. flatpak
|
|
4. firewall-cmd
|
|
|
|
### Saving a Toolbox
|
|
|
|
After setting up a base toolbox you'll want to save it for future use. This is easy with podman commit.
|
|
|
|
```bash
|
|
# 1. Commit the running container to a new image
|
|
podman commit fedora-toolbox-44 my-toolbox-snapshot
|
|
|
|
# 2. Save the image to a tar file for later use
|
|
podman save -o ~/my-toolbox-snapshot.tar my-toolbox-snapshot
|
|
|
|
# Load the image
|
|
podman load -i ~/my-toolbox-snapshot.tar
|
|
|
|
# Create a new toolbox from it
|
|
toolbox create --image my-toolbox-snapshot
|
|
```
|
|
|
|
## Apps
|
|
|
|
Anything not mentioned here is installed via flatpak from flathub.
|
|
|
|
### Gear Lever
|
|
|
|
```bash
|
|
flatpak install it.mijorus.gearlever
|
|
```
|
|
|
|
### VSCodium
|
|
|
|
Install in toolbox.
|
|
|
|
<https://vscodium.com/#install-on-fedora-rhel-centos-rockylinux-opensuse-rpm-package>
|
|
|
|
```bash
|
|
sudo tee -a /etc/yum.repos.d/vscodium.repo << 'EOF'
|
|
[gitlab.com_paulcarroty_vscodium_repo]
|
|
name=gitlab.com_paulcarroty_vscodium_repo
|
|
baseurl=https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/rpms/
|
|
enabled=1
|
|
gpgcheck=1
|
|
repo_gpgcheck=1
|
|
gpgkey=https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg
|
|
metadata_expire=1h
|
|
EOF
|
|
|
|
sudo dnf install codium
|
|
```
|
|
|
|
### Ansible
|
|
|
|
```bash
|
|
# Install pipx
|
|
python3 -m ensurepip --user
|
|
python3 -m pip install --user pipx
|
|
pipx ensurepath
|
|
|
|
# Install ansible
|
|
pipx install --include-deps ansible
|
|
```
|
|
|
|
### OpenCode
|
|
|
|
```bash
|
|
curl -fsSL https://opencode.ai/install | bash
|
|
|
|
# Install pyright LSP
|
|
python -m pip install --upgrade pip
|
|
python -m pip install --user pyright
|
|
```
|
|
|
|
### Nextcloud
|
|
|
|
Download the AppImage. Install via Gear Lever.
|
|
|
|
<https://github.com/nextcloud-releases/desktop/releases>
|
|
|
|
| Source | Repo | Release file name |
|
|
| ------ | -------------------------- | ----------------- |
|
|
| Github | nextcloud-releases/desktop | *x86_64.AppImage |
|
|
|
|
### UV
|
|
|
|
```bash
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
```
|
|
|
|
### NVM
|
|
|
|
<https://www.nvmnode.com/guide/installation.html#nvm-install-for-linux-macos>
|
|
|
|
```bash
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
|
|
```
|
|
|
|
## Set Hostname
|
|
|
|
```bash
|
|
sudo hostnamectl hostname reesework16
|
|
```
|
|
|
|
## rpm-ostree Notes
|
|
|
|
Note: if you don't need them, remove extra repos
|
|
|
|
I removed:
|
|
|
|
1. rpmfusion-nonfree-steam.repo
|
|
2. rpmfusion-nonfree-nvidia-driver.repo
|
|
3. google-chrome.repo
|
|
4. _copr\:copr.fedorainfracloud.org\:phracek\:PyCharm.repo
|
|
|
|
```bash
|
|
# Search for available packages
|
|
rpm-ostree search git
|
|
|
|
# Install a package
|
|
rpm-ostree install git
|
|
|
|
# Apply the installed package live
|
|
rpm-ostree apply-live
|
|
|
|
# Check what's been layered
|
|
rpm-ostree status
|
|
```
|
|
|
|
## Accent keys when holding a key
|
|
|
|
Settings -> keyboard -> virtual keyboard -> disable virtual keyboard |