Compare commits

..

30 Commits

Author SHA1 Message Date
tumillanino
f371fba55e btrfs flags added to kernel install 2026-04-09 14:29:37 +10:00
tumillanino
ac7d14e98a latest tag doesn't exist for main fedora images 2026-04-09 13:08:16 +10:00
tumillanino
9a06941829 stupidly forgot to replace whole rebase link 2026-04-09 13:03:25 +10:00
tumillanino
a3f1e0843a some kernel fixes that were lost 2026-04-09 12:45:26 +10:00
tumillanino
a936328c28 Merge branch 'main' into staging 2026-04-09 11:31:34 +10:00
tumillanino
3b7a1e440f fixed kernel cleanup and initramfs generation 2026-04-09 10:18:35 +10:00
tumillanino
09760ca4a9 changing wallpaper to be less shit 2026-04-09 10:01:22 +10:00
tumillanino
e91adc45ce Merge pull request #8 from tumillanino/revert-7-staging
Revert "update to use cachyos kernel and kinoite base image"
2026-04-08 18:00:10 +10:00
tumillanino
e43e54dba9 Revert "update to use cachyos kernel and kinoite base image" 2026-04-08 17:57:18 +10:00
tumillanino
17ece6cfde Merge pull request #7 from tumillanino/staging
update to use cachyos kernel and kinoite base image
2026-04-08 17:11:53 +10:00
tumillanino
03bc0c3bba remove zram to resolve cachyos kernel install 2026-04-08 16:55:41 +10:00
tumillanino
e00db9e3fa trying to adapt cachyos kernel from zena linux 2026-04-08 16:37:17 +10:00
tumillanino
b924a4a4d8 Merge pull request #6 from tumillanino/staging
branding changes
2026-04-08 16:07:37 +10:00
tumillanino
a78782e54d hopefully fixes the branding issues on boot 2026-04-08 15:53:24 +10:00
tumillanino
1eefc90924 Merge pull request #5 from tumillanino/staging
fix app loading issues
2026-04-08 12:31:13 +10:00
tumillanino
2fe52fc3c1 hardcode release type 2026-04-08 12:10:29 +10:00
tumillanino
2b26de7110 fixes for renoise install 2026-04-08 11:50:17 +10:00
tumillanino
1d328bcbc5 fixes for renoise install 2026-04-08 11:48:35 +10:00
tumillanino
ab913ad8f5 bitwig was not launching. immuntability stuff 2026-04-08 11:25:44 +10:00
tumillanino
d2dc21a83f Merge pull request #4 from tumillanino/staging
Remove notify from flatpak install script
2026-04-08 09:34:19 +10:00
tumillanino
0bd50850cf remove notify completely 2026-04-08 09:33:07 +10:00
tumillanino
1ca3554ae7 Merge pull request #3 from tumillanino/staging
fixes to theming
2026-04-08 09:31:28 +10:00
tumillanino
d91f91c809 added hostname 2026-04-08 09:30:27 +10:00
tumillanino
6ad6008e1b updated plymouth branding 2026-04-08 09:27:07 +10:00
tumillanino
a6da2af97c fixed issue breaking Zen install 2026-04-08 09:05:59 +10:00
tumillanino
fa8dee1ba4 Merge pull request #2 from tumillanino/staging
merge bitwig install
2026-04-08 08:58:19 +10:00
tumillanino
83c5550ec4 typo on file path 2026-04-08 08:47:12 +10:00
tumillanino
ef8da056dc bitwig install script created 2026-04-08 07:38:46 +10:00
tumillanino
51f18558fc remove oh-my-posh as it has annoying quirks 2026-04-08 07:08:10 +10:00
tumillanino
2665d4847a basis for a couple of install scripts 2026-04-08 06:46:26 +10:00
46 changed files with 299 additions and 64 deletions

BIN
docs/wallpapers/6293645.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB

BIN
docs/wallpapers/8.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

View File

@@ -13,4 +13,3 @@ setup-zsh:
echo ')'
} >> ~/.zshrc
@echo 'eval "$(oh-my-posh init zsh --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/refs/heads/main/themes/json.omp.json')"' >> ~/.zshrc

View File

@@ -1,53 +0,0 @@
#!/usr/bin/env bash
set -oue pipefail
./install-divested.sh 20250714
./install-divested.sh https://divested.dev/rpm/fedora/divested-release-20250714-1.noarch.rpm
BASE_URL='https://divested.dev/rpm/fedora'
PKG_PREFIX='divested-release'
ARCH='noarch'
RPM_SUFFIX='-1' # adjust if upstream uses a different release number
RETRY_OPTS=(--retry 3 --retry-delay 5 -S -L -O)
if [ "${#}" -eq 0 ]; then
echo "Usage: $0 YYYYMMDD | FULL_RPM_URL" >&2
exit 2
fi
INPUT="$1"
case "$INPUT" in
http:// | https://)
RPM_URL="$INPUT"
;;
[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])
RELEASE_VERSION="$INPUT"
FILENAME="${PKG_PREFIX}-${RELEASE_VERSION}${RPM_SUFFIX}.${ARCH}.rpm"
RPM_URL="${BASE_URL}/${FILENAME}"
;;
*)
echo "Invalid argument. Provide a date (YYYYMMDD) or a full URL." >&2
exit 1
;;
esac
TMPDIR="$(mktemp -d)"
trap 'rm -rf "$TMPDIR"' EXIT
RPM_PATH="${TMPDIR}/$(basename "$RPM_URL")"
echo "Downloading ${RPM_URL} ..."
if command -v curl >/dev/null 2>&1; then
curl "${RETRY_OPTS[@]}" -o "$RPM_PATH" "$RPM_URL"
elif command -v wget >/dev/null 2>&1; then
wget --tries=3 --wait=5 -O "$RPM_PATH" "$RPM_URL"
else
echo "Neither curl nor wget available." >&2
exit 1
fi
echo "Installing ${RPM_PATH} ..."
sudo dnf install -y "$RPM_PATH"
echo "Installed $(basename "$RPM_PATH")"

View File

@@ -1,10 +1,21 @@
#!/usr/bin/env bash
set -oue pipefail
# Fix boot entry title and OS identity
sed -i 's|^PRETTY_NAME=.*|PRETTY_NAME="Miasma OS"|' /usr/lib/os-release
sed -i 's|^NAME=.*|NAME="Miasma OS"|' /usr/lib/os-release
sed -i 's|^ID=.*|ID=miasma-os|' /usr/lib/os-release
sed -i 's|^ID_LIKE=.*|ID_LIKE=fedora|' /usr/lib/os-release
sed -i 's|^LOGO=.*|LOGO=distributor-logo|' /usr/lib/os-release
mv /tmp/files/assets/images/distributor-logo.svg /usr/share/icons/hicolor/scalable/places/distributor-logo.svg
mv /tmp/files/assets/splash/default.jxl /usr/share/backgrounds/default.jxl
mv /tmp/files/assets/splash/default-dark.jxl /usr/share/backgrounds/default-dark.jxl
mv /tmp/files/assets/images/watermark.png /usr/share/plymouth/themes/spinner/watermark.png
# Remove Bazzite animation/throbber frames so Plymouth uses only our watermark
rm -f /usr/share/plymouth/themes/spinner/animation-*.png
rm -f /usr/share/plymouth/themes/spinner/throbber-*.png
mv /tmp/files/assets/images/fedora-gdm-logo.png /usr/share/pixmaps/fedora-gdm-logo.png
mv /tmp/files/assets/images/fedora-logo-small.png /usr/share/pixmaps/fedora-logo-small.png
mv /tmp/files/assets/images/fedora-logo-sprite.png /usr/share/pixmaps/fedora-logo-sprite.png
@@ -14,3 +25,16 @@ mv /tmp/files/assets/images/fedora_logo_med.png /usr/share/pixmaps/fedora_logo_m
mv /tmp/files/assets/images/fedora_whitelogo.svg /usr/share/pixmaps/fedora_whitelogo.svg
mv /tmp/files/assets/images/fedora_whitelogo_med.png /usr/share/pixmaps/fedora_whitelogo_med.png
mv /tmp/files/assets/images/system-logo-white.png /usr/share/pixmaps/system-logo-white.png
# Replace EFI boot picker icon (shown before SDDM) with Miasma OS logo
mkdir -p /usr/share/pixmaps/bootloader
python3 -c "
import struct
with open('/usr/share/pixmaps/system-logo-white.png', 'rb') as f:
png_data = f.read()
# ICNS format: embed PNG data directly using ic09 (512x512) slot
entry = b'ic09' + struct.pack('>I', 8 + len(png_data)) + png_data
icns = b'icns' + struct.pack('>I', 8 + len(entry)) + entry
with open('/usr/share/pixmaps/bootloader/fedora.icns', 'wb') as f:
f.write(icns)
"

View File

@@ -0,0 +1,79 @@
#!/usr/bin/env bash
# Replaces the stock Fedora kernel with the CachyOS LTO kernel.
# CachyOS LTO kernel is compiled with Link-Time Optimization and ships
# sched-ext (SCX) support, giving lower latency for realtime audio workloads.
#
# Adapted from the Zena project (https://github.com/zena-linux/zena),
# specifically build-scripts/modules/base/kernel.sh.
# Zena is licensed under the Apache License 2.0.
# Credit to the Zena contributors: https://github.com/zena-linux/zena/graphs/contributors
set -ouex pipefail
shopt -s nullglob
KERNEL_PACKAGES=(
kernel-cachyos-lto
kernel-cachyos-lto-core
kernel-cachyos-lto-devel-matched
kernel-cachyos-lto-modules
)
# Disable kernel-install hooks so they don't trigger inside the container
# build environment. The initramfs will be generated explicitly below.
pushd /usr/lib/kernel/install.d
printf '%s\n' '#!/bin/sh' 'exit 0' >05-rpmostree.install
printf '%s\n' '#!/bin/sh' 'exit 0' >50-dracut.install
chmod +x 05-rpmostree.install 50-dracut.install
popd
# Erase stock Fedora kernel RPMs from the package database
for pkg in kernel kernel-core kernel-modules kernel-modules-core; do
rpm --erase "$pkg" --nodeps || true
done
# Remove ALL existing kernel module directories. The original script used
# `head -n1` which only removed the first entry — on Kinoite's base image
# there are typically two kernel versions, leaving an orphaned module
# directory that confuses rpm-ostree/bootc at deploy time.
for KVER in $(ls /usr/lib/modules 2>/dev/null); do
rm -rf "/usr/lib/modules/$KVER"
done
dnf5 -y install "${KERNEL_PACKAGES[@]}"
dnf5 versionlock add "${KERNEL_PACKAGES[@]}" || true
# Identify the newly installed CachyOS kernel version
NEW_KVER=$(ls /usr/lib/modules | head -n1)
# Ensure vmlinuz is at the path expected by rpm-ostree and bootc for boot
# entry generation. Some COPR kernel RPMs only install vmlinuz to /boot and
# not to /usr/lib/modules/<kver>/vmlinuz; copy it over if missing.
if [ ! -f "/usr/lib/modules/${NEW_KVER}/vmlinuz" ]; then
if [ -f "/boot/vmlinuz-${NEW_KVER}" ]; then
cp "/boot/vmlinuz-${NEW_KVER}" "/usr/lib/modules/${NEW_KVER}/vmlinuz"
else
echo "ERROR: vmlinuz not found for kernel ${NEW_KVER}" >&2
exit 1
fi
fi
# Generate the initramfs inside the container image so that rpm-ostree and
# bootc can use it directly at deploy time. Without this step, Kinoite boots
# with no initramfs and hits a dracut emergency shell (the "wall of errors").
# --no-hostonly : include all drivers, not just the CI build host's hardware
# --add ostree : include the ostree dracut module for atomic deployments
dracut \
--reproducible \
--no-hostonly \
--add "ostree" \
--filesystems "btrfs" \
--add-drivers "btrfs" \
--force \
"/usr/lib/modules/${NEW_KVER}/initrd" \
"${NEW_KVER}"
# Atomic images manage /boot via the bootloader layer; clear any kernel
# files the RPM dropped there.
rm -rf /boot/*

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
echo "Installing Bitwig Studio..."
dnf install -y libbsd bzip2-libs dpkg
curl -L -o /tmp/bitwig.deb "https://www.bitwig.com/dl/?id=419&os=installer_linux"
# Extract to temp dir to avoid /opt -> /var/opt symlink issues on immutable OS
mkdir -p /tmp/bitwig-extract
dpkg-deb -x /tmp/bitwig.deb /tmp/bitwig-extract
# Install main app to /usr/lib instead of /opt (which resolves to /var/opt at runtime)
mv /tmp/bitwig-extract/opt/bitwig-studio /usr/lib/bitwig-studio
# Copy remaining files (desktop entry, icons, mime types, etc.)
cp -rT /tmp/bitwig-extract/usr /usr
# Fix symlink to point to the new location
ln -sf /usr/lib/bitwig-studio/bitwig-studio /usr/bin/bitwig-studio
# Fix paths in .desktop file
if [ -f /usr/share/applications/com.bitwig.BitwigStudio.desktop ]; then
sed -i 's|/opt/bitwig-studio|/usr/lib/bitwig-studio|g' /usr/share/applications/com.bitwig.BitwigStudio.desktop
fi
ln -sf /usr/lib64/libbz2.so.1 /usr/lib64/libbz2.so.1.0
rm -rf /tmp/bitwig-extract /tmp/bitwig.deb
echo "Bitwig Studio installation complete."
exit 0

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -euo pipefail
curl -L -o /tmp/decent-sampler.tar.gz "https://cdn.decentsamples.com/production/builds/ds/1.18.1/Decent_Sampler-1.18.1-Linux-Static-x86_64.tar.gz"
tar xvf /tmp/decent-sampler.tar.gz -C /tmp
cd /tmp
mkdir -p /usr/lib64/vst/decentsampler
cd Decent_Sampler-1.18.1-Linux-Static-x86_64
mv DecentSampler.so /usr/lib64/vst/decentsampler/
rm -rf /tmp/decent-sampler.tar.gz /tmp/Decent* || true
exit 0

View File

@@ -1,12 +1,44 @@
#!/usr/bin/env bash
set -euo pipefail
RENOISE_VERSION=3.5.4
EXTRACT_DIR=/tmp/Renoise_3_5_4_Demo_Linux_x86_64
curl -L -o /tmp/renoise.tar.gz "https://files.renoise.com/demo/Renoise_3_5_4_Demo_Linux_x86_64.tar.gz"
tar xvf /tmp/renoise.tar.gz -C /tmp
tar xf /tmp/renoise.tar.gz -C /tmp
cd /tmp/Renoise_3_5_4_Demo_Linux_x86_64
./install.sh || echo "Installer finished with minor warnings (likely desktop-integration related)"
# Skip install.sh — it targets /usr/local which symlinks to /var/usrlocal on immutable OS
# and is not included in the deployed ostree image.
# Instead, install directly into /usr paths.
rm -rf /tmp/renoise.tar.gz /tmp/Renoise* || true
# Keep binary and Resources/ together so Renoise can find its resources via relative path
mkdir -p /usr/lib/renoise
cp -r "${EXTRACT_DIR}/Resources" /usr/lib/renoise/
install -m755 "${EXTRACT_DIR}/renoise" /usr/lib/renoise/renoise
# Wrapper script so 'renoise' is in PATH and the binary runs from its own directory
cat > /usr/bin/renoise << 'EOF'
#!/bin/bash
exec /usr/lib/renoise/renoise "$@"
EOF
chmod 755 /usr/bin/renoise
# Desktop entry, icons, MIME types, man pages
install -D -m644 "${EXTRACT_DIR}/Installer/renoise.desktop" \
/usr/share/applications/renoise.desktop
install -D -m644 "${EXTRACT_DIR}/Installer/renoise-48.png" \
/usr/share/icons/hicolor/48x48/apps/renoise.png
install -D -m644 "${EXTRACT_DIR}/Installer/renoise-64.png" \
/usr/share/icons/hicolor/64x64/apps/renoise.png
install -D -m644 "${EXTRACT_DIR}/Installer/renoise-128.png" \
/usr/share/icons/hicolor/128x128/apps/renoise.png
install -D -m644 "${EXTRACT_DIR}/Installer/renoise.xml" \
/usr/share/mime/packages/renoise.xml
install -D -m644 "${EXTRACT_DIR}/Installer/renoise.1.gz" \
/usr/share/man/man1/renoise.1.gz
install -D -m644 "${EXTRACT_DIR}/Installer/renoise-pattern-effects.5.gz" \
/usr/share/man/man5/renoise-pattern-effects.5.gz
rm -rf /tmp/renoise.tar.gz "${EXTRACT_DIR}"
exit 0

View File

@@ -0,0 +1 @@
miasma

View File

@@ -0,0 +1,12 @@
[Default Applications]
text/html=app.zen_browser.zen.desktop
x-scheme-handler/http=app.zen_browser.zen.desktop
x-scheme-handler/https=app.zen_browser.zen.desktop
x-scheme-handler/ftp=app.zen_browser.zen.desktop
x-scheme-handler/chrome=app.zen_browser.zen.desktop
application/x-extension-htm=app.zen_browser.zen.desktop
application/x-extension-html=app.zen_browser.zen.desktop
application/x-extension-shtml=app.zen_browser.zen.desktop
application/xhtml+xml=app.zen_browser.zen.desktop
application/x-extension-xhtml=app.zen_browser.zen.desktop
application/x-extension-xht=app.zen_browser.zen.desktop

View File

@@ -0,0 +1,61 @@
[Plymouth Theme]
Name=Spinner
Description=A theme designed by jimmac that features a simple spinner.
ModuleName=two-step
[two-step]
Font=Cantarell 12
TitleFont=Cantarell Light 30
ImageDir=/usr/share/plymouth/themes/spinner
DialogHorizontalAlignment=.5
DialogVerticalAlignment=.382
TitleHorizontalAlignment=.5
TitleVerticalAlignment=.382
HorizontalAlignment=.5
VerticalAlignment=.7
WatermarkHorizontalAlignment=.5
WatermarkVerticalAlignment=.96
Transition=none
TransitionDuration=0.0
BackgroundStartColor=0x000000
BackgroundEndColor=0x000000
ProgressBarBackgroundColor=0x606060
ProgressBarForegroundColor=0xffffff
MessageBelowAnimation=true
[boot-up]
UseEndAnimation=false
[shutdown]
UseEndAnimation=false
[reboot]
UseEndAnimation=false
[updates]
SuppressMessages=true
ProgressBarShowPercentComplete=true
UseProgressBar=true
Title=Installing Updates...
SubTitle=Do not turn off your computer
[system-upgrade]
SuppressMessages=true
ProgressBarShowPercentComplete=true
UseProgressBar=true
Title=Upgrading System...
SubTitle=Do not turn off your computer
[firmware-upgrade]
SuppressMessages=true
ProgressBarShowPercentComplete=true
UseProgressBar=true
Title=Upgrading Firmware...
SubTitle=Do not turn off your computer
[system-reset]
SuppressMessages=true
ProgressBarShowPercentComplete=true
UseProgressBar=true
Title=Resetting System...
SubTitle=Do not turn off your computer

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 MiB

View File

@@ -9,4 +9,7 @@ modules:
- installreaper.sh
- installrenoise.sh
- installsurgext.sh
- installbitwig.sh
- installdecentsampler.sh
- branding.sh

View File

@@ -2,6 +2,8 @@ modules:
- type: dnf
repos:
copr:
- bieszczaders/kernel-cachyos-lto
- bieszczaders/kernel-cachyos-addons
- patrickl/wine-tkg
- timlau/audio
- alternateved/eza

View File

@@ -1,7 +1,23 @@
modules:
- type: dnf
remove:
packages:
- zram-generator-defaults
- type: dnf
install:
packages:
# CachyOS kernel performance companion packages
# cachyos-settings: kernel tunables and sysctl optimisations from CachyOS
# cachyos-ksm-settings: Kernel Samepage Merging tuning (reduces RAM usage)
# scx-manager / scx-scheds / scx-tools: sched-ext schedulers;
# scx_lavd is ideal for low-latency realtime audio workloads
- cachyos-settings
- cachyos-ksm-settings
- scx-manager
- scx-scheds-git
- scx-tools-git
# useful tools
- zsh
- openssl
@@ -12,7 +28,6 @@ modules:
- alacritty
- ripgrep
- fd-find
- realtime-setup
- zoxide
- fzf

View File

@@ -1,8 +1,7 @@
modules:
- type: default-flatpaks
configurations:
- notify: true
scope: system
- scope: system
install:
- org.tenacityaudio.Tenacity
- app.zen_browser.zen

View File

@@ -3,13 +3,25 @@
# image will be published to ghcr.io/<user>/<name>
name: miasma-os
# description will be included in the image's metadata
description: An personal spin based on Bazzite targeted towards musicians and music producers inspired by Fedora Jam
description: An KDE based Universal Blue image targeted towards musicians and music producers inspired by Fedora Jam
# the base image to build on top of (FROM) and the version tag to use
base-image: ghcr.io/ublue-os/bazzite
image-version: latest # latest is also supported if you want new updates ASAP
base-image: quay.io/fedora-ostree-desktops/kinoite
image-version: 43
modules:
# Add CachyOS repos first so the kernel swap script can use them
- type: dnf
repos:
copr:
- bieszczaders/kernel-cachyos-lto
- bieszczaders/kernel-cachyos-addons
# Swap stock Fedora kernel for CachyOS LTO kernel
- type: script
scripts:
- cachyos-kernel.sh
- type: dnf
install:
packages: