Skip to content

Instantly share code, notes, and snippets.

@kavanmevada
Last active November 10, 2020 16:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kavanmevada/ad643d4e221442cecbb55de2eaa4fb6e to your computer and use it in GitHub Desktop.
Save kavanmevada/ad643d4e221442cecbb55de2eaa4fb6e to your computer and use it in GitHub Desktop.
#-----------------------------------------
# Installing Required Tools
#-----------------------------------------
sudo apt-get update
lb config \
-d sid \
-a amd64 \
--apt-recommends false \
--apt-options '--yes -oAPT::Default-Release=unstable' \
--debian-installer live \
--initsystem systemd \
--debian-installer-distribution daily \
--archive-areas "main contrib non-free" \
--bootappend-live "boot=live components quiet splash config hostname=debian username=live locales=en_US.UTF-8" \
--binary-images iso-hybrid
mkdir -p config/includes.chroot/usr/share/{backgrounds,gnome-background-properties,glib-2.0/schemas}
echo "deb http://deb.debian.org/debian/ buster main contrib non-free" >> config/archives/desktop.list.chroot
echo "deb http://deb.debian.org/debian/ sid main contrib non-free" >> config/archives/sid.list.chroot
echo "deb http://deb.debian.org/debian/ experimental main contrib non-free" >> config/archives/experimental.list.chroot
cat >> config/archives/experimental.pref.chroot << EOF
Package: plymouth plymouth-themes plymouth-label
Pin: release n=experimental
Pin-Priority: 900
EOF
#----------------------------------------
# Adding Wallpaper
#----------------------------------------
mkdir -p config/includes.chroot/usr/share/backgrounds/gnome
curl -o config/includes.chroot/usr/share/backgrounds/gnome/adwaita-morning.jpg https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/raw/master/backgrounds/adwaita-morning.jpg
curl -o config/includes.chroot/usr/share/backgrounds/gnome/adwaita-day.jpg https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/raw/master/backgrounds/adwaita-day.jpg
curl -o config/includes.chroot/usr/share/backgrounds/gnome/adwaita-night.jpg https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/raw/master/backgrounds/adwaita-night.jpg
doInstall=$(echo $(apt-cache depends gnome-core | grep Depends | sed "s/.*ends:\ //") | sed "s/\(<\|>\)//g")
doInstall+=" gvfs-fuse locales keyboard-configuration console-setup sudo eject xdg-utils xdg-user-dirs-gtk"
# Package for Live-Builds
doInstall+=" live-task-base user-setup"
# Plymouth new
doInstall+=" plymouth plymouth-label plymouth-themes"
# Add fonts
doInstall+=" fonts-noto fonts-symbola fonts-quicksand librsvg2-common"
doInstall+=" network-*-gnome nautilus-extension-gnome-terminal pulseaudio-module-bluetooth pulseaudio-module-gsettings"
# Add Flatpak packages
doInstall+=" flatpak gnome-software gnome-software-plugin-flatpak xdg-desktop-portal flatpak-xdg-utils xdg-desktop-portal-gtk"
# Add Podman packages
doInstall+=" podman uidmap slirp4netns runc"
# Add utility packages
doInstall+=" pciutils usbutils keyutils lvm2 mdadm dmsetup cryptsetup dmraid e2fsprogs btrfs-progs dosfstools xfsprogs jfsutils ssh curl git"
notInstall=(gnome-characters gnome-contacts gnome-calculator baobab evince gnome-font-viewer yelp eog gnome-logs software-properties-gtk gedit totem firefox-esr firefox-browser firefox chromium chromium-browser gvfs-fuse-browser)
for element in ${notInstall[@]}; do doInstall=$(echo $doInstall | sed "s/ $element//g"); done
echo $doInstall > config/package-lists/desktop.list.chroot
cat config/package-lists/desktop.list.chroot
#######################################
# Add Bootloader
#######################################
cat > config/package-lists/debian.list.binary << EOF
# EFI support, ensure we have the required .deb in the ISO available for
# installation
#if ARCHITECTURES i386
grub-efi
grub-efi-ia32
#endif
#if ARCHITECTURES amd64
grub-efi
grub-efi-amd64
#endif
EOF
#----------------------------------------
# System GSettings Overrides
#----------------------------------------
cat > config/includes.chroot/usr/share/glib-2.0/schemas/11_desktop-base.gschema.override << EOF
[org.gnome.desktop.background]
picture-options='zoom'
picture-uri='file:///usr/share/backgrounds/gnome/adwaita-timed.xml'
[org.gnome.desktop.screensaver]
picture-options='zoom'
picture-uri='file:///usr/share/backgrounds/gnome/adwaita-timed.xml'
[org.gnome.desktop.interface]
document-font-name='Cantarell 10'
font-name='Cantarell 10'
#monospace-font-name='FiraCode-Regular'
[org.gnome.nautilus.desktop]
font='Cantarell 10'
[org.gnome.nautilus.icon-view]
default-zoom-level='small'
[org.gnome.nautilus.list-view]
default-zoom-level='small'
[org.gnome.desktop.peripherals.mouse]
natural-scroll=true
[org.gnome.desktop.peripherals.touchpad]
natural-scroll=true
[org.gnome.desktop.interface]
gtk-theme='Adwaita'
EOF
#----------------------------------------
# Terminal GSettings Overrides
#----------------------------------------
cat > config/includes.chroot/usr/share/glib-2.0/schemas/11_gsettings-desktop-schemas.gschema.override << EOF
[org.gnome.Terminal.Legacy.Settings]
default-show-menubar=false
theme-variant='dark'
EOF
#----------------------------------------
# Adding Hooks
#----------------------------------------
cat > config/hooks/normal/10_desktop-base.hook.chroot << EOF
sudo sed -i 's/PRETTY_NAME=".*"/PRETTY_NAME="Debian"/g' /usr/lib/os-release
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
sudo sed -i 's/OnlyShowIn=GNOME/NotShowIn=GNOME/g' /usr/share/applications/software-properties-gnome.desktop
sudo sed -i 's/OnlyShowIn=GNOME/NotShowIn=GNOME/g' /usr/share/applications/software-properties-gtk.desktop
#----------------------------------------
# Podman containers configuration
#----------------------------------------
sudo mkdir -p /etc/containers
sudo curl -L -o /etc/containers/registries.conf https://raw.githubusercontent.com/projectatomic/registries/master/registries.fedora
sudo curl -L -o /etc/containers/policy.json https://raw.githubusercontent.com/containers/skopeo/master/default-policy.json
sudo echo 'user.max_user_namespaces=65536' > /etc/sysctl.d/userns.conf
sudo echo 'kernel.unprivileged_userns_clone=1' >> /etc/sysctl.d/userns.conf
sudo sysctl -p /etc/sysctl.d/userns.conf
sudo plymouth-set-default-theme -R spinner
#----------------------------------------
# GNOME's default flatpaks apps
#----------------------------------------
flatpak remote-add --installation=extra --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
sudo apt full-upgrade -y
EOF
sudo lb build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment