diff --git a/build.sh b/build.sh index 00d6273..179dc26 100755 --- a/build.sh +++ b/build.sh @@ -178,8 +178,6 @@ guvcview vlc qt5-style-plugins qt5ct -calamares -calamares-settings-debian gdebi f2fs-tools xfsprogs @@ -196,19 +194,22 @@ grub-pc # Packages to be stored in /pool but not installed in the OS . echo "# These packages are available to the installer, for offline use. +b43-fwcutter +bcmwl-kernel-source +dkms +intel-microcode +iucode-tool +lupin-support +setserial +user-setup efibootmgr -grub2-common grub-efi +secureboot-db grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed -grub-efi-ia32-bin -libefiboot1 -libefivar1 -mokutil -mtools +shim shim-signed -os-prober @@ -225,7 +226,6 @@ mkdir -p $build/build/config/packages.chroot mkdir -p $build/build/config/includes.chroot/etc mkdir -p $build/build/config/includes.chroot/usr/share/applications mkdir -p $build/build/config/includes.chroot/usr/share/backgrounds -mkdir -p $build/build/config/includes.chroot/etc/calamares mkdir -p $build/build/config/includes.chroot/usr/share/icons mkdir -p $build/build/config/includes.chroot/usr/share/themes mkdir -p $build/build/config/includes.chroot/etc/live/config.conf.d @@ -242,18 +242,13 @@ cp $build/userconfig/* $build/build/config/includes.chroot/etc/live/config.conf. cp $build/applications/* $build/build/config/includes.chroot/usr/share/applications cp $build/hooks/live/* $build/build/config/hooks/live cp $build/hooks/normal/* $build/build/config/hooks/normal -cp $build/install-debian/* $build/build/config/includes.chroot/usr/share/pixmaps -cp $build/sources-final/* $build/build/config/includes.chroot/usr/sbin cp -r $build/lightdm/* $build/build/config/includes.chroot/etc/lightdm cp -r $build/bootloaders/* $build/build/config/bootloaders cp -r $build/backgrounds/* $build/build/config/includes.chroot/usr/share/backgrounds -cp -r $build/calamares/* $build/build/config/includes.chroot/etc/calamares cp -r $build/configs/* $build/build/config/includes.chroot/etc/ cp -r $build/icons/* $build/build/config/includes.chroot/usr/share/icons cp -r $build/themes/* $build/build/config/includes.chroot/usr/share/themes -cp -r $build/desktop-base/* $build/build/config/includes.chroot/usr/share/desktop-base -cp -r $build/plymouth/* $build/build/config/includes.chroot/usr/share/plymouth cp -r $build/packages/* $build/build/config/packages.chroot # Build the ISO # diff --git a/calamares/branding/my-distro/1.png b/calamares/branding/my-distro/1.png deleted file mode 100644 index c1bb4f9..0000000 Binary files a/calamares/branding/my-distro/1.png and /dev/null differ diff --git a/calamares/branding/my-distro/2.png b/calamares/branding/my-distro/2.png deleted file mode 100644 index f882def..0000000 Binary files a/calamares/branding/my-distro/2.png and /dev/null differ diff --git a/calamares/branding/my-distro/3.png b/calamares/branding/my-distro/3.png deleted file mode 100644 index 50f0afe..0000000 Binary files a/calamares/branding/my-distro/3.png and /dev/null differ diff --git a/calamares/branding/my-distro/4.png b/calamares/branding/my-distro/4.png deleted file mode 100644 index 0eb7c7e..0000000 Binary files a/calamares/branding/my-distro/4.png and /dev/null differ diff --git a/calamares/branding/my-distro/5.png b/calamares/branding/my-distro/5.png deleted file mode 100644 index b4cdc7f..0000000 Binary files a/calamares/branding/my-distro/5.png and /dev/null differ diff --git a/calamares/branding/my-distro/6.png b/calamares/branding/my-distro/6.png deleted file mode 100644 index f1ed952..0000000 Binary files a/calamares/branding/my-distro/6.png and /dev/null differ diff --git a/calamares/branding/my-distro/branding.desc b/calamares/branding/my-distro/branding.desc deleted file mode 100644 index 7a053c7..0000000 --- a/calamares/branding/my-distro/branding.desc +++ /dev/null @@ -1,29 +0,0 @@ ---- -componentName: my-distro -welcomeStyleCalamares: true - -strings: - productName: My-distro GNU/Linux - shortProductName: My-distro GNU/Linux - version: 1.0 - shortVersion: 1.0 - versionedName: My-distro GNU/Linux - shortVersionedName: My-distro GNU/Linux 1.0 - bootloaderEntryName: debian - - - -images: - productLogo: "debian-logo.png" - productIcon: "debian-logo.png" - productWelcome: "languages.png" - -slideshow: "show.qml" - -style: - sidebarBackground: "#303030" - sidebarText: "#FFFFFF" - sidebarTextSelect: "#4d7079" - sidebarTextSelect: "#292F34" - -slideshowAPI: 2 diff --git a/calamares/branding/my-distro/debian-logo.png b/calamares/branding/my-distro/debian-logo.png deleted file mode 100644 index cee1419..0000000 Binary files a/calamares/branding/my-distro/debian-logo.png and /dev/null differ diff --git a/calamares/branding/my-distro/languages.png b/calamares/branding/my-distro/languages.png deleted file mode 100644 index 5119ab7..0000000 Binary files a/calamares/branding/my-distro/languages.png and /dev/null differ diff --git a/calamares/branding/my-distro/show.qml b/calamares/branding/my-distro/show.qml deleted file mode 100644 index 6752f34..0000000 --- a/calamares/branding/my-distro/show.qml +++ /dev/null @@ -1,177 +0,0 @@ -/* === This file is part of Calamares - === - * - * Copyright 2015, Teo Mrnjavac - * - * Calamares is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Calamares is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Calamares. If not, see . - */ - -import QtQuick 2.0; -import calamares.slideshow 1.0; - -Presentation -{ - id: presentation - - Timer { - id: advanceTimer - interval: 15000 - running: false - repeat: true - onTriggered: presentation.goToNextSlide() - } - - Slide { - anchors.fill: parent - - Image { - id: background - source: "1.png" - anchors.fill: parent - - Text { - anchors.centerIn: parent - anchors.verticalCenterOffset: 0 - anchors.horizontalCenterOffset: -125 - font.pixelSize: parent.width *.015 - color: 'white' - text: qsTr(""+ - ""+ - ""+ - ""+ - "") - wrapMode: Text.WordWrap - width: 500 - horizontalAlignment: Text.AlignLeft - } - } - } - - Slide { - anchors.fill: parent - - Image { - id: background1 - source: "2.png" - anchors.fill: parent - - Text { - anchors.centerIn: parent - anchors.verticalCenterOffset: 0 - anchors.horizontalCenterOffset: 250 - font.pixelSize: parent.width *.015 - color: 'white' - text: qsTr(""+ - ""+ - ""+ - "") - wrapMode: Text.WordWrap - width: 450 - horizontalAlignment: Text.AlignLeft - } - } - } - - Slide { - anchors.fill: parent - - Image { - id: background2 - source: "3.png" - anchors.fill: parent - - Text { - anchors.centerIn: parent - anchors.verticalCenterOffset: 0 - anchors.horizontalCenterOffset: -100 - font.pixelSize: parent.width *.015 - color: 'white' - text: qsTr(""+ - ">") - wrapMode: Text.WordWrap - width: 450 - horizontalAlignment: Text.AlignLeft - } - } - } - - Slide { - anchors.fill: parent - - Image { - id: background3 - source: "4.png" - anchors.fill: parent - - Text { - anchors.centerIn: parent - anchors.verticalCenterOffset: 0 - anchors.horizontalCenterOffset: 250 - font.pixelSize: parent.width *.015 - color: 'white' - text: qsTr(""+ - ""+ - "") - wrapMode: Text.WordWrap - width: 450 - horizontalAlignment: Text.AlignLeft - } - } - } - - Slide { - anchors.fill: parent - - Image { - id: background4 - source: "5.png" - anchors.fill: parent - - Text { - anchors.centerIn: parent - anchors.verticalCenterOffset: 0 - anchors.horizontalCenterOffset: -200 - font.pixelSize: parent.width *.015 - color: 'white' - text: qsTr("") - wrapMode: Text.WordWrap - width: 450 - horizontalAlignment: Text.Center - } - } - } - - Slide { - anchors.fill: parent - - Image { - id: background5 - source: "6.png" - anchors.fill: parent - - Text { - anchors.centerIn: parent - anchors.verticalCenterOffset: 0 - anchors.horizontalCenterOffset: 250 - font.pixelSize: parent.width *.015 - color: 'white' - text: qsTr("") - wrapMode: Text.WordWrap - width: 450 - horizontalAlignment: Text.Center - } - } - } - - Component.onCompleted: advanceTimer.running = true -} diff --git a/calamares/modules/bootloader.conf b/calamares/modules/bootloader.conf deleted file mode 100644 index b6d8448..0000000 --- a/calamares/modules/bootloader.conf +++ /dev/null @@ -1,54 +0,0 @@ -# Bootloader configuration. The bootloader is installed to allow -# the system to start (and pick one of the installed operating -# systems to run). ---- -# Define which bootloader you want to use for EFI installations -# Possible options are 'grub', 'sb-shim' and 'systemd-boot'. -efiBootLoader: "grub" - -# systemd-boot configuration files settings, set kernel and initramfs file names -# and amount of time before default selection boots -kernel: "/vmlinuz-linux" -img: "/initramfs-linux.img" -fallback: "/initramfs-linux-fallback.img" -timeout: "10" - -# Optionally set the menu entry name and kernel name to use in systemd-boot. -# If not specified here, these settings will be taken from branding.desc. -# -# bootloaderEntryName: "Generic GNU/Linux" -# kernelLine: ", with Stable-Kernel" -# fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)" - -# GRUB 2 binary names and boot directory -# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names. -# These names are also used when using sb-shim, since that needs some -# GRUB functionality (notably grub-probe) to work. As needed, you may use -# complete paths like `/usr/bin/efibootmgr` for the executables. -# -grubInstall: "grub-install" -grubMkconfig: "grub-mkconfig" -grubCfg: "/boot/grub/grub.cfg" -grubProbe: "grub-probe" -efiBootMgr: "efibootmgr" - -# Optionally set the bootloader ID to use for EFI. This is passed to -# grub-install --bootloader-id. -# -# If not set here, the value from bootloaderEntryName from branding.desc -# is used, with problematic characters (space and slash) replaced. -# -# The ID is also used as a directory name within the EFI environment, -# and the bootloader is copied from /boot/efi/EFI// . When -# setting the option here, keep in mind that the name is sanitized -# (problematic characters, see above, are replaced). -# -# efiBootloaderId: "dirname" - -# Optionally install a copy of the GRUB EFI bootloader as the EFI -# fallback loader (either bootia32.efi or bootx64.efi depending on -# the system). This may be needed on certain systems (Intel DH87MC -# seems to be the only one). If you set this to false, take care -# to add another module to optionally install the fallback on those -# boards that need it. -installEFIFallback: false diff --git a/calamares/modules/displaymanager.conf b/calamares/modules/displaymanager.conf deleted file mode 100644 index 8f8e9c7..0000000 --- a/calamares/modules/displaymanager.conf +++ /dev/null @@ -1,28 +0,0 @@ -# Configure one or more display managers (e.g. SDDM) -# with a "best effort" approach. ---- -#The DM module attempts to set up all the DMs found in this list, in that precise order. -#It also sets up autologin, if the feature is enabled in globalstorage. -#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here. -displaymanagers: - - slim - - sddm - - lightdm - - gdm - - mdm - - lxdm - - kdm - -#Enable the following settings to force a desktop environment in your displaymanager configuration file: -#defaultDesktopEnvironment: -# executable: "startkde" -# desktopFile: "plasma" - -#If true, try to ensure that the user, group, /var directory etc. for the -#display manager are set up correctly. This is normally done by the distribution -#packages, and best left to them. Therefore, it is disabled by default. -basicSetup: false - -#If true, setup autologin for openSUSE. This only makes sense on openSUSE -#derivatives or other systems where /etc/sysconfig/displaymanager exists. -sysconfigSetup: false diff --git a/calamares/modules/finished.conf b/calamares/modules/finished.conf deleted file mode 100644 index 188edf0..0000000 --- a/calamares/modules/finished.conf +++ /dev/null @@ -1,4 +0,0 @@ ---- -restartNowEnabled: true -restartNowChecked: true -restartNowCommand: "systemctl -i reboot" diff --git a/calamares/modules/fstab.conf b/calamares/modules/fstab.conf deleted file mode 100644 index 2990717..0000000 --- a/calamares/modules/fstab.conf +++ /dev/null @@ -1,11 +0,0 @@ ---- -mountOptions: - default: defaults,noatime - btrfs: defaults,noatime,space_cache,autodefrag -ssdExtraMountOptions: - ext4: discard - jfs: discard - xfs: discard - swap: discard - btrfs: discard,compress=lzo -crypttabOptions: luks,keyscript=/bin/cat diff --git a/calamares/modules/locale.conf b/calamares/modules/locale.conf deleted file mode 100644 index f5e9096..0000000 --- a/calamares/modules/locale.conf +++ /dev/null @@ -1,6 +0,0 @@ -localeGenPath: "/etc/locale.gen" -geoip: - style: "json" - url: "https://ipapi.co/json" - selector: "timezone" - diff --git a/calamares/modules/luksopenswaphookcfg.conf b/calamares/modules/luksopenswaphookcfg.conf deleted file mode 100644 index f5610cd..0000000 --- a/calamares/modules/luksopenswaphookcfg.conf +++ /dev/null @@ -1,4 +0,0 @@ -# Writes an openswap configuration with LUKS settings to the given path ---- -# Path of the configuration file to write (in the target system) -configFilePath: /etc/openswap.conf diff --git a/calamares/modules/machineid.conf b/calamares/modules/machineid.conf deleted file mode 100644 index fa3527f..0000000 --- a/calamares/modules/machineid.conf +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Whether to create /etc/machine-id for systemd. -systemd: true -# Whether to create /var/lib/dbus/machine-id for D-Bus. -dbus: true -# Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id -# (ignored if dbus is false, or if there is no /etc/machine-id to point to). -symlink: true -# Whether to copy entropy from the host -entropy-copy: true -# Which files to write (paths in the target) -entropy-files: - - /var/lib/urandom/random-seed - - /var/lib/systemd/random-seed - diff --git a/calamares/modules/mount.conf b/calamares/modules/mount.conf deleted file mode 100644 index bb28eed..0000000 --- a/calamares/modules/mount.conf +++ /dev/null @@ -1,36 +0,0 @@ -# Mount filesystems in the target (generally, before treating the -# target as a usable chroot / "live" system). Filesystems are -# automatically mounted from the partitioning module. Filesystems -# listed here are **extra**. The filesystems listed in *extraMounts* -# are mounted in all target systems. The filesystems listed in -# *extraMountsEfi* are mounted in the target system **only** if -# the host machine uses UEFI. ---- -# Extra filesystems to mount. The key's value is a list of entries; each -# entry has four keys: -# - device The device node to mount -# - fs The filesystem type to use -# - mountPoint Where to mount the filesystem -# - options (optional) Extra options to pass to mount(8) -# -extraMounts: - - device: proc - fs: proc - mountPoint: /proc - - device: sys - fs: sysfs - mountPoint: /sys - - device: /dev - mountPoint: /dev - options: bind - - device: tmpfs - fs: tmpfs - mountPoint: /run - - device: /run/udev - mountPoint: /run/udev - options: bind - -extraMountsEfi: - - device: efivarfs - fs: efivarfs - mountPoint: /sys/firmware/efi/efivars diff --git a/calamares/modules/packages.conf b/calamares/modules/packages.conf deleted file mode 100644 index b038678..0000000 --- a/calamares/modules/packages.conf +++ /dev/null @@ -1,7 +0,0 @@ -backend: apt - -operations: - - remove: - - 'live*' - - 'calamares-settings-debian' - - 'calamares' diff --git a/calamares/modules/partition.conf b/calamares/modules/partition.conf deleted file mode 100644 index a042371..0000000 --- a/calamares/modules/partition.conf +++ /dev/null @@ -1,12 +0,0 @@ -efiSystemPartition: "/boot/efi" -userSwapChoices: - - none # Create no swap, use no swap - - small # Up to 4GB - - suspend # At least main memory size - - file # To swap file instead of partition -alwaysShowPartitionLabels: true -initialPartitioningChoice: erase -initialSwapChoice: none -defaultFileSystemType: "ext4" -availableFileSystemTypes: ["ext4","btrfs", "f2fs","xfs"] - diff --git a/calamares/modules/unpackfs.conf b/calamares/modules/unpackfs.conf deleted file mode 100644 index 833a68b..0000000 --- a/calamares/modules/unpackfs.conf +++ /dev/null @@ -1,5 +0,0 @@ ---- -unpack: - - source: "/run/live/medium/live/filesystem.squashfs" - sourcefs: "squashfs" - destination: "" diff --git a/calamares/modules/users.conf b/calamares/modules/users.conf deleted file mode 100644 index a0ba082..0000000 --- a/calamares/modules/users.conf +++ /dev/null @@ -1,18 +0,0 @@ ---- -userGroup: users -defaultGroups: - - cdrom - - floppy - - sudo - - audio - - dip - - video - - plugdev - - netdev - - lpadmin - - scanner - - bluetooth - - sambashare -autologinGroup: autologin -sudoersGroup: sudo -setRootPassword: true diff --git a/calamares/modules/welcome.conf b/calamares/modules/welcome.conf deleted file mode 100644 index be58da0..0000000 --- a/calamares/modules/welcome.conf +++ /dev/null @@ -1,17 +0,0 @@ ---- -showSupportUrl: false -showKnownIssuesUrl: false -showReleaseNotesUrl: false - -requirements: - requiredStorage: 10 - requiredRam: 1.0 - check: - - storage - - ram - - power - - root - required: - - storage - - ram - - root diff --git a/calamares/settings.conf b/calamares/settings.conf deleted file mode 100644 index 3c96f0e..0000000 --- a/calamares/settings.conf +++ /dev/null @@ -1,125 +0,0 @@ -# Configuration file for Calamares -# Syntax is YAML 1.2 ---- - -# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules -modules-search: [ local, /usr/lib/calamares/modules ] - -# If this is set to true, Calamares refers to itself as a "setup program" -# rather than an "installer". Defaults to the value of dont-chroot, but -# Calamares will complain if this is not explicitly set. -oem-setup: false - -# If this is set to true, the "Cancel" button will be disabled entirely. -# The button is also hidden from view. -# -# This can be useful if when e.g. Calamares is used as a post-install -# configuration tool and you require the user to go through all the -# configuration steps. -# -# Default is false, but Calamares will complain if this is not explicitly set. -# -# YAML: boolean. -disable-cancel: false - -# If this is set to true, the "Cancel" button will be disabled once -# you start the 'Installation', meaning there won't be a way to cancel -# the Installation until it has finished or installation has failed. -# -# Default is false, but Calamares will complain if this is not explicitly set. -# -# YAML: boolean. -disable-cancel-during-exec: false - -# If this is set to true, then once the end of the sequence has -# been reached, the quit (done) button is clicked automatically -# and Calamares will close. Default is false: the user will see -# that the end of installation has been reached, and that things are ok. -# -# -quit-at-end: false - -sequence: -# Phase 1 - prepare. -# View modules are shown as UI pages, jobs from job modules -# are executed immediately in the background. -# Jobs should be executed sparingly (if at all) in this phase. -- show: - - welcome - - locale - - keyboard - - partition - - users - - summary - -# Phase 2 - install. -# View modules are not shown. Only the view modules shown -# in the previous phase are allowed, their names should be -# added here as placeholders to specify the order in which -# view module jobs should be enqueued. Job modules are -# also allowed. -- exec: - - partition - - mount - - unpackfs - - sources-media - - machineid - - fstab - - locale - - keyboard - - localecfg - - users - - displaymanager - - networkcfg - - hwclock - - services-systemd - - bootloader-config - - grubcfg - - bootloader - - packages - - luksbootkeyfile - - plymouthcfg - - initramfscfg - - initramfs - - sources-media-unmount - - sources-final - - umount - -# Phase 3 - postinstall. -# View modules are shown as UI pages, jobs from job modules are -# executed immediately in the background. -# Jobs should be executed sparingly (if at all) in this phase. -- show: - - finished - -# A branding component is a directory, either in -# SHARE/calamares/branding or in /etc/calamares/branding -# (the latter takes precedence). The directory must contain a -# YAML file branding.desc which may reference additional resources -# (such as images) as paths relative to the current directory. -# Only the name of the branding component (directory) should be -# specified here, Calamares then takes care of finding it and -# loading the contents. -branding: my-distro - -# If this is set to true, Calamares will show an "Are you sure?" prompt right -# before each execution phase, i.e. at points of no return. If this is set to -# false, no prompt is shown. Default is false. -# -# YAML: boolean. -prompt-install: false - -# If this is set to true, Calamares will execute all target environment -# commands in the current environment, without chroot. This setting should -# only be used when setting up Calamares as a post-install configuration tool, -# as opposed to a full operating system installer. -# -# Some official Calamares modules are not expected to function with this -# setting. (e.g. partitioning seems like a bad idea, since that is expected to -# have been done already) -# -# Default is false (for a normal installer). -# -# YAML: boolean. -dont-chroot: false - diff --git a/desktop-base/futureprototype-theme/grub/grub-16x9.png b/desktop-base/futureprototype-theme/grub/grub-16x9.png deleted file mode 100644 index c90d81d..0000000 Binary files a/desktop-base/futureprototype-theme/grub/grub-16x9.png and /dev/null differ diff --git a/desktop-base/futureprototype-theme/grub/grub-4x3.png b/desktop-base/futureprototype-theme/grub/grub-4x3.png deleted file mode 100644 index f342bd9..0000000 Binary files a/desktop-base/futureprototype-theme/grub/grub-4x3.png and /dev/null differ diff --git a/desktop-base/futureprototype-theme/grub/grub_background.sh b/desktop-base/futureprototype-theme/grub/grub_background.sh deleted file mode 100644 index c7ba469..0000000 --- a/desktop-base/futureprototype-theme/grub/grub_background.sh +++ /dev/null @@ -1,3 +0,0 @@ -WALLPAPER=/usr/share/images/desktop-base/desktop-grub.png -COLOR_NORMAL=white/black -COLOR_HIGHLIGHT=black/white diff --git a/desktop-base/futureprototype-theme/plymouth b/desktop-base/futureprototype-theme/plymouth deleted file mode 120000 index c814a5d..0000000 --- a/desktop-base/futureprototype-theme/plymouth +++ /dev/null @@ -1 +0,0 @@ -../../plymouth/themes/futureprototype \ No newline at end of file diff --git a/desktop-base/homeworld-theme/grub/grub-16x9.png b/desktop-base/homeworld-theme/grub/grub-16x9.png deleted file mode 100644 index c90d81d..0000000 Binary files a/desktop-base/homeworld-theme/grub/grub-16x9.png and /dev/null differ diff --git a/desktop-base/homeworld-theme/grub/grub-4x3.png b/desktop-base/homeworld-theme/grub/grub-4x3.png deleted file mode 100644 index f342bd9..0000000 Binary files a/desktop-base/homeworld-theme/grub/grub-4x3.png and /dev/null differ diff --git a/desktop-base/homeworld-theme/grub/grub_background.sh b/desktop-base/homeworld-theme/grub/grub_background.sh deleted file mode 100644 index c7ba469..0000000 --- a/desktop-base/homeworld-theme/grub/grub_background.sh +++ /dev/null @@ -1,3 +0,0 @@ -WALLPAPER=/usr/share/images/desktop-base/desktop-grub.png -COLOR_NORMAL=white/black -COLOR_HIGHLIGHT=black/white diff --git a/desktop-base/homeworld-theme/plymouth b/desktop-base/homeworld-theme/plymouth deleted file mode 120000 index cc82427..0000000 --- a/desktop-base/homeworld-theme/plymouth +++ /dev/null @@ -1 +0,0 @@ -../../plymouth/themes/homeworld \ No newline at end of file diff --git a/hooks/normal/0540-webinst.hook.chroot b/hooks/normal/0540-webinst.hook.chroot new file mode 100755 index 0000000..9854454 --- /dev/null +++ b/hooks/normal/0540-webinst.hook.chroot @@ -0,0 +1,5 @@ +#!/bin/bash + +# install ubiquity installer +apt install -y --no-install-recommends ubiquity ubiquity-frontend-gtk ubiquity-slideshow-ubuntu + diff --git a/install-debian/install-debian.png b/install-debian/install-debian.png deleted file mode 100644 index dff6e26..0000000 Binary files a/install-debian/install-debian.png and /dev/null differ diff --git a/plymouth/themes/debian-theme b/plymouth/themes/debian-theme deleted file mode 120000 index 132ecfa..0000000 --- a/plymouth/themes/debian-theme +++ /dev/null @@ -1 +0,0 @@ -../../desktop-base/active-theme/plymouth \ No newline at end of file diff --git a/plymouth/themes/futureprototype/debian (cópia 1).png b/plymouth/themes/futureprototype/debian (cópia 1).png deleted file mode 100644 index 434a092..0000000 Binary files a/plymouth/themes/futureprototype/debian (cópia 1).png and /dev/null differ diff --git a/plymouth/themes/futureprototype/debian.png b/plymouth/themes/futureprototype/debian.png deleted file mode 100644 index 434a092..0000000 Binary files a/plymouth/themes/futureprototype/debian.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/futureprototype.plymouth b/plymouth/themes/futureprototype/futureprototype.plymouth deleted file mode 100644 index 905ad20..0000000 --- a/plymouth/themes/futureprototype/futureprototype.plymouth +++ /dev/null @@ -1,8 +0,0 @@ -[Plymouth Theme] -Name=Default theme for Debian 10.0 Buster -Description=A theme that features a white debian 10 logo in a white spinning circle -ModuleName=script - -[script] -ImageDir=/usr/share/plymouth/themes/futureprototype -ScriptFile=/usr/share/plymouth/themes/futureprototype/futureprototype.script diff --git a/plymouth/themes/futureprototype/futureprototype.script b/plymouth/themes/futureprototype/futureprototype.script deleted file mode 100644 index 08f8032..0000000 --- a/plymouth/themes/futureprototype/futureprototype.script +++ /dev/null @@ -1,1064 +0,0 @@ -# futureprototype.script - boot splash using script plugin -# -# Copyright (C) 2009 Canonical Ltd. -# Copyright © 2010-2016 Aurélien Couderc -# Copyright © 2014-2016 Juliette Taka -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. -# -# Written by: Alberto Milone -# -# Based on the example provided with the "script plugin" written by: -# Charlie Brej -# - - -#------------------------------- Constants ----------------------------------------- -NB_ROTATION_STEPS = 70; -NB_REFRESHS_BETWEEN_ANIMS = 3; - -# Initial position of the center of the logo in % of background -DEBIAN_POS_PCT.y = 0.65; # Debian image position in % of screen height -DEBIAN_HEIGHT_PCT = 0.07; # Debian image height in % of smallest screen dimension -LOGO_CENTER_PCT.x = 0.5; # Debian swirl image position in % of screen height & width -LOGO_CENTER_PCT.y = 0.442; -LOGO_SIZE_PCT = 0.18; # Debian swirl image size in % of smallest screen dimension - -#------------------------------- Globals ------------------------------------------- -# are we currently prompting for a password? -prompt_active = 0; - -# Globals to share progress time / percent with intersted functions -progress_time = 0; -progress_pct = 0; - -# Variables for glow rotation animation -anim_start_time = NULL; -anim_status = "stopped"; -refresh_iter = 0; -anim_iter = 0; - -#-----------------------------Text-image functions---------------------------- - -# Set the text colour in (rgb / 256) -text_colour.red = 1.0; -text_colour.green = 1.0; -text_colour.blue = 1.0; - -# Tinted text #988592 -tinted_text_colour.red = 1.0; -tinted_text_colour.green = 1.0; -tinted_text_colour.blue = 1.0; - -# Action Text - #ffffff - RGB 255 255 255 -action_text_colour.red = 1.0; -action_text_colour.green = 1.0; -action_text_colour.blue = 1.0; - -# Orange - #ff4012 - RGB 255 64 18 -debugsprite = Sprite(); -debugsprite_bottom = Sprite(); -debugsprite_bottom.SetPosition(0, (Window.GetHeight (0) - 20), 1); -debugsprite_medium = Sprite(); -debugsprite_medium.SetPosition(0, (Window.GetHeight (0) - 100), 1); - -# General purpose function to create text -fun WriteText (text, colour) { - image = Image.Text (text, colour.red, colour.green, colour.blue); - return image; -} - -fun ImageFromText (text) { - image = WriteText (text, text_colour); - return image; -} - -fun ImageFromTintedText (text) { - image = WriteText (text, tinted_text_colour); - return image; -} - -fun ImageFromActionText (text) { - image = WriteText (text, action_text_colour); - return image; -} - -fun Debug(text) { - debugsprite.SetImage(ImageFromText (text)); -} - -fun DebugBottom(text) { - debugsprite_bottom.SetImage(ImageFromText (text)); -} - -fun DebugMedium(text) { - debugsprite_medium.SetImage(ImageFromText (text)); -} - -#Debug("Window.GetHeight(0) = " + Window.GetHeight(0)); -fun TextYOffset() { - local.y; - local.text_height; - local.min_height; - - # Put the 1st line below the logo + some spacing - y = debian_sprite.GetY() + debian.GetHeight(); - #Debug("y = " + y); - - text_height = first_line_height * 7.5; - min_height = window_max.height; - #Debug("text_height=" + text_height + "; min_height=" + min_height); - - if (y + text_height > min_height) - y = min_height - text_height; - - return y; -} - - -#----------------------------- Screen/window setup --------------------------- -# Compute screen/image ratio and scale the background accordingly -window_max.width = Window.GetX() * 2 + Window.GetWidth(); -window_max.height = Window.GetY() * 2 + Window.GetHeight(); -screen_ratio = window_max.width / window_max.height; -small_dimension = Math.Min(window_max.width, window_max.height); -#Debug("Window.GetX():" + Window.GetX() + ", Window.GetY():" + Window.GetY()); -#Debug("Window is [" + window_max.width + ";" + window_max.height + "], ratio=" + screen_ratio); - -debian_height = small_dimension * DEBIAN_HEIGHT_PCT; -debian_pos.y = window_max.height * DEBIAN_POS_PCT.y - debian_height/2; -logo_size = small_dimension * LOGO_SIZE_PCT; -logo_center.x = window_max.width * LOGO_CENTER_PCT.x; -logo_center.y = window_max.height * LOGO_CENTER_PCT.y; -#Debug("Logo center at [" + logo_center.x + ";" + logo_center.y + "], size=" + logo_size + "px"); - -logo_pos.x = logo_center.x - logo_size/2; -logo_pos.y = logo_center.y - logo_size/2; - -#------------------------------- Background ---------------------------------------- -bg_image = Image("plymouth_background_future.png"); -bg_image_ratio = bg_image.GetWidth() / bg_image.GetHeight(); -if (screen_ratio > bg_image_ratio) - bg_scale_factor = window_max.width / bg_image.GetWidth(); -else - bg_scale_factor = window_max.height / bg_image.GetHeight(); -scaled_bg_image = bg_image.Scale(bg_image.GetWidth() * bg_scale_factor, - bg_image.GetHeight() * bg_scale_factor); - -# Display background -bg_sprite = Sprite(scaled_bg_image); -bg_sprite.SetPosition(Window.GetX() + Window.GetWidth() / 2 - scaled_bg_image.GetWidth() / 2, - Window.GetY() + Window.GetHeight() / 2 - scaled_bg_image.GetHeight() / 2, - -1000); - -#------------------------------- Debian ---------------------------------------------- -debian = Image("debian.png"); -# Target same height as logo -debian_scale_factor = debian_height / debian.GetHeight(); -debian = debian.Scale(debian.GetWidth() * debian_scale_factor, - debian.GetHeight() * debian_scale_factor); -debian_sprite = Sprite(debian); -debian_sprite.SetPosition(window_max.width / 2 - debian.GetWidth() / 2, - debian_pos.y, - -90); - -#------------------------------- Logo ---------------------------------------------- -logo = Image("logo.png"); -logo_scale_factor = logo_size / logo.GetWidth(); -logo = logo.Scale(logo.GetWidth() * logo_scale_factor, - logo.GetHeight() * logo_scale_factor); -logo_to_top_edge = Window.GetHeight() * 0.3; -logo_sprite = Sprite(logo); -logo_sprite.SetPosition(logo_pos.x, logo_pos.y, -50); - - -logo_glow = Image("logo_circle.png"); -logo_glow_scale_factor = logo_size / logo_glow.GetWidth(); -logo_glow[0] = logo_glow.Scale(logo_glow.GetWidth() * logo_glow_scale_factor, - logo_glow.GetHeight() * logo_glow_scale_factor); -logo_glow_sprite = Sprite(); -logo_glow_sprite.SetPosition(logo_pos.x, logo_pos.y, -60); -logo_glow_sprite.SetImage(logo_glow[0]); - - - -#------------------------------String functions------------------------------- - -# This is the equivalent for strstr() -fun StringString(string, substring) { - start = 0; - while (String(string).CharAt (start)) { - walk = 0; - while (String(substring).CharAt (walk) == String(string).CharAt (start + walk) ) { - walk++; - if (!String(substring).CharAt (walk)) return start; - } - start++; - } - - return NULL; -} - -fun StringLength (string) { - index = 0; - while (String(string).CharAt(index)) index++; - return index; -} - -fun StringCopy (source, beginning, end) { - local.destination = ""; - for (index = beginning; ( ( (end == NULL) || (index <= end) ) && (String(source).CharAt(index)) ); index++) { - local.destination += String(source).CharAt(index); - } - - return local.destination; -} - -fun StringReplace (source, pattern, replacement) { - local.found = StringString(source, pattern); - if (local.found == NULL) - return source; - - local.new_string = StringCopy (source, 0, local.found - 1) + - replacement + - StringCopy (source, local.found + StringLength(pattern), NULL); - - return local.new_string; -} - -# it makes sense to use it only for -# numbers up to 100 -fun StringToInteger (str) { - int = -1; - for (i=0; i<=100; i++) { - if (i+"" == str) { - int = i; - break; - } - } - return int; -} - -#----------------------------------------------------------------------------- -# Top background colour -# #489291 --> 0.282, 0.572, 0.569 -# New background colour -# #0a3649 --> 0.039, 0.212, 0.286 -# -Window.SetBackgroundTopColor (0.282, 0.572, 0.569); # Nice colour on top of the screen fading to -Window.SetBackgroundBottomColor (0.039, 0.212, 0.286); # an equally nice colour on the bottom - -bits_per_pixel = Window.GetBitsPerPixel (); -# TODO need to handle 16 colors ? -#if (bits_per_pixel == 4) { -# logo_filename = "debian_logo16.png"; -# progress_dot_off_filename = "progress_dot_off16.png"; -# progress_dot_on_filename = "progress_dot_on16.png"; -# password_dot_filename = "password_dot.png"; -# password_field_filename = "password_field16.png"; -#} else { -# logo_filename = "debian_logo.png"; -# progress_dot_off_filename = "progress_dot_off.png"; -# progress_dot_on_filename = "progress_dot_on.png"; - password_dot_filename = "password_dot.png"; - password_field_filename = "password_field.png"; -#} - -message_notification[0].image = ImageFromTintedText (""); -message_notification[1].image = ImageFromTintedText (""); -fsck_notification.image = ImageFromActionText (""); - -status = "normal"; - -# use a fixed string with ascending and descending stems to calibrate the -# bounding box for the first message, so the messages below don't move up -# and down according to *their* height. -first_line_height = ImageFromTintedText ("AfpqtM").GetHeight(); - -# if the user has a 640x480 or 800x600 display, we can't quite fit everything -# (including passphrase prompts) with the target spacing, so scoot the text up -# a bit if needed. -top_of_the_text = TextYOffset(); - - -#-------------------------------Progress Indicator----------------------------- -# Implement in boot progress callback -fun animate_progress_indicator (time, progress) { - progress_time = time; - progress_pct = progress; - - #Debug ("mode = " + Plymouth.GetMode() + ", progress_time = " + progress_time + ", progress_pct = " + progress_pct); - -} - - -#-----------------------------------------Label utility functions--------------------- - -# label should be either a string or NULL -# Images for n lines will be created and returned as items of the -# message_label array -# -fun get_message_label (label, is_fake, is_action_line) { - #Debug("Get Label position"); - local.message_label; - - if (is_fake) - # Create a fake label so as to get the y coordinate of - # a standard-length label. - local.message_image = ImageFromTintedText ("This is a fake message"); - else - local.message_image = (is_action_line) && ImageFromActionText (label) || ImageFromTintedText (label); - - message_label.width = message_image.GetWidth (); - message_label.height = message_image.GetHeight (); - - # Center the line horizontally - message_label.x = Window.GetX () + Window.GetWidth () / 2 - message_label.width / 2; - - message_label.y = top_of_the_text; - - # Put the 2nd line below the fsck line - if (is_action_line) { - local.fsck_label.y = message_label.y + (first_line_height + first_line_height / 2); - message_label.y = local.fsck_label.y + (first_line_height * 1.5); - } - - #Debug("action label x = " + message_label.x + " y = " + message_label.y ); - -# message_debug = "msg_x = " + message_label.x + " msg_y = " + message_label.y + -# "msg_width = " + message_label.width + " msg_height = " + -# message_label.height + " message = " + label; -# Debug(message_debug); - - return message_label; - -} - -# Create an fsck label and/or get its position -fun get_fsck_label (label, is_fake) { - # Debug("Get Label position"); - local.fsck_label = global.progress_label; - - if (is_fake) - fsck_label.image = ImageFromTintedText ("This is a fake message"); - else - fsck_label.image = ImageFromTintedText (label); - - fsck_label.width = fsck_label.image.GetWidth (); - fsck_label.height = fsck_label.image.GetHeight (); - - # Centre the label horizontally - fsck_label.x = Window.GetX () + Window.GetWidth () / 2 - fsck_label.width / 2; - - local.first_label = get_message_label (label, 1, 0); - - # Place the label below the 1st message line - fsck_label.y = local.first_label.y + local.first_label.height + (local.first_label.height / 2); - -# message_debug = "msg_x = " + fsck_label.x + " msg_y = " + fsck_label.y + -# "msg_width = " + fsck_label.width + " msg_height = " + -# fsck_label.height + " message = " + label; -# Debug(message_debug); - - return fsck_label; -} - -#-----------------------------------------Message stuff -------------------------------- -# - -# Set up a message label -# -# NOTE: this is called when doing something like 'plymouth message "hello world"' -# -fun setup_message (message_text, x, y, z, index) { - #DebugMedium("Message setup: " + message_text); - global.message_notification[index].image = (index) && ImageFromActionText (message_text) || ImageFromTintedText (message_text); - - # Set up the text message, if any - message_notification[index].x = x; - message_notification[index].y = y; - message_notification[index].z = z; - - message_notification[index].sprite = Sprite (); - message_notification[index].sprite.SetImage (message_notification[index].image); - message_notification[index].sprite.SetX (message_notification[index].x); - message_notification[index].sprite.SetY (message_notification[index].y); - message_notification[index].sprite.SetZ (message_notification[index].z); - -} - -fun show_message (index) { - if (global.message_notification[index].sprite) global.message_notification[index].sprite.SetOpacity(1); -} - -fun hide_message (index) { - if (global.message_notification[index].sprite) global.message_notification[index].sprite.SetOpacity(0); -} - - - - -# the callback function is called when new message should be displayed. -# First arg is message to display. -fun message_callback (message) -{ - # Debug("Message callback"); - is_fake = 0; - if (!message || (message == "")) is_fake = 1; - - local.substring = "keys:"; - - # Look for the "keys:" prefix - local.keys = StringString(message, local.substring); - - local.is_action_line = (keys != NULL); - #Debug("keys " + local.keys + " substring length = " + StringLength(local.substring)); - - # Get the message without the "keys:" prefix - if (keys != NULL) - message = StringCopy (message, keys + StringLength(local.substring), NULL); - - # Get the message without the "fsckd-cancel-msg" prefix as we don't support i18n - substring = "fsckd-cancel-msg:"; - keys = StringString(message, substring); - if (keys != NULL) - message = StringCopy(message, keys + StringLength(substring), NULL); - - local.label.is_fake = is_fake; - label = get_message_label(message, is_fake, is_action_line); - label.z = 10000; - - setup_message (message, label.x, label.y, label.z, is_action_line); - if (prompt_active && local.is_action_line) - hide_message (is_action_line); - else - show_message (is_action_line); - -} - - -#-----------------------------------------Display Password stuff ----------------------- -# - -fun password_dialogue_setup (message_label) { - #Debug("Password dialog setup"); - - local.entry; - local.bullet_image; - - bullet_image = Image (password_dot_filename); - entry.image = Image (password_field_filename); - - # Hide the normal labels - prompt_active = 1; - if (message_notification[1].sprite) hide_message (1); - - # Set the prompt label - label = get_message_label(message_label, 0, 1); - label.z = 10000; - - setup_message (message_label, label.x, label.y, label.z, 2); - show_message (2); - - # Set up the text entry which contains the bullets - entry.sprite = Sprite (); - entry.sprite.SetImage (entry.image); - - # Centre the box horizontally - entry.x = Window.GetX () + Window.GetWidth () / 2 - entry.image.GetWidth () / 2; - - # Put the entry below the second label. - entry.y = message_notification[2].y + label.height * 1.5; - - #DebugMedium("entry x = " + entry.x + ", y = " + entry.y); - entry.z = 10000; - entry.sprite.SetX (entry.x); - entry.sprite.SetY (entry.y); - entry.sprite.SetZ (entry.z); - - global.password_dialogue = local; -} - -fun password_dialogue_opacity (opacity) { - #Debug("Setting password dialog opacity to " + opacity); - global.password_dialogue.opacity = opacity; - local = global.password_dialogue; - - # You can make the box translucent with a float - # entry.sprite.SetOpacity (0.3); - entry.sprite.SetOpacity (opacity); - label.sprite.SetOpacity (opacity); - - if (bullets) { - for (index = 0; bullets[index]; index++) { - bullets[index].sprite.SetOpacity (opacity); - } - } -} - - -# The callback function is called when the display should display a password dialogue. -# First arg is prompt string, the second is the number of bullets. -fun display_password_callback (prompt, bullets) { - #Debug("Password dialog setup"); - - global.status = "password"; - if (!global.password_dialogue) password_dialogue_setup(prompt); - password_dialogue_opacity (1); - bullet_width = password_dialogue.bullet_image.GetWidth(); - bullet_y = password_dialogue.entry.y + - password_dialogue.entry.image.GetHeight () / 2 - - password_dialogue.bullet_image.GetHeight () / 2; - margin = bullet_width; - spaces = Math.Int( (password_dialogue.entry.image.GetWidth () - (margin * 2)) / (bullet_width / 2 ) ); - #DebugMedium ("spaces = " + spaces + ", bullets = " + bullets); - bullets_area.width = margin + spaces * (bullet_width / 2); - bullets_area.x = Window.GetX () + Window.GetWidth () / 2 - bullets_area.width / 2; - #DebugBottom ("pwd_entry (x,y) = " + password_dialogue.entry.x + "," + password_dialogue.entry.y - # + "), bullets_area.x = " + bullets_area.x + ", bullets_area.width = " + bullets_area.width); - if (bullets > spaces) - bullets = spaces; - for (index = 0; password_dialogue.bullets[index] || index < bullets; index++){ - if (!password_dialogue.bullets[index]) { - password_dialogue.bullets[index].sprite = Sprite (); - password_dialogue.bullets[index].sprite.SetImage (password_dialogue.bullet_image); - password_dialogue.bullets[index].x = bullets_area.x + # password_dialogue.entry.x + margin + - index * bullet_width / 2; - password_dialogue.bullets[index].sprite.SetX (password_dialogue.bullets[index].x); - password_dialogue.bullets[index].y = bullet_y; - password_dialogue.bullets[index].sprite.SetY (password_dialogue.bullets[index].y); - password_dialogue.bullets[index].z = password_dialogue.entry.z + 1; - password_dialogue.bullets[index].sprite.SetZ (password_dialogue.bullets[index].z); - } - - password_dialogue.bullets[index].sprite.SetOpacity (0); - - if (index < bullets) { - password_dialogue.bullets[index].sprite.SetOpacity (1); - } - } -} - -Plymouth.SetDisplayPasswordFunction (display_password_callback); - -Plymouth.SetMessageFunction (message_callback); - -Plymouth.SetBootProgressFunction (animate_progress_indicator); - -# Plymouth.SetBootProgressFunction: the callback function is called with two numbers, the progress (between 0 and 1) and the time spent booting so far -# Plymouth.SetRootMountedFunction: the callback function is called when a new root is mounted -# Plymouth.SetKeyboardInputFunction: the callback function is called with a string containing a new character entered on the keyboard - -#----------------------------------------- FSCK Counter -------------------------------- - -# Initialise the counter -fun init_fsck_count () { - # The number of fsck checks in this cycle - global.counter.total = 0; - # The number of fsck checks already performed + the current one - global.counter.current = 1; - # The previous fsck - global.counter.last = 0; -} - -# Increase the total counter -fun increase_fsck_count () { - global.counter.total++; -} - -fun increase_current_fsck_count () { - global.counter.last = global.counter.current++; -} - -# Clear the counter -fun clear_fsck_count () { - global.counter = NULL; - init_fsck_count (); -} - -#----------------------------------------- Progress Label ------------------------------ - - -# Change the opacity level of a progress label -# -# opacity = 1 -> show -# opacity = 0 -> hide -# opacity = 0.3 (or any other float) -> translucent -# -fun set_progress_label_opacity (opacity) { - # the label - progress_label.sprite.SetOpacity (opacity); - - # Make the slot available again when hiding the bar - # So that another bar can take its place - if (opacity == 0) { - progress_label.is_available = 1; - progress_label.device = ""; - } -} - -# Set up a new Progress Bar -# -# TODO: Make it possible to reuse (rather than recreate) a bar -# if .is_available = 1. Ideally this would just reset the -# label, the associated -# device and the image size of the sprite. - -fun init_progress_label (device, status_string) { - # Make the slot unavailable - global.progress_label.is_available = 0; - progress_label.progress = 0; - progress_label.device = device; - progress_label.status_string = status_string; -} - -# See if the progress label is keeping track of the fsck -# of "device" -# -fun device_has_progress_label (device) { - #DebugBottom ("label device = " + progress_label.device + " checking device " + device); - return (progress_label.device == device); -} - -# Update the Progress bar which corresponds to index -# -fun update_progress_label (progress) { - # If progress is NULL then we just refresh the label. - # This happens when only counter.total has changed. - if (progress != NULL) { - progress_label.progress = progress; - - #Debug("device " + progress_label.device + " progress " + progress); - - # If progress >= 100% hide the label and make it available again - if (progress >= 100) { - set_progress_label_opacity (0); - - # See if we any other fsck check is complete - # and, if so, hide the progress bars and the labels - on_fsck_completed (); - - return 0; - } - } - # Update progress label here - # - # FIXME: the queue logic from this theme should really be moved into mountall - # instead of using string replacement to deal with localised strings. - label = StringReplace (progress_label.status_string[0], "%1$d", global.counter.current); - label = StringReplace (label, "%2$d", global.counter.total); - label = StringReplace (label, "%3$d", progress_label.progress); - label = StringReplace (label, "%%", "%"); - - progress_label = get_fsck_label (label, 0); - #progress_label.progress = progress; - - progress_label.sprite = Sprite (progress_label.image); - - # Set up the bar - progress_label.sprite.SetPosition(progress_label.x, progress_label.y, 1); - - set_progress_label_opacity (1); - -} - -# Refresh the label so as to update counters -fun refresh_progress_label () { - update_progress_label (NULL); -} - -#----------------------------------------- FSCK Queue ---------------------------------- - -# Initialise the fsck queue -fun init_queue () { - global.fsck_queue[0].device; - global.fsck_queue[0].progress; - global.fsck_queue.counter = 0; - global.fsck_queue.biggest_item = 0; -} - -fun clear_queue () { - global.fsck_queue = NULL; - init_queue (); -} - -# Return either the device index in the queue or -1 -fun queue_look_up_by_device (device) { - for (i=0; i <= fsck_queue.biggest_item; i++) { - if ((fsck_queue[i]) && (fsck_queue[i].device == device)) - return i; - } - return -1; -} - -# Keep track of an fsck process in the queue -fun add_fsck_to_queue (device, progress) { - # Look for an empty slot in the queue - for (i=0; global.fsck_queue[i].device; i++) { - continue; - } - local.index = i; - - # Set device and progress - global.fsck_queue[local.index].device = device; - global.fsck_queue[local.index].progress = progress; - - # Increase the queue counter - global.fsck_queue.counter++; - - # Update the max index of the array for iterations - if (local.index > global.fsck_queue.biggest_item) - global.fsck_queue.biggest_item = local.index; - - #DebugMedium ("Adding " + device + " at " + local.index); -} - -fun is_queue_empty () { - return (fsck_queue.counter == 0); -} - -fun is_progress_label_available () { - return (progress_label.is_available == 1); -} - - -# This should cover the case in which the fsck checks in -# the queue are completed before the ones showed in the -# progress label -fun on_queued_fsck_completed () { - if (!is_queue_empty ()) - return; - - # Hide the extra label, if any - #if (progress_bar.extra_label.sprite) - # progress_bar.extra_label.sprite.SetOpacity(0); -} - -fun remove_fsck_from_queue (index) { - # Free memory which was previously allocated for - # device and progress - global.fsck_queue[index].device = NULL; - global.fsck_queue[index].progress = NULL; - - # Decrease the queue counter - global.fsck_queue.counter--; - - # See if there are other processes in the queue - # if not, clear the extra_label - on_queued_fsck_completed (); -} - -fun on_fsck_completed () { - # We have moved on to tracking the next fsck - increase_current_fsck_count (); - - if (!is_progress_label_available ()) - return; - - if (!is_queue_empty ()) - return; - - # Hide the progress label - if (progress_label.sprite) - progress_label.sprite.SetOpacity (0); - - # Clear the queue - clear_queue (); - - # Clear the fsck counter - clear_fsck_count (); -} - -# Update an fsck process that we keep track of in the queue -fun update_progress_in_queue (index, device, progress) { - # If the fsck is complete, remove it from the queue - if (progress >= 100) { - remove_fsck_from_queue (index); - on_queued_fsck_completed (); - return; - } - - global.fsck_queue[index].device = device; - global.fsck_queue[index].progress = progress; - -} - -# TODO: Move it to some function -# Create an empty queue -#init_queue (); - - -#----------------------------------------- FSCK Functions ------------------------------ - - -# Either add a new bar for fsck checks or update an existing bar -# -# NOTE: no more than "progress_bar.max_number" bars are allowed -# -fun fsck_check (device, progress, status_string) { - - # The 1st time this will take place - if (!global.progress_label) { - # Increase the fsck counter - increase_fsck_count (); - - # Set up a new label for the check - init_progress_label (device, status_string); - update_progress_label (progress); - - return; - } - - - if (device_has_progress_label (device)) { - # Update the progress of the existing label - update_progress_label (progress); - } - else { - # See if there's already a slot in the queue for the device - local.queue_device_index = queue_look_up_by_device(device); - - # See if the progress_label is available - if (progress_label.is_available) { - -# local.my_string = "available index " + local.available_index + " progress_bar counter is " + progress_bar.counter; -# Debug(local.my_string); - - - # If the fsck check for the device was in the queue, then - # remove it from the queue - if (local.queue_device_index >= 0) { - remove_fsck_from_queue (index); - } - else { - # Increase the fsck counter - increase_fsck_count (); - } - -# local.my_string += local.message; - #Debug("setting new label for device " + device + " progress " + progress); - - # Set up a new label for the check - init_progress_label (device, status_string); - update_progress_label (progress); - - } - # If the progress_label is not available - else { - - # If the fsck check for the device is already in the queue - # just update its progress in the queue - if (local.queue_device_index >= 0) { - #DebugMedium("Updating queue at " + local.queue_device_index + " for device " + device); - update_progress_in_queue (local.queue_device_index, device, progress); - } - # Otherwise add the check to the queue - else { - #DebugMedium("Adding device " + device + " to queue at " + local.queue_device_index); - add_fsck_to_queue (device, progress); - - # Increase the fsck counter - increase_fsck_count (); - - refresh_progress_label (); - } - - } - } - -# if (!is_queue_empty ()) { -# DebugBottom("Extra label for "+ device); - #} -# else { -# DebugBottom("No extra label for " + device + ". 1st Device in the queue "+ fsck_queue[0].device + " counter = " + global.fsck_queue.counter); -# } -} - - -#-----------------------------------------Update Status stuff -------------------------- -# -# The update_status_callback is what we can use to pass plymouth whatever we want so -# as to make use of features which are available only in this program (as opposed to -# being available for any theme for the script plugin). -# -# Example: -# -# Thanks to the current implementation, some scripts can call "plymouth --update=fsck:sda1:40" -# and this program will know that 1) we're performing and fsck check, 2) we're checking sda1, -# 3) the program should set the label progress to 40% -# -# Other features can be easily added by parsing the string that we pass plymouth with "--update" -# -fun update_status_callback (status) { -# Debug(status); - if (!status) return; - - string_it = 0; - update_strings[string_it] = ""; - - for (i=0; (String(status).CharAt(i) != ""); i++) { - local.temp_char = String(status).CharAt(i); - if (temp_char != ":") - update_strings[string_it] += temp_char; - else - update_strings[++string_it] = ""; - } - -# my_string = update_strings[0] + " " + update_strings[1] + " " + update_strings[2]; -# Debug(my_string); - # Let's assume that we're dealing with these strings fsck:sda1:40 - if ((string_it >= 2) && (update_strings[0] == "fsck")) { - - device = update_strings[1]; - progress = update_strings[2]; - status_string[0] = update_strings[3]; # "Checking disk %1$d of %2$d (%3$d %% complete)" - if (!status_string[0]) - status_string[0] = "Checking disk %1$d of %2$d (%3$d %% complete)"; - - if ((device != "") && (progress != "")) { - progress = StringToInteger (progress); - - # Make sure that the fsck_queue is initialised - if (!global.fsck_queue) - init_queue (); - - # Make sure that the fsck counter is initialised - if (!global.counter) - init_fsck_count (); - -# if (!global.progress_bar.extra_label.sprite) -# create_extra_fsck_label (); - - # Keep track of the fsck check - fsck_check (device, progress, status_string); - } - - } - - # systemd-fsckd pass fsckd::: - if (update_strings[0] == "fsckd") { - number_devices = StringToInteger(update_strings[1]); - - if (number_devices > 0) { - label = update_strings[3]; - - progress_label = get_fsck_label (label, 0); - progress_label.sprite = Sprite (progress_label.image); - progress_label.sprite.SetPosition(progress_label.x, progress_label.y, 1); - progress_label.sprite.SetOpacity (1); - } else { - if (progress_label.sprite) - progress_label.sprite.SetOpacity (0); - } - } - -} -Plymouth.SetUpdateStatusFunction (update_status_callback); - -#-----------------------------------------Display Question stuff ----------------------- -# -# TODO: Implement this if needed -# -# The callback function is called when the display should display a question dialogue. -# First arg is prompt string, the second is the entry contents. -#fun display_question_callback (prompt_string, entry_contents) -#{ -# time++; -#} -# -#Plymouth.SetDisplayQuestionFunction (display_question_callback); - -fun rotate_img(source_img, current_step, nb_steps) { - angle = Math.Sin(current_step / nb_steps * Math.Pi / 2) * 2 * Math.Pi; - #debug_sin = Math.Sin(current_step / nb_steps * Math.Pi / 2); - #DebugMedium("Sin = " + debug_sin); - rotated_img = source_img.Rotate(angle); - return rotated_img; -} - -fun update_glow_anim () { - if (global.anim_start_time != global.progress_time && global.anim_status != "running") { - global.anim_start_time = global.progress_time; - global.anim_iter = 0; - global.anim_status = "running"; - } - - if (global.anim_status == "running") { - iter_img = global.logo_glow[global.anim_iter]; - if (iter_img == NULL) { - # Generate rotated image for the glow around the logo on demand. - #DebugMedium("Generating rotated image for index " + global.anim_iter); - iter_img = rotate_img(logo_glow[0], global.anim_iter, NB_ROTATION_STEPS); - global.logo_glow[global.anim_iter] = iter_img; - } - global.logo_glow_sprite.SetImage(iter_img); - global.anim_iter++; - - if (global.anim_iter >= NB_ROTATION_STEPS) { - global.anim_status = "stopped"; - } - } -} - -#-----------------------------------------Refresh stuff -------------------------------- -# -# Calling Plymouth.SetRefreshFunction with a function will set that function to be -# called up to 50 times every second, e.g. -# -# NOTE: if a refresh function is not set, Plymouth doesn't seem to be able to update -# the screen correctly -# -fun refresh_callback () -{ - global.refresh_iter++; - if (global.refresh_iter == NB_REFRESHS_BETWEEN_ANIMS) { - global.refresh_iter = 0; - update_glow_anim(); - } - #DebugBottom ("refresh_iter=" + refresh_iter + "; anim_status=" + anim_status + "; anim_start_time=" + anim_start_time + "; anim_iter=" + anim_iter); -} -Plymouth.SetRefreshFunction (refresh_callback); - - -#-----------------------------------------Display Normal stuff ----------------------- -# -# The callback function is called when the display should return to normal -fun display_normal_callback () -{ - global.status = "normal"; - if (global.password_dialogue) { - password_dialogue_opacity (0); - global.password_dialogue = NULL; - if (message_notification[2].sprite) hide_message(2); - prompt_active = 0; - } - - if (message_notification[1].sprite) { - show_message (1); - } - -} - -Plymouth.SetDisplayNormalFunction (display_normal_callback); - - -#----------------------------------------- Quit -------------------------------- - -fun quit_callback () -{ -} - -Plymouth.SetQuitFunction(quit_callback); diff --git a/plymouth/themes/futureprototype/logo.png b/plymouth/themes/futureprototype/logo.png deleted file mode 100644 index f228662..0000000 Binary files a/plymouth/themes/futureprototype/logo.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/logo_circle.png b/plymouth/themes/futureprototype/logo_circle.png deleted file mode 100644 index ed3bf4b..0000000 Binary files a/plymouth/themes/futureprototype/logo_circle.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/password_dot.png b/plymouth/themes/futureprototype/password_dot.png deleted file mode 100644 index f1103d1..0000000 Binary files a/plymouth/themes/futureprototype/password_dot.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/password_dot16.png b/plymouth/themes/futureprototype/password_dot16.png deleted file mode 100644 index 4e3f3ce..0000000 Binary files a/plymouth/themes/futureprototype/password_dot16.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/password_field.png b/plymouth/themes/futureprototype/password_field.png deleted file mode 100644 index 46e899d..0000000 Binary files a/plymouth/themes/futureprototype/password_field.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/password_field16.png b/plymouth/themes/futureprototype/password_field16.png deleted file mode 100644 index 4a173a6..0000000 Binary files a/plymouth/themes/futureprototype/password_field16.png and /dev/null differ diff --git a/plymouth/themes/futureprototype/plymouth_background_future.png b/plymouth/themes/futureprototype/plymouth_background_future.png deleted file mode 100644 index aada9a3..0000000 Binary files a/plymouth/themes/futureprototype/plymouth_background_future.png and /dev/null differ diff --git a/plymouth/themes/homeworld/debian.png b/plymouth/themes/homeworld/debian.png deleted file mode 100644 index 434a092..0000000 Binary files a/plymouth/themes/homeworld/debian.png and /dev/null differ diff --git a/plymouth/themes/homeworld/homeworld.plymouth b/plymouth/themes/homeworld/homeworld.plymouth deleted file mode 100644 index 04ee761..0000000 --- a/plymouth/themes/homeworld/homeworld.plymouth +++ /dev/null @@ -1,8 +0,0 @@ -[Plymouth Theme] -Name=Default theme for Debian 11.0 Buster (WIP) -Description=A theme inspired by the Bauhaus movement -ModuleName=script - -[script] -ImageDir=/usr/share/plymouth/themes/homeworld -ScriptFile=/usr/share/plymouth/themes/homeworld/homeworld.script diff --git a/plymouth/themes/homeworld/homeworld.script b/plymouth/themes/homeworld/homeworld.script deleted file mode 100644 index e3e1fa5..0000000 --- a/plymouth/themes/homeworld/homeworld.script +++ /dev/null @@ -1,1058 +0,0 @@ -# homeworld.script - boot splash using script plugin -# -# Copyright (C) 2009 Canonical Ltd. -# Copyright © 2010-2021 Aurélien Couderc -# Copyright © 2014-2021 Juliette Taka -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. -# -# Written by: Alberto Milone -# -# Based on the example provided with the "script plugin" written by: -# Charlie Brej -# - - -#------------------------------- Constants ----------------------------------------- -NB_ROTATION_STEPS = 70; -NB_REFRESHS_BETWEEN_ANIMS = 3; - -# Initial position of the center of the logo in % of background -DEBIAN_POS_PCT.y = 0.68; # Debian image position in % of screen height -DEBIAN_HEIGHT_PCT = 0.07; # Debian image height in % of smallest screen dimension -LOGO_CENTER_PCT.x = 0.5; # Debian swirl image position in % of screen height & width -LOGO_CENTER_PCT.y = 0.5; -LOGO_SIZE_PCT = 0.18; # Debian swirl image size in % of smallest screen dimension - -#------------------------------- Globals ------------------------------------------- -# are we currently prompting for a password? -prompt_active = 0; - -# Globals to share progress time / percent with intersted functions -progress_time = 0; -progress_pct = 0; - -# Variables for glow rotation animation -anim_start_time = NULL; -anim_status = "stopped"; -refresh_iter = 0; -anim_iter = 0; - -#-----------------------------Text-image functions---------------------------- - -# Set the text colour in (rgb / 256) -text_colour.red = 1.0; -text_colour.green = 1.0; -text_colour.blue = 1.0; - -# Tinted text #988592 -tinted_text_colour.red = 1.0; -tinted_text_colour.green = 1.0; -tinted_text_colour.blue = 1.0; - -# Action Text - #ffffff - RGB 255 255 255 -action_text_colour.red = 1.0; -action_text_colour.green = 1.0; -action_text_colour.blue = 1.0; - -# Orange - #ff4012 - RGB 255 64 18 -debugsprite = Sprite(); -debugsprite_bottom = Sprite(); -debugsprite_bottom.SetPosition(0, (Window.GetHeight (0) - 20), 1); -debugsprite_medium = Sprite(); -debugsprite_medium.SetPosition(0, (Window.GetHeight (0) - 100), 1); - -# General purpose function to create text -fun WriteText (text, colour) { - image = Image.Text (text, colour.red, colour.green, colour.blue); - return image; -} - -fun ImageFromText (text) { - image = WriteText (text, text_colour); - return image; -} - -fun ImageFromTintedText (text) { - image = WriteText (text, tinted_text_colour); - return image; -} - -fun ImageFromActionText (text) { - image = WriteText (text, action_text_colour); - return image; -} - -fun Debug(text) { - debugsprite.SetImage(ImageFromText (text)); -} - -fun DebugBottom(text) { - debugsprite_bottom.SetImage(ImageFromText (text)); -} - -fun DebugMedium(text) { - debugsprite_medium.SetImage(ImageFromText (text)); -} - -#Debug("Window.GetHeight(0) = " + Window.GetHeight(0)); -fun TextYOffset() { - local.y; - local.text_height; - local.min_height; - - # Put the 1st line below the logo + some spacing - y = debian_sprite.GetY() + debian.GetHeight(); - #Debug("y = " + y); - - text_height = first_line_height * 7.5; - min_height = window_max.height; - #Debug("text_height=" + text_height + "; min_height=" + min_height); - - if (y + text_height > min_height) - y = min_height - text_height; - - return y; -} - - -#----------------------------- Screen/window setup --------------------------- -# Compute screen/image ratio and scale the background accordingly -window_max.width = Window.GetX() * 2 + Window.GetWidth(); -window_max.height = Window.GetY() * 2 + Window.GetHeight(); -screen_ratio = window_max.width / window_max.height; -small_dimension = Math.Min(window_max.width, window_max.height); -#Debug("Window.GetX():" + Window.GetX() + ", Window.GetY():" + Window.GetY()); -#Debug("Window is [" + window_max.width + ";" + window_max.height + "], ratio=" + screen_ratio); - -debian_height = small_dimension * DEBIAN_HEIGHT_PCT; -debian_pos.y = window_max.height * DEBIAN_POS_PCT.y - debian_height/2; -logo_size = small_dimension * LOGO_SIZE_PCT; -logo_center.x = window_max.width * LOGO_CENTER_PCT.x; -logo_center.y = window_max.height * LOGO_CENTER_PCT.y; -#Debug("Logo center at [" + logo_center.x + ";" + logo_center.y + "], size=" + logo_size + "px"); - -logo_pos.x = logo_center.x - logo_size/2; -logo_pos.y = logo_center.y - logo_size/2; - -#------------------------------- Background ---------------------------------------- -bg_image = Image("plymouth_background_homeworld.png"); -scaled_bg_image = bg_image.Scale(window_max.width, window_max.height); - -# Display background -bg_sprite = Sprite(scaled_bg_image); -bg_sprite.SetPosition(Window.GetX() + Window.GetWidth() / 2 - scaled_bg_image.GetWidth() / 2, - Window.GetY() + Window.GetHeight() / 2 - scaled_bg_image.GetHeight() / 2, - -1000); - -#------------------------------- Debian ---------------------------------------------- -debian = Image("debian.png"); -# Target same height as logo -debian_scale_factor = debian_height / debian.GetHeight(); -debian = debian.Scale(debian.GetWidth() * debian_scale_factor, - debian.GetHeight() * debian_scale_factor); -debian_sprite = Sprite(debian); -debian_sprite.SetPosition(window_max.width / 2 - debian.GetWidth() / 2, - debian_pos.y, - -90); - -#------------------------------- Logo ---------------------------------------------- -logo = Image("logo.png"); -logo_scale_factor = logo_size / logo.GetWidth(); -logo = logo.Scale(logo.GetWidth() * logo_scale_factor, - logo.GetHeight() * logo_scale_factor); -logo_to_top_edge = Window.GetHeight() * 0.3; -logo_sprite = Sprite(logo); -logo_sprite.SetPosition(logo_pos.x, logo_pos.y, -50); - - -logo_glow = Image("logo_circle.png"); -logo_glow_scale_factor = logo_size / logo_glow.GetWidth(); -logo_glow[0] = logo_glow.Scale(logo_glow.GetWidth() * logo_glow_scale_factor, - logo_glow.GetHeight() * logo_glow_scale_factor); -logo_glow_sprite = Sprite(); -logo_glow_sprite.SetPosition(logo_pos.x, logo_pos.y, -60); -logo_glow_sprite.SetImage(logo_glow[0]); - - - -#------------------------------String functions------------------------------- - -# This is the equivalent for strstr() -fun StringString(string, substring) { - start = 0; - while (String(string).CharAt (start)) { - walk = 0; - while (String(substring).CharAt (walk) == String(string).CharAt (start + walk) ) { - walk++; - if (!String(substring).CharAt (walk)) return start; - } - start++; - } - - return NULL; -} - -fun StringLength (string) { - index = 0; - while (String(string).CharAt(index)) index++; - return index; -} - -fun StringCopy (source, beginning, end) { - local.destination = ""; - for (index = beginning; ( ( (end == NULL) || (index <= end) ) && (String(source).CharAt(index)) ); index++) { - local.destination += String(source).CharAt(index); - } - - return local.destination; -} - -fun StringReplace (source, pattern, replacement) { - local.found = StringString(source, pattern); - if (local.found == NULL) - return source; - - local.new_string = StringCopy (source, 0, local.found - 1) + - replacement + - StringCopy (source, local.found + StringLength(pattern), NULL); - - return local.new_string; -} - -# it makes sense to use it only for -# numbers up to 100 -fun StringToInteger (str) { - int = -1; - for (i=0; i<=100; i++) { - if (i+"" == str) { - int = i; - break; - } - } - return int; -} - -#----------------------------------------------------------------------------- -# Top background colour -# #010027 --> 0.004, 0.0, 0.153 -# Bottom background colour -# #010027 --> 0.004, 0.0, 0.153 -# -Window.SetBackgroundTopColor (0.004, 0.0, 0.153); # Nice colour on top of the screen fading to -Window.SetBackgroundBottomColor (0.004, 0.0, 0.153); # an equally nice colour on the bottom - -bits_per_pixel = Window.GetBitsPerPixel (); -# TODO need to handle 16 colors ? -#if (bits_per_pixel == 4) { -# logo_filename = "debian_logo16.png"; -# progress_dot_off_filename = "progress_dot_off16.png"; -# progress_dot_on_filename = "progress_dot_on16.png"; -# password_dot_filename = "password_dot.png"; -# password_field_filename = "password_field16.png"; -#} else { -# logo_filename = "debian_logo.png"; -# progress_dot_off_filename = "progress_dot_off.png"; -# progress_dot_on_filename = "progress_dot_on.png"; - password_dot_filename = "password_dot.png"; - password_field_filename = "password_field.png"; -#} - -message_notification[0].image = ImageFromTintedText (""); -message_notification[1].image = ImageFromTintedText (""); -fsck_notification.image = ImageFromActionText (""); - -status = "normal"; - -# use a fixed string with ascending and descending stems to calibrate the -# bounding box for the first message, so the messages below don't move up -# and down according to *their* height. -first_line_height = ImageFromTintedText ("AfpqtM").GetHeight(); - -# if the user has a 640x480 or 800x600 display, we can't quite fit everything -# (including passphrase prompts) with the target spacing, so scoot the text up -# a bit if needed. -top_of_the_text = TextYOffset(); - - -#-------------------------------Progress Indicator----------------------------- -# Implement in boot progress callback -fun animate_progress_indicator (time, progress) { - progress_time = time; - progress_pct = progress; - - #Debug ("mode = " + Plymouth.GetMode() + ", progress_time = " + progress_time + ", progress_pct = " + progress_pct); - -} - - -#-----------------------------------------Label utility functions--------------------- - -# label should be either a string or NULL -# Images for n lines will be created and returned as items of the -# message_label array -# -fun get_message_label (label, is_fake, is_action_line) { - #Debug("Get Label position"); - local.message_label; - - if (is_fake) - # Create a fake label so as to get the y coordinate of - # a standard-length label. - local.message_image = ImageFromTintedText ("This is a fake message"); - else - local.message_image = (is_action_line) && ImageFromActionText (label) || ImageFromTintedText (label); - - message_label.width = message_image.GetWidth (); - message_label.height = message_image.GetHeight (); - - # Center the line horizontally - message_label.x = Window.GetX () + Window.GetWidth () / 2 - message_label.width / 2; - - message_label.y = top_of_the_text; - - # Put the 2nd line below the fsck line - if (is_action_line) { - local.fsck_label.y = message_label.y + (first_line_height + first_line_height / 2); - message_label.y = local.fsck_label.y + (first_line_height * 1.5); - } - - #Debug("action label x = " + message_label.x + " y = " + message_label.y ); - -# message_debug = "msg_x = " + message_label.x + " msg_y = " + message_label.y + -# "msg_width = " + message_label.width + " msg_height = " + -# message_label.height + " message = " + label; -# Debug(message_debug); - - return message_label; - -} - -# Create an fsck label and/or get its position -fun get_fsck_label (label, is_fake) { - # Debug("Get Label position"); - local.fsck_label = global.progress_label; - - if (is_fake) - fsck_label.image = ImageFromTintedText ("This is a fake message"); - else - fsck_label.image = ImageFromTintedText (label); - - fsck_label.width = fsck_label.image.GetWidth (); - fsck_label.height = fsck_label.image.GetHeight (); - - # Centre the label horizontally - fsck_label.x = Window.GetX () + Window.GetWidth () / 2 - fsck_label.width / 2; - - local.first_label = get_message_label (label, 1, 0); - - # Place the label below the 1st message line - fsck_label.y = local.first_label.y + local.first_label.height + (local.first_label.height / 2); - -# message_debug = "msg_x = " + fsck_label.x + " msg_y = " + fsck_label.y + -# "msg_width = " + fsck_label.width + " msg_height = " + -# fsck_label.height + " message = " + label; -# Debug(message_debug); - - return fsck_label; -} - -#-----------------------------------------Message stuff -------------------------------- -# - -# Set up a message label -# -# NOTE: this is called when doing something like 'plymouth message "hello world"' -# -fun setup_message (message_text, x, y, z, index) { - #DebugMedium("Message setup: " + message_text); - global.message_notification[index].image = (index) && ImageFromActionText (message_text) || ImageFromTintedText (message_text); - - # Set up the text message, if any - message_notification[index].x = x; - message_notification[index].y = y; - message_notification[index].z = z; - - message_notification[index].sprite = Sprite (); - message_notification[index].sprite.SetImage (message_notification[index].image); - message_notification[index].sprite.SetX (message_notification[index].x); - message_notification[index].sprite.SetY (message_notification[index].y); - message_notification[index].sprite.SetZ (message_notification[index].z); - -} - -fun show_message (index) { - if (global.message_notification[index].sprite) global.message_notification[index].sprite.SetOpacity(1); -} - -fun hide_message (index) { - if (global.message_notification[index].sprite) global.message_notification[index].sprite.SetOpacity(0); -} - - - - -# the callback function is called when new message should be displayed. -# First arg is message to display. -fun message_callback (message) -{ - # Debug("Message callback"); - is_fake = 0; - if (!message || (message == "")) is_fake = 1; - - local.substring = "keys:"; - - # Look for the "keys:" prefix - local.keys = StringString(message, local.substring); - - local.is_action_line = (keys != NULL); - #Debug("keys " + local.keys + " substring length = " + StringLength(local.substring)); - - # Get the message without the "keys:" prefix - if (keys != NULL) - message = StringCopy (message, keys + StringLength(local.substring), NULL); - - # Get the message without the "fsckd-cancel-msg" prefix as we don't support i18n - substring = "fsckd-cancel-msg:"; - keys = StringString(message, substring); - if (keys != NULL) - message = StringCopy(message, keys + StringLength(substring), NULL); - - local.label.is_fake = is_fake; - label = get_message_label(message, is_fake, is_action_line); - label.z = 10000; - - setup_message (message, label.x, label.y, label.z, is_action_line); - if (prompt_active && local.is_action_line) - hide_message (is_action_line); - else - show_message (is_action_line); - -} - - -#-----------------------------------------Display Password stuff ----------------------- -# - -fun password_dialogue_setup (message_label) { - #Debug("Password dialog setup"); - - local.entry; - local.bullet_image; - - bullet_image = Image (password_dot_filename); - entry.image = Image (password_field_filename); - - # Hide the normal labels - prompt_active = 1; - if (message_notification[1].sprite) hide_message (1); - - # Set the prompt label - label = get_message_label(message_label, 0, 1); - label.z = 10000; - - setup_message (message_label, label.x, label.y, label.z, 2); - show_message (2); - - # Set up the text entry which contains the bullets - entry.sprite = Sprite (); - entry.sprite.SetImage (entry.image); - - # Centre the box horizontally - entry.x = Window.GetX () + Window.GetWidth () / 2 - entry.image.GetWidth () / 2; - - # Put the entry below the second label. - entry.y = message_notification[2].y + label.height * 1.5; - - #DebugMedium("entry x = " + entry.x + ", y = " + entry.y); - entry.z = 10000; - entry.sprite.SetX (entry.x); - entry.sprite.SetY (entry.y); - entry.sprite.SetZ (entry.z); - - global.password_dialogue = local; -} - -fun password_dialogue_opacity (opacity) { - #Debug("Setting password dialog opacity to " + opacity); - global.password_dialogue.opacity = opacity; - local = global.password_dialogue; - - # You can make the box translucent with a float - # entry.sprite.SetOpacity (0.3); - entry.sprite.SetOpacity (opacity); - label.sprite.SetOpacity (opacity); - - if (bullets) { - for (index = 0; bullets[index]; index++) { - bullets[index].sprite.SetOpacity (opacity); - } - } -} - - -# The callback function is called when the display should display a password dialogue. -# First arg is prompt string, the second is the number of bullets. -fun display_password_callback (prompt, bullets) { - #Debug("Password dialog setup"); - - global.status = "password"; - if (!global.password_dialogue) password_dialogue_setup(prompt); - password_dialogue_opacity (1); - bullet_width = password_dialogue.bullet_image.GetWidth(); - bullet_y = password_dialogue.entry.y + - password_dialogue.entry.image.GetHeight () / 2 - - password_dialogue.bullet_image.GetHeight () / 2; - margin = bullet_width; - spaces = Math.Int( (password_dialogue.entry.image.GetWidth () - (margin * 2)) / (bullet_width / 2 ) ); - #DebugMedium ("spaces = " + spaces + ", bullets = " + bullets); - bullets_area.width = margin + spaces * (bullet_width / 2); - bullets_area.x = Window.GetX () + Window.GetWidth () / 2 - bullets_area.width / 2; - #DebugBottom ("pwd_entry (x,y) = " + password_dialogue.entry.x + "," + password_dialogue.entry.y - # + "), bullets_area.x = " + bullets_area.x + ", bullets_area.width = " + bullets_area.width); - if (bullets > spaces) - bullets = spaces; - for (index = 0; password_dialogue.bullets[index] || index < bullets; index++){ - if (!password_dialogue.bullets[index]) { - password_dialogue.bullets[index].sprite = Sprite (); - password_dialogue.bullets[index].sprite.SetImage (password_dialogue.bullet_image); - password_dialogue.bullets[index].x = bullets_area.x + # password_dialogue.entry.x + margin + - index * bullet_width / 2; - password_dialogue.bullets[index].sprite.SetX (password_dialogue.bullets[index].x); - password_dialogue.bullets[index].y = bullet_y; - password_dialogue.bullets[index].sprite.SetY (password_dialogue.bullets[index].y); - password_dialogue.bullets[index].z = password_dialogue.entry.z + 1; - password_dialogue.bullets[index].sprite.SetZ (password_dialogue.bullets[index].z); - } - - password_dialogue.bullets[index].sprite.SetOpacity (0); - - if (index < bullets) { - password_dialogue.bullets[index].sprite.SetOpacity (1); - } - } -} - -Plymouth.SetDisplayPasswordFunction (display_password_callback); - -Plymouth.SetMessageFunction (message_callback); - -Plymouth.SetBootProgressFunction (animate_progress_indicator); - -# Plymouth.SetBootProgressFunction: the callback function is called with two numbers, the progress (between 0 and 1) and the time spent booting so far -# Plymouth.SetRootMountedFunction: the callback function is called when a new root is mounted -# Plymouth.SetKeyboardInputFunction: the callback function is called with a string containing a new character entered on the keyboard - -#----------------------------------------- FSCK Counter -------------------------------- - -# Initialise the counter -fun init_fsck_count () { - # The number of fsck checks in this cycle - global.counter.total = 0; - # The number of fsck checks already performed + the current one - global.counter.current = 1; - # The previous fsck - global.counter.last = 0; -} - -# Increase the total counter -fun increase_fsck_count () { - global.counter.total++; -} - -fun increase_current_fsck_count () { - global.counter.last = global.counter.current++; -} - -# Clear the counter -fun clear_fsck_count () { - global.counter = NULL; - init_fsck_count (); -} - -#----------------------------------------- Progress Label ------------------------------ - - -# Change the opacity level of a progress label -# -# opacity = 1 -> show -# opacity = 0 -> hide -# opacity = 0.3 (or any other float) -> translucent -# -fun set_progress_label_opacity (opacity) { - # the label - progress_label.sprite.SetOpacity (opacity); - - # Make the slot available again when hiding the bar - # So that another bar can take its place - if (opacity == 0) { - progress_label.is_available = 1; - progress_label.device = ""; - } -} - -# Set up a new Progress Bar -# -# TODO: Make it possible to reuse (rather than recreate) a bar -# if .is_available = 1. Ideally this would just reset the -# label, the associated -# device and the image size of the sprite. - -fun init_progress_label (device, status_string) { - # Make the slot unavailable - global.progress_label.is_available = 0; - progress_label.progress = 0; - progress_label.device = device; - progress_label.status_string = status_string; -} - -# See if the progress label is keeping track of the fsck -# of "device" -# -fun device_has_progress_label (device) { - #DebugBottom ("label device = " + progress_label.device + " checking device " + device); - return (progress_label.device == device); -} - -# Update the Progress bar which corresponds to index -# -fun update_progress_label (progress) { - # If progress is NULL then we just refresh the label. - # This happens when only counter.total has changed. - if (progress != NULL) { - progress_label.progress = progress; - - #Debug("device " + progress_label.device + " progress " + progress); - - # If progress >= 100% hide the label and make it available again - if (progress >= 100) { - set_progress_label_opacity (0); - - # See if we any other fsck check is complete - # and, if so, hide the progress bars and the labels - on_fsck_completed (); - - return 0; - } - } - # Update progress label here - # - # FIXME: the queue logic from this theme should really be moved into mountall - # instead of using string replacement to deal with localised strings. - label = StringReplace (progress_label.status_string[0], "%1$d", global.counter.current); - label = StringReplace (label, "%2$d", global.counter.total); - label = StringReplace (label, "%3$d", progress_label.progress); - label = StringReplace (label, "%%", "%"); - - progress_label = get_fsck_label (label, 0); - #progress_label.progress = progress; - - progress_label.sprite = Sprite (progress_label.image); - - # Set up the bar - progress_label.sprite.SetPosition(progress_label.x, progress_label.y, 1); - - set_progress_label_opacity (1); - -} - -# Refresh the label so as to update counters -fun refresh_progress_label () { - update_progress_label (NULL); -} - -#----------------------------------------- FSCK Queue ---------------------------------- - -# Initialise the fsck queue -fun init_queue () { - global.fsck_queue[0].device; - global.fsck_queue[0].progress; - global.fsck_queue.counter = 0; - global.fsck_queue.biggest_item = 0; -} - -fun clear_queue () { - global.fsck_queue = NULL; - init_queue (); -} - -# Return either the device index in the queue or -1 -fun queue_look_up_by_device (device) { - for (i=0; i <= fsck_queue.biggest_item; i++) { - if ((fsck_queue[i]) && (fsck_queue[i].device == device)) - return i; - } - return -1; -} - -# Keep track of an fsck process in the queue -fun add_fsck_to_queue (device, progress) { - # Look for an empty slot in the queue - for (i=0; global.fsck_queue[i].device; i++) { - continue; - } - local.index = i; - - # Set device and progress - global.fsck_queue[local.index].device = device; - global.fsck_queue[local.index].progress = progress; - - # Increase the queue counter - global.fsck_queue.counter++; - - # Update the max index of the array for iterations - if (local.index > global.fsck_queue.biggest_item) - global.fsck_queue.biggest_item = local.index; - - #DebugMedium ("Adding " + device + " at " + local.index); -} - -fun is_queue_empty () { - return (fsck_queue.counter == 0); -} - -fun is_progress_label_available () { - return (progress_label.is_available == 1); -} - - -# This should cover the case in which the fsck checks in -# the queue are completed before the ones showed in the -# progress label -fun on_queued_fsck_completed () { - if (!is_queue_empty ()) - return; - - # Hide the extra label, if any - #if (progress_bar.extra_label.sprite) - # progress_bar.extra_label.sprite.SetOpacity(0); -} - -fun remove_fsck_from_queue (index) { - # Free memory which was previously allocated for - # device and progress - global.fsck_queue[index].device = NULL; - global.fsck_queue[index].progress = NULL; - - # Decrease the queue counter - global.fsck_queue.counter--; - - # See if there are other processes in the queue - # if not, clear the extra_label - on_queued_fsck_completed (); -} - -fun on_fsck_completed () { - # We have moved on to tracking the next fsck - increase_current_fsck_count (); - - if (!is_progress_label_available ()) - return; - - if (!is_queue_empty ()) - return; - - # Hide the progress label - if (progress_label.sprite) - progress_label.sprite.SetOpacity (0); - - # Clear the queue - clear_queue (); - - # Clear the fsck counter - clear_fsck_count (); -} - -# Update an fsck process that we keep track of in the queue -fun update_progress_in_queue (index, device, progress) { - # If the fsck is complete, remove it from the queue - if (progress >= 100) { - remove_fsck_from_queue (index); - on_queued_fsck_completed (); - return; - } - - global.fsck_queue[index].device = device; - global.fsck_queue[index].progress = progress; - -} - -# TODO: Move it to some function -# Create an empty queue -#init_queue (); - - -#----------------------------------------- FSCK Functions ------------------------------ - - -# Either add a new bar for fsck checks or update an existing bar -# -# NOTE: no more than "progress_bar.max_number" bars are allowed -# -fun fsck_check (device, progress, status_string) { - - # The 1st time this will take place - if (!global.progress_label) { - # Increase the fsck counter - increase_fsck_count (); - - # Set up a new label for the check - init_progress_label (device, status_string); - update_progress_label (progress); - - return; - } - - - if (device_has_progress_label (device)) { - # Update the progress of the existing label - update_progress_label (progress); - } - else { - # See if there's already a slot in the queue for the device - local.queue_device_index = queue_look_up_by_device(device); - - # See if the progress_label is available - if (progress_label.is_available) { - -# local.my_string = "available index " + local.available_index + " progress_bar counter is " + progress_bar.counter; -# Debug(local.my_string); - - - # If the fsck check for the device was in the queue, then - # remove it from the queue - if (local.queue_device_index >= 0) { - remove_fsck_from_queue (index); - } - else { - # Increase the fsck counter - increase_fsck_count (); - } - -# local.my_string += local.message; - #Debug("setting new label for device " + device + " progress " + progress); - - # Set up a new label for the check - init_progress_label (device, status_string); - update_progress_label (progress); - - } - # If the progress_label is not available - else { - - # If the fsck check for the device is already in the queue - # just update its progress in the queue - if (local.queue_device_index >= 0) { - #DebugMedium("Updating queue at " + local.queue_device_index + " for device " + device); - update_progress_in_queue (local.queue_device_index, device, progress); - } - # Otherwise add the check to the queue - else { - #DebugMedium("Adding device " + device + " to queue at " + local.queue_device_index); - add_fsck_to_queue (device, progress); - - # Increase the fsck counter - increase_fsck_count (); - - refresh_progress_label (); - } - - } - } - -# if (!is_queue_empty ()) { -# DebugBottom("Extra label for "+ device); - #} -# else { -# DebugBottom("No extra label for " + device + ". 1st Device in the queue "+ fsck_queue[0].device + " counter = " + global.fsck_queue.counter); -# } -} - - -#-----------------------------------------Update Status stuff -------------------------- -# -# The update_status_callback is what we can use to pass plymouth whatever we want so -# as to make use of features which are available only in this program (as opposed to -# being available for any theme for the script plugin). -# -# Example: -# -# Thanks to the current implementation, some scripts can call "plymouth --update=fsck:sda1:40" -# and this program will know that 1) we're performing and fsck check, 2) we're checking sda1, -# 3) the program should set the label progress to 40% -# -# Other features can be easily added by parsing the string that we pass plymouth with "--update" -# -fun update_status_callback (status) { -# Debug(status); - if (!status) return; - - string_it = 0; - update_strings[string_it] = ""; - - for (i=0; (String(status).CharAt(i) != ""); i++) { - local.temp_char = String(status).CharAt(i); - if (temp_char != ":") - update_strings[string_it] += temp_char; - else - update_strings[++string_it] = ""; - } - -# my_string = update_strings[0] + " " + update_strings[1] + " " + update_strings[2]; -# Debug(my_string); - # Let's assume that we're dealing with these strings fsck:sda1:40 - if ((string_it >= 2) && (update_strings[0] == "fsck")) { - - device = update_strings[1]; - progress = update_strings[2]; - status_string[0] = update_strings[3]; # "Checking disk %1$d of %2$d (%3$d %% complete)" - if (!status_string[0]) - status_string[0] = "Checking disk %1$d of %2$d (%3$d %% complete)"; - - if ((device != "") && (progress != "")) { - progress = StringToInteger (progress); - - # Make sure that the fsck_queue is initialised - if (!global.fsck_queue) - init_queue (); - - # Make sure that the fsck counter is initialised - if (!global.counter) - init_fsck_count (); - -# if (!global.progress_bar.extra_label.sprite) -# create_extra_fsck_label (); - - # Keep track of the fsck check - fsck_check (device, progress, status_string); - } - - } - - # systemd-fsckd pass fsckd::: - if (update_strings[0] == "fsckd") { - number_devices = StringToInteger(update_strings[1]); - - if (number_devices > 0) { - label = update_strings[3]; - - progress_label = get_fsck_label (label, 0); - progress_label.sprite = Sprite (progress_label.image); - progress_label.sprite.SetPosition(progress_label.x, progress_label.y, 1); - progress_label.sprite.SetOpacity (1); - } else { - if (progress_label.sprite) - progress_label.sprite.SetOpacity (0); - } - } - -} -Plymouth.SetUpdateStatusFunction (update_status_callback); - -#-----------------------------------------Display Question stuff ----------------------- -# -# TODO: Implement this if needed -# -# The callback function is called when the display should display a question dialogue. -# First arg is prompt string, the second is the entry contents. -#fun display_question_callback (prompt_string, entry_contents) -#{ -# time++; -#} -# -#Plymouth.SetDisplayQuestionFunction (display_question_callback); - -fun rotate_img(source_img, current_step, nb_steps) { - angle = Math.Sin(current_step / nb_steps * Math.Pi / 2) * 2 * Math.Pi; - #debug_sin = Math.Sin(current_step / nb_steps * Math.Pi / 2); - #DebugMedium("Sin = " + debug_sin); - rotated_img = source_img.Rotate(angle); - return rotated_img; -} - -fun update_glow_anim () { - if (global.anim_start_time != global.progress_time && global.anim_status != "running") { - global.anim_start_time = global.progress_time; - global.anim_iter = 0; - global.anim_status = "running"; - } - - if (global.anim_status == "running") { - iter_img = global.logo_glow[global.anim_iter]; - if (iter_img == NULL) { - # Generate rotated image for the glow around the logo on demand. - #DebugMedium("Generating rotated image for index " + global.anim_iter); - iter_img = rotate_img(logo_glow[0], global.anim_iter, NB_ROTATION_STEPS); - global.logo_glow[global.anim_iter] = iter_img; - } - global.logo_glow_sprite.SetImage(iter_img); - global.anim_iter++; - - if (global.anim_iter >= NB_ROTATION_STEPS) { - global.anim_status = "stopped"; - } - } -} - -#-----------------------------------------Refresh stuff -------------------------------- -# -# Calling Plymouth.SetRefreshFunction with a function will set that function to be -# called up to 50 times every second, e.g. -# -# NOTE: if a refresh function is not set, Plymouth doesn't seem to be able to update -# the screen correctly -# -fun refresh_callback () -{ - global.refresh_iter++; - if (global.refresh_iter == NB_REFRESHS_BETWEEN_ANIMS) { - global.refresh_iter = 0; - update_glow_anim(); - } - #DebugBottom ("refresh_iter=" + refresh_iter + "; anim_status=" + anim_status + "; anim_start_time=" + anim_start_time + "; anim_iter=" + anim_iter); -} -Plymouth.SetRefreshFunction (refresh_callback); - - -#-----------------------------------------Display Normal stuff ----------------------- -# -# The callback function is called when the display should return to normal -fun display_normal_callback () -{ - global.status = "normal"; - if (global.password_dialogue) { - password_dialogue_opacity (0); - global.password_dialogue = NULL; - if (message_notification[2].sprite) hide_message(2); - prompt_active = 0; - } - - if (message_notification[1].sprite) { - show_message (1); - } - -} - -Plymouth.SetDisplayNormalFunction (display_normal_callback); - - -#----------------------------------------- Quit -------------------------------- - -fun quit_callback () -{ -} - -Plymouth.SetQuitFunction(quit_callback); diff --git a/plymouth/themes/homeworld/logo.png b/plymouth/themes/homeworld/logo.png deleted file mode 100644 index f228662..0000000 Binary files a/plymouth/themes/homeworld/logo.png and /dev/null differ diff --git a/plymouth/themes/homeworld/logo_circle.png b/plymouth/themes/homeworld/logo_circle.png deleted file mode 100644 index ed3bf4b..0000000 Binary files a/plymouth/themes/homeworld/logo_circle.png and /dev/null differ diff --git a/plymouth/themes/homeworld/password_dot.png b/plymouth/themes/homeworld/password_dot.png deleted file mode 100644 index f1103d1..0000000 Binary files a/plymouth/themes/homeworld/password_dot.png and /dev/null differ diff --git a/plymouth/themes/homeworld/password_dot16.png b/plymouth/themes/homeworld/password_dot16.png deleted file mode 100644 index 4e3f3ce..0000000 Binary files a/plymouth/themes/homeworld/password_dot16.png and /dev/null differ diff --git a/plymouth/themes/homeworld/password_field.png b/plymouth/themes/homeworld/password_field.png deleted file mode 100644 index 6afe1f5..0000000 Binary files a/plymouth/themes/homeworld/password_field.png and /dev/null differ diff --git a/plymouth/themes/homeworld/password_field16.png b/plymouth/themes/homeworld/password_field16.png deleted file mode 100644 index 4a173a6..0000000 Binary files a/plymouth/themes/homeworld/password_field16.png and /dev/null differ diff --git a/plymouth/themes/homeworld/plymouth_background_homeworld.png b/plymouth/themes/homeworld/plymouth_background_homeworld.png deleted file mode 100644 index 1c139a1..0000000 Binary files a/plymouth/themes/homeworld/plymouth_background_homeworld.png and /dev/null differ diff --git a/sources-final/sources-final b/sources-final/sources-final deleted file mode 100755 index 862f552..0000000 --- a/sources-final/sources-final +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# -# Writes the final sources.list file -# - -CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g") -RELEASE="jammy" - -cat << EOF > $CHROOT/etc/apt/sources.list -# See https://wiki.debian.org/SourcesList for more information. - -deb http://archive.ubuntu.com/ubuntu jammy main multiverse restricted universe -deb-src http://archive.ubuntu.com/ubuntu jammy main multiverse restricted universe - -deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse -deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse - -deb http://archive.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe -deb-src http://archive.ubuntu.com/ubuntu jammy-updates main multiverse restricted universe - -EOF - -exit 0