Browse Source

update

master
crims0n 5 years ago
parent
commit
55220d29c9
  1. 6
      linux-live/buildconfig
  2. 16
      linux-live/casper/core/install
  3. 2
      linux-live/casper/core/package.list
  4. 9
      linux-live/casper/core/postinstall
  5. 14
      linux-live/casper/core/rootcopy/etc/casper.conf
  6. 4
      linux-live/casper/core/rootcopy/etc/skel/.cts/settings.conf
  7. 16
      linux-live/casper/gui/install
  8. 0
      linux-live/casper/gui/package.list
  9. 41
      linux-live/casper/gui/postinstall
  10. 16
      linux-live/livekit/core/install
  11. 0
      linux-live/livekit/core/package.list
  12. 41
      linux-live/livekit/core/postinstall
  13. 1
      linux-live/livekit/core/rootcopy/etc/hostname
  14. 7
      linux-live/livekit/core/rootcopy/etc/hosts
  15. 1
      linux-live/livekit/core/rootcopy/etc/localtime
  16. 2
      linux-live/livekit/core/rootcopy/etc/ssh/sshd_config.d/90-minios.conf
  17. 58
      linux-live/livekit/core/rootcopy/usr/bin/dir2sb
  18. 86
      linux-live/livekit/core/rootcopy/usr/bin/pxe
  19. 17
      linux-live/livekit/core/rootcopy/usr/bin/rmsbdir
  20. 46
      linux-live/livekit/core/rootcopy/usr/bin/savechanges
  21. 29
      linux-live/livekit/core/rootcopy/usr/bin/sb
  22. 33
      linux-live/livekit/core/rootcopy/usr/bin/sb2dir
  23. 178
      linux-live/livekit/core/rootcopy/usr/bin/slax
  24. 38
      linux-live/livekit/core/rootcopy/usr/lib/systemd/system/apparmor.service
  25. 16
      linux-live/livekit/core/rootcopy/usr/lib/systemd/system/dhclient.service
  26. 54
      linux-live/livekit/core/rootcopy/usr/lib/systemd/system/getty@.service
  27. 2
      linux-live/livekit/core/rootcopy/usr/lib/udev/rules.d/90-slax-automount.rules
  28. 23
      linux-live/livekit/core/rootcopy/usr/sbin/gtk-bookmarks-update
  29. 67
      linux-live/livekit/core/rootcopy/usr/sbin/slax-automount
  30. 16
      linux-live/livekit/gui/install
  31. 5
      linux-live/livekit/gui/package.list
  32. 41
      linux-live/livekit/gui/postinstall
  33. 160
      linux-live/minioslib
  34. 1950
      linux-live/minioslib.copy
  35. 247
      linux-live/minioslib.test
  36. 16
      linux-live/modules/02-xubuntu/install
  37. 1
      linux-live/modules/02-xubuntu/package.list
  38. 37
      linux-live/modules/03-apps/install
  39. 6
      linux-live/modules/03-apps/package.list
  40. 20
      linux-live/modules/03-apps/postinstall
  41. 4
      linux-live/modules/03-apps/rootcopy/etc/skel/.cts/settings.conf
  42. 16
      linux-live/modules/04-drivers/install
  43. 10
      linux-live/modules/04-drivers/postinstall
  44. 0
      linux-live/pkglists/casper-gui.list
  45. 0
      linux-live/pkglists/casper-main.list
  46. 0
      linux-live/pkglists/casper-other.list
  47. 5
      linux-live/pkglists/casper-ubiquity.list
  48. 2
      linux-live/rootcopy/etc/issue
  49. 1
      linux-live/rootcopy/etc/issue.net
  50. 1
      linux-live/rootcopy/etc/skel/.config/xfce4/helpers.rc
  51. 15
      linux-live/rootcopy/etc/skel/.config/xfce4/panel/launcher-19/16093657651.desktop
  52. 16
      linux-live/rootcopy/etc/skel/.config/xfce4/panel/launcher-23/16093659533.desktop
  53. 14
      linux-live/rootcopy/etc/skel/.config/xfce4/panel/launcher-24/16093659584.desktop
  54. 68
      linux-live/rootcopy/etc/skel/.config/xfce4/panel/whiskermenu-1.rc
  55. 123
      linux-live/rootcopy/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
  56. 1
      linux-live/rootcopy/etc/timezone
  57. 140
      linux-live/rootcopy/root/.bashrc
  58. BIN
      linux-live/rootcopy/usr/share/backgrounds/MiniOS.png
  59. 149
      linux-live/rootcopy/usr/share/pixmaps/MiniOS-white.svg
  60. 1
      linux-live/rootcopy/usr/share/plymouth/themes/default.plymouth
  61. 4
      linux-live/rootcopy/usr/share/plymouth/themes/details/details.plymouth
  62. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade.png
  63. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade_16bit.png
  64. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/logo.png
  65. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/logo_16bit.png
  66. 8
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.plymouth
  67. 512
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.script
  68. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/passw-dialog.png
  69. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade.png
  70. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade_16bit.png
  71. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter.png
  72. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter_16bit.png
  73. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/spinner.png
  74. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/test.png
  75. BIN
      linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/wallpaper.png
  76. 11
      linux-live/rootcopy/usr/share/plymouth/themes/minios-text/minios-text.plymouth
  77. 1
      linux-live/rootcopy/usr/share/plymouth/themes/text.plymouth

6
linux-live/buildconfig

@ -10,7 +10,7 @@ OUTPUT="/dev/stdout"
# если ="1", создаёт второй iso с постоянным именем файла
BUILD_TEST_ISO="1"
# удаляет старые файлы iso для данного типа сборки
# удаляет старые файлы iso для данного типа сборки
REMOVE_OLD_ISO="0"
# if = "1", creates a copy of minios-live in chroot /opt
@ -29,6 +29,6 @@ APT_CMD="apt-get"
APT_OPTIONS="-y" #--no-install-recommends"
#LIVE_TYPE="casper"
LIVE_TYPE="casper"
LIVE_TYPE="livekit"
INSTALL_OPTIONAL="1"
INSTALL_OPTIONAL="1"

16
linux-live/casper/core/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

2
linux-live/casper/core/package.list

@ -0,0 +1,2 @@
casper
lupin-casper

9
linux-live/casper/core/postinstall

@ -0,0 +1,9 @@
#!/bin/bash
if [ -f /usr/share/xfce4/backdrops/xubuntu-wallpaper.png ]; then
rm /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
fi
if [ ! -d /usr/share/xfce4/backdrops ]; then
mkdir -p /usr/share/xfce4/backdrops
fi
ln -s /usr/share/backgrounds/MiniOS.png /usr/share/xfce4/backdrops/xubuntu-wallpaper.png

14
linux-live/casper/core/rootcopy/etc/casper.conf

@ -0,0 +1,14 @@
# This file should go in /etc/casper.conf
# Supported variables are:
# USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM, FLAVOUR
export USERNAME="live"
export USERFULLNAME="Live session user"
export HOST="minios"
export BUILD_SYSTEM="Ubuntu"
# USERNAME and HOSTNAME as specified above won't be honoured and will be set to
# flavour string acquired at boot time, unless you set FLAVOUR to any
# non-empty string.
# export FLAVOUR="Ubuntu"

4
linux-live/casper/core/rootcopy/etc/skel/.cts/settings.conf

@ -0,0 +1,4 @@
[settings]
auto_connect=false
auto_disconnect=true
minimize_on_start=true

16
linux-live/casper/gui/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

0
linux-live/pkglists/ubuntu-ubiquity.list → linux-live/casper/gui/package.list

41
linux-live/casper/gui/postinstall

@ -0,0 +1,41 @@
#!/bin/bash
if [ -d /etc/lightdm ]; then
cat <<EOF >/etc/lightdm/lightdm.conf
[Seat:*]
autologin-session=xubuntu
autologin-user=live
autologin-user-timeout=0
EOF
fi
if [ -d /etc/NetworkManager ]; then
echo "Disable dhclient.service autostart."
systemctl disable dhclient
mkdir -p /etc/netplan
cat <<EOF >/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
# Set and change netplan renderer to NetworkManager GUI tool
network:
version: 2
renderer: NetworkManager
EOF
cat <<EOF >/etc/NetworkManager/NetworkManager.conf
[main]
rc-manager=resolvconf
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
EOF
dpkg-reconfigure -f noninteractive network-manager
fi
if [ -f /usr/share/xfce4/backdrops/xubuntu-wallpaper.png ]; then
rm /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
fi
if [ ! -d /usr/share/xfce4/backdrops ]; then
mkdir -p /usr/share/xfce4/backdrops
fi
ln -s /usr/share/backgrounds/MiniOS.png /usr/share/xfce4/backdrops/xubuntu-wallpaper.png

16
linux-live/livekit/core/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

0
linux-live/livekit/core/package.list

41
linux-live/livekit/core/postinstall

@ -0,0 +1,41 @@
#!/bin/bash
if [ -d /etc/lightdm ]; then
cat <<EOF >/etc/lightdm/lightdm.conf
[Seat:*]
autologin-session=xubuntu
autologin-user=live
autologin-user-timeout=0
EOF
fi
if [ -d /etc/NetworkManager ]; then
echo "Disable dhclient.service autostart."
systemctl disable dhclient
mkdir -p /etc/netplan
cat <<EOF >/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
# Set and change netplan renderer to NetworkManager GUI tool
network:
version: 2
renderer: NetworkManager
EOF
cat <<EOF >/etc/NetworkManager/NetworkManager.conf
[main]
rc-manager=resolvconf
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
EOF
dpkg-reconfigure -f noninteractive network-manager
fi
if [ -f /usr/share/xfce4/backdrops/xubuntu-wallpaper.png ]; then
rm /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
fi
if [ ! -d /usr/share/xfce4/backdrops ]; then
mkdir -p /usr/share/xfce4/backdrops
fi
ln -s /usr/share/backgrounds/MiniOS.png /usr/share/xfce4/backdrops/xubuntu-wallpaper.png

1
linux-live/livekit/core/rootcopy/etc/hostname

@ -0,0 +1 @@
minios

7
linux-live/livekit/core/rootcopy/etc/hosts

@ -0,0 +1,7 @@
127.0.0.1 localhost
127.0.1.1 minios
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

1
linux-live/livekit/core/rootcopy/etc/localtime

@ -0,0 +1 @@
/usr/share/zoneinfo/Europe/Moscow

2
linux-live/livekit/core/rootcopy/etc/ssh/sshd_config.d/90-minios.conf

@ -0,0 +1,2 @@
PermitRootLogin yes
PasswordAuthentication yes

58
linux-live/livekit/core/rootcopy/usr/bin/dir2sb

@ -0,0 +1,58 @@
#!/bin/bash
# Author: Tomas M. <http://www.slax.org/>
usage()
{
echo ""
echo "Convert directory to .sb compressed module"
echo "Usage: $0 [source_directory.sb] [[target_file.sb]]"
echo " If source_directory does not have .sb suffix and it is not 'squashfs-root',"
echo " then the source_directory itself is included in the module and"
echo " then the target_file.sb parameter is required."
echo " If target_file.sb is not specified, the source_directory is erased"
echo " and replaced by the newly generated module file."
}
P1="$(readlink -f "$1")"
P2="$(readlink -f "$2")"
if [ "$P1" = "$P2" ]; then
P2=""
fi
SB=$(echo "$P1" | grep -o "[.]sb/*\$")
if [ "$(echo "$P1" | grep -o "/squashfs-root/*\$")" != "" ]; then
SB="true"
fi
if [ "$SB" = "" ]; then
KEEP="-keep-as-directory"
if [ "$P2" = "" ]; then
usage
exit 1
fi
else
KEEP=""
fi
if [ ! -d "$P1" ]; then
echo "Not a directory: $P1" >&2
exit 2
fi
if [ "$P2" = "" ]; then
TARGET="$P1".sb
while [ -e "$TARGET" ]; do TARGET="$TARGET"x; done
mksquashfs "$P1" "$TARGET" -comp xz -b 1024K -always-use-fragments $KEEP >/dev/null || exit 3
umount "$P1" 2>/dev/null
rm -Rf "$P1"
mv "$TARGET" "$P1"
else
if [ -e "$P2" ]; then
echo "Target exists: $P2" >&2
exit 4
fi
mksquashfs "$P1" "$P2" -comp xz -b 1024K -always-use-fragments $KEEP >/dev/null
fi

86
linux-live/livekit/core/rootcopy/usr/bin/pxe

@ -0,0 +1,86 @@
#!/bin/bash
# Rebuild initial ramdisk with full network drivers,
# start DHCP and TFTP server in order to provide PXE service
#
# Author: Tomas M <www.slax.org>
LIVE=/run/initramfs
FTPROOT=/var/state/dnsmasq/root
# find out our own IP address. If more interfaces are available, use the first one
IP="$(hostname -I | cut -d " " -f 1)"
GW=$(ip route show | grep default | grep -o "via.*" | head -n 1 | cut -d " " -f 2)
# if no IP is assigned to this computer, setup private address randomly
if [ "$IP" = "" ]; then
killall dhclient 2>/dev/null
IP="10."$(($RANDOM/130+1))"."$(($RANDOM/130+1))".1"
ifconfig $(ls -1 /sys/class/net | egrep -v '^lo$' | sort | head -n 1) $IP netmask 255.255.255.0
fi
# if gateway is not recognized, lets make our IP a gateway and enable forwarding
if [ "$GW" = "" ]; then
GW="$IP"
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
fi
echo Starting PXE server on $IP ...
# calculate C class range
RANGE=$(echo $IP | cut -d "." -f 1-3)
# make sure dnsmasq can be started
killall dnsmasq 2>/dev/null
killall busybox 2>/dev/null
rm -Rf $FTPROOT 2>/dev/null
mkdir -p $FTPROOT/{pxelinux.cfg,tmp}/
# create root filesystem for ftfp
cd $LIVE
( find . -print | grep -v "memory"
cd /
find /lib/modules/$(uname -r)/kernel/drivers/net | grep -v wireless
) | cpio -pvd $FTPROOT/tmp 2>/dev/null
cp /lib/modules/$(uname -r)/modules.* $FTPROOT/tmp/lib/modules/$(uname -r)
depmod -b $FTPROOT/tmp
rm $FTPROOT/tmp/lib/initramfs_escaped
# pack root in initramfs
cd $FTPROOT/tmp
find . -print | cpio -o -H newc 2>/dev/null | gzip -f --fast >../initrfs.img
cd ..
rm -Rf tmp
# link files here since copying is not necessary
ln -s $(find $LIVE/memory/{data,iso,toram} 2>/dev/null | grep vmlinuz | head -n 1) $FTPROOT/vmlinuz
ln -s $(find $LIVE/memory/{data,iso,toram} 2>/dev/null | grep pxelinux.0 | head -n 1) $FTPROOT/pxelinux.0
ln -s $(find $LIVE/memory/{data,iso,toram} 2>/dev/null | grep ldlinux.c32 | head -n 1) $FTPROOT/ldlinux.c32
find $LIVE/memory/{data,iso,toram} 2>/dev/null | egrep "[.]sb\$" | sort -n | while read LINE; do
BAS="$(basename "$LINE")"
ln -s $LINE "$FTPROOT/$BAS"
echo $BAS >> "$FTPROOT/PXEFILELIST"
done
echo "This is <a href=http://www.slax.org/>Slax</a> PXE data server. PXE clients will download <a href=PXEFILELIST>file list</a>" > "$FTPROOT/index.html"
# default pxelinux configuration. Keep xmode selection for clients the same like for the server
echo "
PROMPT 0
DEFAULT slax
LABEL slax
KERNEL /vmlinuz
IPAPPEND 1
APPEND initrd=/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 $(cat /proc/cmdline | egrep -o 'slax.flags=[^ ]+' | sed -r 's:[,=]pxe::' | sed -r 's:[,=]toram::')
" > $FTPROOT/pxelinux.cfg/default
# start the DHCP server and TFTP server
dnsmasq --enable-tftp --tftp-root=/var/state/dnsmasq/root \
--dhcp-boot=pxelinux.0,"$IP",$IP \
--dhcp-option=3,$GW \
--dhcp-range=$RANGE.2,$RANGE.250,infinite --log-dhcp
# start HTTP server at port 7529 (that are the numbers you type on your phone to write 'slax')
busybox httpd -p 7529 -h /var/state/dnsmasq/root

17
linux-live/livekit/core/rootcopy/usr/bin/rmsbdir

@ -0,0 +1,17 @@
#!/bin/bash
# Author: Tomas M. <http://www.slax.org/>
if [ ! -e "$1" ]; then
echo
echo "Erase module directory created by sb2dir"
echo "Usage: $0 [source_directory.sb]"
exit 1
fi
if [ ! -d "$1" ]; then
echo "Directory does not exist: $1" >&2
exit
fi
umount "$1" 2>/dev/null
rm -Rf "$1"

46
linux-live/livekit/core/rootcopy/usr/bin/savechanges

@ -0,0 +1,46 @@
#!/bin/bash
TMP=/tmp/changes$$
EXCLUDE="^\$|/\$|[.]wh[.][.]wh[.]orph/|^[.]wh[.][.]wh[.]plnk/|^[.]wh[.][.]wh[.]aufs|^var/cache/|^var/backups/|^var/tmp/|^var/log/|^var/lib/apt/|^var/lib/dhcp/|^var/lib/systemd/|^sbin/fsck[.]aufs|^etc/resolv[.]conf|^root/[.]Xauthority|^root/[.]xsession-errors|^root/[.]fehbg|^root/[.]fluxbox/lastwallpaper|^root/[.]fluxbox/menu_resolution|^etc/mtab|^etc/fstab|^boot/|^dev/|^mnt/|^proc/|^run/|^sys/|^tmp/"
CHANGES=/run/initramfs/memory/changes
if [ "$1" = "" ]; then
echo ""
echo "savechanges - save all changed files in a compressed filesystem bundle"
echo " - excluding some predefined files such as /etc/mtab,"
echo " temp & log files, empty directories, apt cache, and such"
echo ""
echo "Usage:"
echo " $0 [ target_file.sb ] [ changes_directory ]"
echo ""
echo "If changes_directory is not specified, /run/initramfs/memory/changes is used."
echo ""
exit 1
fi
if [ ! "$2" = "" ]; then
CHANGES="$2"
fi
# exclude the save_file itself of course
EXCLUDE="$EXCLUDE|^""$(readlink -f "$1" | cut -b 2- | sed -r "s/[.]/[.]/")""\$"
CWD=$(pwd)
cd $CHANGES || exit
mkdir -p $TMP
mount -t tmpfs tmpfs $TMP
find \( -type d -printf "%p/\n" , -not -type d -print \) \
| sed -r "s/^[.]\\///" | egrep -v "$EXCLUDE" \
| while read FILE; do
cp --parents -afr "$FILE" "$TMP"
done
cd $CWD
mksquashfs $TMP "$1" -comp xz -b 1024K -always-use-fragments -noappend
umount $TMP
rmdir $TMP

29
linux-live/livekit/core/rootcopy/usr/bin/sb

@ -0,0 +1,29 @@
#!/bin/bash
if [ "$1" = "rm" ]; then
shift
rmsbdir "$@"
exit $?
fi
if [ "$1" = "rmdir" ]; then
shift
rmsbdir "$@"
exit $?
fi
if [ "$1" = "conv" ]; then
shift
fi
if [ ! -r "$1" ]; then
echo File not found "$1"
exit 1
fi
if [ -d "$1" ]; then
dir2sb "$@"
exit $?
fi
sb2dir "$@"

33
linux-live/livekit/core/rootcopy/usr/bin/sb2dir

@ -0,0 +1,33 @@
#!/bin/bash
# Author: Tomas M. <http://www.slax.org/>
if [ ! -e "$1" ]; then
echo
echo "Convert .sb compressed module into directory with the same name"
echo "Usage: $0 [source_file.sb] [[optional output_directory]]"
echo " If the output_directory is specified, it must exist"
echo " If the output_directory is not specified, the name source_file.sb"
echo " is used and the directory is overmounted with tmpfs"
exit 1
fi
if [ ! -r "$1" ]; then
echo "File does not exist: $1" >&2
exit
fi
if [ "$2" = "" ]; then
SOURCE="$1".x
while [ -e "$SOURCE" ]; do SOURCE="$SOURCE"x; done
mv "$1" "$SOURCE" || exit
mkdir "$1"
mount -t tmpfs tmpfs "$1"
unsquashfs -f -dest "$1" "$SOURCE" >/dev/null || exit
rm "$SOURCE"
else
if [ ! -d "$2" ]; then
echo "Directory does not exist: $2" >&2
exit
fi
unsquashfs -f -dest "$2" "$1" >/dev/null
fi

178
linux-live/livekit/core/rootcopy/usr/bin/slax

@ -0,0 +1,178 @@
#!/bin/bash
# Slax management and control script
# Author: Tomas M <http://www.slax.org/>
# activate
# deactivate
# list
LIVE=/run/initramfs/memory
RAMSTORE=$LIVE/modules
# Print error message and exit
# $1 = error message
#
die()
{
echo "$1" >&2
exit 1
}
print_branches()
{
local SI BUNDLE LOOP CWD
SI="/sys/fs/aufs/$(cat /proc/mounts | grep 'aufs / aufs' | egrep -o 'si=([^,) ]+)' | tr = _)"
CWD="$(pwd)"
cd "$SI"
ls -v1 | grep -v xi_path | egrep 'br[0-9]+' | xargs cat | grep memory/bundles | rev | cut -b 4- | rev | while read BUNDLE; do
if mountpoint -q "$BUNDLE"; then
LOOP=$(cat /proc/mounts | fgrep " $BUNDLE squashfs" | cut -d " " -f 1)
echo -n "$BUNDLE"
echo -ne "\t"
losetup $LOOP | sed -r "s:.*[(]|[)].*::g"
fi
done | tac
cd "$CWD"
}
# Activate Slax Bundle
# $1 = file to activate
#
activate()
{
local SB TGT BAS
SB="$(readlink -f "$1")"
BAS="$(basename "$SB")"
# check if file exists
if [ ! -r "$SB" ]; then
usage
die "file not found $SB"
fi
# check if the file is part of aufs union, if yes we need to copy it outside
if df "$SB" | cut -d " " -f 1 | grep -q aufs; then
TGT="$RAMSTORE"
mkdir -p "$TGT"
if [ -r $TGT/$BAS ]; then die "File exists: $TGT/$BAS"; fi
cp -n "$SB" "$TGT/$BAS"
if [ $? -ne 0 ]; then die "Error copying file to $TGT/$BAS. Not enough free RAM or disk space?"; fi
SB="$TGT/$BAS"
fi
# check if this particular file is already activated
if print_branches | cut -f 2 | fgrep -q "$SB"; then
exit
fi
# mount remount,add
TGT="$LIVE/bundles/$BAS"
mkdir -p "$TGT"
mount -n -o loop,ro "$SB" "$TGT"
if [ $? -ne 0 ]; then
die "Error mounting $SB to $TGT, perhaps corrupted download"
fi
# add current branch to aufs union
mount -t aufs -o remount,add:1:"$TGT" aufs /
if [ $? -ne 0 ]; then
umount "$TGT"
rmdir "$TGT"
die "Error attaching bundle filesystem to Slax"
fi
echo "Slax Bundle activated: $BAS"
}
# Deactivate Slax bundle of the given name
# $1 = path to bundle file, or its name
#
deactivate()
{
local BUNDLES SB MATCH LOOP LOOPFILE
BUNDLES=$LIVE/bundles
MODULES=$LIVE/modules
SB="$(basename "$1")"
rmdir "$BUNDLES/$SB" 2>/dev/null # this fails unless the dir is
rmdir "$BUNDLES/$SB.sb" 2>/dev/null # forgotten there empty. It's safe this way
if [ ! -d "$BUNDLES/$SB" ]; then
# we don't have real filename match, lets try to add .sb extension
if [ ! -d "$BUNDLES/$SB.sb" ]; then
# no, still no match. Lets use some guesswork
SB=$(print_branches | cut -f 2 | egrep -o "/[0-9]+-$SB.sb\$" | tail -n 1 | xargs -r basename)
else
SB="$SB.sb"
fi
fi
if [ "$SB" = "" -o ! -d "$BUNDLES/$SB" ]; then
die "can't find active slax bundle $1"
fi
echo "Attempting to deactivate Slax bundle $SB..."
mount -t aufs -o remount,verbose,del:"$BUNDLES/$SB" aufs / 2>/dev/null
if [ $? -ne 0 ]; then
die "Unable to deactivate Slax Bundle - still in use. See dmesg for more."
fi
# remember what loop device was the bundle mounted to, it may be needed later
LOOP="$(cat /proc/mounts | fgrep " $BUNDLES/$SB " | cut -d " " -f 1)"
LOOPFILE="$(losetup "$LOOP" | cut -d " " -f 3 | sed -r 's:^.|.$::g')"
umount "$BUNDLES/$SB" 2>/dev/null
if [ $? -ne 0 ]; then
die "Unable to umount Slax bundle loop-mount $BUNDLES/$SB"
fi
rmdir "$BUNDLES/$SB"
# free the loop device manually since umount fails to do that if the bundle was activated on boot
losetup -d "$LOOP" 2>/dev/null
if echo "$LOOPFILE" | grep -q $RAMSTORE; then
rm -f $LOOPFILE
fi
echo "Slax Bundle deactivated: $SB"
}
usage()
{
echo "Usage: $0 [ activate | deactivate | list ] [ file.sb ]" >&2
if [ "$1" != "" ]; then
echo "$1" >&2
fi
}
if [ "$1" = "" ]; then
usage
die
fi
if [ "$1" = "activate" ]; then
activate "$2"
fi
if [ "$1" = "deactivate" ]; then
deactivate "$2"
fi
if [ "$1" = "list" ]; then
print_branches
fi
if [ "$1" = "savechanges" ]; then
shift
savechanges "$@"
fi

38
linux-live/livekit/core/rootcopy/usr/lib/systemd/system/apparmor.service

@ -0,0 +1,38 @@
[Unit]
Description=Load AppArmor profiles
DefaultDependencies=no
Before=sysinit.target
After=local-fs.target
After=systemd-journald-audit.socket
RequiresMountsFor=/var/cache/apparmor
AssertPathIsReadWrite=/sys/kernel/security/apparmor/.load
ConditionSecurity=apparmor
Documentation=man:apparmor(7)
Documentation=https://gitlab.com/apparmor/apparmor/wikis/home/
# Don't start this unit on the Ubuntu Live CD
ConditionPathExists=!/rofs/etc/apparmor.d
# Don't start this unit on the Debian Live CD when using overlayfs
ConditionPathExists=!/run/live/overlay/work
# Don't start this unit on Slax Live CD
ConditionPathExists=!/run/initramfs/lib/livekitlib
[Service]
Type=oneshot
ExecStart=/lib/apparmor/apparmor.systemd reload
ExecReload=/lib/apparmor/apparmor.systemd reload
# systemd maps 'restart' to 'stop; start' which means removing AppArmor confinement
# from running processes (and not being able to re-apply it later).
# Upstream systemd developers refused to implement an option that allows overriding
# this behaviour, therefore we have to make ExecStop a no-op to error out on the
# safe side.
#
# If you really want to unload all AppArmor profiles, run aa-teardown
ExecStop=/bin/true
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target

16
linux-live/livekit/core/rootcopy/usr/lib/systemd/system/dhclient.service

@ -0,0 +1,16 @@
[Unit]
Description=DHCP Client
Documentation=man:dhclient(8)
Wants=network.target
After=network-pre.target systemd-sysctl.service systemd-modules-load.service
Before=network.target shutdown.target network-online.target
ConditionPathExists=!/run/initramfs/net.up.flag
[Service]
Type=forking
ExecStart=-/bin/sh -c 'udevadm settle && dhclient -nw'
PIDFile=/run/dhclient.pid
[Install]
WantedBy=multi-user.target
WantedBy=network-online.target

54
linux-live/livekit/core/rootcopy/usr/lib/systemd/system/getty@.service

@ -0,0 +1,54 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
After=systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
# IgnoreOnIsolate causes issues with sulogin, if someone isolates
# rescue.target or starts rescue.service from multi-user.target or
# graphical.target.
Conflicts=rescue.service
Before=rescue.service
# On systems without virtual consoles, don't start any getty. Note
# that serial gettys are covered by serial-getty@.service, not this
# unit.
ConditionPathExists=/dev/tty0
[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --noclear %I $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
#TM do not clear VT:
TTYVTDisallocate=no
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
[Install]
WantedBy=getty.target
DefaultInstance=tty1

2
linux-live/livekit/core/rootcopy/usr/lib/udev/rules.d/90-slax-automount.rules

@ -0,0 +1,2 @@
# we don't care about loop* and ram* devices
KERNEL=="[!lr]*", SUBSYSTEM=="block", RUN+="/sbin/slax-automount %r/%k"

23
linux-live/livekit/core/rootcopy/usr/sbin/gtk-bookmarks-update

@ -0,0 +1,23 @@
#!/bin/bash
LOCK=/run/lock/gtk-bookmark-update-lock
BOOKMARKS=/root/.gtk-bookmarks
# make sure to avoid parallel execution by using mkdir as lock
while true; do
mkdir $LOCK 2>/dev/null
if [ $? = 0 ]; then
break
fi
done
cat $BOOKMARKS | fgrep -v ///media/ | fgrep -v "file:/// /" | egrep -v '^$' > $BOOKMARKS.tmp 2>/dev/null
ls -1 /media | sort | while read LINE; do
echo "file:///media/$LINE $LINE" >> $BOOKMARKS.tmp
done
echo "file:/// /" >> $BOOKMARKS.tmp # add root at the beginning
mv -f $BOOKMARKS.tmp $BOOKMARKS
rmdir $LOCK

67
linux-live/livekit/core/rootcopy/usr/sbin/slax-automount

@ -0,0 +1,67 @@
#!/bin/bash
# Recreate fstab entries in /etc/fstab and make /media directories
# This script is called by udev rules, see /lib/udev/rules.d/
#
# Author: Tomas M <http://slax.linux-live.org/>
# Variables available in udev environment:
# $ACTION (eg: add, remove)
# $DEVNAME (full device node name including path)
# $DEVTYPE (eg: disk)
# $ID_FS_TYPE (eg: ext3)
# $MAJOR and $MINOR numbers
# $SUBSYSTEM (eg: block)
PATH=$PATH:/usr/bin:/usr/sbin:/bin:/sbin
BAS="$(basename "$DEVNAME")"
UNIT="media-$BAS.mount"
MNT="/media/$BAS"
TARGET="/etc/systemd/system/$UNIT"
# exit if noautomount boot parameter is present
if cat /proc/cmdline | grep -q noautomount; then
exit
fi
# exit if 'automount' boot parameter is missing
if ! cat /proc/cmdline | grep -q automount; then
exit
fi
if [ "$ACTION" = "add" -o "$ACTION" = "change" ]; then
if [ ! -r "$TARGET" ]; then # skip if exists
if [ "$ID_FS_TYPE" != "" -a "$(cat /proc/filesystems | grep "$ID_FS_TYPE")" != "" ]; then
mkdir -p "$MNT"
echo "[Unit]" >$TARGET
echo "Description=Disk $BAS" >>$TARGET
echo "" >>$TARGET
echo "[Mount]" >>$TARGET
echo "What=$DEVNAME" >>$TARGET
echo "Where=$MNT" >>$TARGET
echo "Type=$ID_FS_TYPE" >>$TARGET
echo "Options=defaults" >>$TARGET
echo "" >>$TARGET
echo "[Install]" >>$TARGET
echo "WantedBy=multi-user.target" >>$TARGET
systemctl enable $UNIT
systemctl start $UNIT
gtk-bookmarks-update
DISPLAY=:0.0 pcmanfm -n file://$MNT >/dev/null 2>&1
fi
fi
fi
if [ "$ACTION" = "remove" ]; then
systemctl disable $UNIT
rm "$TARGET"
rmdir "$MNT"
gtk-bookmarks-update
fi

16
linux-live/livekit/gui/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

5
linux-live/livekit/gui/package.list

@ -0,0 +1,5 @@
ubiquity
ubiquity-casper
ubiquity-frontend-gtk
ubiquity-slideshow-xubuntu
ubiquity-ubuntu-artwork

41
linux-live/livekit/gui/postinstall

@ -0,0 +1,41 @@
#!/bin/bash
if [ -d /etc/lightdm ]; then
cat <<EOF >/etc/lightdm/lightdm.conf
[Seat:*]
autologin-session=xubuntu
autologin-user=live
autologin-user-timeout=0
EOF
fi
if [ -d /etc/NetworkManager ]; then
echo "Disable dhclient.service autostart."
systemctl disable dhclient
mkdir -p /etc/netplan
cat <<EOF >/etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
# Set and change netplan renderer to NetworkManager GUI tool
network:
version: 2
renderer: NetworkManager
EOF
cat <<EOF >/etc/NetworkManager/NetworkManager.conf
[main]
rc-manager=resolvconf
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
EOF
dpkg-reconfigure -f noninteractive network-manager
fi
if [ -f /usr/share/xfce4/backdrops/xubuntu-wallpaper.png ]; then
rm /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
fi
if [ ! -d /usr/share/xfce4/backdrops ]; then
mkdir -p /usr/share/xfce4/backdrops
fi
ln -s /usr/share/backgrounds/MiniOS.png /usr/share/xfce4/backdrops/xubuntu-wallpaper.png

160
linux-live/minioslib

@ -983,7 +983,7 @@ EOF
# create iso image
pushd $PARENT_DIR/image
/bin/bash -c "(find . -type f -print0 | xargs -0 md5sum | grep -v -e 'md5sum.txt' -e 'bios.img' -e 'efiboot.img' -e 'isolinux.bin' -e 'boot.cat' > md5sum.txt)"
/bin/bash -c "(find . -type f -print0 | xargs -0 md5sum | grep -v -e 'md5sum.txt' -e 'bios.img' -e 'efiboot.img' -e 'isolinux.bin' -e 'boot.cat' -e 'ldlinux.c32' -e ldlinux.sys > md5sum.txt)"
popd
fi
@ -1072,6 +1072,22 @@ function build_iso() {
exit 0
}
function batch_run() {
current_process
chroot $1 /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$2
}
# =================================================================
# =================================================================
# ====================== INSTALL FUNCTIONS ========================
@ -1167,21 +1183,21 @@ function main_pkg_list() {
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/main.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
if [ $LIVE_TYPE = "casper" ]; then
if [ -f $SCRIPT_DIR/pkglists/ubuntu-main.list ]; then
if [ -f $SCRIPT_DIR/pkglists/casper-main.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/ubuntu-main.list | tr "\n" " ") >>$OUTPUT 2>&1
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/casper-main.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
if [ -f $SCRIPT_DIR/pkglists/ubuntu-gui.list ]; then
if [ -f $SCRIPT_DIR/pkglists/casper-gui.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/ubuntu-gui.list | tr "\n" " ") >>$OUTPUT 2>&1
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/casper-gui.list | tr "\n" " ") >>$OUTPUT 2>&1
#$APT_CMD install $APT_OPTIONS /linux-live/packages/chromium_88.0.4324.96~linuxmint1+ulyssa_amd64.deb >>$OUTPUT 2>&1
fi
if [ -f $SCRIPT_DIR/pkglists/ubuntu-ubiquity.list ]; then
if [ -f $SCRIPT_DIR/pkglists/casper-ubiquity.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/ubuntu-ubiquity.list | tr "\n" " ") >>$OUTPUT 2>&1
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/casper-ubiquity.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
fi
}
@ -1190,13 +1206,85 @@ function other_pkg_list() {
echo -e "${YELLOW}=====> installing other packages for chroot system ...${ENDCOLOUR}"
if [ $LIVE_TYPE = "casper" ]; then
if [ -f $SCRIPT_DIR/pkglists/ubuntu-other.list ]; then
if [ -f $SCRIPT_DIR/pkglists/casper-other.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/ubuntu-other.list | tr "\n" " ") >>$OUTPUT 2>&1
$(grep -vE "^\s*#" $SCRIPT_DIR/pkglists/casper-other.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
# Install stuff from livekit modules
if [ $INSTALL_OPTIONAL = "1" ]; then
if [ -f /linux-live/modules/03-apps/preinstall ]; then
chmod +x /linux-live/modules/03-apps/preinstall
/usr/bin/env \
OUTPUT=$OUTPUT \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/linux-live/modules/03-apps/preinstall
fi
if [ "$(ls -A /linux-live/modules/03-apps/rootcopy)" != "" ]; then
(cd /linux-live/modules/03-apps/rootcopy && cp --parents -afr * /)
fi
if [ -f /linux-live/modules/03-apps/install ]; then
chmod +x /linux-live/modules/03-apps/install
/usr/bin/env \
OUTPUT=$OUTPUT \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/linux-live/modules/03-apps/install
fi
if [ -f /linux-live/modules/03-apps/postinstall ]; then
chmod +x /linux-live/modules/03-apps/postinstall
/usr/bin/env \
OUTPUT=$OUTPUT \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/linux-live/modules/03-apps/postinstall
fi
if [ -f /linux-live/modules/04-drivers/preinstall ]; then
chmod +x /linux-live/modules/04-drivers/preinstall
/usr/bin/env \
OUTPUT=$OUTPUT \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/linux-live/modules/04-drivers/preinstall
fi
if [ "$(ls -A /linux-live/modules/04-drivers/rootcopy)" != "" ]; then
(cd /linux-live/modules/04-drivers/rootcopy && cp --parents -afr * /)
fi
if [ -f /linux-live/modules/04-drivers/install ]; then
chmod +x /linux-live/modules/04-drivers/install
/usr/bin/env \
OUTPUT=$OUTPUT \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/linux-live/modules/04-drivers/install
fi
if [ -f /linux-live/modules/04-drivers/postinstall ]; then
chmod +x /linux-live/modules/04-drivers/postinstall
/usr/bin/env \
OUTPUT=$OUTPUT \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/linux-live/modules/04-drivers/postinstall
fi
fi
fi
if [ -f $SCRIPT_DIR/pkglists/other.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
@ -1409,6 +1497,7 @@ EOF
fi
if [ $LIVE_TYPE = "casper" ]; then
update-alternatives --install /usr/share/plymouth/themes/default.plymouth default.plymouth /usr/share/plymouth/themes/minios-logo/minios-logo.plymouth 200
update-alternatives --install /usr/share/plymouth/themes/text.plymouth text.plymouth /usr/share/plymouth/themes/minios-text/minios-text.plymouth 200
update-alternatives --config default.plymouth --skip-auto
@ -1418,28 +1507,6 @@ EOF
fi
update-initramfs -u
if [ $INSTALL_OPTIONAL = "1" ]; then
if [ -f /linux-live/modules/03-apps/package.list ]; then
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" /linux-live/modules/03-apps/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
if [ "$(ls -A /linux-live/modules/03-apps/rootcopy)" != "" ]; then
(cd /linux-live/modules/03-apps/rootcopy && cp --parents -afr * /)
fi
if [ -f /linux-live/modules/03-apps/postinstall ]; then
chmod +x /linux-live/modules/03-apps/postinstall
/linux-live/modules/03-apps/postinstall
fi
if [ -f /linux-live/modules/04-drivers/package.list ]; then
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" /linux-live/modules/04-drivers/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
fi
fi
if [ -f /usr/share/xfce4/backdrops/xubuntu-wallpaper.png ]; then
@ -1694,6 +1761,8 @@ EOF
rm -f $MODULE_UPPER_DIR/var/lib/apt/lists/deb.* >>$OUTPUT 2>&1
rm -f $MODULE_UPPER_DIR/var/lib/dpkg/*-old >>$OUTPUT 2>&1
rm -f /preinstall
rm -f /install
rm -f /packages.list
rm -f /postinstall
}
@ -1741,11 +1810,10 @@ function build_modules_chroot() {
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
/preinstall >>$OUTPUT 2>&1
fi
# install packages
: '# install packages
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
chroot $MODULE_MERGED_DIR /usr/bin/env \
@ -1778,13 +1846,32 @@ function build_modules_chroot() {
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$MODULE/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
fi
fi'
# copy files
if [ "$(ls -A $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy)" != "" ]; then
(cd $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy && cp --parents -afr * $MODULE_MERGED_DIR/)
fi
# run install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/install ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/install $MODULE_MERGED_DIR/install
chmod +x $MODULE_MERGED_DIR/install
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/package.list $MODULE_MERGED_DIR/package.list
fi
chroot $MODULE_MERGED_DIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/install >>$OUTPUT 2>&1
fi
# run post-install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall $MODULE_MERGED_DIR/postinstall
@ -1798,7 +1885,6 @@ function build_modules_chroot() {
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
/postinstall >>$OUTPUT 2>&1
fi
@ -1806,6 +1892,10 @@ function build_modules_chroot() {
module_chroot_umount_fs
if [ ! -f $PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT ]; then
build_modules_live
fi
fi
done
}

1950
linux-live/minioslib.copy

File diff suppressed because it is too large

247
linux-live/minioslib.test

@ -0,0 +1,247 @@
function build_modules_chroot() {
current_process
if [ $LIVE_TYPE = "casper" ]; then
#return 0
chroot_mount_fs
cd $SCRIPT_DIR/linux-live/modules
for MODULE in *; do
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $BUILDDIR/preinstall
chmod +x $BUILDDIR/preinstall
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/preinstall >>$OUTPUT 2>&1
fi
# copy files
if [ "$(ls -A $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy)" != "" ]; then
(cd $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy && cp --parents -afr * $BUILDDIR/)
fi
# run install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/install ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/install $BUILDDIR/install
chmod +x $BUILDDIR/install
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/package.list $BUILDDIR/package.list
fi
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/install >>$OUTPUT 2>&1
fi
# run post-install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall $BUILDDIR/postinstall
chmod +x $BUILDDIR/postinstall
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/postinstall >>$OUTPUT 2>&1
fi
chroot_finish_up
chroot_umount_fs
done
fi
if [ $CONTAINER_TYPE = "1" ]; then
if [ ! -f /.minios-live ]; then
setup_host
fi
fi
MODULES_DIR=$PARENT_DIR/modules
cd $SCRIPT_DIR/linux-live/modules
for MODULE in *; do
if (ls $PARENT_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
echo -e "Please remove ${MAGENTA}$PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}."
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
else
MODULE_UPPER_DIR="$MODULES_DIR/$MODULE-upper"
MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work"
MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged"
module_check_build_dir
module_chroot_mount_fs
# run pre-install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/preinstall $BUILDDIR/preinstall
chmod +x $BUILDDIR/preinstall
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/preinstall >>$OUTPUT 2>&1
fi
: '# install packages
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
if [ -d /opt/minios-live ] || [ -f /.minios-live-container ]; then
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$MODULE/package.list | tr "\n" " ") >>$OUTPUT 2>&1
else
chroot $BUILDDIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
chroot $BUILDDIR sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/linux-live/modules/$MODULE/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
fi'
# copy files
if [ "$(ls -A $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy)" != "" ]; then
(cd $SCRIPT_DIR/linux-live/modules/$MODULE/rootcopy && cp --parents -afr * $BUILDDIR/)
fi
# run install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/install ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/install $BUILDDIR/install
chmod +x $BUILDDIR/install
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/package.list ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/package.list $BUILDDIR/package.list
fi
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/install >>$OUTPUT 2>&1
fi
# run post-install script
if [ -f $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall ]; then
cp $SCRIPT_DIR/linux-live/modules/$MODULE/postinstall $BUILDDIR/postinstall
chmod +x $BUILDDIR/postinstall
chroot $BUILDDIR /usr/bin/env \
OUTPUT=$OUTPUT \
LOGPATH=$LOGPATH \
BUILD_TEST_ISO=$BUILD_TEST_ISO \
CREATE_BACKUP=$CREATE_BACKUP \
DEBIAN_FRONTEND_TYPE=$DEBIAN_FRONTEND_TYPE \
APT_CMD=$APT_CMD \
APT_OPTIONS=$APT_OPTIONS \
LIVE_TYPE=$LIVE_TYPE \
/postinstall >>$OUTPUT 2>&1
fi
module_chroot_finish_up
module_chroot_umount_fs
if [ ! -f $PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT ]; then
build_modules_live
fi
fi
done
}
function build_modules_live() {
current_process
if [ $LIVE_TYPE = "casper" ]; then
return 0
fi
if [ $CONTAINER_TYPE = "1" ]; then
if [ ! -f /.minios-live ]; then
setup_host
fi
fi
MODULES_DIR=$PARENT_DIR/modules
cd $SCRIPT_DIR/linux-live/modules
for MODULE in *; do
if (ls $PARENT_DIR/image/$LIVEKITNAME/*.$BEXT | grep -q $MODULE 2>/dev/null); then
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
echo -e "Please remove ${MAGENTA}$PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT${ENDCOLOUR} if you want to build ${MAGENTA}$MODULE${ENDCOLOUR}."
echo -e "${RED}!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${ENDCOLOUR}"
else
MODULE_UPPER_DIR="$MODULES_DIR/$MODULE-upper"
MODULE_WORK_DIR="$MODULES_DIR/$MODULE-work"
MODULE_MERGED_DIR="$MODULES_DIR/$MODULE-merged"
if [ "$(ls -A $MODULE_UPPER_DIR)" != "" ]; then
# create compressed 01-core.sb
: 'cd $MODULE_UPPER_DIR
COREFS=""
for i in $MKMOD; do
if [ -d /$i ]; then
COREFS="$COREFS $i"
fi
done
mksquashfs $COREFS $PARENT_DIR/image/$LIVEKITNAME/$MODULE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -keep-as-directory -noappend || exit'
mksquashfs $MODULE_UPPER_DIR $PARENT_DIR/image/$LIVEKITNAME/$MODULE-$COMP_TYPE.$BEXT -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend || exit
else
echo -e "${MAGENTA}$BUILD_DIR${ENDCOLOUR} is empty. Nothing to do."
fi
fi
done
}

16
linux-live/modules/02-xubuntu/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

1
linux-live/modules/02-xubuntu/package.list

@ -10,6 +10,7 @@ blueman
ristretto
onboard
gigolo
engrampa
gparted
gsmartcontrol
xfce4-taskmanager

37
linux-live/modules/03-apps/install

@ -0,0 +1,37 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi
cd /root
#apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5 >>$OUTPUT 2>&1
#echo "deb https://download.onlyoffice.com/repo/debian squeeze main" >/etc/apt/sources.list.d/onlyoffice.list >>$OUTPUT 2>&1
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - >>$OUTPUT 2>&1
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb >>$OUTPUT 2>&1
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
# $APT_CMD install $APT_OPTIONS onlyoffice-desktopeditors
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS /root/google-chrome-stable_current_amd64.deb /root/cts-4.0.0-104.ks1_amd64.deb >>$OUTPUT 2>&1
if [ -d /home/live ]; then
mkdir -p /home/live/.cts
cp /etc/skel/.cts/settings.conf /home/live/.cts/
chmod 755 /home/live/.cts
chown live:live /home/live/.cts
chmod 644 /home/live/.cts/settings.conf
chown live:live /home/live/.cts/settings.conf
fi

6
linux-live/modules/03-apps/package.list

@ -1,4 +1,8 @@
open-vm-tools-desktop
#firefox
#firefox-locale-ru
remmina
remmina
parole
recordmydesktop
compizconfig-settings-manager
compiz-plugins

20
linux-live/modules/03-apps/postinstall

@ -1,12 +1,10 @@
#!/bin/bash
cd /root
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
echo "deb https://download.onlyoffice.com/repo/debian squeeze main" > /etc/apt/sources.list.d/onlyoffice.list
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt update
apt install -y onlyoffice-desktopeditors
apt install -y /root/google-chrome-stable_current_amd64.deb
apt install -y /root/cts-4.0.0-104.ks1_amd64.deb
rm -f /root/google-chrome-stable_current_amd64.deb
rm -f /root/cts-4.0.0-104.ks1_amd64.deb
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
rm -f /root/google-chrome-stable_current_amd64.deb >>$OUTPUT 2>&1
rm -f /root/cts-4.0.0-104.ks1_amd64.deb >>$OUTPUT 2>&1

4
linux-live/modules/03-apps/rootcopy/etc/skel/.cts/settings.conf

@ -0,0 +1,4 @@
[settings]
auto_connect=false
auto_disconnect=true
minimize_on_start=true

16
linux-live/modules/04-drivers/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

10
linux-live/modules/04-drivers/postinstall

@ -0,0 +1,10 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD remove linux-headers-generic-hwe-20.04 $APT_OPTIONS >>$OUTPUT 2>&1

0
linux-live/pkglists/ubuntu-gui.list → linux-live/pkglists/casper-gui.list

0
linux-live/pkglists/ubuntu-main.list → linux-live/pkglists/casper-main.list

0
linux-live/pkglists/ubuntu-other.list → linux-live/pkglists/casper-other.list

5
linux-live/pkglists/casper-ubiquity.list

@ -0,0 +1,5 @@
ubiquity
ubiquity-casper
ubiquity-frontend-gtk
ubiquity-slideshow-xubuntu
ubiquity-ubuntu-artwork

2
linux-live/rootcopy/etc/issue

@ -0,0 +1,2 @@
Welcome to MiniOS! \n \l

1
linux-live/rootcopy/etc/issue.net

@ -0,0 +1 @@
MiniOS 2021

1
linux-live/rootcopy/etc/skel/.config/xfce4/helpers.rc

@ -0,0 +1 @@
WebBrowser=google-chrome

15
linux-live/rootcopy/etc/skel/.config/xfce4/panel/launcher-19/16093657651.desktop

@ -0,0 +1,15 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=exo-open --launch FileManager %u
Icon=system-file-manager
StartupNotify=true
Terminal=false
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
X-XFCE-MimeType=inode/directory;x-scheme-handler/trash;
Name=File Manager
Name[ru]=Файловый менеджер
Comment=Browse the file system
Comment[ru]=Просмотреть файловую систему
X-XFCE-Source=file:///usr/share/applications/exo-file-manager.desktop

16
linux-live/rootcopy/etc/skel/.config/xfce4/panel/launcher-23/16093659533.desktop

@ -0,0 +1,16 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=exo-open --launch WebBrowser %u
Icon=web-browser
StartupNotify=true
Terminal=false
Categories=Network;X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
X-XFCE-MimeType=x-scheme-handler/http;x-scheme-handler/https;
Name=Web Browser
Name[ru]=Веб-браузер
Comment=Browse the web
Comment[ru]=Смотреть в Интернете
X-XFCE-Source=file:///usr/share/applications/exo-web-browser.desktop
Path=

14
linux-live/rootcopy/etc/skel/.config/xfce4/panel/launcher-24/16093659584.desktop

@ -0,0 +1,14 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=exo-open --launch TerminalEmulator
Icon=utilities-terminal
StartupNotify=true
Terminal=false
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
Name=Terminal Emulator
Name[ru]=Эмулятор терминала
Comment=Use the command line
Comment[ru]=Использовать командную строку
X-XFCE-Source=file:///usr/share/applications/exo-terminal-emulator.desktop

68
linux-live/rootcopy/etc/skel/.config/xfce4/panel/whiskermenu-1.rc

@ -0,0 +1,68 @@
favorites=RDWebAccess.desktop,RDWebClient.desktop,org.remmina.Remmina.desktop,ctsg.desktop,ctskeyimportg.desktop,ubiquity.desktop
recent=
button-title=Applications Menu
button-icon=MiniOS-white
button-single-row=false
show-button-title=false
show-button-icon=true
launcher-show-name=true
launcher-show-description=false
launcher-show-tooltip=true
item-icon-size=2
hover-switch-category=false
category-show-name=true
category-icon-size=1
load-hierarchy=true
recent-items-max=10
favorites-in-recent=true
display-recent-default=false
position-search-alternate=true
position-commands-alternate=false
position-categories-alternate=false
menu-width=400
menu-height=500
menu-opacity=100
command-settings=xfce4-settings-manager
show-command-settings=true
command-lockscreen=xflock4
show-command-lockscreen=true
command-switchuser=dm-tool switch-to-greeter
show-command-switchuser=false
command-logout=xfce4-session-logout
show-command-logout=true
command-menueditor=menulibre
show-command-menueditor=true
command-profile=mugshot
show-command-profile=true
search-actions=5
[action0]
name=Man-страницы
pattern=#
command=exo-open --launch TerminalEmulator man %s
regex=false
[action1]
name=Web-поиск
pattern=?
command=exo-open --launch WebBrowser https://duckduckgo.com/?q=%u
regex=false
[action2]
name=Википедия
pattern=!w
command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u
regex=false
[action3]
name=Выполнить в терминале
pattern=!
command=exo-open --launch TerminalEmulator %s
regex=false
[action4]
name=Открыть URI
pattern=^(file|http|https):\\/\\/(.*)$
command=exo-open \\0
regex=true

123
linux-live/rootcopy/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="panels" type="uint" value="1">
<property name="panel-0" type="empty">
<property name="position" type="string" value="p=8;x=1109;y=1275"/>
<property name="length" type="uint" value="100"/>
<property name="position-locked" type="bool" value="true"/>
<property name="plugin-ids" type="array">
<value type="int" value="1"/>
<value type="int" value="21"/>
<value type="int" value="23"/>
<value type="int" value="19"/>
<value type="int" value="24"/>
<value type="int" value="22"/>
<value type="int" value="2"/>
<value type="int" value="3"/>
<value type="int" value="5"/>
<value type="int" value="4"/>
<value type="int" value="7"/>
<value type="int" value="6"/>
<value type="int" value="9"/>
<value type="int" value="10"/>
<value type="int" value="11"/>
<value type="int" value="12"/>
</property>
<property name="background-style" type="uint" value="0"/>
<property name="background-alpha" type="uint" value="60"/>
<property name="size" type="uint" value="32"/>
<property name="length-adjust" type="bool" value="true"/>
<property name="span-monitors" type="bool" value="false"/>
<property name="enter-opacity" type="uint" value="100"/>
<property name="leave-opacity" type="uint" value="100"/>
<property name="mode" type="uint" value="0"/>
<property name="autohide-behavior" type="uint" value="0"/>
<property name="nrows" type="uint" value="1"/>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="whiskermenu"/>
<property name="plugin-2" type="string" value="tasklist">
<property name="flat-buttons" type="bool" value="true"/>
<property name="show-handle" type="bool" value="false"/>
<property name="show-labels" type="bool" value="false"/>
</property>
<property name="plugin-3" type="string" value="separator">
<property name="style" type="uint" value="0"/>
<property name="expand" type="bool" value="true"/>
</property>
<property name="plugin-4" type="string" value="systray">
<property name="show-frame" type="bool" value="false"/>
<property name="size-max" type="uint" value="22"/>
<property name="names-visible" type="array">
<value type="string" value="thunar"/>
<value type="string" value="ctsg"/>
</property>
<property name="names-hidden" type="array">
<value type="string" value="network"/>
<value type="string" value="xfce4-power-manager"/>
<value type="string" value="сеть"/>
<value type="string" value="апплет networkmanager"/>
<value type="string" value="networkmanager applet"/>
<value type="string" value="remmina"/>
</property>
</property>
<property name="plugin-9" type="string" value="pulseaudio">
<property name="enable-keyboard-shortcuts" type="bool" value="true"/>
<property name="enable-mpris" type="bool" value="true"/>
<property name="mixer-command" type="string" value="pavucontrol"/>
<property name="mpris-players" type="string" value="parole"/>
<property name="show-notifications" type="bool" value="true"/>
</property>
<property name="plugin-10" type="string" value="separator">
<property name="style" type="uint" value="0"/>
<property name="expand" type="bool" value="false"/>
</property>
<property name="plugin-11" type="string" value="clock">
<property name="digital-format" type="string" value="%d %b, %H:%M"/>
</property>
<property name="plugin-12" type="string" value="showdesktop"/>
<property name="plugin-19" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="16093657651.desktop"/>
</property>
</property>
<property name="plugin-21" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-22" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-23" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="16093659533.desktop"/>
</property>
<property name="show-label" type="bool" value="false"/>
<property name="disable-tooltips" type="bool" value="false"/>
</property>
<property name="plugin-24" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="16093659584.desktop"/>
</property>
</property>
<property name="plugin-5" type="string" value="xkb">
<property name="display-scale" type="uint" value="50"/>
<property name="display-tooltip-icon" type="bool" value="true"/>
<property name="group-policy" type="uint" value="0"/>
<property name="display-type" type="uint" value="2"/>
<property name="display-name" type="uint" value="1"/>
</property>
<property name="plugin-7" type="string" value="statusnotifier">
<property name="known-items" type="array">
<value type="string" value="ctsg"/>
<value type="string" value="remmina-icon"/>
<value type="string" value="nm-applet"/>
</property>
<property name="hidden-items" type="array">
</property>
</property>
<property name="plugin-6" type="string" value="power-manager-plugin"/>
</property>
<property name="configver" type="int" value="2"/>
</channel>

1
linux-live/rootcopy/etc/timezone

@ -0,0 +1 @@
Europe/Moscow

140
linux-live/rootcopy/root/.bashrc

@ -0,0 +1,140 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
apt-get()
{
if [ -e /var/cache/apt/pkgcache.bin ]; then
/usr/bin/apt-get "$@"
else
/usr/bin/apt-get update
/usr/bin/apt-get "$@"
fi
}
apt()
{
if [ -e /var/cache/apt/pkgcache.bin ]; then
/usr/bin/apt "$@"
else
/usr/bin/apt update
/usr/bin/apt "$@"
fi
}
export -f apt-get
export -f apt

BIN
linux-live/rootcopy/usr/share/backgrounds/MiniOS.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 KiB

149
linux-live/rootcopy/usr/share/pixmaps/MiniOS-white.svg

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
width="256"
height="256"
version="1.1"
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
viewBox="0 0 256 256"
id="svg345"
sodipodi:docname="MiniOS-wis.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"><metadata
id="metadata349"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1241"
inkscape:window-height="523"
id="namedview347"
showgrid="false"
inkscape:snap-global="false"
inkscape:zoom="0.984375"
inkscape:cx="235.54225"
inkscape:cy="107.04132"
inkscape:window-x="919"
inkscape:window-y="246"
inkscape:window-maximized="0"
inkscape:current-layer="Слой_x0020_1" />
<defs
id="defs292">
<font
id="FontID0"
horiz-adv-x="606"
font-variant="normal"
style="fill-rule:nonzero"
font-weight="700"
horiz-origin-x="0"
horiz-origin-y="0"
vert-origin-x="512"
vert-origin-y="768"
vert-adv-y="1024">
<font-face
font-family="Calibri"
id="font-face273">
<font-face-src>
<font-face-name
name="Calibri Bold" />
</font-face-src>
</font-face>
<missing-glyph
id="missing-glyph277"><path
d="M0 0z"
id="path275" /></missing-glyph>
<glyph
unicode="M"
horiz-adv-x="874"
d="M805.029 17.4996c0,-3.16292 -0.828384,-6.16581 -2.66401,-8.82982 -1.83562,-2.50398 -5.16799,-4.66907 -9.83706,-6.33525 -4.66907,-1.49674 -10.9949,-2.83345 -18.8363,-3.83128 -7.83199,-1.00724 -17.8291,-1.50615 -29.8312,-1.50615 -11.8327,0 -21.6698,0.498913 -29.5018,1.50615 -7.83199,0.997826 -13.9978,2.33454 -18.6669,3.83128 -4.49963,1.66618 -7.83199,3.83128 -9.66762,6.33525 -1.99565,2.66401 -2.99348,5.6669 -2.99348,8.82982l0 514.521 -1.00724 0 -182.508 -514.022c-1.3273,-4.16075 -3.33236,-7.66255 -6.32584,-10.496 -3.00289,-2.83345 -6.83417,-4.99854 -12.0022,-6.66472 -4.99854,-1.50615 -11.5032,-2.67342 -19.1658,-3.17233 -7.84141,-0.498913 -17.3396,-0.668355 -28.3345,-0.668355 -11.1738,0 -20.5025,0.338884 -28.3345,1.16727 -7.84141,0.837797 -14.3367,2.16509 -19.3352,4.00072 -4.99854,1.83562 -8.99926,4.00072 -12.0022,6.5047 -2.83345,2.66401 -4.83852,5.82693 -5.83634,9.32873l-176.173 514.022 -0.997826 0 0 -514.521c0,-3.16292 -0.837797,-6.16581 -2.66401,-8.82982 -1.83562,-2.50398 -5.16799,-4.66907 -10.0065,-6.33525 -4.99854,-1.49674 -11.3338,-2.83345 -18.9963,-3.83128 -7.67196,-1.00724 -17.4996,-1.50615 -29.5018,-1.50615 -11.8327,0 -21.6698,0.498913 -29.5018,1.50615 -7.83199,0.997826 -14.1672,2.33454 -18.8363,3.83128 -4.66907,1.66618 -8.00144,3.83128 -9.82765,6.33525 -1.83562,2.66401 -2.67342,5.6669 -2.67342,8.82982l0 563.188c0,16.6712 4.3396,29.3323 13.1694,38.1716 8.82982,8.82982 20.5025,13.1694 35.3381,13.1694l83.9962 0c15.005,0 28.005,-1.16727 38.6705,-3.67125 10.8349,-2.50398 20.173,-6.5047 28.005,-12.1716 7.66255,-5.6669 14.3273,-13.16 19.4953,-22.4982 5.16799,-9.32873 9.83706,-20.832 13.6683,-34.5003l136.175 -376.51 1.99565 0 141.004 375.682c4.17016,13.6589 8.83923,25.1622 13.8378,34.6603 5.16799,9.33815 11.0043,17.0007 17.6691,22.837 6.66472,5.83634 14.6662,9.99709 23.6654,12.5011 9.1687,2.50398 19.8341,3.67125 31.8363,3.67125l86.6697 0c8.82982,0 16.3323,-1.16727 22.6676,-3.5018 6.33525,-2.16509 11.6633,-5.50687 15.664,-10.0065 4.17016,-4.33019 7.17305,-9.66762 9.33815,-15.9935 2.16509,-6.33525 3.16292,-13.6683 3.16292,-21.8392l0 -563.188z"
id="glyph279" />
<glyph
unicode="O"
horiz-adv-x="676"
d="M637.027 323.343c0,-52.3294 -6.5047,-99.1707 -19.5047,-140.505 -13,-41.3345 -32.3352,-76.5031 -58.1657,-105.167 -25.6705,-28.8334 -57.5068,-50.8326 -95.3395,-66.0071 -38.0021,-15.1651 -81.8406,-22.6676 -131.675,-22.6676 -49.1665,0 -91.9977,6.5047 -128.503,19.3352 -36.6654,12.84 -67.165,32.3352 -91.6682,58.8341 -24.3338,26.3388 -42.6712,59.8413 -54.8334,100.507 -12.1716,40.6661 -18.3374,88.8348 -18.3374,144.506 0,51.0021 6.5047,97.0056 19.5047,137.841 13,40.8356 32.3352,75.4959 58.1657,104.169 25.6705,28.664 57.5068,50.6632 95.3395,65.8377 38.0021,15.3345 82.0006,22.9971 132.174,22.9971 47.8298,0 90.002,-6.33525 126.667,-18.9963 36.5054,-12.6705 67.165,-32.1752 91.6682,-58.6741 24.6727,-26.3294 43.1701,-59.5024 55.6712,-99.6696 12.5011,-40.3366 18.8363,-87.6675 18.8363,-142.341zm-135.008 -6.49528c0,33.1636 -2.66401,63.3337 -7.83199,90.5009 -5.16799,27.1672 -13.9978,50.5032 -26.4989,69.8384 -12.5011,19.3352 -29.1723,34.3309 -50.0043,44.9963 -20.832,10.5054 -46.8413,15.8334 -78.0093,15.8334 -31.4974,0 -57.8268,-5.99637 -78.8283,-17.8291 -21.1709,-11.8327 -38.341,-27.8356 -51.341,-47.6697 -13,-19.8341 -22.1687,-43.0007 -27.4967,-69.4995 -5.33743,-26.6683 -8.00144,-54.6733 -8.00144,-84.3351 0,-34.5097 2.66401,-65.5082 7.83199,-93.0049 5.16799,-27.5061 13.9978,-51.0021 26.3388,-70.6762 12.3316,-19.4953 28.8334,-34.3309 49.6654,-44.6668 20.832,-10.1665 47.0014,-15.3345 78.4988,-15.3345 31.5068,0 57.8363,5.83634 78.8377,17.6691 21.1709,11.6727 38.341,27.6661 51.341,47.8392 13,20.1636 22.1687,43.669 27.4967,70.4974 5.33743,26.8378 8.00144,55.5017 8.00144,85.8413z"
id="glyph281" />
<glyph
unicode="S"
horiz-adv-x="472"
d="M444.014 189.672c0,-33.333 -6.16581,-62.3359 -18.4974,-87.498 -12.5011,-25.0021 -29.1723,-45.8341 -50.3337,-62.6748 -21.3403,-16.6618 -46.0035,-29.3323 -74.338,-37.8327 -28.3345,-8.50035 -58.6646,-12.6705 -90.9999,-12.6705 -21.8392,0 -42.0028,1.83562 -60.8391,5.50687 -18.6669,3.66183 -35.1687,8.00144 -49.5054,13.16 -14.3273,5.00796 -26.3294,10.336 -35.997,16.0029 -9.66762,5.6669 -16.5018,10.6654 -20.832,14.8356 -4.17016,4.33019 -7.17305,10.5054 -8.99926,18.4974 -1.83562,8.00144 -2.67342,19.3352 -2.67342,34.3403 0,10.1665 0.338884,18.4974 1.00724,25.3316 0.658942,6.83417 1.66618,12.3316 3.16292,16.6712 1.49674,4.16075 3.5018,7.16364 5.83634,8.99926 2.49457,1.83562 5.32801,2.66401 8.66038,2.66401 4.49963,0 11.0043,-2.66401 19.3352,-8.17088 8.34032,-5.32801 19.0058,-11.3338 32.0057,-17.8291 13,-6.5047 28.664,-12.5011 46.8319,-17.8385 17.9985,-5.49746 38.9999,-8.16146 62.8348,-8.16146 15.6734,0 29.6712,1.83562 42.0028,5.49746 12.5011,3.83128 22.9971,8.99926 31.6669,15.8334 8.66979,6.83417 15.1651,15.1651 19.8341,25.1716 4.49963,9.99709 6.83417,21.1614 6.83417,33.5025 0,14.3273 -3.83128,26.6683 -11.6633,36.8348 -7.83199,10.3266 -18.0079,19.3352 -30.669,27.3273 -12.5011,8.00144 -26.8378,15.504 -42.8406,22.5076 -15.8334,6.9942 -32.3352,14.3273 -49.3359,22.1687 -17.0007,7.83199 -33.4931,16.6618 -49.3265,26.6589 -16.0029,9.83706 -30.3396,21.6698 -42.8406,35.5075 -12.6611,13.8284 -22.837,30.1701 -30.669,49.1665 -7.83199,18.8363 -11.6633,41.5039 -11.6633,67.8333 0,30.1701 5.6669,56.8384 16.8313,79.8355 11.1644,22.837 26.3388,41.8428 45.3352,57.0079 19.1658,15.1651 41.5039,26.4989 67.3344,34.0014 25.8399,7.50252 53.3366,11.1644 82.3395,11.1644 14.8356,0 29.8312,-1.16727 44.8363,-3.5018 14.9956,-2.16509 29.0028,-5.32801 42.0028,-9.1687 13,-3.9913 24.4938,-8.33091 34.6697,-13.16 9.99709,-4.99854 16.6618,-8.99926 19.9942,-12.341 3.17233,-3.16292 5.33743,-5.99637 6.5047,-8.16146 1.16727,-2.33454 2.16509,-5.33743 2.99348,-9.1687 0.837797,-3.66183 1.33671,-8.33091 1.67559,-14.1672 0.329471,-5.6669 0.498913,-12.6705 0.498913,-21.1709 0,-9.32873 -0.169442,-17.3302 -0.668355,-23.8349 -0.498913,-6.49528 -1.33671,-11.8327 -2.50398,-16.1629 -1.16727,-4.17016 -2.83345,-7.33308 -4.8291,-9.1687 -2.16509,-1.99565 -4.99854,-2.99348 -8.66979,-2.99348 -3.5018,0 -9.1687,2.32512 -17.0007,6.82475 -7.83199,4.49963 -17.4996,9.50759 -28.8334,15.005 -11.5032,5.33743 -24.6727,10.1665 -39.6683,14.4967 -15.005,4.49963 -31.3374,6.67414 -49.3359,6.67414 -13.9978,0 -26.1694,-1.66618 -36.6654,-5.16799 -10.336,-3.33236 -19.0058,-8.17088 -26,-14.1672 -7.00361,-6.00578 -12.341,-13.1694 -15.6734,-21.6698 -3.5018,-8.50035 -5.16799,-17.4996 -5.16799,-26.8378 0,-13.9978 3.84069,-26.16 11.5032,-36.3359 7.67196,-10.3266 17.9985,-19.4953 30.8385,-27.4967 12.8305,-7.83199 27.4967,-15.3345 43.829,-22.3381 16.1723,-6.9942 32.8341,-14.4967 49.8348,-22.1593 17.0007,-7.84141 33.6719,-16.6712 49.8348,-26.6683 16.3418,-10.0065 30.8385,-21.8392 43.669,-35.6676 12.6705,-13.8378 23.0065,-30.0007 30.8385,-48.837 7.83199,-18.6669 11.6633,-40.6661 11.6633,-66.0071z"
id="glyph283" />
<glyph
unicode="i"
horiz-adv-x="245"
d="M185.003 16.5018c0,-3.17233 -0.997826,-6.00578 -2.99348,-8.50035 -1.83562,-2.50398 -5.16799,-4.49963 -10.0065,-6.16581 -4.65966,-1.50615 -10.9949,-2.83345 -18.6669,-3.67125 -7.83199,-0.828384 -17.8291,-1.16727 -29.8312,-1.16727 -12.0022,0 -21.9992,0.338884 -29.8312,1.16727 -7.67196,0.837797 -14.0072,2.16509 -18.6669,3.67125 -4.83852,1.66618 -8.17088,3.66183 -10.0065,6.16581 -1.99565,2.49457 -2.99348,5.32801 -2.99348,8.50035l0 435.015c0,3.17233 0.997826,6.00578 2.99348,8.50035 1.83562,2.50398 5.16799,4.66907 10.0065,6.33525 4.65966,1.83562 10.9949,3.16292 18.6669,4.17016 7.83199,0.997826 17.8291,1.49674 29.8312,1.49674 12.0022,0 21.9992,-0.498913 29.8312,-1.49674 7.67196,-1.00724 14.0072,-2.33454 18.6669,-4.17016 4.83852,-1.66618 8.17088,-3.83128 10.0065,-6.33525 1.99565,-2.49457 2.99348,-5.32801 2.99348,-8.50035l0 -435.015zm10.0065 584.02c0,-24.8327 -4.99854,-41.8334 -15.1651,-51.3316 -10.1665,-9.50759 -28.8428,-14.1672 -56.3395,-14.1672 -27.6661,0 -46.5025,4.49963 -56.0006,13.6683 -9.66762,9.15929 -14.5061,25.6611 -14.5061,49.3359 0,24.8327 5.00796,41.9934 15.005,51.661 9.83706,9.50759 28.664,14.3367 56.4995,14.3367 27.3367,0 46.0035,-4.66907 55.8406,-13.9978 9.82765,-9.1687 14.6662,-25.6705 14.6662,-49.5054z"
id="glyph285" />
<glyph
unicode="n"
horiz-adv-x="536"
d="M478.015 16.5018c0,-3.17233 -0.997826,-6.00578 -2.99348,-8.50035 -1.83562,-2.50398 -5.16799,-4.49963 -9.66762,-6.16581 -4.66907,-1.50615 -11.0043,-2.83345 -19.0058,-3.67125 -8.00144,-0.828384 -17.8291,-1.16727 -29.5018,-1.16727 -12.1622,0 -22.1687,0.338884 -30.1607,1.16727 -8.00144,0.837797 -14.3367,2.16509 -19.0058,3.67125 -4.49963,1.66618 -7.83199,3.66183 -9.66762,6.16581 -1.99565,2.49457 -3.00289,5.32801 -3.00289,8.50035l0 248.506c0,21.1709 -1.49674,37.8421 -4.65966,49.8348 -3.00289,12.1716 -7.50252,22.5076 -13.3389,31.0079 -5.83634,8.66038 -13.4989,15.3345 -22.6676,20.1636 -9.32873,4.66907 -19.9942,7.00361 -32.3352,7.00361 -15.664,0 -31.328,-5.6669 -47.3308,-17.1701 -15.8334,-11.3338 -32.5047,-28.005 -49.6748,-49.6654l0 -289.68c0,-3.17233 -0.997826,-6.00578 -2.99348,-8.50035 -1.83562,-2.50398 -5.16799,-4.49963 -10.0065,-6.16581 -4.65966,-1.50615 -10.9949,-2.83345 -18.6669,-3.67125 -7.83199,-0.828384 -17.8291,-1.16727 -29.8312,-1.16727 -12.0022,0 -21.9992,0.338884 -29.8312,1.16727 -7.67196,0.837797 -14.0072,2.16509 -18.6669,3.67125 -4.83852,1.66618 -8.17088,3.66183 -10.0065,6.16581 -1.99565,2.49457 -2.99348,5.32801 -2.99348,8.50035l0 436.012c0,3.17233 0.828384,6.00578 2.49457,8.50035 1.50615,2.50398 4.49963,4.49963 8.66979,6.16581 4.33019,1.50615 9.66762,2.83345 16.3323,3.67125 6.66472,0.837797 15.1651,1.16727 25.1716,1.16727 10.496,0 18.9963,-0.329471 25.8305,-1.16727 6.83417,-0.837797 12.1716,-2.16509 16.0029,-3.67125 3.66183,-1.66618 6.33525,-3.66183 8.00144,-6.16581 1.66618,-2.49457 2.49457,-5.32801 2.49457,-8.50035l0 -50.3337c24.0043,26 48.5075,45.3352 73.5097,58.3352 24.8327,13 50.8326,19.5047 77.8304,19.5047 29.6712,0 54.6733,-4.83852 75.0064,-14.6662 20.3331,-9.66762 36.6654,-23.0065 49.3359,-39.8377 12.5011,-16.6712 21.5003,-36.3359 26.9978,-58.8341 5.49746,-22.4982 8.33091,-49.5054 8.33091,-81.0028l0 -269.178z"
id="glyph287" />
</font>
<style
type="text/css"
id="style290">
<![CDATA[
@font-face { font-family:"Calibri";font-variant:normal;font-weight:bold;src:url("#FontID0") format(svg)}
.fil7 {fill:#FEFEFE}
.fil5 {fill:#C5C6C6}
.fil3 {fill:#5B5B5B}
.fil1 {fill:#F05A28}
.fil0 {fill:#FF3C00}
.fil8 {fill:#FEFEFE;fill-rule:nonzero}
.fil6 {fill:#D9DADA;fill-rule:nonzero}
.fil4 {fill:#5B5B5B;fill-rule:nonzero}
.fil2 {fill:#231F20;fill-rule:nonzero}
.fnt0 {font-weight:bold;font-size:125.47px;font-family:'Calibri'}
]]>
</style>
</defs>
<g
id="Слой_x0020_1">
<metadata
id="CorelCorpID_0Corel-Layer" />
<g
id="g302"
transform="matrix(2.370917,0,0,2.370917,-47.920959,-93.188184)">
<path
class="fil1"
d="M 71.78,95.93 V 49.5 c 25.64,0 46.43,20.79 46.43,46.43 z"
id="path299"
style="fill:#ff3c00;fill-opacity:1" />
<path
id="1"
class="fil2"
d="M 79.31,49.5 V 95.93 H 64.25 V 49.5 l 7.53,-7.53 z m -15.06,0 c 0,-4.16 3.37,-7.53 7.53,-7.53 4.16,0 7.53,3.37 7.53,7.53 z m 53.96,53.95 V 88.4 l -7.53,7.53 -0.05,-2.01 -0.15,-1.98 -0.25,-1.95 -0.34,-1.91 -0.44,-1.88 -0.52,-1.85 -0.61,-1.8 -0.7,-1.76 -0.77,-1.73 -0.86,-1.67 -0.94,-1.63 -1.01,-1.58 -1.09,-1.52 -1.15,-1.47 -1.23,-1.42 -1.29,-1.35 -1.35,-1.29 -1.41,-1.22 -1.47,-1.16 -1.53,-1.08 -1.58,-1.02 -1.63,-0.93 -1.67,-0.86 -1.72,-0.78 -1.77,-0.7 -1.8,-0.61 -1.84,-0.52 -1.88,-0.43 -1.92,-0.35 -1.94,-0.24 -1.98,-0.15 -2.01,-0.05 V 41.97 l 2.77,0.07 2.73,0.21 2.7,0.34 2.66,0.48 2.61,0.6 2.57,0.73 2.51,0.84 2.45,0.97 2.39,1.08 2.33,1.2 2.26,1.3 2.19,1.4 2.11,1.5 2.04,1.6 1.96,1.7 1.87,1.78 1.79,1.88 1.69,1.95 1.6,2.04 1.51,2.11 1.4,2.19 1.3,2.26 1.19,2.33 1.08,2.39 0.97,2.46 0.85,2.51 0.73,2.56 0.6,2.61 0.47,2.66 0.35,2.7 0.2,2.74 0.07,2.77 z m 7.52,-7.52 c 0,4.15 -3.37,7.52 -7.52,7.52 -4.16,0 -7.53,-3.37 -7.53,-7.52 z M 71.78,88.4 h 46.43 v 15.05 H 71.78 l -7.53,-7.52 z m 0,15.05 c -4.16,0 -7.53,-3.37 -7.53,-7.52 0,-4.16 3.37,-7.53 7.53,-7.53 z"
style="fill:#f9f9f9" />
</g>
<g
id="g306"
transform="matrix(2.370917,0,0,2.370917,-47.920959,-93.188184)">
<path
class="fil2"
d="M 112.56,103.46 H 71.78 V 88.39 h 40.78 l 7.53,7.53 z m 0,-15.07 c 4.16,0 7.53,3.38 7.53,7.53 0,4.16 -3.37,7.54 -7.53,7.54 z m -40.78,55.85 v -15.06 0 l 1.72,-0.04 1.69,-0.13 1.66,-0.21 1.64,-0.29 1.61,-0.37 1.57,-0.45 1.54,-0.52 1.51,-0.6 1.47,-0.66 1.43,-0.74 1.4,-0.8 1.35,-0.86 1.3,-0.93 1.26,-0.99 1.21,-1.05 1.15,-1.1 1.1,-1.15 1.05,-1.21 0.99,-1.26 0.93,-1.3 0.86,-1.35 0.8,-1.4 0.74,-1.43 0.66,-1.47 0.59,-1.51 0.53,-1.54 0.44,-1.58 0.38,-1.6 0.29,-1.64 0.21,-1.66 0.13,-1.7 0.04,-1.72 h 15.06 l -0.06,2.48 -0.19,2.45 -0.31,2.42 -0.42,2.38 -0.54,2.34 -0.65,2.3 -0.76,2.25 -0.87,2.2 -0.97,2.14 -1.07,2.08 -1.16,2.03 -1.26,1.96 -1.34,1.89 -1.44,1.82 -1.51,1.75 -1.6,1.68 -1.68,1.6 -1.75,1.52 -1.82,1.43 -1.9,1.35 -1.96,1.25 -2.02,1.17 -2.08,1.07 -2.15,0.96 -2.19,0.87 -2.25,0.76 -2.29,0.65 -2.35,0.54 -2.37,0.43 -2.42,0.31 -2.45,0.18 z M 23.47,95.92 h 15.06 v 0 l 0.04,1.72 0.13,1.7 0.21,1.66 0.29,1.64 0.38,1.6 0.44,1.58 0.53,1.54 0.59,1.51 0.66,1.47 0.74,1.44 0.8,1.39 0.86,1.35 0.93,1.3 0.99,1.26 1.05,1.21 1.1,1.15 1.15,1.1 1.21,1.05 1.26,0.99 1.3,0.93 1.35,0.86 1.39,0.8 1.44,0.74 1.47,0.66 1.51,0.6 1.54,0.52 1.57,0.45 1.61,0.37 1.64,0.29 1.66,0.21 1.69,0.13 1.72,0.04 v 15.06 l -2.48,-0.06 -2.45,-0.18 -2.42,-0.31 -2.38,-0.43 -2.34,-0.54 -2.29,-0.65 -2.25,-0.76 -2.2,-0.87 -2.14,-0.96 -2.08,-1.07 -2.03,-1.17 -1.95,-1.25 -1.9,-1.35 -1.82,-1.43 -1.75,-1.52 -1.68,-1.6 -1.6,-1.68 -1.51,-1.75 -1.44,-1.82 -1.34,-1.89 -1.26,-1.96 -1.16,-2.03 -1.07,-2.08 -0.97,-2.14 -0.87,-2.2 -0.76,-2.25 -0.65,-2.3 -0.54,-2.34 -0.42,-2.38 -0.31,-2.42 -0.19,-2.45 z M 79.31,55.14 H 64.25 l 7.53,7.53 -1.72,0.04 -1.69,0.13 -1.66,0.21 -1.64,0.29 -1.61,0.37 -1.57,0.45 -1.54,0.52 -1.51,0.6 -1.47,0.66 -1.44,0.74 -1.39,0.8 -1.35,0.86 -1.3,0.93 -1.26,0.99 -1.21,1.05 -1.15,1.1 -1.1,1.15 -1.05,1.21 -0.99,1.26 -0.93,1.31 -0.86,1.35 -0.8,1.39 -0.73,1.43 -0.67,1.47 -0.59,1.51 -0.53,1.54 -0.44,1.58 -0.38,1.6 -0.29,1.64 -0.21,1.66 -0.13,1.7 -0.04,1.71 H 23.47 l 0.06,-2.47 0.19,-2.46 0.31,-2.41 0.42,-2.38 0.54,-2.34 0.65,-2.3 0.76,-2.25 0.87,-2.2 0.97,-2.14 1.07,-2.08 1.16,-2.03 1.26,-1.96 1.34,-1.89 1.43,-1.82 1.52,-1.76 1.6,-1.67 1.68,-1.6 1.75,-1.52 1.82,-1.43 1.9,-1.35 1.95,-1.25 2.03,-1.17 2.08,-1.07 2.14,-0.96 2.2,-0.87 2.25,-0.76 2.29,-0.65 2.34,-0.54 2.38,-0.43 2.42,-0.31 2.45,-0.18 2.48,-0.06 z m -7.53,-7.53 c 4.16,0 7.53,3.37 7.53,7.53 0,4.16 -3.37,7.53 -7.53,7.53 z M 64.25,95.92 V 55.14 h 15.06 v 40.78 l -7.53,7.54 z m 15.06,0 c 0,4.16 -3.37,7.54 -7.53,7.54 -4.16,0 -7.53,-3.38 -7.53,-7.54 z"
id="path304"
style="fill:#f9f9f9" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

1
linux-live/rootcopy/usr/share/plymouth/themes/default.plymouth

@ -0,0 +1 @@
/usr/share/plymouth/themes/minios-logo/minios-logo.plymouth

4
linux-live/rootcopy/usr/share/plymouth/themes/details/details.plymouth

@ -0,0 +1,4 @@
[Plymouth Theme]
Name=Details
Description=Verbose fallback theme
ModuleName=details

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/logo_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

8
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.plymouth

@ -0,0 +1,8 @@
[Plymouth Theme]
Name=MiniOS Logo
Description=A theme that features a background with a logo.
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/minios-logo
ScriptFile=/usr/share/plymouth/themes/minios-logo/minios-logo.script

512
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.script

@ -0,0 +1,512 @@
/**************************************************************************
*
* Copyright (C) 2011 The Xubuntu Community
* Copyright (C) 2009 Canonical Ltd.
*
* 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
*
* Written by: Mad Nick <dr.madnick@gmail.com>
*
**************************************************************************/
/*
* Related to the screen */
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
screen_x = Window.GetX();
screen_y = Window.GetY();
/**/
/*
* Images, check bits per pixel
* and load images accordingly */
background_image = Image("wallpaper.png");
passw_dialog_input_image = Image("passw-dialog.png");
bullet_image = Image("test.png");
bpp = Window.GetBitsPerPixel();
if (bpp == 4) {
logotype_image = Image("logo_16bit.png");
progress_meter_image = Image("progress-meter_16bit.png");
progress_fade_image = Image("progress-fade_16bit.png");
fsck_progress_meter_image = Image("progress-meter_16bit.png");
fsck_progress_fade_image = Image("fsck-fade_16bit.png");
}
else {
logotype_image = Image("logo.png");
progress_meter_image = Image("progress-meter.png");
progress_fade_image = Image("progress-fade.png");
fsck_progress_meter_image = Image("progress-meter.png");
fsck_progress_fade_image = Image("fsck-fade.png");
}
/**/
/*
* Sprites */
ratio = screen_height / screen_width;
background_ratio = background_image.GetHeight() / background_image.GetWidth();
factor = 0;
if (ratio > background_ratio) {
factor = screen_height / background_image.GetHeight();
}
else {
factor = screen_width / background_image.GetWidth();
}
scaled = background_image.Scale(background_image.GetWidth() * factor, background_image.GetHeight() * factor);
background_sprite = Sprite(scaled);
background_sprite.SetX(screen_x + screen_width / 2 - scaled.GetWidth() / 2);
background_sprite.SetY(screen_y + screen_height / 2 - scaled.GetHeight() / 2);
logotype_sprite = Sprite(logotype_image);
fsck_progress_meter_sprite = Sprite(fsck_progress_meter_image);
fsck_progress_fade_sprite = Sprite(fsck_progress_fade_image.Scale(1, fsck_progress_fade_image.GetHeight()));
passw_dialog_input_sprite = Sprite(passw_dialog_input_image);
passw_lbl_sprite = Sprite();
msg_label_sprite = Sprite();
/**/
/*
* Misc */
counter = 0;
fade_pos_x = (screen_width / 2) - (progress_meter_image.GetWidth() / 2);
fade_dir = 0; /* 0 = right, 1 = left */
fsck_running = 0;
fsck_dev_array;
fsck_dev_counter = 0;
fsck_fade_in_counter = 0;
fsck_done_fading = 0;
stars_array;
stars_n = 0;
//full_msg = "";
msgs_line = [NULL,NULL,NULL,NULL,NULL];
/**/
/*
* Debug related */
debug = 0;
debug_sprite = Sprite();
fun debugOutput(str) {
/*
* This will print to the top left corner */
debug_sprite.SetImage(Image.Text(str));
}
/**/
/*
* Setup the graphics properties */
logotype_sprite.SetPosition(screen_x + (screen_width / 2) - (logotype_image.GetWidth() / 2), screen_y + (screen_height / 2) - (logotype_image.GetHeight() / 2));
fsck_progress_meter_sprite.SetPosition(screen_x + (screen_width / 2) - (progress_meter_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 25);
fsck_progress_fade_sprite.SetPosition(screen_x + (screen_width / 2) - (progress_meter_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 25);
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
passw_dialog_input_sprite.SetPosition(screen_x + (screen_width / 2) - (passw_dialog_input_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 70);
passw_dialog_input_sprite.SetOpacity(0);
passw_lbl_sprite.SetOpacity(0);
spin = 0;
/*
* this function only goes up to 100
* because thats all thats needed for
* the progress meter bar */
fun atoi(str) {
int = -1;
for (i = 0; i <= 100; i++) {
if (i + "" == str) {
int = i;
break;
}
}
return int;
}
/*
* This handler will/can be invoked
* 50 times per second.
*
* According to the previous author of the
* splash script, without this callback
* the screen is not updated correctly */
spinner_sprite;
spinner;
fun refreshHandler() {
if (spin < 3.14 * 2) {
spin = spin + 0.1;
}
else {
spin = 0;
}
/* if fsck is running or the password is prompted, hide the spinner */
if (fsck_running == 1 || passw_dialog_input_sprite.GetOpacity() == 1) {
spinner_sprite.SetOpacity(0);
} else {
spinner = Image("spinner.png");
spinner = spinner.Rotate(spin);
spinner_sprite = Sprite(spinner);
spinner_sprite.SetPosition(screen_x + (screen_width / 2) - (spinner.GetWidth() / 2), screen_y + (screen_height / 2) - (spinner.GetHeight() / 2) + 80);
}
if (fade_dir == 0) {
counter++;
if (counter >= 200) {
fade_dir = 1;
}
}
else {
counter--;
if (counter <= 0) {
fade_dir = 0;
}
}
if ((fsck_running == 1) && (fsck_done_fading == 0)) {
fsck_progress_meter_sprite.SetOpacity(fsck_fade_in_counter);
fsck_progress_fade_sprite.SetOpacity(fsck_fade_in_counter);
if (fsck_fade_in_counter < 1) {
fsck_fade_in_counter+= 0.025;
}
else {
fsck_done_fading = 1;
}
}
}
Plymouth.SetRefreshFunction (refreshHandler);
/**/
/*
* This function will display the password related information
* when being prompt with entering a password */
fun showPasswordHandler(prompt, stars) {
if (passw_dialog_input_sprite.GetOpacity() == 0 && passw_lbl_sprite.GetOpacity() == 0) {
passw_dialog_input_sprite.SetOpacity(1);
passw_lbl_sprite.SetOpacity(1);
}
tmp_prompt_image = Image.Text(prompt, 1, 1, 1);
passw_lbl_sprite.SetImage(tmp_prompt_image);
passw_lbl_sprite.SetPosition(screen_x + (screen_width / 2) - (tmp_prompt_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 50);
for(i = 0; i < stars_n; i++) {
stars_array[i] = NULL;
}
stars_n = 0;
for(i = 0; (i < stars) && (i < 15); i++) {
stars_array[i] = Sprite(bullet_image);
stars_array[i].SetPosition(screen_x + (((screen_width / 2) - (passw_dialog_input_image.GetWidth() / 2)) + (18 * i)) + 2, screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 75);
stars_n++;
}
}
Plymouth.SetDisplayPasswordFunction(showPasswordHandler);
/**/
fun displayNormalHandler() {
/*
* Hide the password dialog and the bullets */
if (passw_dialog_input_sprite.GetOpacity() == 1) {
passw_dialog_input_sprite.SetOpacity(0);
}
if (passw_lbl_sprite.GetOpacity() == 1) {
passw_lbl_sprite.SetOpacity(0);
}
for(i = 0; i < stars_n; i++) {
stars_array[i] = NULL;
}
}
Plymouth.SetDisplayNormalFunction(displayNormalHandler);
fun strlen(string) {
i = 0;
while (String(string).CharAt(i)) {
i++;
}
return i;
}
/*
* This function will display the most current message */
fun messageHandler(msg) {
if ((msg == "") || !msg) {
return 0;
}
if (msg.SubString(0, 5) == "keys:") {
msg = msg.SubString(5, strlen(msg));
}
# Get the message without the "fsckd-cancel-msg" prefix as we don't support i18n
if (msg.SubString(0, 17) == "fsckd-cancel-msg:")
msg = msg.SubString(17, strlen(msg));
//full_msg += msg + " ";
for(i = 4; i > 0; i--) {
msgs_line[i] = msgs_line[i - 1];
}
msgs_line[0] = Sprite(Image.Text(msg, 1, 1, 1));
dist = 1;
for(i = 0; i < 5; i++) {
if (msgs_line[i] != NULL) {
msgs_line[i].SetPosition(screen_x + (screen_width / 2) - (msgs_line[i].GetImage().GetWidth() / 2), screen_y + (screen_height - msgs_line[i].GetImage().GetHeight()) - 20*dist);
dist++;
}
}
}
Plymouth.SetMessageFunction(messageHandler);
/**/
/*
* Handles the updates passed to the plymouth daemon
* for example the FSCK data */
fun statusHandler(status) {
tmp_char;
status_array[0] = "";
elem_count = 0;
for (i = 0; String(status).CharAt(i) != ""; i++) {
tmp_char = String(status).CharAt(i);
if (tmp_char != ":") {
status_array[elem_count] += tmp_char;
}
else {
elem_count++;
status_array[elem_count] = "";
}
}
if (status_array[0] == "fsck") {
already_added = 0;
if (fsck_running == 0) {
/*
* use the dedicated message handler for this
* since there is no messages about fsck checks
* currently... */
messageHandler("Routine disk drive check.");
fsck_running = 1;
}
for(i = 0; i < fsck_dev_counter; i++) {
/*
* check if the device already exist and update
* the progress only in that case */
if (fsck_dev_array[i][0] == status_array[1]) {
fsck_dev_array[i][1] = status_array[2]; /* progress */
already_added = 1;
}
}
/*
* if the device is not added, then add it */
if (already_added == 0) {
fsck_dev_array[fsck_dev_counter][0] = status_array[1]; /* device */
fsck_dev_array[fsck_dev_counter][1] = status_array[2]; /* progress */
fsck_dev_counter++;
}
/*
* update the progress */
total = 0;
for(i = 0; i < fsck_dev_counter; i++) {
total += atoi(fsck_dev_array[i][1]);
}
if (fsck_dev_counter > 0) {
/*
* display the total percentage */
fsck_progress_fade_sprite.SetImage(fsck_progress_fade_image.Scale((fsck_progress_meter_image.GetWidth() / 100) * (total / fsck_dev_counter), fsck_progress_fade_image.GetHeight()));
}
/**/
/*
* if the total progress is at maximum,
* make the progress meter go away,
* we might want to fade this out... */
if (total == (100 * fsck_dev_counter)) {
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
}
}
# systemd-fsckd pass fsckd:<number_devices>:<progress>:<l10n_string>
if (status_array[0] == "fsckd") {
fsck_running = 1;
# remove ",x" as we only care about integers
progress_str = status_array[2];
progress = atoi(progress_str.SubString(0, strlen(progress_str) - 2));
fsck_progress_fade_sprite.SetImage(fsck_progress_fade_image.Scale((fsck_progress_meter_image.GetWidth() / 100) * progress, fsck_progress_fade_image.GetHeight()));
/*
* if the total progress is at maximum,
* make the progress meter go away,
* we might want to fade this out... */
if (progress == 100) {
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
}
}
}
Plymouth.SetUpdateStatusFunction(statusHandler);
/**/

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/passw-dialog.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/spinner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/test.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

BIN
linux-live/rootcopy/usr/share/plymouth/themes/minios-logo/wallpaper.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

11
linux-live/rootcopy/usr/share/plymouth/themes/minios-text/minios-text.plymouth

@ -0,0 +1,11 @@
[Plymouth Theme]
Name=MiniOS Text
Description=Text mode theme based on minios-logo theme
ModuleName=ubuntu-text
[ubuntu-text]
title=MiniOS 2021
black=0x000000
white=0xffffff
brown=0x000000
blue=0xffffff

1
linux-live/rootcopy/usr/share/plymouth/themes/text.plymouth

@ -0,0 +1 @@
/usr/share/plymouth/themes/minios-text/minios-text.plymouth
Loading…
Cancel
Save