Skip to content

Instantly share code, notes, and snippets.

@kavan-mevada
Last active March 11, 2020 19:22
Show Gist options
  • Save kavan-mevada/4a04697fdb59a56a12baa5f3820b6bd8 to your computer and use it in GitHub Desktop.
Save kavan-mevada/4a04697fdb59a56a12baa5f3820b6bd8 to your computer and use it in GitHub Desktop.
#-----------------------------------------
# Installing Required Tools
#-----------------------------------------
sudo apt-get install live-build
#----------------------------------------
# Configurating Live Build (lb_config)
#----------------------------------------
lb config \
--apt-recommends false \
--distribution sid \
--debian-installer live \
--architecture amd64 \
--memtest none \
--security false \
--debian-installer-gui false \
--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
cat > config/archives/desktop.list.chroot << EOF
deb http://ftp.debian.org/debian experimental main contrib non-free
deb http://ftp.debian.org/debian sid main contrib non-free
EOF
cat > config/archives/desktop.list.binary << EOF
deb http://ftp.debian.org/debian experimental main contrib non-free
deb http://ftp.debian.org/debian sid main contrib non-free
EOF
#mkdir -p config/includes.chroot/usr/share/plymouth/themes/spinner2
#wget -qO- https://raw.githubusercontent.com/kavanmevada/the-horizon-blog/master/spinner2.tar.xz | tar xvfJ - -C config/includes.chroot/usr/share/plymouth/themes/spinner2
#----------------------------------------
# Adding Wallpaper
#----------------------------------------
mkdir -p config/includes.chroot/usr/share/{backgrounds,gnome-background-properties}
mkdir -p config/includes.chroot/usr/share/glib-2.0/schemas
wget -O config/includes.chroot/usr/share/backgrounds/wallpaper.jpg http://i.imgur.com/u2oPC.jpg
cat > config/includes.chroot/usr/share/gnome-background-properties/debian-experimental.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
<wallpaper>
<name>Experimental</name>
<filename>/usr/share/backgrounds/wallpaper.jpg</filename>
<options>zoom</options>
</wallpaper>
</wallpapers>
EOF
#----------------------------------------
# APT::Pinning
#----------------------------------------
cat > config/archives/desktop.pref.chroot << EOF
Package: adwaita-icon-theme
Pin: release a=experimental
Pin-Priority: 600
Package: at-spi2-core
Pin: release a=experimental
Pin-Priority: 600
Package: baobab
Pin: release a=experimental
Pin-Priority: 600
Package: caribou
Pin: release a=experimental
Pin-Priority: 600
Package: dconf-cli
Pin: release a=experimental
Pin-Priority: 600
Package: dconf-gsettings-backend
Pin: release a=experimental
Pin-Priority: 600
Package: eog
Pin: release a=experimental
Pin-Priority: 600
Package: evince
Pin: release a=experimental
Pin-Priority: 600
Package: evolution-data-server
Pin: release a=experimental
Pin-Priority: 600
Package: epiphany-browser
Pin: release a=experimental
Pin-Priority: 600
Package: fonts-cantarell
Pin: release a=experimental
Pin-Priority: 600
Package: gdm3
Pin: release a=experimental
Pin-Priority: 600
Package: gedit
Pin: release a=experimental
Pin-Priority: 600
Package: gkbd-capplet
Pin: release a=experimental
Pin-Priority: 600
Package: glib-networking
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-backgrounds
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-bluetooth
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-calculator
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-characters
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-contacts
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-control-center
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-disk-utility
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-font-viewer
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-keyring
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-logs
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-menus
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-online-accounts
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-online-miners
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-session
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-settings-daemon
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-shell
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-shell-extensions
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-software
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-sushi
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-system-monitor
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-terminal
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-themes-extra
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-user-docs
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-user-share
Pin: release a=experimental
Pin-Priority: 600
Package: gsettings-desktop-schemas
Pin: release a=experimental
Pin-Priority: 600
Package: gstreamer1.0-packagekit
Pin: release a=experimental
Pin-Priority: 600
Package: gstreamer1.0-plugins-base
Pin: release a=experimental
Pin-Priority: 600
Package: gstreamer1.0-plugins-good
Pin: release a=experimental
Pin-Priority: 600
Package: gstreamer1.0-pulseaudio
Pin: release a=experimental
Pin-Priority: 600
Package: gvfs-backends
Pin: release a=experimental
Pin-Priority: 600
Package: gvfs-fuse
Pin: release a=experimental
Pin-Priority: 600
Package: libatk-adaptor
Pin: release a=experimental
Pin-Priority: 600
Package: libcanberra-pulse
Pin: release a=experimental
Pin-Priority: 600
Package: libglib2.0-bin
Pin: release a=experimental
Pin-Priority: 600
Package: libpam-gnome-keyring
Pin: release a=experimental
Pin-Priority: 600
Package: libproxy1-plugin-gsettings
Pin: release a=experimental
Pin-Priority: 600
Package: libproxy1-plugin-webkit
Pin: release a=experimental
Pin-Priority: 600
#Package: nautilus
#Pin: release a=experimental
#Pin-Priority: 600
Package: pulseaudio
Pin: release a=experimental
Pin-Priority: 600
Package: pulseaudio-module-bluetooth
Pin: release a=experimental
Pin-Priority: 600
Package: sound-theme-freedesktop
Pin: release a=experimental
Pin-Priority: 600
Package: system-config-printer-common
Pin: release a=experimental
Pin-Priority: 600
Package: system-config-printer-udev
Pin: release a=experimental
Pin-Priority: 600
Package: totem
Pin: release a=experimental
Pin-Priority: 600
Package: tracker
Pin: release a=experimental
Pin-Priority: 600
Package: yelp
Pin: release a=experimental
Pin-Priority: 600
Package: zenity
Pin: release a=experimental
Pin-Priority: 600
#-------------------------------------
# Dependencies
#-------------------------------------
Package: libdconf1
Pin: release a=experimental
Pin-Priority: 600
Package: dconf-service
Pin: release a=experimental
Pin-Priority: 600
Package: libcamel-1.2-62
Pin: release a=experimental
Pin-Priority: 600
Package: libebackend-1.2-10
Pin: release a=experimental
Pin-Priority: 600
Package: libedataserverui-1.2-2
Pin: release a=experimental
Pin-Priority: 600
Package: glib-networking-services
Pin: release a=experimental
Pin-Priority: 600
Package: glib-networking-common
Pin: release a=experimental
Pin-Priority: 600
Package: libgoa-1.0-0b
Pin: release a=experimental
Pin-Priority: 600
Package: libgoa-backend-1.0-1
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-session-bin
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-session-common
Pin: release a=experimental
Pin-Priority: 600
Package: gnome-settings-daemon-common
Pin: release a=experimental
Pin-Priority: 600
Package: libglib2.0-0
Pin: release a=experimental
Pin-Priority: 600
#Package: libnautilus-extension1a
#Pin: release a=experimental
#Pin-Priority: 600
#Package: nautilus-data
#Pin: release a=experimental
#Pin-Priority: 600
#Package: libpango-1.0-0
#Pin: release a=experimental
#Pin-Priority: 600
#Package: libpangocairo-1.0-0
#Pin: release a=experimental
#Pin-Priority: 600
Package: libpulse0
Pin: release a=experimental
Pin-Priority: 600
Package: libebackend-1.2-10
Pin: release a=experimental
Pin-Priority: 600
Package: libebook-1.2-20
Pin: release a=experimental
Pin-Priority: 600
Package: libebook-contacts-1.2-3
Pin: release a=experimental
Pin-Priority: 600
Package: libecal-2.0-1
Pin: release a=experimental
Pin-Priority: 600
Package: libedata-book-1.2-26
Pin: release a=experimental
Pin-Priority: 600
Package: libedata-cal-2.0-1
Pin: release a=experimental
Pin-Priority: 600
Package: libedataserver-1.2-24
Pin: release a=experimental
Pin-Priority: 600
Package: libedataserverui-1.2-2
Pin: release a=experimental
Pin-Priority: 600
Package: libgdata22
Pin: release a=experimental
Pin-Priority: 600
Package: libgoa-1.0-0b
Pin: release a=experimental
Pin-Priority: 600
Package: libgoa-1.0-common
Pin: release a=experimental
Pin-Priority: 600
Package: libgoa-backend-1.0-1
Pin: release a=experimental
Pin-Priority: 600
Package: libgfbgraph-0.2-0
Pin: release a=experimental
Pin-Priority: 600
Package: libzapojit-0.0-0
Pin: release a=experimental
Pin-Priority: 600
Package: pulseaudio-utils
Pin: release a=experimental
Pin-Priority: 600
Package: libpulse-mainloop-glib0
Pin: release a=experimental
Pin-Priority: 600
Package: libpulse0
Pin: release a=experimental
Pin-Priority: 600
Package: grilo-plugins-0.3
Pin: release a=experimental
Pin-Priority: 600
Package: libpulsedsp
Pin: release a=experimental
Pin-Priority: 600
Package: evolution-data-server-common
Pin: release a=experimental
Pin-Priority: 600
EOF
cat > config/package-lists/desktop.list.chroot << EOF
#Adding GRUB2 Bootloader (mandatory)....
grub-common
grub2-common
grub-efi-amd64
#Adding live-build packages (mandatory)....
live-boot
live-config
live-boot-initramfs-tools
user-setup
#Adding GNOME 3 packages (optional)....
adwaita-icon-theme
at-spi2-core
caribou
dconf-cli
dconf-gsettings-backend
evolution-data-server
#firefox-esr firefox chromium chromium-browser epiphany-browser
#fonts-cantarell
gdm3
gedit
gkbd-capplet
glib-networking
gnome-backgrounds
gnome-bluetooth
gnome-control-center
gnome-disk-utility
gnome-menus
gnome-online-accounts
gnome-online-miners
gnome-session
gnome-shell
gnome-settings-daemon
gnome-sushi
gnome-system-monitor
gnome-terminal
gnome-themes-extra
gnome-user-docs
gnome-user-share
gsettings-desktop-schemas
gstreamer1.0-packagekit
gstreamer1.0-plugins-base
gstreamer1.0-plugins-good
gstreamer1.0-pulseaudio
gvfs-backends gvfs-fuse
libatk-adaptor
libcanberra-pulse
libglib2.0-bin
libpam-gnome-keyring
libproxy1-plugin-gsettings
libproxy1-plugin-webkit
mutter
nautilus
pulseaudio
pulseaudio-module-bluetooth
sound-theme-freedesktop
system-config-printer-common
system-config-printer-udev
network-manager-gnome
tracker
zenity
#Adding chromium packages (optional)....
chromium-sandbox
chromium
chromium-l10n
#Adding essential packages (optional)....
keyboard-configuration
ca-certificates
locales
sudo
git
curl
wget
unzip
ssh
build-essential
usbutils
#Adding Customisation packages (optional)....
fonts-cantarell
#fonts-firacode
fonts-noto
fonts-noto-color-emoji
plymouth-themes-spinner
plymouth
# GNOME Dependencies...........
libebackend-1.2-10
libebook-1.2-20
libebook-contacts-1.2-3
libecal-2.0-1
libedata-book-1.2-26
libedata-cal-2.0-1
libedataserver-1.2-24
libedataserverui-1.2-2
libgdata22
libgfbgraph-0.2-0
libgoa-1.0-0b
libgoa-backend-1.0-1
libzapojit-0.0-0
grilo-plugins-0.3
pulseaudio-utils
libpulsedsp
EOF
mkdir -p config/includes.chroot/etc/skel
cat > config/includes.chroot/etc/skel/.bashrc << EOF
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/wallpaper.jpg'
[org.gnome.desktop.screensaver]
picture-options='zoom'
picture-uri='file:///usr/share/backgrounds/wallpaper.jpg'
[org.gnome.desktop.interface]
document-font-name='Cantarell-Regular'
font-name='Cantarell-Regular'
#monospace-font-name='FiraCode-Regular'
[org.gnome.nautilus.desktop]
font='Cantarell-Regular'
[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'
#[org.gnome.shell]
#enabled-extensions=['[email protected]']
#[org.gnome.shell.extensions.dash-to-dock]
#dock-position='BOTTOM'
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 Experimental-GNOME"/g' /usr/lib/os-release
#gnome-extensions enable [email protected]
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
sudo plymouth-set-default-theme spinner -R
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment