generated from ublue-os/image-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·136 lines (117 loc) · 3.71 KB
/
build.sh
File metadata and controls
executable file
·136 lines (117 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/bash
set -ouex pipefail
# Copy System Files onto root
rsync -rvK /ctx/sys_files/ /
### Install packages
# Packages can be installed from any enabled yum repo on the image.
# RPMfusion repos are available by default in ublue main images
# List of rpmfusion packages can be found here:
# https://mirrors.rpmfusion.org/mirrorlist?path=free/fedora/updates/39/x86_64/repoview/index.html&protocol=https&redirect=1
# this installs a package from fedora repos
added_packages=(
adw-gtk3-theme # gtk3 port of the gtk4 libadwaita theme
gnome-tweaks
# Userspace sensor support
lm_sensors
# Container and virtualization tools
qemu # Virtualization
qemu-user-static # Usermode emulation support (also usable for running containers from other architectures)
qemu-user-binfmt
virt-manager
gnome-boxes
incus #LXC successor for VM and container management
# docker is handled separately from copr
podman
podman-compose
podman-machine
distrobox
# critical system tools
git
git-subtree
git-credential-libsecret
git-credential-oauth
wl-clipboard
just
zsh
fish
fastfetch
wireguard-tools
# tmux
# ripgrep
# fd-find
# bat
# git-delta
# fzf
# btop
# micro
# p7zip
# p7zip-plugins
# rclone
# restic
# syncthing
# Devices
steam-devices
# Codecs
# ublue base handles all the futzing about with rpmfusion for us
# mozilla-openh264 # Disabled while I try ublue's flatpak approach
# Shell extension
gnome-shell-extension-user-theme
gnome-shell-extension-caffeine
gnome-shell-extension-launch-new-instance
gnome-shell-extension-appindicator
gnome-shell-extension-just-perfection
gnome-shell-extension-blur-my-shell
)
removed_packages=(
# Fedora bookmarks and web stuff
fedora-bookmarks
fedora-chromium-config
fedora-chromium-config-gnome
# Leave it in, just delete the repos with flatpak-sync if desired
# fedora-flathub-remote # Fedora filtered flathub (we'll use normal flathub)
fedora-workstation-repositories # Fedora selected 3rd party repos (we'll use rpmfusion instead)
# Extensions
# gnome-shell-extension-apps-menu
# gnome-shell-extension-places-menu
# gnome-shell-extension-window-list
gnome-shell-extension-background-logo
# Replace system monitor with MissionCenter
gnome-system-monitor
# Replace gnome extensions with extension manager flatpak
gnome-extensions-app
# Remove intro tour
gnome-tour
# Remove basic help app
yelp
# Remove htop (added by ublue)
# htop
)
dnf5 install -y "${added_packages[@]}"
dnf5 rm -y "${removed_packages[@]}"
# Docker setup take from ublue dx
if ! test -e /etc/yum.repos.d/docker-ce.repo; then
dnf5 config-manager addrepo --from-repofile=https://download.docker.com/linux/fedora/docker-ce.repo
fi
sed -i "s/enabled=.*/enabled=0/g" /etc/yum.repos.d/docker-ce.repo
dnf5 -y install --enablerepo=docker-ce-stable \
containerd.io \
docker-buildx-plugin \
docker-ce \
docker-ce-cli \
docker-compose-plugin \
docker-model-plugin
# Install brew via the ublue copr
dnf5 -y copr enable ublue-os/packages
dnf5 install -y ublue-brew
dnf5 -y copr disable ublue-os/packages
# Protonvpn
wget "https://repo.protonvpn.com/fedora-$(cat /etc/fedora-release | cut -d' ' -f 3)-stable/protonvpn-stable-release/protonvpn-stable-release-1.0.3-1.noarch.rpm"
dnf5 install -y ./protonvpn-stable-release-1.0.3-1.noarch.rpm
rm ./protonvpn-stable-release-1.0.3-1.noarch.rpm
dnf5 install -y proton-vpn-gnome-desktop
just --justfile=/ctx/distro-utils/distrobox-auto/justfile install
just --justfile=/ctx/distro-utils/flatpak-sync/justfile install
cp /ctx/distro-utils/jetbrains-installer/jetbrains-ide-setup.sh /usr/bin/jetrbains-ide-setup
# /ctx/distro-utils/nerd-fonts-installer/nerd-font-install.sh FiraCode Meslo # TODO: swap to brew fonts?
#### Example for enabling a System Unit File
# systemctl enable podman.socket