From d340047d9d9c6f67c449f55c0fc2b90adfa9e776 Mon Sep 17 00:00:00 2001 From: cybrneko Date: Sat, 21 Mar 2026 12:17:37 -0500 Subject: [PATCH] initial commit --- .gitea/build.yml | 49 ++++++++++++++++ Containerfile | 76 +++++++++++++++++++++++++ branding/logo.png | Bin 0 -> 1103 bytes branding/neko_logo.png | Bin 0 -> 8894 bytes branding/neko_logo_outline.png | Bin 0 -> 11167 bytes branding/plymouth.script | 42 ++++++++++++++ branding/wallpaper.png | Bin 0 -> 44114 bytes files/neko-initramfs-firstboot.service | 14 +++++ flatpaks.txt | 1 + kickstarts/neko_system.ks | 35 ++++++++++++ packages.txt | 5 ++ 11 files changed, 222 insertions(+) create mode 100644 .gitea/build.yml create mode 100644 Containerfile create mode 100644 branding/logo.png create mode 100644 branding/neko_logo.png create mode 100644 branding/neko_logo_outline.png create mode 100644 branding/plymouth.script create mode 100644 branding/wallpaper.png create mode 100644 files/neko-initramfs-firstboot.service create mode 100644 flatpaks.txt create mode 100644 kickstarts/neko_system.ks create mode 100644 packages.txt diff --git a/.gitea/build.yml b/.gitea/build.yml new file mode 100644 index 0000000..a26c885 --- /dev/null +++ b/.gitea/build.yml @@ -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 }}" diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..0a542d8 --- /dev/null +++ b/Containerfile @@ -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 diff --git a/branding/logo.png b/branding/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5a797761dcade49ecd3f1380e7c4e5d43001d4 GIT binary patch literal 1103 zcmY+D4NO~A6vxkfeQPf;)>lEPorYK1kvNf55r%x|Yblgh9)xu)24%6p!uZeyLe z9?f$BMh6kt7<2(-V;fTvqH%MBfsV|8%9_qOK4yY3GKL*)F0jdlddrN7dAaA@d+xdC zfAh}o)@El}f&(>y01(Wln{C8blhJ_X#QxNKjwKFN+AJnCIU2Q}Ea)A^Od~*lL(rrA zHDt{errR4FL0YfP_|nuyXhL%}HcKUXWoi!{7d|bMRyni3F6V z=T-s)h4=@8Hn*At6%IZ#RWUDnQlX=7-kcu+kTvmUW6rLr+cz?Ih8ROf?v@^m9itT5 zEO>h$ze9OWVVQ}12306)F16A9&X{3&V%V-Ir`GD;UX>KHvb;ES_=||#+Z`Ldj?pKy z5@W)TO?&HPV$Ad}`nE?4VMR;tMV4qw0;DBKf5SS}zOpwMyQs$FlP&i}4=etL{q`MV z)#5Y*U0Qfw3nm>bq<|y`hY_S1I3EEfJG_ELCX|b&Seo`I5aUF12LV@u&k5KFzB<4N z)>Z>M?Q72+y>chTYqZ{a{c_lSo7ciCb)364 zsmW1LbgyrJqis3jR<>6|SNvh}?uePbBHr2RE#t%3n(O%Cr?C{?8TWO`?9hSv^@yHc zpFjDTDw^YT1HCE=7t>7r1TJGn%A{|Oy2^7hbYkajox63iyT%31g%A3^Ran1tmHP%& zT%%HZRy97jY4wl~e%{iM7JvA2$~cg5(w!FHbjk7^tL{c2h18h<9I6UEaS+}gXXjAn>R_0+N66*BeUGuw+Yc!j&L zX3r5vvu*jgg>?^(r81x`d#pU8(a;5?s0PvGrsUW7uXx?V&S zuj=`tr8MvE@#CjI(LdYMeDTEh&vV5gqW;90-=QlRHj$<$!<#DTdI8Ro)+fS(8KgM4 zLFl=Q943$^AVCMFJjf-0g>Z2cJ0kN0A*KM$5f&=ICjovDeD#1AWojBR^KyflVt)v- zXA`tShGz&`;o@eZ5)Iu1-DF5h1t|gQ4*~uQ353pzNH_p^9}){jojxA$hUDr)HV^Om^o#4B~2q literal 0 HcmV?d00001 diff --git a/branding/neko_logo.png b/branding/neko_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f11c9f7a8c6531df269f2eb723dea9feaf0b30e GIT binary patch literal 8894 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 literal 0 HcmV?d00001 diff --git a/branding/plymouth.script b/branding/plymouth.script new file mode 100644 index 0000000..1436231 --- /dev/null +++ b/branding/plymouth.script @@ -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(); +}); diff --git a/branding/wallpaper.png b/branding/wallpaper.png new file mode 100644 index 0000000000000000000000000000000000000000..f83ab86bf3a0b77a0a3213492e86e3fc45da570e GIT binary patch literal 44114 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 literal 0 HcmV?d00001 diff --git a/files/neko-initramfs-firstboot.service b/files/neko-initramfs-firstboot.service new file mode 100644 index 0000000..5c8b835 --- /dev/null +++ b/files/neko-initramfs-firstboot.service @@ -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 diff --git a/flatpaks.txt b/flatpaks.txt new file mode 100644 index 0000000..1943350 --- /dev/null +++ b/flatpaks.txt @@ -0,0 +1 @@ +io.gitlab.librewolf-community \ No newline at end of file diff --git a/kickstarts/neko_system.ks b/kickstarts/neko_system.ks new file mode 100644 index 0000000..36e87cc --- /dev/null +++ b/kickstarts/neko_system.ks @@ -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 \ No newline at end of file diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000..027c217 --- /dev/null +++ b/packages.txt @@ -0,0 +1,5 @@ +vim +steam +librewolf +wireplumber +qpwgraph