diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 45b1444..029d020 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -117,7 +117,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} oci: false extra-args: | - --target=${{ matrix.base_name }} + --target=builder # Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR. # https://github.com/macbre/push-to-ghcr/issues/12 diff --git a/Containerfile b/Containerfile index 6eaa34f..2fd3f92 100644 --- a/Containerfile +++ b/Containerfile @@ -1,30 +1,26 @@ -ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-silverblue}" +ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-base}" ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}" ARG SOURCE_IMAGE="${SOURCE_IMAGE:-$BASE_IMAGE_NAME-$IMAGE_FLAVOR}" ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-38}" -FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS kera +FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS builder +COPY usr /usr ARG IMAGE_NAME="${IMAGE_NAME}" ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}" -COPY etc /etc -COPY usr /usr - ADD packages.json /tmp/packages.json ADD build.sh /tmp/build.sh -RUN /tmp/build.sh && \ - pip install --prefix=/usr yafti && \ - systemctl unmask dconf-update.service && \ - systemctl enable dconf-update.service && \ - systemctl enable rpm-ostree-countme.service && \ - fc-cache -f /usr/share/fonts/inter && \ +RUN wget -qO /tmp/kera-desktop.tar.gz "https://gitlab.com/kerahq/releases/-/raw/main/Kera%20Desktop/Kera-Desktop-Linux-x64.tar.gz" && \ + mkdir -p /usr/share/kera-desktop-bin && \ + tar -xf /tmp/kera-desktop.tar.gz -C /usr/share/kera-desktop-bin && \ + /tmp/build.sh && \ rm -rf /tmp/* /var/* && \ + systemctl enable sddm && \ ostree container commit && \ mkdir -p /var/tmp && \ chmod -R 1777 /var/tmp -RUN rm -rf /tmp/* /var/* RUN ostree container commit diff --git a/README.md b/README.md index 4404795..e71069d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,17 @@ # kera -An alpha image of [Kera Desktop](https://desktop.kerahq.com/) \ No newline at end of file +An alpha image of [Kera Desktop](https://desktop.kerahq.com/) + +[![build](https://github.com/ublue-os/kera/actions/workflows/build.yml/badge.svg)](https://github.com/ublue-os/kera/actions/workflows/build.yml) + +![Kera Desktop Showcase Image](kera-showcase.png) + +To try this image, you can use an existing Fedora Silverblue install. + +## Rebase from Fedora Silverblue + + rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/kera-main:latest + +or if you have an NVIDIA GPU: + + rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/kera-nvidia:latest diff --git a/boot_menu.yml b/boot_menu.yml new file mode 100644 index 0000000..7632900 --- /dev/null +++ b/boot_menu.yml @@ -0,0 +1,48 @@ +ublue_variants: + - label: ublue-os/main + ks: /kickstart/ublue-os.ks + flavors: + - label: silverblue-main + info: GNOME + - label: kinoite-main + info: KDE + - label: vauxite-main + info: Xfce + - label: sericea-main + info: Sway + - label: cinnamon-main + info: Cinnamon + - label: lxqt-main + - label: mate-main + - label: deepin-main + - label: base-main + info: no DE + - label: ublue-os/nvidia + ks: /kickstart/ublue-os-nvidia.ks + subvariants: + - label: latest driver + - label: 470xx driver + suffix: -470 + flavors: + - label: silverblue-nvidia + info: GNOME + - label: kinoite-nvidia + info: KDE + - label: vauxite-nvidia + info: Xfce + - label: sericea-nvidia + info: Sway + - label: cinnamon-nvidia + info: Cinnamon + - label: lxqt-nvidia + - label: mate-nvidia + - label: deepin-nvidia + info: DDE + - label: base-nvidia + info: no DE + - label: ublue-os/bluefin + ks: /kickstart/ublue-os.ks + flavors: + - label: bluefin + - label: bluefin-nvidia + ks: /kickstart/ublue-os-nvidia.ks diff --git a/etc/dconf/db/local.d/01-ublue b/etc/dconf/db/local.d/01-ublue deleted file mode 100644 index c65b450..0000000 --- a/etc/dconf/db/local.d/01-ublue +++ /dev/null @@ -1,41 +0,0 @@ -[org/gnome/shell] -favorite-apps = ['org.gnome.Nautilus.desktop', 'org.gnome.Epiphany.desktop', 'org.gnome.Settings.desktop', 'org.gnome.Software.desktop'] -enabled-extensions = ['dash-to-dock@micxgx.gmail.com'] - -[org/gnome/desktop/background] -picture-uri='file:///usr/share/backgrounds/gnome/adwaita-l.webp' -picture-uri-dark='file:///usr/share/backgrounds/gnome/adwaita-d.webp' - -[org/gnome/desktop/interface] -font-name="Inter 11" -document-font-name="Inter 11" - -[org/gnome/desktop/wm/preferences] -title-bar-font="Inter 11" - -[org/gnome/desktop/peripherals/touchpad] -tap-to-click=true - -[org/gnome/mutter] -experimental-features=['scale-monitor-framebuffer'] - -[org/gnome/shell/extensions/dash-to-dock] -animation-time=0.15 -background-color='rgb(40,40,40)' -background-opacity=0.8 -click-action='focus-minimize-or-previews' -custom-background-color=true -customize-alphas=true -dash-max-icon-size=64 -dock-fixed=false -hide-delay=0.5 -intellihide-mode='ALL_WINDOWS' -max-alpha=0.8 -min-alpha=0.5 -show-icons-notifications-counter=false -show-mounts=false -show-trash=false -transparency-mode='DYNAMIC' - -[org/gtk/gtk4/settings/file-chooser] -sort-directories-first=true diff --git a/etc/dconf/profile/user b/etc/dconf/profile/user deleted file mode 100644 index ca120ee..0000000 --- a/etc/dconf/profile/user +++ /dev/null @@ -1,2 +0,0 @@ -user-db:user -system-db:local \ No newline at end of file diff --git a/etc/profile.d/beyond-firstboot.sh b/etc/profile.d/beyond-firstboot.sh deleted file mode 100644 index 30cb221..0000000 --- a/etc/profile.d/beyond-firstboot.sh +++ /dev/null @@ -1,6 +0,0 @@ -if test "$(id -u)" -gt "0" && test -d "$HOME"; then - if test ! -e "$HOME"/.config/autostart/beyond-firstboot.desktop; then - mkdir -p "$HOME"/.config/autostart - cp -f /etc/skel.d/.config/autostart/beyond-firstboot.desktop "$HOME"/.config/autostart - fi -fi diff --git a/etc/profile.d/nix-app-icons.sh b/etc/profile.d/nix-app-icons.sh deleted file mode 100644 index ba684ac..0000000 --- a/etc/profile.d/nix-app-icons.sh +++ /dev/null @@ -1 +0,0 @@ -XDG_DATA_DIRS="$HOME/.nix-profile/share:/nix/var/nix/profiles/default/share:$XDG_DATA_DIRS" \ No newline at end of file diff --git a/etc/skel.d/.config/autostart/beyond-firstboot.desktop b/etc/skel.d/.config/autostart/beyond-firstboot.desktop deleted file mode 100644 index dde2fbc..0000000 --- a/etc/skel.d/.config/autostart/beyond-firstboot.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=Beyond First Boot Setup -Comment=Set up Beyond's apps -Exec=/usr/bin/yafti /etc/yafti.yml -Icon=org.gnome.Terminal -Type=Application -Categories=Utility;System; -Name[en_US]=startup diff --git a/etc/systemd/system/dconf-update.service b/etc/systemd/system/dconf-update.service deleted file mode 100644 index 7c642d0..0000000 --- a/etc/systemd/system/dconf-update.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Update the dconf database onboot -Documentation=https://github.com/coreos/rpm-ostree/issues/1944 - -[Service] -Type=oneshot -ExecStart=/usr/bin/dconf update - -[Install] -WantedBy=multi-user.target \ No newline at end of file diff --git a/etc/yafti.yml b/etc/yafti.yml deleted file mode 100644 index 83ea7e6..0000000 --- a/etc/yafti.yml +++ /dev/null @@ -1,144 +0,0 @@ -title: Welcome to Beyond -properties: - mode: "run-on-change" -screens: - first-screen: - source: yafti.screen.title - values: - title: "Welcome to Beyond (Alpha)" - icon: "/usr/share/icons/hicolor/scalable/apps/org.gnome.Settings.svg" - description: | - Pick some apps to get started - can-we-modify-your-flatpaks: - source: yafti.screen.consent - values: - title: Install Apps - condition: - run: flatpak remotes --system | grep fedora - description: | - WARNING: This will modify your Flatpaks if you are rebasing! If you do not want to do this exit the installer. - actions: - - run: /usr/lib/fedora-third-party/fedora-third-party-opt-out - - run: /usr/bin/fedora-third-party disable - - run: flatpak remote-delete fedora --force - - run: flatpak remove --system --noninteractive --all - - run: flatpak remote-add --system --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - - run: flatpak remote-modify --system flathub --no-filter --title="Flathub (System)" - - run: flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo - applications: - source: yafti.screen.package - values: - title: Install Apps - show_terminal: true - package_manager: yafti.plugin.flatpak - groups: - Core: - description: GNOME Apps - default: true - packages: - - Calculator: - package: org.gnome.Calculator - system: true - user: false - - Calendar: - package: org.gnome.Calendar - system: true - user: false - - Characters: - package: org.gnome.Characters - system: true - user: false - - Clocks: - package: org.gnome.clocks - system: true - user: false - - Contacts: - package: org.gnome.Contacts - system: true - user: false - - Document Viewer: - package: org.gnome.Evince - system: true - user: false - - Fonts: - package: org.gnome.font-viewer - system: true - user: false - - Loupe: - package: org.gnome.Loupe - system: true - user: false - - Maps: - package: org.gnome.Maps - system: true - user: false - - Music: - package: org.gnome.Music - system: true - user: false - - Nautilus Preview: - package: org.gnome.NautilusPreviewer - system: true - user: false - - Snapshot: - package: org.gnome.Snapshot - system: true - user: false - - Text Editor: - package: org.gnome.TextEditor - system: true - user: false - - Videos: - package: org.gnome.Totem - system: true - user: false - - Weather: - package: org.gnome.Weather - system: true - user: false - - Web: - package: org.gnome.Epiphany - system: true - user: false - Utilities: - description: Potentially useful apps for advanced users - default: false - packages: - - Boxes: - package: org.gnome.Boxes - system: false - user: true - - Connections: - package: org.gnome.Connections - system: false - user: true - - Disk Usage Analyzer: - package: org.gnome.baobab - system: false - user: true - - Extension Manager: - package: com.mattjakeman.ExtensionManager - system: false - user: true - - Flatseal: - package: com.github.tchx84.Flatseal - system: false - user: true - - Logs: - package: org.gnome.Logs - system: false - user: true - final-screen: - source: yafti.screen.title - values: - title: "All done!" - icon: "/path/to/icon" - links: - - "Install More Apps": - run: /usr/bin/gnome-software - - "Website": - run: /usr/bin/xdg-open https://ublue.it - - "Join the Discord Community": - run: /usr/bin/xdg-open https://discord.gg/XjG48C7VHx - description: | - Thanks for trying Beyond, we hope you enjoy it! diff --git a/etc/yum.repos.d/tailscale.repo b/etc/yum.repos.d/tailscale.repo deleted file mode 100644 index 5d1dd85..0000000 --- a/etc/yum.repos.d/tailscale.repo +++ /dev/null @@ -1,8 +0,0 @@ -[tailscale-stable] -name=Tailscale stable -baseurl=https://pkgs.tailscale.com/stable/fedora/$basearch -enabled=1 -type=rpm -repo_gpgcheck=0 -gpgcheck=0 -gpgkey=https://pkgs.tailscale.com/stable/fedora/repo.gpg diff --git a/kera-showcase.png b/kera-showcase.png new file mode 100644 index 0000000..5a1ac30 Binary files /dev/null and b/kera-showcase.png differ diff --git a/packages.json b/packages.json index 8d47175..e826b4a 100644 --- a/packages.json +++ b/packages.json @@ -2,20 +2,37 @@ "all": { "include": { "all": [ - "gnome-console", - "gnome-shell-extension-dash-to-dock", - "python3-pip" + "cage", + "sddm", + "wireplumber", + "pipewire-gstreamer", + "pipewire-pulseaudio", + "pipewire-alsa", + "pipewire-jack-audio-connection-kit", + "pipewire-plugin-libcamera", + "pavucontrol", + "gnome-software", + "nm-connection-editor", + "NetworkManager-adsl", + "NetworkManager-bluetooth", + "NetworkManager-ppp", + "NetworkManager-wifi", + "NetworkManager-wwan", + "blueman", + "polkit-gnome", + "qt5-qtwayland" ] }, "exclude": { - "all": [ - "gnome-terminal", - "gnome-terminal-nautilus", - "htop", - "firefox", - "firefox-langpacks", - "nvtop" - ] + "all": [] + } + }, + "37": { + "include": { + "all": [] + }, + "exclude": { + "all": [] } }, "38": { diff --git a/usr/bin/kera-session b/usr/bin/kera-session new file mode 100755 index 0000000..748e442 --- /dev/null +++ b/usr/bin/kera-session @@ -0,0 +1,5 @@ +#!/bin/sh +cage Xwayland :1 & +sleep 1 +export DISPLAY=:1 +DISPLAY=:1 /usr/share/kera-desktop-bin/Kera-Desktop diff --git a/usr/bin/ublue-nix-install b/usr/bin/ublue-nix-install deleted file mode 100755 index ad82dae..0000000 --- a/usr/bin/ublue-nix-install +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -# original script here: https://github.com/dnkmmr69420/nix-with-selinux/blob/main/silverblue-installer.sh -# thanks dnkmmr! - -sudo sleep 2 -echo "Adding SELinux content to /nix" -sudo semanage fcontext -a -t etc_t '/nix/store/[^/]+/etc(/.*)?' ; sudo semanage fcontext -a -t lib_t '/nix/store/[^/]+/lib(/.*)?' ; sudo semanage fcontext -a -t systemd_unit_file_t '/nix/store/[^/]+/lib/systemd/system(/.*)?' ; sudo semanage fcontext -a -t man_t '/nix/store/[^/]+/man(/.*)?' ; sudo semanage fcontext -a -t bin_t '/nix/store/[^/]+/s?bin(/.*)?' ; sudo semanage fcontext -a -t usr_t '/nix/store/[^/]+/share(/.*)?' ; sudo semanage fcontext -a -t var_run_t '/nix/var/nix/daemon-socket(/.*)?' ; sudo semanage fcontext -a -t usr_t '/nix/var/nix/profiles(/per-user/[^/]+)?/[^/]+' -sleep 1 -sudo mkdir /var/lib/nix -sleep 1 -echo "Adding SELinux content to /var/lib/nix" -sudo semanage fcontext -a -t etc_t '/var/lib/nix/store/[^/]+/etc(/.*)?' ; sudo semanage fcontext -a -t lib_t '/var/lib/nix/store/[^/]+/lib(/.*)?' ; sudo semanage fcontext -a -t systemd_unit_file_t '/var/lib/nix/store/[^/]+/lib/systemd/system(/.*)?' ; sudo semanage fcontext -a -t man_t '/var/lib/nix/store/[^/]+/man(/.*)?' ; sudo semanage fcontext -a -t bin_t '/var/lib/nix/store/[^/]+/s?bin(/.*)?' ; sudo semanage fcontext -a -t usr_t '/var/lib/nix/store/[^/]+/share(/.*)?' ; sudo semanage fcontext -a -t var_run_t '/var/lib/nix/var/nix/daemon-socket(/.*)?' ; sudo semanage fcontext -a -t usr_t '/var/lib/nix/var/nix/profiles(/per-user/[^/]+)?/[^/]+' -echo "Creating service files" -sleep 1 -sleep 1 -echo "Creating rootfs mkdir service" - -sudo tee /etc/systemd/system/mkdir-rootfs@.service < - - - - uBlue Lagoon - /usr/share/backgrounds/lagoon.jpg - zoom - solid - #000000 - #ffffff - - diff --git a/usr/share/ublue-os/just/60-custom.just b/usr/share/ublue-os/just/60-custom.just deleted file mode 100644 index c8c23df..0000000 --- a/usr/share/ublue-os/just/60-custom.just +++ /dev/null @@ -1,7 +0,0 @@ -# vim: set ft=make : - -install-beyond-extensions: - pip install --upgrade gnome-extensions-cli - gext install replace-activities-label@leleat-on-github -yafti: - yafti /etc/yafti.yml diff --git a/usr/share/wayland-sessions/kera-desktop.desktop b/usr/share/wayland-sessions/kera-desktop.desktop new file mode 100644 index 0000000..33b4ae7 --- /dev/null +++ b/usr/share/wayland-sessions/kera-desktop.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Name=Kera Desktop on Weston +Comment=Kera Desktop Session On Weston +Exec=/usr/bin/kera-session +Type=Application diff --git a/workarounds.sh b/workarounds.sh deleted file mode 100755 index 6b469a3..0000000 --- a/workarounds.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -set -oeux pipefail - -# alternatives cannot create symlinks on its own during a container build -ln -sf /usr/bin/ld.bfd /etc/alternatives/ld && ln -sf /etc/alternatives/ld /usr/bin/ld