Compare commits
14 Commits
1eefc90924
...
staging
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f371fba55e | ||
|
|
ac7d14e98a | ||
|
|
9a06941829 | ||
|
|
a3f1e0843a | ||
|
|
a936328c28 | ||
|
|
3b7a1e440f | ||
|
|
09760ca4a9 | ||
|
|
e91adc45ce | ||
|
|
e43e54dba9 | ||
|
|
17ece6cfde | ||
|
|
03bc0c3bba | ||
|
|
e00db9e3fa | ||
|
|
b924a4a4d8 | ||
|
|
a78782e54d |
BIN
docs/wallpapers/6293645.jpg
Normal file
|
After Width: | Height: | Size: 957 KiB |
BIN
docs/wallpapers/8.jpg
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 4.5 MiB |
|
Before Width: | Height: | Size: 11 MiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 5.0 MiB |
BIN
files/assets/wallpapers/6293645.jpg
Normal file
|
After Width: | Height: | Size: 957 KiB |
BIN
files/assets/wallpapers/8.jpg
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 387 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 4.5 MiB |
|
Before Width: | Height: | Size: 576 KiB |
|
Before Width: | Height: | Size: 234 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 5.0 MiB |
@@ -1,6 +1,14 @@
|
||||
#!/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
|
||||
@@ -17,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)
|
||||
"
|
||||
|
||||
79
files/scripts/cachyos-kernel.sh
Normal 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/*
|
||||
BIN
files/system/usr/share/wallpapers/6293645.jpg
Normal file
|
After Width: | Height: | Size: 957 KiB |
BIN
files/system/usr/share/wallpapers/8.jpg
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 387 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 4.5 MiB |
|
Before Width: | Height: | Size: 576 KiB |
|
Before Width: | Height: | Size: 234 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 5.0 MiB |
@@ -2,6 +2,8 @@ modules:
|
||||
- type: dnf
|
||||
repos:
|
||||
copr:
|
||||
- bieszczaders/kernel-cachyos-lto
|
||||
- bieszczaders/kernel-cachyos-addons
|
||||
- patrickl/wine-tkg
|
||||
- timlau/audio
|
||||
- alternateved/eza
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||