initial commit

This commit is contained in:
2026-03-21 12:17:37 -05:00
commit d340047d9d
11 changed files with 222 additions and 0 deletions

49
.gitea/build.yml Normal file
View File

@@ -0,0 +1,49 @@
name: build-os
on:
push:
branches:
- main
- testing
workflow_dispatch:
env:
IMAGE: gitea.nekonetwork.io/cybrneko/neko-system
REGISTRY: gitea.nekonetwork.io
jobs:
build-image:
runs-on: podman-host
steps:
- uses: actions/checkout@v4
- name: Set tag based on branch
id: tag
run: |
if [ "${GITHUB_REF_NAME}" = "main" ]; then
echo "tag=latest" >> $GITHUB_OUTPUT
else
echo "tag=testing" >> $GITHUB_OUTPUT
fi
- name: Verify tools
run: |
podman --version
sudo -n podman --version
- name: Log in to registry
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASS: ${{ secrets.REGISTRY_PASS }}
run: |
echo "$REGISTRY_PASS" | sudo -n podman login "$REGISTRY" \
-u "$REGISTRY_USER" --password-stdin
- name: Build image
run: |
sudo -n podman build -f Containerfile -t "$IMAGE:${{ steps.tag.outputs.tag }}" .
- name: Push image
run: |
sudo -n podman push "$IMAGE:${{ steps.tag.outputs.tag }}"

76
Containerfile Normal file
View File

@@ -0,0 +1,76 @@
ARG FEDORA_VERSION=43
FROM quay.io/fedora/fedora-silverblue:${FEDORA_VERSION}
ARG FEDORA_VERSION
COPY packages.txt /tmp/packages.txt
COPY branding/wallpaper.png /usr/share/backgrounds/neko-wallpaper.png
COPY branding/logo.png /usr/share/plymouth/themes/neko/logo.png
COPY branding/plymouth.script /usr/share/plymouth/themes/neko/neko.script
COPY files/neko-initramfs-firstboot.service /usr/lib/systemd/system/neko-initramfs-firstboot.service
RUN mkdir -p /usr/share/plymouth/themes/neko && \
printf '%s\n' \
"[Plymouth Theme]" \
"Name=neko" \
"Description=neko system boot splash" \
"ModuleName=script" \
\
"[script]" \
"ImageDir=/usr/share/plymouth/themes/neko" \
"ScriptFile=/usr/share/plymouth/themes/neko/neko.script" \
> /usr/share/plymouth/themes/neko/neko.plymouth
RUN dnf install -y plymouth-plugin-script && \
dnf clean all && \
plymouth-set-default-theme neko
RUN systemctl enable neko-initramfs-firstboot.service
RUN dnf install -y \
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VERSION}.noarch.rpm \
&& dnf clean all
RUN dnf config-manager addrepo --from-repofile=https://repo.librewolf.net/librewolf.repo
RUN dnf remove -y firefox
RUN dnf install -y $(cat /tmp/packages.txt) && \
dnf clean all
RUN systemctl enable bootc-fetch-apply-updates.timer
# Create dconf profile
RUN mkdir -p /etc/dconf/profile /etc/dconf/db/local.d && \
printf '%s\n' \
'user-db:user' \
'system-db:local' \
> /etc/dconf/profile/user
# GNOME defaults
RUN printf '%s\n' \
'[org/gnome/desktop/wm/preferences]' \
"button-layout='close,minimize,maximize:appmenu'" \
> /etc/dconf/db/local.d/00-neko-gnome && \
dconf update
RUN mkdir -p /etc/dconf/db/local.d && \
printf '%s\n' \
'[org/gnome/desktop/background]' \
"picture-uri='file:///usr/share/backgrounds/neko-wallpaper.png'" \
"picture-uri-dark='file:///usr/share/backgrounds/neko-wallpaper.png'" \
> /etc/dconf/db/local.d/01-neko-background
RUN printf '%s\n' \
"NAME=\"neko//system\"" \
"PRETTY_NAME=\"neko//system ${FEDORA_VERSION}\"" \
"ID=fedora" \
"VERSION_ID=\"${FEDORA_VERSION}\"" \
"VERSION=\"${FEDORA_VERSION}\"" \
"ID_LIKE=\"fedora\"" \
"ANSI_COLOR=\"0;38;2;60;110;180\"" \
"HOME_URL=\"https://fedoraproject.org/\"" \
"DOCUMENTATION_URL=\"https://docs.fedoraproject.org/\"" \
"SUPPORT_URL=\"https://ask.fedoraproject.org/\"" \
"BUG_REPORT_URL=\"https://bugzilla.redhat.com/\"" \
> /etc/os-release

BIN
branding/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
branding/neko_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

42
branding/plymouth.script Normal file
View File

@@ -0,0 +1,42 @@
logo = Image("logo.png");
logo_sprite = Sprite(logo);
logo_sprite.SetX(Window.GetWidth() / 2 - logo.GetWidth() / 2);
logo_sprite.SetY(Window.GetHeight() * 0.38);
logo_sprite.SetZ(10);
prompt_sprite = NULL;
prompt_image = NULL;
fun show_text(txt) {
prompt_image = Image.Text(txt, 1.0, 1.0, 1.0);
if (prompt_sprite == NULL)
prompt_sprite = Sprite(prompt_image);
else
prompt_sprite.SetImage(prompt_image);
prompt_sprite.SetX(Window.GetWidth() / 2 - prompt_image.GetWidth() / 2);
prompt_sprite.SetY(Window.GetHeight() * 0.78);
prompt_sprite.SetZ(100);
prompt_sprite.SetOpacity(1);
}
fun clear_text() {
if (prompt_sprite != NULL)
prompt_sprite.SetOpacity(0);
}
Plymouth.SetDisplayPasswordFunction(fun (prompt, bullets, unused) {
show_text(prompt + " " + bullets);
});
Plymouth.SetHidePasswordFunction(fun () {
clear_text();
});
Plymouth.SetDisplayQuestionFunction(fun (prompt, entry, unused) {
show_text(prompt + " " + entry);
});
Plymouth.SetHideQuestionFunction(fun () {
clear_text();
});

BIN
branding/wallpaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -0,0 +1,14 @@
[Unit]
Description=Enable regenerated initramfs for neko theme
After=multi-user.target
ConditionPathExists=!/var/lib/neko-initramfs-done
[Service]
Type=oneshot
ExecStart=/usr/bin/rpm-ostree initramfs --enable
ExecStart=/usr/bin/touch /var/lib/neko-initramfs-done
ExecStart=/usr/bin/systemctl disable neko-initramfs-firstboot.service
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

1
flatpaks.txt Normal file
View File

@@ -0,0 +1 @@
io.gitlab.librewolf-community

35
kickstarts/neko_system.ks Normal file
View File

@@ -0,0 +1,35 @@
#version=RHEL8
lang en_US.UTF-8
keyboard us
timezone America/Chicago --isUtc
# Root user locked for security
rootpw --lock
# First boot wizard enabled for user creation
firstboot --enable
# Repositories (Silverblue base)
repo --name=fedora --baseurl=https://download.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/
# Packages to include in the image
%packages
@core
vlc
gimp
# Add more RPMs here if desired
%end
# Post-install customizations
%post
# Branding - wallpaper example
mkdir -p /usr/share/backgrounds/
cp /tmp/branding/wallpaper.png /usr/share/backgrounds/
# Set default GNOME wallpaper
gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/wallpaper.png"
# Install Flatpaks (non-interactive)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --noninteractive flathub io.gitlab.librewolf-community
flatpak install --noninteractive flathub org.rncbc.qpwgraph
%end

5
packages.txt Normal file
View File

@@ -0,0 +1,5 @@
vim
steam
librewolf
wireplumber
qpwgraph