Skip to content

Commit 4eb997a

Browse files
committed
feat: ublue stuff
1 parent 0484dac commit 4eb997a

File tree

7 files changed

+143
-7
lines changed

7 files changed

+143
-7
lines changed

README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# blue95   [![bluebuild build badge](https://github.com/ledif/blue95/actions/workflows/build.yml/badge.svg)](https://github.com/ledif/blue95/actions/workflows/build.yml)
22

3-
> A workstation for your childhood home's computer room.
3+
> A desktop for your childhood home's computer room.
44
55
Blue95 is a modern Fedora Atomic Desktop using the Xfce Desktop environment with the [Chicago95](https://github.com/grassmunk/Chicago95) theme.
6-
Its goal is to provide a modern and lightweight Linux experience with looks that remind us of a bygone era of computing.
6+
Its goal is to provide a modern and lightweight Linux experience with that reminds us of a bygone era of computing.
77

88
## Installation
99

@@ -31,7 +31,7 @@ cosign verify --key cosign.pub ghcr.io/ledif/blue95
3131
```
3232

3333
## Shoutouts
34-
- [@grassmunk](https://github.com/grassmunk/Chicago95) and [@dominichayesferen](https://github.com/grassmunk/Chicago95) for [Chicago95](https://github.com/grassmunk/Chicago95) and [Chicagofier](https://github.com/dominichayesferen/Chicagofier) respectively
35-
- [BlueBuild](https://github.com/blue-build), [Universal Blue](https://github.com/ublue-os) and Fedora
36-
- The XFCE team
34+
- [@grassmunk](https://github.com/grassmunk/Chicago95)/[@dominichayesferen](https://github.com/grassmunk/Chicago95) for [Chicago95](https://github.com/grassmunk/Chicago95) and [Chicagofier](https://github.com/dominichayesferen/Chicagofier) respectively
35+
- [BlueBuild](https://github.com/blue-build), [Universal Blue](https://github.com/ublue-os) and [Fedora](https://fedoraproject.org)
36+
- The [Xfce](https://www.xfce.org/) team
3737

files/scripts/02-defaults.sh

-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@ set -xueo pipefail
44

55
ln -s /usr/bin/nvim /usr/bin/vim
66

7-
87
# Hide some apps
98
rm /usr/share/applications/xfce4-settings-editor.desktop

files/scripts/03-ublue.json

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
{
2+
"all": {
3+
"include": {
4+
"all": [
5+
"alsa-firmware",
6+
"android-udev-rules",
7+
"apr",
8+
"apr-util",
9+
"distrobox",
10+
"ffmpeg",
11+
"ffmpeg-libs",
12+
"ffmpegthumbnailer",
13+
"flatpak-spawn",
14+
"fuse",
15+
"fzf",
16+
"google-noto-sans-balinese-fonts",
17+
"google-noto-sans-cjk-fonts",
18+
"google-noto-sans-javanese-fonts",
19+
"google-noto-sans-sundanese-fonts",
20+
"grub2-tools-extra",
21+
"heif-pixbuf-loader",
22+
"htop",
23+
"intel-vaapi-driver",
24+
"just",
25+
"kernel-tools",
26+
"libcamera",
27+
"libcamera-tools",
28+
"libcamera-gstreamer",
29+
"libcamera-ipa",
30+
"libfdk-aac",
31+
"libratbag-ratbagd",
32+
"libva-utils",
33+
"lshw",
34+
"net-tools",
35+
"nvme-cli",
36+
"nvtop",
37+
"openrgb-udev-rules",
38+
"openssl",
39+
"pam-u2f",
40+
"pam_yubico",
41+
"pamu2fcfg",
42+
"pipewire-libs-extra",
43+
"pipewire-plugin-libcamera",
44+
"powerstat",
45+
"smartmontools",
46+
"squashfs-tools",
47+
"symlinks",
48+
"tcpdump",
49+
"tmux",
50+
"traceroute",
51+
"wireguard-tools",
52+
"yubikey-manager",
53+
"zstd"
54+
]
55+
},
56+
"exclude": {
57+
"all": [
58+
"fdk-aac-free",
59+
"ffmpeg-free",
60+
"google-noto-sans-cjk-vf-fonts",
61+
"libavcodec-free",
62+
"libavdevice-free",
63+
"libavfilter-free",
64+
"libavformat-free",
65+
"libavutil-free",
66+
"libpostproc-free",
67+
"libswresample-free",
68+
"libswscale-free",
69+
"default-fonts-cjk-sans"
70+
]
71+
}
72+
}
73+
}

files/scripts/03-ublue.sh

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/bin/sh
2+
3+
set -ouex pipefail
4+
5+
RELEASE="$(rpm -E %fedora)"
6+
7+
curl -Lo /etc/yum.repos.d/negativo17-fedora-multimedia.repo https://negativo17.org/repos/fedora-multimedia.repo
8+
sed -i '0,/enabled=1/{s/enabled=1/enabled=1\npriority=90/}' /etc/yum.repos.d/negativo17-fedora-multimedia.repo
9+
10+
curl -Lo /etc/yum.repos.d/_copr_ublue-os_staging.repo https://copr.fedorainfracloud.org/coprs/ublue-os/staging/repo/fedora-"${RELEASE}"/ublue-os-staging-fedora-"${RELEASE}".repo
11+
12+
# From https://github.com/ublue-os/main/blob/main/packages.sh
13+
14+
# build list of all packages requested for inclusion
15+
INCLUDED_PACKAGES=($(jq -r "[(.all.include | (.all, select(.\"$IMAGE_NAME\" != null).\"$IMAGE_NAME\")[]), \
16+
(select(.\"$RELEASE\" != null).\"$RELEASE\".include | (.all, select(.\"$IMAGE_NAME\" != null).\"$IMAGE_NAME\")[])] \
17+
| sort | unique[]" 03-ublue.json))
18+
19+
# build list of all packages requested for exclusion
20+
EXCLUDED_PACKAGES=($(jq -r "[(.all.exclude | (.all, select(.\"$IMAGE_NAME\" != null).\"$IMAGE_NAME\")[]), \
21+
(select(.\"$RELEASE\" != null).\"$RELEASE\".exclude | (.all, select(.\"$IMAGE_NAME\" != null).\"$IMAGE_NAME\")[])] \
22+
| sort | unique[]" 03-ublue.json))
23+
24+
25+
# ensure exclusion list only contains packages already present on image
26+
if [[ "${#EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then
27+
EXCLUDED_PACKAGES=($(rpm -qa --queryformat='%{NAME} ' ${EXCLUDED_PACKAGES[@]}))
28+
fi
29+
30+
# simple case to install where no packages need excluding
31+
if [[ "${#INCLUDED_PACKAGES[@]}" -gt 0 && "${#EXCLUDED_PACKAGES[@]}" -eq 0 ]]; then
32+
rpm-ostree install \
33+
${INCLUDED_PACKAGES[@]}
34+
35+
# install/excluded packages both at same time
36+
elif [[ "${#INCLUDED_PACKAGES[@]}" -gt 0 && "${#EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then
37+
rpm-ostree override remove \
38+
${EXCLUDED_PACKAGES[@]} \
39+
$(printf -- "--install=%s " ${INCLUDED_PACKAGES[@]})
40+
41+
else
42+
echo "No packages to install."
43+
44+
fi
45+
46+
# check if any excluded packages are still present
47+
# (this can happen if an included package pulls in a dependency)
48+
EXCLUDED_PACKAGES=($(jq -r "[(.all.exclude | (.all, select(.\"$IMAGE_NAME\" != null).\"$IMAGE_NAME\")[]), \
49+
(select(.\"$RELEASE\" != null).\"$RELEASE\".exclude | (.all, select(.\"$IMAGE_NAME\" != null).\"$IMAGE_NAME\")[])] \
50+
| sort | unique[]" 03-ublue.json))
51+
52+
if [[ "${#EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then
53+
EXCLUDED_PACKAGES=($(rpm -qa --queryformat='%{NAME} ' ${EXCLUDED_PACKAGES[@]}))
54+
fi
55+
56+
# remove any excluded packages which are still present on image
57+
if [[ "${#EXCLUDED_PACKAGES[@]}" -gt 0 ]]; then
58+
rpm-ostree override remove \
59+
${EXCLUDED_PACKAGES[@]}
60+
fi
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
QT_QPA_PLATFORMTHEME DEFAULT=qt5ct

files/system/etc/skel/.config/autostart/chicago95-startup.desktop

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Type=Application
33
Name=Chicago95 startup sound
4-
Exec=play /usr/share/sounds/Chicago95/startup.ogg
4+
Exec=ogg123 /usr/share/sounds/Chicago95/startup.ogg
55
NoDisplay=true
66
Terminal=false
77
Categories=

recipes/recipe.yml

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ modules:
2121
- type: script
2222
scripts:
2323
- 02-defaults.sh
24+
- 03-ublue.sh
2425
- 10-install-appimages.sh
2526
- 20-chicago95.sh
2627

@@ -31,6 +32,8 @@ modules:
3132
- btop
3233
- tmux
3334
- fastfetch
35+
- vorbis-tools
36+
- qt5-qtstyleplugins
3437
remove:
3538
- firefox
3639
- firefox-langpacks

0 commit comments

Comments
 (0)