Compare commits
No commits in common. "master" and "v1.5" have entirely different histories.
|
|
@ -2,39 +2,28 @@
|
||||||
# This is a config file for Linux Live Kit build script.
|
# This is a config file for Linux Live Kit build script.
|
||||||
# You shouldn't need to change anything expect LIVEKITNAME
|
# You shouldn't need to change anything expect LIVEKITNAME
|
||||||
|
|
||||||
# Live Kit Name. Defaults to 'linux';
|
# Live Kit Name. Defaults to 'mylinux';
|
||||||
# This will be the name of the directory created on your CD/USB, which
|
|
||||||
# will contain everything including boot files and such.
|
|
||||||
# For example, Slax changes it to 'slax'
|
# For example, Slax changes it to 'slax'
|
||||||
# Must not contain any spaces.
|
# Must not contain any spaces.
|
||||||
# If you change it, you must run ./tools/isolinux.bin.update script
|
# If you change it, you must run ./tools/isolinux.bin.update script
|
||||||
# in order to update isolinux.bin for CD booting.
|
# in order to update isolinux.bin for CD booting.
|
||||||
# If you do not need booting from CD (eg you're booting only from USB)
|
LIVEKITNAME="mylinux"
|
||||||
# then you can ignore recompiling isolinux.bin, just rename LIVEKITNAME
|
|
||||||
# and you're done.
|
# Kernel file, will be copied to your Live Kit
|
||||||
LIVEKITNAME="briq"
|
VMLINUZ=/boot/vmlinuz
|
||||||
|
|
||||||
# Kernel version. Change it to "3.2.28" for example, if you are building
|
# Kernel version. Change it to "3.2.28" for example, if you are building
|
||||||
# Live Kit with a different kernel than the one you are actually running
|
# Live Kit with a different kernel than the one you are actually running
|
||||||
KERNEL=$BRIQ_KERNEL_NAME
|
KERNEL=$(uname -r)
|
||||||
|
|
||||||
# Kernel file, will be copied to your Live Kit
|
# List of directories which will be modularized
|
||||||
# Your kernel must support aufs and squashfs. Debian Jessie's kernel is ready
|
|
||||||
# out of the box.
|
|
||||||
VMLINUZ="/vmlinuz-$KERNEL"
|
|
||||||
|
|
||||||
# List of directories for root filesystem
|
|
||||||
# No subdirectories are allowed, no slashes,
|
# No subdirectories are allowed, no slashes,
|
||||||
# so You can't use /var/tmp here for example
|
# so You can't use /var/tmp here for example
|
||||||
# Exclude directories like proc sys tmp
|
# Exclude directories like proc sys tmp
|
||||||
MKMOD="bin etc home lib lib64 opt root sbin srv usr var"
|
MKMOD="bin etc home lib lib64 opt root sbin srv usr var"
|
||||||
|
|
||||||
# If you require network support in initrd, for example to boot over
|
# List of files and directories you'd like to exclude from your Live Kit
|
||||||
# PXE or to load data using 'from' boot parameter from a http server,
|
EXCLUDE="/etc/fstab /etc/mtab"
|
||||||
# you will need network modules included in your initrd.
|
|
||||||
# This is disabled by default since most people won't need it.
|
|
||||||
# To enable, set to true
|
|
||||||
NETWORK=false
|
|
||||||
|
|
||||||
# Temporary directory to store livekit filesystem
|
# Temporary directory to store livekit filesystem
|
||||||
LIVEKITDATA=/tmp/$LIVEKITNAME-data-$$
|
LIVEKITDATA=/tmp/$LIVEKITNAME-data-$$
|
||||||
|
|
@ -24,8 +24,8 @@ Special files in bundle filesystem structure:
|
||||||
|
|
||||||
|
|
||||||
/run/requires
|
/run/requires
|
||||||
/run/activate.sh
|
/run/onmount.sh
|
||||||
/run/deactivate.sh
|
/run/onumount.sh
|
||||||
/run/startcmd.sh ?
|
/run/startcmd.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
31
README
|
|
@ -3,30 +3,16 @@ Linux Live Kit
|
||||||
|
|
||||||
Use this set of scripts to turn your existing preinstalled Linux
|
Use this set of scripts to turn your existing preinstalled Linux
|
||||||
distribution into a Live Kit (formely known as Live CD).
|
distribution into a Live Kit (formely known as Live CD).
|
||||||
Make sure to extract and use it on a posix-compatible filesystem,
|
|
||||||
since it creates some (sym)links and such.
|
|
||||||
|
|
||||||
Note:
|
* Before you start building your Kit, edit the file ./.config
|
||||||
|
|
||||||
* Store Linux Live kit in a directory which is not going to be included
|
|
||||||
in your live distro, else it would be copied to it. Best practice is to
|
|
||||||
make a directory such as /a and put these scripts there.
|
|
||||||
Be warned, if you put it to /tmp, some distros may erase it on reboot.
|
|
||||||
|
|
||||||
* Before you start building your Kit, edit the file ./config
|
|
||||||
Most importantly change the LIVEKITNAME variable.
|
Most importantly change the LIVEKITNAME variable.
|
||||||
|
|
||||||
* Make sure your kernel is in /boot/vmlinuz or change the path in ./config
|
* Make sure your kernel is in /boot/vmlinuz
|
||||||
Your kernel must support squashfs and aufs. Debian Jessie's kernel does.
|
|
||||||
|
|
||||||
* You may also wish to replace boot graphics in ./bootfiles/bootlogo.png
|
* You may also wish to replace boot graphics in ./bootfiles/bootlogo.png
|
||||||
and reorganize isolinux.cfg to fit your needs (when editing the file,
|
and reorganize isolinux.cfg to fit your needs (when editing the file,
|
||||||
keep all paths in /boot/, it will be rellocated during LiveKit creation)
|
keep all paths in /boot/, it will be rellocated during LiveKit creation)
|
||||||
|
|
||||||
* Linux Live Kit comes with precompiled static binaries in ./initramfs
|
|
||||||
directory. Those may be outdated but will work. You may replace them
|
|
||||||
by your own statically linked binaries, if you know how to compile them.
|
|
||||||
|
|
||||||
* If you plan to boot your Live Kit from CD, you need to recompile
|
* If you plan to boot your Live Kit from CD, you need to recompile
|
||||||
syslinux.bin else it won't be able to boot your Live Kit from directory
|
syslinux.bin else it won't be able to boot your Live Kit from directory
|
||||||
LIVEKITNAME. There is a script prepared for you which will handle all
|
LIVEKITNAME. There is a script prepared for you which will handle all
|
||||||
|
|
@ -35,22 +21,9 @@ Note:
|
||||||
isolinux sources, patching them using your actual LIVEKITNAME and
|
isolinux sources, patching them using your actual LIVEKITNAME and
|
||||||
recompiling. This step is not needed if you plan to boot from USB only.
|
recompiling. This step is not needed if you plan to boot from USB only.
|
||||||
|
|
||||||
* If you have tmpfs mounted on /tmp, make sure you have enough RAM
|
|
||||||
since LiveKit will store lots of data there. If you are low on RAM,
|
|
||||||
make sure /tmp is a regular on-disk directory.
|
|
||||||
|
|
||||||
* When done, run the ./build script to create your Live Kit
|
* When done, run the ./build script to create your Live Kit
|
||||||
- it will create ISO and TAR files for you in /tmp
|
- it will create ISO and TAR files for you in /tmp
|
||||||
- make sure you have enough free space in /tmp to handle it
|
- make sure you have enough free space in /tmp to handle it
|
||||||
|
|
||||||
* If you want to use the Live Kit on a USB you have to either
|
|
||||||
- use Windows to execute the bootinst.bat file in the $NAME/boot folder
|
|
||||||
- or use Linux to execute the shellscript bootinst.sh in the $NAME/boot folder.
|
|
||||||
|
|
||||||
* You will need the following packages to be installed:
|
|
||||||
- squashfs-tools
|
|
||||||
- genisoimage or mkisofs
|
|
||||||
- zip
|
|
||||||
|
|
||||||
|
|
||||||
Author: Tomas M. <http://www.linux-live.org>
|
Author: Tomas M. <http://www.linux-live.org>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
Each directory contains scripts for easier building of minimal OS installation,
|
|
||||||
also known as SLAX - Small Live Auxiliary linuX
|
|
||||||
|
|
||||||
WARNING:
|
|
||||||
|
|
||||||
You should not run this on your system since it auto-installs some packages
|
|
||||||
and removes lots of files from your filesystem.
|
|
||||||
Use only on freshly installed OS. You have been warned.
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
\l
|
|
||||||
_ ____ _____
|
|
||||||
| | / __ \\ / ____|
|
|
||||||
__| |_ __ __ _| | | | (___
|
|
||||||
/ _` | '_ \\ / _` | | | |\\___ \\
|
|
||||||
| (_| | | | | (_| | |__| |____) |
|
|
||||||
\\__,_|_| |_|\\__,_|\\____/|_____/
|
|
||||||
|
|
||||||
powered by Briq
|
|
||||||
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
#! /bin/bash --
|
|
||||||
|
|
||||||
# Aggrega file di pacchetti installati o aggiornati con Pacman
|
|
||||||
# dall'ultimo avvio di una distribuzione linux-live
|
|
||||||
# (cfr. https://www.linux-live.org/ ) senza persistenza attivata,
|
|
||||||
# creando un unico bundle .sb
|
|
||||||
# I file vengono letti dalla directory changes e da essa filtrati solo
|
|
||||||
# quelli appartenenti ai pacchetti di pacman.
|
|
||||||
#
|
|
||||||
# Autore: Guido Longoni <guidolongoni@gmail.com>
|
|
||||||
|
|
||||||
IFS=$'\n'
|
|
||||||
OUTLST="/tmp/added_files_$$.lst"
|
|
||||||
CACHEDIR=$(sed -n -e '/^[[:space:]]*CacheDir/s|^[^=]*=[[:space:]]*||gp' -e 's|[[:space:]]*$||g' /etc/pacman.conf | head -n1)
|
|
||||||
OUTDIR="/tmp/sb_$$"
|
|
||||||
OUTFILE="$OUTDIR".sb
|
|
||||||
CHGDIR=$(realpath $(mount | sed -n -e '/squashfs/s|.* on \([^ ]*\)/.*|\1|gp' | head -n1)/../changes)
|
|
||||||
|
|
||||||
mkdir -p '/tmp'
|
|
||||||
mkdir -p "$OUTDIR"
|
|
||||||
rm -rf "$OUTLST"
|
|
||||||
touch "$OUTLST"
|
|
||||||
for i in $(find "$CACHEDIR" -iname '*.pkg.tar.xz'); do
|
|
||||||
tar t -f $i >> "$OUTLST" 2>/dev/null
|
|
||||||
done
|
|
||||||
sort -u "$OUTLST" | grep -v '^\.' > "$OUTLST".tmp
|
|
||||||
mv "$OUTLST".tmp "$OUTLST"
|
|
||||||
rsync -av --old-d --files-from="$OUTLST" "$CHGDIR" "$OUTDIR"
|
|
||||||
dir2sb "$OUTDIR" "$OUTFILE"
|
|
||||||
rm -rf "$OUTDIR"
|
|
||||||
rm -rf "$OUTLST"
|
|
||||||
|
|
||||||
|
|
@ -1,86 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
#!/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"
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
#!/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 "$@"
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
@ -1,178 +0,0 @@
|
||||||
#!/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
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
For more updated changelog and todo, visit
|
|
||||||
https://www.slax.org/next.php
|
|
||||||
|
|
||||||
TODO:
|
|
||||||
|
|
||||||
make persistent changes default when booting from writable media
|
|
||||||
(and offer "fresh start" in boot menu instead)
|
|
||||||
add @ntfs-3g support, add ext4 support for bootable device
|
|
||||||
update syslinux
|
|
||||||
add wicd as wifi configurator
|
|
||||||
make keyboard layout persistent
|
|
||||||
make xlunch refresh on start to see newly installed apps
|
|
||||||
fb keys: OnDesktop Mouse1 :MacroCmd {WindowMenu} {HideMenus}
|
|
||||||
reimplement xrandr screen resolution change, use --mode somehow
|
|
||||||
consider gsettings-desktop-schemas
|
|
||||||
add thunar or pcmanfm
|
|
||||||
review uefi support - does it work or not? don't have uefi device here
|
|
||||||
maybe consider pxe server again
|
|
||||||
use debootstrap for slax build
|
|
||||||
|
|
||||||
|
|
||||||
* Slax 9.3.0
|
|
||||||
|
|
||||||
|
|
||||||
added wireless tools
|
|
||||||
added firmware (free and nonfree)
|
|
||||||
added contrib and nonfree repositories
|
|
||||||
fixed apt-get alias parameters handling
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* Slax 9.2.1
|
|
||||||
|
|
||||||
initial release of Slax based on Debian
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
exec /bin/bash "$(dirname "$0")"/bootinst.sh
|
|
||||||
exec /bin/sh "$(dirname "$0")"/bootinst.sh
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
COLOR 2F
|
|
||||||
cls
|
|
||||||
echo ===============================================================================
|
|
||||||
echo.
|
|
||||||
echo ________.__
|
|
||||||
echo / ____/^| ^| _____ ___ ___
|
|
||||||
echo \____ \ ^| ^| \__ \ \ \/ /
|
|
||||||
echo / \^| ^|__/ __ \_^> ^<
|
|
||||||
echo /______ /^|____(____ /__/\_ \
|
|
||||||
echo \/ \/ \/
|
|
||||||
echo.
|
|
||||||
echo ===============================================================================
|
|
||||||
echo.
|
|
||||||
|
|
||||||
set DISK=none
|
|
||||||
set BOOTFLAG=boot666s.tmp
|
|
||||||
|
|
||||||
:checkPrivileges
|
|
||||||
mkdir "%windir%\AdminCheck" 2>nul
|
|
||||||
if '%errorlevel%' == '0' rmdir "%windir%\AdminCheck" & goto gotPrivileges else goto getPrivileges
|
|
||||||
|
|
||||||
:getPrivileges
|
|
||||||
ECHO.
|
|
||||||
ECHO Administrator Rights are required
|
|
||||||
ECHO Invoking UAC for Privilege Escalation
|
|
||||||
ECHO.
|
|
||||||
runadmin.vbs %0
|
|
||||||
goto end
|
|
||||||
|
|
||||||
:gotPrivileges
|
|
||||||
CD /D "%~dp0"
|
|
||||||
|
|
||||||
echo This file is used to determine current drive letter. It should be deleted. >\%BOOTFLAG%
|
|
||||||
if not exist \%BOOTFLAG% goto readOnly
|
|
||||||
|
|
||||||
echo.|set /p=wait please
|
|
||||||
for %%d in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do echo.|set /p=. & if exist %%d:\%BOOTFLAG% set DISK=%%d
|
|
||||||
echo . . . . . . . . . .
|
|
||||||
del \%BOOTFLAG%
|
|
||||||
if %DISK% == none goto DiskNotFound
|
|
||||||
|
|
||||||
wscript.exe samedisk.vbs %windir% %DISK%
|
|
||||||
if %ERRORLEVEL% == 99 goto refuseDisk
|
|
||||||
|
|
||||||
echo Setting up boot record for %DISK%: ...
|
|
||||||
|
|
||||||
if %OS% == Windows_NT goto setupNT
|
|
||||||
goto setup95
|
|
||||||
|
|
||||||
:setupNT
|
|
||||||
\slax\boot\syslinux.exe -maf -d /slax/boot/ %DISK%:
|
|
||||||
if %ERRORLEVEL% == 0 goto setupDone
|
|
||||||
goto errorFound
|
|
||||||
|
|
||||||
:setup95
|
|
||||||
\slax\boot\syslinux.com -maf -d /slax/boot/ %DISK%:
|
|
||||||
if %ERRORLEVEL% == 0 goto setupDone
|
|
||||||
goto errorFound
|
|
||||||
|
|
||||||
:setupDone
|
|
||||||
echo Installation finished.
|
|
||||||
goto pauseit
|
|
||||||
|
|
||||||
:errorFound
|
|
||||||
color 4F
|
|
||||||
echo.
|
|
||||||
echo Error installing boot loader
|
|
||||||
goto pauseit
|
|
||||||
|
|
||||||
:refuseDisk
|
|
||||||
color 4F
|
|
||||||
echo.
|
|
||||||
echo Directory %DISK%:\slax\boot\ seems to be on the same physical disk as your Windows.
|
|
||||||
echo Installing bootloader would harm your Windows and thus is disabled.
|
|
||||||
echo Please use different drive and try again.
|
|
||||||
goto pauseit
|
|
||||||
|
|
||||||
:readOnly
|
|
||||||
color 4F
|
|
||||||
echo.
|
|
||||||
echo You're starting this installer from a read-only media, this will not work.
|
|
||||||
goto pauseit
|
|
||||||
|
|
||||||
:DiskNotFound
|
|
||||||
color 4F
|
|
||||||
echo.
|
|
||||||
echo Error: can't discover current drive letter
|
|
||||||
|
|
||||||
:pauseit
|
|
||||||
if "%1" == "auto" goto end
|
|
||||||
|
|
||||||
echo.
|
|
||||||
echo Press any key...
|
|
||||||
pause > nul
|
|
||||||
|
|
||||||
:end
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# This script will setup booting from disk (USB or harddrive)
|
|
||||||
#
|
|
||||||
# If you see this file in a text editor instead of getting it executed,
|
|
||||||
# then it is missing executable permissions (chmod). You can try to set
|
|
||||||
# exec permissions for this file by using: chmod a+x bootinst.sh
|
|
||||||
# Alternatively, you may try to run bootinst.bat file instead
|
|
||||||
#
|
|
||||||
# Scrolling down will reveal the actual code of this script.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# if we're running this from X, re-run the script in konsole or xterm
|
|
||||||
if [ "$DISPLAY" != "" ]; then
|
|
||||||
if [ "$1" != "--rex" -a "$2" != "--rex" ]; then
|
|
||||||
konsole --nofork -e /bin/sh $0 --rex 2>/dev/null || xterm -e /bin/sh $0 --rex 2>/dev/null || /bin/sh $0 --rex 2>/dev/null
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# make sure I am root
|
|
||||||
if [ "$UID" != "0" -a "$UID" != "" ]; then
|
|
||||||
echo ""
|
|
||||||
echo "You are not root. You must run bootinst script as root."
|
|
||||||
echo "The bootinst script needs direct access to your boot device."
|
|
||||||
echo "Use sudo or kdesudo or similar wrapper to execute this."
|
|
||||||
read junk
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# change working directory to dir from which we are started
|
|
||||||
CWD="$(pwd)"
|
|
||||||
BOOT="$(dirname "$0")"
|
|
||||||
BOOT="$(realpath "$BOOT" 2>/dev/null || echo $BOOT)"
|
|
||||||
cd "$BOOT"
|
|
||||||
|
|
||||||
# find out device and mountpoint
|
|
||||||
PART="$(df . | tail -n 1 | tr -s " " | cut -d " " -f 1)"
|
|
||||||
DEV="$(echo "$PART" | sed -r "s:[0-9]+\$::" | sed -r "s:([0-9])[a-z]+\$:\\1:i")" #"
|
|
||||||
|
|
||||||
# check if disk is already bootable. Mostly for Windows discovery
|
|
||||||
if [ "$(fdisk -l "$DEV" | fgrep "$DEV" | fgrep "*")" != "" ]; then
|
|
||||||
echo ""
|
|
||||||
echo "Partition $PART seems to be located on a physical disk,"
|
|
||||||
echo "which is already bootable. If you continue, your drive $DEV"
|
|
||||||
echo "will boot only Slax by default."
|
|
||||||
echo "Press [Enter] to continue, or [Ctrl+C] to abort..."
|
|
||||||
read junk
|
|
||||||
fi
|
|
||||||
|
|
||||||
ARCH=$(uname -m)
|
|
||||||
if [ "$ARCH" = "x86_64" ]; then ARCH=64; else ARCH=32; fi
|
|
||||||
EXTLINUX=extlinux.x$ARCH
|
|
||||||
|
|
||||||
if [ ! -x ./$EXTLINUX ]; then
|
|
||||||
# extlinux is not executable. There are two possible reasons:
|
|
||||||
# either the fs is mounted with noexec, or file perms are wrong.
|
|
||||||
# Try to fix both, no fail on error yet
|
|
||||||
mount -o remount,exec $DEV
|
|
||||||
chmod a+x ./$EXTLINUX
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -x ./$EXTLINUX ]; then
|
|
||||||
# extlinux is still not executable. As a last try, copy it to .exe
|
|
||||||
# because the partition may be mounted with showexec option, from which
|
|
||||||
# we probably can't escape by remount
|
|
||||||
cp -f ./$EXTLINUX ./extlinux.exe
|
|
||||||
EXTLINUX=extlinux.exe
|
|
||||||
fi
|
|
||||||
|
|
||||||
# install syslinux bootloader
|
|
||||||
echo "* attempting to install bootloader to $BOOT..."
|
|
||||||
|
|
||||||
./"$EXTLINUX" --install "$BOOT"
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error installing boot loader."
|
|
||||||
echo "Read the errors above and press enter to exit..."
|
|
||||||
read junk
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$DEV" != "$PART" ]; then
|
|
||||||
# Setup MBR on the first block
|
|
||||||
echo "* setup MBR on $DEV"
|
|
||||||
dd bs=440 count=1 conv=notrunc if="$BOOT/mbr.bin" of="$DEV" 2>/dev/null
|
|
||||||
|
|
||||||
# Toggle bootable flags
|
|
||||||
echo "* set bootable flag for $PART"
|
|
||||||
PART="$(echo "$PART" | sed -r "s:.*[^0-9]::")"
|
|
||||||
(
|
|
||||||
fdisk -l "$DEV" | fgrep "*" | fgrep "$DEV" | cut -d " " -f 1 \
|
|
||||||
| sed -r "s:.*[^0-9]::" | xargs -I '{}' echo -ne "a\n{}\n"
|
|
||||||
echo a
|
|
||||||
echo $PART
|
|
||||||
echo w
|
|
||||||
) | fdisk $DEV >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Boot installation finished."
|
|
||||||
echo "Press Enter..."
|
|
||||||
read junk
|
|
||||||
cd "$CWD"
|
|
||||||
|
Before Width: | Height: | Size: 22 KiB |
|
|
@ -1,19 +0,0 @@
|
||||||
|
|
||||||
Welcome
|
|
||||||
|
|
||||||
If you need to edit boot command line (for advanced users), hit [Tab].
|
|
||||||
When finished, press [Enter].
|
|
||||||
|
|
||||||
|
|
||||||
Keep changes persistent
|
|
||||||
|
|
||||||
Save all filesystem modifications to 'changes' directory and restore
|
|
||||||
those changes next time you boot. Only usable while running from a
|
|
||||||
writable media such as USB device or hard disk.
|
|
||||||
|
|
||||||
|
|
||||||
Copy to RAM
|
|
||||||
|
|
||||||
Copies all data to memory during startup so you can eject the boot device.
|
|
||||||
Requires enough RAM to store all modules and to run the system.
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Set UAC = CreateObject("Shell.Application")
|
|
||||||
Set args = WScript.Arguments
|
|
||||||
UAC.ShellExecute args.Item(0), "", "", "runas", 1
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
' This script compares two given parameters (just first letter, so you can pass in full paths as well)
|
|
||||||
' and returns exit code 99 if both disk drives are on the same physical drive
|
|
||||||
' Run it as: wscript.exe samedisk.vbs c:\ d:\
|
|
||||||
' Author: Tomas M <http://www.linux-live.org/>
|
|
||||||
' Inspired by: http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/disk/drives/
|
|
||||||
' -------------------------------------------
|
|
||||||
|
|
||||||
drive1 = ""
|
|
||||||
drive2 = ""
|
|
||||||
phys1 = ""
|
|
||||||
phys2 = ""
|
|
||||||
|
|
||||||
Set args = WScript.Arguments
|
|
||||||
|
|
||||||
if args.Length > 0 then
|
|
||||||
drive1 = args.Item(0)
|
|
||||||
end if
|
|
||||||
if args.Length > 1 then
|
|
||||||
drive2 = args.Item(1)
|
|
||||||
end if
|
|
||||||
|
|
||||||
if drive1 = "" then
|
|
||||||
WScript.Quit(1)
|
|
||||||
end if
|
|
||||||
|
|
||||||
if drive2 = "" then
|
|
||||||
WScript.Quit(2)
|
|
||||||
end if
|
|
||||||
|
|
||||||
|
|
||||||
ComputerName = "."
|
|
||||||
Set wmiServices = GetObject _
|
|
||||||
("winmgmts:{impersonationLevel=Impersonate}!//" & ComputerName)
|
|
||||||
Set wmiDiskDrives = wmiServices.ExecQuery _
|
|
||||||
("SELECT Caption, DeviceID FROM Win32_DiskDrive")
|
|
||||||
|
|
||||||
For Each wmiDiskDrive In wmiDiskDrives
|
|
||||||
|
|
||||||
strEscapedDeviceID = _
|
|
||||||
Replace(wmiDiskDrive.DeviceID, "\", "\\", 1, -1, vbTextCompare)
|
|
||||||
Set wmiDiskPartitions = wmiServices.ExecQuery _
|
|
||||||
("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & _
|
|
||||||
strEscapedDeviceID & """} WHERE " & _
|
|
||||||
"AssocClass = Win32_DiskDriveToDiskPartition")
|
|
||||||
|
|
||||||
For Each wmiDiskPartition In wmiDiskPartitions
|
|
||||||
Set wmiLogicalDisks = wmiServices.ExecQuery _
|
|
||||||
("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
|
|
||||||
wmiDiskPartition.DeviceID & """} WHERE " & _
|
|
||||||
"AssocClass = Win32_LogicalDiskToPartition")
|
|
||||||
|
|
||||||
For Each wmiLogicalDisk In wmiLogicalDisks
|
|
||||||
|
|
||||||
if UCase(Left(drive1,1)) = UCase(Left(wmiLogicalDisk.DeviceID,1)) then
|
|
||||||
phys1=wmiDiskDrive.DeviceID
|
|
||||||
end if
|
|
||||||
|
|
||||||
if UCase(Left(drive2,1)) = UCase(Left(wmiLogicalDisk.DeviceID,1)) then
|
|
||||||
phys2=wmiDiskDrive.DeviceID
|
|
||||||
end if
|
|
||||||
|
|
||||||
Next
|
|
||||||
Next
|
|
||||||
Next
|
|
||||||
|
|
||||||
if phys1 = phys2 then
|
|
||||||
WScript.Quit(99)
|
|
||||||
end if
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
UI /slax/boot/vesamenu.c32
|
|
||||||
|
|
||||||
PROMPT 0
|
|
||||||
TIMEOUT 40
|
|
||||||
|
|
||||||
MENU CLEAR
|
|
||||||
MENU HIDDEN
|
|
||||||
MENU HIDDENKEY Enter default
|
|
||||||
MENU BACKGROUND /slax/boot/bootlogo.png
|
|
||||||
|
|
||||||
MENU WIDTH 80
|
|
||||||
MENU MARGIN 20
|
|
||||||
MENU ROWS 5
|
|
||||||
MENU TABMSGROW 9
|
|
||||||
MENU CMDLINEROW 9
|
|
||||||
MENU HSHIFT 0
|
|
||||||
MENU VSHIFT 19
|
|
||||||
|
|
||||||
MENU COLOR BORDER 30;40 #00000000 #00000000 none
|
|
||||||
MENU COLOR SEL 47;30 #FF000000 #FFFFFFFF none
|
|
||||||
MENU COLOR UNSEL 37;40 #FFFFFFFF #FF000000 none
|
|
||||||
MENU COLOR TABMSG 32;40 #FF60CA00 #FF000000 none
|
|
||||||
|
|
||||||
F1 help.txt /slax/boot/zblack.png
|
|
||||||
|
|
||||||
MENU AUTOBOOT Press Esc for options, automatic boot in # second{,s} ...
|
|
||||||
MENU TABMSG [F1] help [Tab] cmdline >
|
|
||||||
|
|
||||||
LABEL default
|
|
||||||
MENU LABEL Run Slax (Persistent changes)
|
|
||||||
KERNEL /slax/boot/vmlinuz
|
|
||||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=perch,automount
|
|
||||||
|
|
||||||
LABEL perch
|
|
||||||
MENU LABEL Run Slax (Fresh start)
|
|
||||||
KERNEL /slax/boot/vmlinuz
|
|
||||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=automount
|
|
||||||
|
|
||||||
LABEL toram
|
|
||||||
MENU LABEL Run Slax (Copy to RAM)
|
|
||||||
KERNEL /slax/boot/vmlinuz
|
|
||||||
APPEND vga=normal initrd=/slax/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=toram
|
|
||||||
|
Before Width: | Height: | Size: 6.3 KiB |
|
|
@ -1,34 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
THIS=$(dirname $(readlink -f $0))
|
|
||||||
|
|
||||||
sed -i -r 's/^LIVEKITNAME.*/LIVEKITNAME="slax"/' $THIS/../../config
|
|
||||||
sed -i -r 's/^NETWORK.*/NETWORK=true/' $THIS/../../config
|
|
||||||
|
|
||||||
. ./copy
|
|
||||||
. ./install
|
|
||||||
. ./cleanup
|
|
||||||
. ./copy
|
|
||||||
|
|
||||||
# now run build script
|
|
||||||
SKIPINITRFS=true
|
|
||||||
cd ../../
|
|
||||||
. ./build
|
|
||||||
|
|
||||||
# setup initrd now, to include aufs
|
|
||||||
apt-get update
|
|
||||||
apt-get install aufs-dkms linux-headers-$(uname -r) --yes
|
|
||||||
|
|
||||||
cd initramfs
|
|
||||||
. ./initramfs_create
|
|
||||||
|
|
||||||
# unpack the sb archive and add aufs modules to /lib/modules
|
|
||||||
cd $LIVEKITDATA/$LIVEKITNAME
|
|
||||||
unsquashfs 01-core.$BEXT
|
|
||||||
cp -a /$LMK/kernel/fs/aufs squashfs-root/$LMK/kernel/fs
|
|
||||||
rm -f 01-core.$BEXT
|
|
||||||
mksquashfs squashfs-root 01-core.$BEXT -comp xz -b 1024K -always-use-fragments || exit
|
|
||||||
rm -Rf squashfs-root
|
|
||||||
|
|
||||||
mv -f $INITRAMFS.img $LIVEKITDATA/$LIVEKITNAME/boot/initrfs.img
|
|
||||||
cp -vf $THIS/bootfiles/* $LIVEKITDATA/$LIVEKITNAME/boot/
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
rm -f /etc/fstab
|
|
||||||
rm -f /etc/mtab
|
|
||||||
rm -f /etc/apt/sources.list~
|
|
||||||
rm -Rf /etc/systemd/system/timers.target.wants
|
|
||||||
rm -f /etc/systemd/system/multi-user.target.wants/ssh.service
|
|
||||||
rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
|
|
||||||
|
|
||||||
rm -f /etc/ssh/ssh_host*
|
|
||||||
|
|
||||||
rm -f /var/backups/*
|
|
||||||
rm -f /var/cache/ldconfig/*
|
|
||||||
rm -f /var/cache/debconf/*
|
|
||||||
rm -f /var/cache/fontconfig/*
|
|
||||||
rm -f /var/lib/apt/extended_states
|
|
||||||
rm -f /var/lib/systemd/random-seed
|
|
||||||
rm -f /var/lib/apt/lists/deb.*
|
|
||||||
rm -Rf /root/.local/share/mc
|
|
||||||
rm -Rf /root/.cache
|
|
||||||
rm -f /root/.wget-hsts
|
|
||||||
|
|
||||||
rm -f /var/lib/dpkg/*-old
|
|
||||||
rm -f /var/log/*
|
|
||||||
rm -f /var/log/*/*
|
|
||||||
rm -f /var/log/*/*/*
|
|
||||||
rm -f /var/cache/apt/archives/*.deb
|
|
||||||
rm -f /var/cache/apt/*.bin
|
|
||||||
rm -f /var/cache/debconf/*-old
|
|
||||||
rm -f /var/lib/dhcp/dhclient.leases
|
|
||||||
rm -f /root/.bash_history
|
|
||||||
rm -f /root/.wget-hsts
|
|
||||||
rm -Rf /usr/share/doc/*
|
|
||||||
rm -Rf /usr/share/info/*
|
|
||||||
rm -f /usr/share/images/fluxbox/debian-squared.jpg
|
|
||||||
rm -Rf /usr/share/fluxbox/nls/??*
|
|
||||||
rm -Rf /usr/share/gnome/help
|
|
||||||
|
|
||||||
rm -Rf /usr/share/locale/??
|
|
||||||
rm -Rf /usr/share/locale/??_*
|
|
||||||
rm -Rf /usr/share/locale/??@*
|
|
||||||
rm -Rf /usr/share/locale/???
|
|
||||||
rm -Rf /usr/share/i18n/locales/*_*
|
|
||||||
rm -Rf /usr/share/man/??
|
|
||||||
rm -Rf /usr/share/man/*_*
|
|
||||||
|
|
||||||
rm -Rf /usr/share/icons/elementaryXubuntu-dark
|
|
||||||
rm -Rf /usr/share/icons/gnome/256x256
|
|
||||||
|
|
||||||
rm /usr/share/applications/compton.desktop
|
|
||||||
rm /usr/share/applications/debian-uxterm.desktop
|
|
||||||
rm /usr/share/applications/debian-xterm.desktop
|
|
||||||
rm /usr/share/applications/htop.desktop
|
|
||||||
rm /usr/share/applications/mc.desktop
|
|
||||||
rm /usr/share/applications/mcedit.desktop
|
|
||||||
rm /usr/share/applications/pcmanfm-desktop-pref.desktop
|
|
||||||
rm /usr/share/applications/python2.7.desktop
|
|
||||||
rm /usr/share/applications/python3.7.desktop
|
|
||||||
rm /usr/share/applications/vim.desktop
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Unzip gzipped files (man pages), so LZMA can compress 2times better.
|
|
||||||
# First we fix symlinks, then uncompress files
|
|
||||||
# $1 = search directory
|
|
||||||
uncompress_files()
|
|
||||||
{
|
|
||||||
local LINK LINE
|
|
||||||
|
|
||||||
find "$1" -type l -name "*.gz" | while read LINE; do
|
|
||||||
LINK="$(readlink "$LINE" | sed -r 's/.gz$//')"
|
|
||||||
FILE="$(echo "$LINE" | sed -r 's/.gz$//')"
|
|
||||||
ln -sfn "$LINK" "$FILE"
|
|
||||||
rm -f "$LINE"
|
|
||||||
done
|
|
||||||
find "$1" -type f -name "*.gz" | xargs -r gunzip
|
|
||||||
}
|
|
||||||
|
|
||||||
uncompress_files /etc/alternatives
|
|
||||||
uncompress_files /usr/share/man
|
|
||||||
|
|
||||||
# remove broken links
|
|
||||||
# $1 = search directory
|
|
||||||
remove_broken_links()
|
|
||||||
{
|
|
||||||
find "$1" -type l -exec test ! -e {} \; -print | xargs rm -vf
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_broken_links /etc/alternatives
|
|
||||||
remove_broken_links /usr/share/man
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
(cd rootcopy && cp --parents -afr * /)
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
CURRENT="$(ls -1 /boot)"
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get dist-upgrade --yes
|
|
||||||
|
|
||||||
NEW="$(ls -1 /boot)"
|
|
||||||
|
|
||||||
if [ "$CURRENT" != "$NEW" ]; then
|
|
||||||
echo "It looks like your kernel has been upgraded."
|
|
||||||
echo "You should reboot and restart the build process."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if kernel was upgraded, you may need to reboot
|
|
||||||
apt-get install --yes --no-install-recommends mc squashfs-tools genisoimage zip unzip psmisc net-tools \
|
|
||||||
alsa-utils man less xz-utils ca-certificates openssl acpid acpi-support-base powermgmt-base bzip2 gpart \
|
|
||||||
hdparm sdparm mdadm smartmontools dosfstools lsof htop gddrescue rsync netcat ssh gpm wireless-tools \
|
|
||||||
ntfs-3g rfkill file dnsmasq ntpdate dvd+rw-tools usb-modeswitch pm-utils wget
|
|
||||||
|
|
||||||
ln -sf bash /bin/sh
|
|
||||||
|
|
||||||
apt-get remove --yes vim* grub* debconf-i18n installation-report
|
|
||||||
|
|
||||||
CWD="$(pwd)"
|
|
||||||
cd /tmp
|
|
||||||
apt-get download acpi-support
|
|
||||||
dpkg -x acpi-support*.deb /tmp/acpisupport
|
|
||||||
cd /tmp/acpisupport
|
|
||||||
cp -aR * /
|
|
||||||
cd "$CWD"
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
apt update
|
|
||||||
apt install --yes --no-install-recommends \
|
|
||||||
firmware-linux-free \
|
|
||||||
firmware-linux-nonfree \
|
|
||||||
firmware-atheros \
|
|
||||||
firmware-iwlwifi \
|
|
||||||
firmware-zd1211 \
|
|
||||||
firmware-realtek \
|
|
||||||
firmware-bnx2 \
|
|
||||||
firmware-brcm80211 \
|
|
||||||
firmware-cavium \
|
|
||||||
firmware-ipw2x00 \
|
|
||||||
firmware-libertas \
|
|
||||||
firmware-ti-connectivity \
|
|
||||||
firmware-b43-installer
|
|
||||||
|
|
||||||
. ../../cleanup
|
|
||||||
|
|
||||||
savechanges /01-firmware.sb
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get install --yes --no-install-recommends \
|
|
||||||
xserver-xorg xserver-xorg-video-all xserver-xorg-video-intel \
|
|
||||||
xinit \
|
|
||||||
xterm \
|
|
||||||
blackbox \
|
|
||||||
libxcursor1 \
|
|
||||||
breeze-cursor-theme \
|
|
||||||
x11-utils \
|
|
||||||
wmctrl \
|
|
||||||
xdotool \
|
|
||||||
libdrm-intel1 \
|
|
||||||
libgl1-mesa-dri \
|
|
||||||
libglu1-mesa
|
|
||||||
|
|
||||||
# Set setuid bit on xorg binary, so it can be started by guest user
|
|
||||||
chmod u+s /usr/lib/xorg/Xorg
|
|
||||||
|
|
||||||
# use only white cursors. There were some troubles if the other cursors
|
|
||||||
# was left behind, installing gtk apps reverted the cursor from white to gray,
|
|
||||||
# so we're going to nuke it to leave only Snow cursors active.
|
|
||||||
rm -Rf /usr/share/icons/breeze_cursors
|
|
||||||
mv /usr/share/icons/Breeze_Snow /usr/share/icons/breeze_cursors
|
|
||||||
|
|
||||||
(cd rootcopy && cp --parents -afr * /)
|
|
||||||
|
|
||||||
cp ../../cleanup /tmp
|
|
||||||
# install x11 server utils, apt-get would add cpp dependency, bullshit!
|
|
||||||
cd /tmp
|
|
||||||
apt-get download x11-xserver-utils
|
|
||||||
dpkg -x x11-xserver-utils*.deb /tmp/x11utils
|
|
||||||
cd /tmp/x11utils
|
|
||||||
cp -aR * /
|
|
||||||
|
|
||||||
update-alternatives --set x-terminal-emulator /usr/bin/xterm
|
|
||||||
|
|
||||||
. /tmp/cleanup
|
|
||||||
|
|
||||||
savechanges /02-xorg.sb
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
/lib/systemd/system/xorg.service
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
! this are Xresources to make xterm look good
|
|
||||||
! put into ~/.Xresources
|
|
||||||
! after changing contents, run xrdb -merge .Xresources
|
|
||||||
! gentoo has a bug so that it doesnt read it when X starts, so add above
|
|
||||||
! command to /etc/xfce4/xinitrc (top) and be happy.
|
|
||||||
|
|
||||||
XTerm*foreground: white
|
|
||||||
XTerm*background: rgb:22/22/22
|
|
||||||
XTerm*cursorColor: rgb:00/ff/00
|
|
||||||
XTerm*borderColor: black
|
|
||||||
XTerm*scrollColor: black
|
|
||||||
XTerm*visualBell: true
|
|
||||||
XTerm*saveLines: 50000
|
|
||||||
XTerm*allowSendEvents: True
|
|
||||||
XTerm*sessionMgt: false
|
|
||||||
XTerm*rightScrollBar: true
|
|
||||||
XTerm*eightBitInput: false
|
|
||||||
XTerm*faceName:fixed:size=11
|
|
||||||
XTerm*boldFont:fixed:size=11
|
|
||||||
XTerm*activeIcon: true
|
|
||||||
XTerm*iconPixmap: /usr/share/icons/locolor/16x16/apps/xterm.xbm
|
|
||||||
XTerm*fullscreen: never
|
|
||||||
|
|
||||||
Xft.antialias: true
|
|
||||||
Xft.hinting: true
|
|
||||||
Xft.hintstyle: hintfull
|
|
||||||
Xft.lcdfilter: lcdlegacy
|
|
||||||
Xft.rgba: rgb
|
|
||||||
|
|
||||||
XTerm*selectToClipboard: true
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
[begin] ( Menu )
|
|
||||||
[exec] (Terminal) { xterm -ls -title Terminal }
|
|
||||||
[exec] (Web browser) { chromium }
|
|
||||||
[exit] (Exit)
|
|
||||||
[end]
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
session.screen0.toolbar.widthPercent: 100
|
|
||||||
session.screen0.strftimeFormat: %H:%M
|
|
||||||
session.edgeSnapThreshold: 10
|
|
||||||
session.menuFile: /root/.blackbox-menu
|
|
||||||
session.styleFile: /usr/share/blackbox/styles/Slax
|
|
||||||
session.changeWorkspaceWithMouseWheel: False
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=X-Window
|
|
||||||
ConditionKernelCommandLine=!text
|
|
||||||
After=systemd-user-sessions.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/bin/su --login -c "/usr/bin/startx -- :0 vt7 -ac -nolisten tcp"
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
*.appearance: flat solid
|
|
||||||
|
|
||||||
*button.pressed.appearance: sunken solid
|
|
||||||
*button.pressed.backgroundColor: rgb:69/c1/f1
|
|
||||||
*button.appearance: parentrelative
|
|
||||||
|
|
||||||
*.focus.backgroundColor: rgb:69/c1/f1
|
|
||||||
*.unfocus.backgroundColor: rgb:28/28/28
|
|
||||||
|
|
||||||
*font: Bitstream Vera Sans-9
|
|
||||||
|
|
||||||
menu.title.appearance: flat solid
|
|
||||||
menu.title.backgroundColor: rgb:69/c1/f1
|
|
||||||
menu.title.textColor: rgb:28/28/28
|
|
||||||
menu.title.alignment: center
|
|
||||||
menu.title.marginWidth: 6
|
|
||||||
|
|
||||||
menu.frame.appearance: flat gradient border
|
|
||||||
menu.frame.textColor: rgb:28/28/28
|
|
||||||
menu.frame.foregroundColor: grey40
|
|
||||||
menu.frame.borderColor: rgb:69/c1/f1
|
|
||||||
menu.frame.borderWidth: 6
|
|
||||||
menu.frame.disabledColor: darkgrey
|
|
||||||
menu.frame.alignment: left
|
|
||||||
menu.frame.marginWidth: 2
|
|
||||||
|
|
||||||
menu.active.appearance: flat solid border
|
|
||||||
menu.active.backgroundColor: rgb:69/c1/f1
|
|
||||||
menu.active.borderWidth: 4
|
|
||||||
menu.active.borderColor: rgb:69/c1/f1
|
|
||||||
menu.active.textColor: rgb:38/38/38
|
|
||||||
|
|
||||||
rootCommand: bsetroot -solid rgb:77/90/aa
|
|
||||||
|
|
||||||
slit.appearance: raised solid
|
|
||||||
slit.backgroundColor: rgb:77/90/aa
|
|
||||||
slit.marginWidth: 3
|
|
||||||
|
|
||||||
toolbar.appearance: flat gradient border
|
|
||||||
toolbar.alignment: center
|
|
||||||
toolbar*textColor: rgb:28/28/28
|
|
||||||
toolbar.label.appearance: parentrelative
|
|
||||||
toolbar.clock.appearance: parentrelative
|
|
||||||
toolbar.windowLabel.appearance: parentrelative
|
|
||||||
|
|
||||||
window.title.focus.appearance: flat solid
|
|
||||||
window.title.focus.backgroundColor: rgb:69/c1/f1
|
|
||||||
window.title.unfocus.appearance: flat solid
|
|
||||||
window.title.unfocus.backgroundColor: rgb:d6/d6/d6
|
|
||||||
window.title.marginWidth: 5
|
|
||||||
|
|
||||||
window.label.focus.appearance: parentrelative
|
|
||||||
window.label.focus.textColor: rgb:28/28/28
|
|
||||||
window.label.unfocus.appearance: parentrelative
|
|
||||||
window.label.unfocus.textColor: rgb:28/28/28
|
|
||||||
window.label.marginWidth: 1
|
|
||||||
|
|
||||||
window.button.focus.appearance: parentrelative
|
|
||||||
window.button.focus.foregroundColor: white
|
|
||||||
|
|
||||||
window.button.unfocus.appearance: parentrelative
|
|
||||||
window.button.unfocus.foregroundColor: darkgrey
|
|
||||||
|
|
||||||
window.handle.focus.appearance: flat solid
|
|
||||||
window.handle.focus.backgroundColor: rgb:69/c1/f1
|
|
||||||
window.handle.unfocus.appearance: flat solid
|
|
||||||
window.handle.unfocus.backgroundColor: rgb:d6/d6/d6
|
|
||||||
|
|
||||||
window.grip.focus.appearance: flat solid
|
|
||||||
window.grip.focus.backgroundColor: rgb:69/c1/f1
|
|
||||||
window.grip.unfocus.appearance: flat solid
|
|
||||||
window.grip.unfocus.backgroundColor: rgb:d6/d6/d6
|
|
||||||
|
|
||||||
window*alignment: center
|
|
||||||
|
|
||||||
window.handleHeight: 7
|
|
||||||
window.frame.borderWidth: 7
|
|
||||||
window.frame.focus.borderColor: rgb:69/c1/f1
|
|
||||||
window.frame.unfocus.borderColor: rgb:d6/d6/d6
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
#define command2_width 16
|
|
||||||
#define command2_height 16
|
|
||||||
static unsigned char command2_bits[] = {
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xe7, 0xff, 0xcf, 0xff,
|
|
||||||
0x9f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x9f, 0xff, 0xcf, 0xff, 0xe7, 0xc1,
|
|
||||||
0xf7, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
CWD=$(dirname $(readlink -f $0))
|
|
||||||
|
|
||||||
NAME=fluxbox
|
|
||||||
VERSION=1.3.5
|
|
||||||
|
|
||||||
# first install stock version
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get install --no-install-recommends --yes \
|
|
||||||
$NAME \
|
|
||||||
feh \
|
|
||||||
compton \
|
|
||||||
volumeicon-alsa \
|
|
||||||
murrine-themes \
|
|
||||||
libnotify4 \
|
|
||||||
scrot
|
|
||||||
|
|
||||||
. ../../cleanup
|
|
||||||
|
|
||||||
(cd rootcopy && cp --parents -afr * /)
|
|
||||||
chown guest.users /home/guest
|
|
||||||
chown -R guest.users /home/guest/.gtkrc-2.0
|
|
||||||
chown -R guest.users /home/guest/.config
|
|
||||||
|
|
||||||
savechanges /$NAME-stock.sb
|
|
||||||
|
|
||||||
cd /
|
|
||||||
unsquashfs /$NAME-stock.sb
|
|
||||||
|
|
||||||
# create user directories
|
|
||||||
for dir in Desktop Documents Downloads Music Pictures Public Templates Videos; do
|
|
||||||
mkdir -p /squashfs-root/home/guest/$dir
|
|
||||||
mkdir -p /squashfs-root/root/$dir
|
|
||||||
done
|
|
||||||
chown -R guest.users /squashfs-root/home/guest
|
|
||||||
|
|
||||||
# then, we want to patch it to implement window resizing!
|
|
||||||
# so we will recompile whole package
|
|
||||||
|
|
||||||
REBUILD=/tmp/$NAME-rebuild-$$
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
apt-get --yes build-dep $NAME
|
|
||||||
|
|
||||||
mkdir -p $REBUILD
|
|
||||||
cd $REBUILD
|
|
||||||
|
|
||||||
apt-get source $NAME
|
|
||||||
|
|
||||||
cd $NAME-$VERSION
|
|
||||||
|
|
||||||
cat $CWD/patches/fluxbox-slax.diff > debian/patches/fluxbox-slax.diff
|
|
||||||
echo fluxbox-slax.diff >> debian/patches/series
|
|
||||||
|
|
||||||
dpkg-buildpackage -us -uc
|
|
||||||
|
|
||||||
rm -Rf debian/$NAME/DEBIAN
|
|
||||||
rm -Rf debian/$NAME/usr/share/doc
|
|
||||||
rm -Rf debian/$NAME/usr/share/images
|
|
||||||
|
|
||||||
cp debian/$NAME/usr/bin/fluxbox /squashfs-root/usr/bin
|
|
||||||
|
|
||||||
|
|
||||||
# add xlunch from sources
|
|
||||||
wget -O /tmp/xlunch.tar.gz https://github.com/Tomas-M/xlunch/archive/v4.5.3.tar.gz
|
|
||||||
cd /tmp
|
|
||||||
tar -xf xlunch.tar.gz
|
|
||||||
cd xlunch-4.5.3
|
|
||||||
make
|
|
||||||
cp xlunch /squashfs-root/usr/bin
|
|
||||||
cp extra/gentriesquick /squashfs-root/usr/bin/xlunch_genquick
|
|
||||||
mkdir -p /squashfs-root/usr/share/icons/hicolor/48x48/apps/
|
|
||||||
cp extra/ghost.png /squashfs-root/usr/share/icons/hicolor/48x48/apps/xlunch_ghost.png
|
|
||||||
|
|
||||||
# add tray icon launcher
|
|
||||||
wget -O /tmp/systrayiconlauncher.tar.gz https://github.com/Tomas-M/SystrayIconLauncher/archive/master.tar.gz
|
|
||||||
cd /tmp
|
|
||||||
tar -xf systrayiconlauncher.tar.gz
|
|
||||||
cd SystrayIconLauncher-master
|
|
||||||
apt-get install --yes libgtk2.0-dev
|
|
||||||
make
|
|
||||||
cp systrayicon /squashfs-root/usr/bin
|
|
||||||
|
|
||||||
|
|
||||||
# add gtkdialog
|
|
||||||
wget -O /tmp/gtkdialog.tar.gz https://github.com/Tomas-M/GTKdialog/archive/master.tar.gz
|
|
||||||
cd /tmp
|
|
||||||
tar -xf gtkdialog.tar.gz
|
|
||||||
cd GTKdialog-master
|
|
||||||
make
|
|
||||||
cp gtkdialog /squashfs-root/usr/bin
|
|
||||||
|
|
||||||
|
|
||||||
# battery icon app
|
|
||||||
cd /tmp
|
|
||||||
wget https://github.com/valr/cbatticon/archive/1.6.7.tar.gz
|
|
||||||
tar -xf 1.6.7.tar.gz
|
|
||||||
cd cbatticon-1.6.7
|
|
||||||
cp -R /usr/include/glib-2.0/* /usr/include
|
|
||||||
cp -R /usr/include/gtk-2.0/* /usr/include
|
|
||||||
apt install --yes libnotify-dev
|
|
||||||
sed -i "s/WITH_GTK3 = 1/WITH_GTK3 = 0/" Makefile
|
|
||||||
CFLAGS="-O2 \
|
|
||||||
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ \
|
|
||||||
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include/ \
|
|
||||||
-I/usr/include/gdk-pixbuf-2.0/ \
|
|
||||||
-I/usr/include/atk-1.0/ \
|
|
||||||
-I/usr/include/cairo \
|
|
||||||
-I/usr/include/pango-1.0 \
|
|
||||||
-I/usr/include/glib-2.0 \
|
|
||||||
-I/usr/include/gtk-2.0" \
|
|
||||||
make
|
|
||||||
cp cbatticon /squashfs-root/usr/bin
|
|
||||||
|
|
||||||
dir2sb /squashfs-root /03-desktop.sb
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
||||||
--- a/src/Window.cc 2013-02-13 05:04:05.000000000 -0500
|
|
||||||
+++ b/src/Window.cc 2017-11-05 17:31:37.516503305 -0500
|
|
||||||
@@ -2745,6 +2745,14 @@
|
|
||||||
m_button_grab_x = x - frame().x() - frame().window().borderWidth();
|
|
||||||
m_button_grab_y = y - frame().y() - frame().window().borderWidth();
|
|
||||||
|
|
||||||
+ // If mouse clicked on the border, start window resize instead of move
|
|
||||||
+ if (m_button_grab_x <= 0 || m_button_grab_x >= (int)frame().window().width()
|
|
||||||
+ || m_button_grab_y >= (int)frame().window().height() ) {
|
|
||||||
+ ReferenceCorner dir = getResizeDirection(m_button_grab_x,m_button_grab_y,EDGEORCORNERRESIZE,frame().window().borderWidth(),frame().window().borderWidth());
|
|
||||||
+ startResizing(m_button_grab_x, m_button_grab_y, dir);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
moving = true;
|
|
||||||
|
|
||||||
Fluxbox *fluxbox = Fluxbox::instance();
|
|
||||||
@@ -2752,7 +2760,7 @@
|
|
||||||
// freely map and unmap the window we're moving.
|
|
||||||
grabPointer(screen().rootWindow().window(), False, ButtonMotionMask |
|
|
||||||
ButtonReleaseMask, GrabModeAsync, GrabModeAsync,
|
|
||||||
- screen().rootWindow().window(), frame().theme()->moveCursor(), CurrentTime);
|
|
||||||
+ screen().rootWindow().window(), None, CurrentTime);
|
|
||||||
|
|
||||||
if (menu().isVisible())
|
|
||||||
menu().hide();
|
|
||||||
--- a/src/FbTk/FbDrawable.hh
|
|
||||||
+++ b/src/FbTk/FbDrawable.hh
|
|
||||||
@@ -52,7 +52,8 @@ public:
|
|
||||||
LEFT,
|
|
||||||
RIGHT,
|
|
||||||
UP,
|
|
||||||
- DOWN
|
|
||||||
+ DOWN,
|
|
||||||
+ MENU
|
|
||||||
};
|
|
||||||
|
|
||||||
// x, y, width and height define a space within which we're drawing a triangle
|
|
||||||
--- a/src/ToolFactory.cc 2013-02-13 05:04:05.000000000 -0500
|
|
||||||
+++ b/src/ToolFactory.cc 2017-10-31 12:11:20.000000000 -0400
|
|
||||||
@@ -101,6 +101,8 @@
|
|
||||||
cmd_str += " (workspace=[current])";
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (name.find("menu") != std::string::npos) cmd_str = "Exec fbappselect";
|
|
||||||
+
|
|
||||||
FbTk::RefCount<FbTk::Command<void> > cmd(FbTk::CommandParser<void>::instance().parse(cmd_str));
|
|
||||||
if (cmd == 0) // we need a command
|
|
||||||
return 0;
|
|
||||||
@@ -110,6 +112,9 @@
|
|
||||||
if (name.find("prev") != std::string::npos)
|
|
||||||
arrow_type = FbTk::FbDrawable::LEFT;
|
|
||||||
|
|
||||||
+ if (name.find("menu") != std::string::npos)
|
|
||||||
+ arrow_type = FbTk::FbDrawable::MENU;
|
|
||||||
+
|
|
||||||
ArrowButton *win = new ArrowButton(arrow_type, parent,
|
|
||||||
0, 0,
|
|
||||||
button_size, button_size);
|
|
||||||
--- a/src/FbTk/FbDrawable.cc 2017-10-19 06:06:08.000000000 -0400
|
|
||||||
+++ a/src/FbTk/FbDrawable.cc 2017-10-19 06:06:57.013131070 -0400
|
|
||||||
@@ -96,7 +96,7 @@
|
|
||||||
if (drawable() == 0 || gc == 0 || width == 0 || height == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- XPoint pts[3];
|
|
||||||
+ XPoint pts[4];
|
|
||||||
|
|
||||||
if (scale < 100) scale = 100; // not bigger than the space allowed
|
|
||||||
else if (scale > 10000) scale = 10000; // not too small...
|
|
||||||
@@ -115,6 +115,26 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (type) {
|
|
||||||
+ case FbTk::FbDrawable::MENU:
|
|
||||||
+ {
|
|
||||||
+ int s=7; int m=2; int d=2; int sh=-1; //size margin distance
|
|
||||||
+ pts[0].x=m+sh; pts[0].y=m+sh; pts[1].x=m+s+sh; pts[1].y=m+sh;
|
|
||||||
+ pts[2].x=m+s+sh; pts[2].y=m+s+sh; pts[3].x=m+sh; pts[3].y=m+s+sh;
|
|
||||||
+ fillPolygon(gc, pts, 4, Convex, CoordModeOrigin);
|
|
||||||
+
|
|
||||||
+ pts[0].x=m+s+d+sh; pts[0].y=m+sh; pts[1].x=m+s+d+s+sh; pts[1].y=m+sh;
|
|
||||||
+ pts[2].x=m+s+d+s+sh; pts[2].y=m+s+sh; pts[3].x=m+s+d+sh; pts[3].y=m+s+sh;
|
|
||||||
+ fillPolygon(gc, pts, 4, Convex, CoordModeOrigin);
|
|
||||||
+
|
|
||||||
+ pts[0].x=m+sh; pts[0].y=m+s+d+sh; pts[1].x=m+s+sh; pts[1].y=m+s+d+sh;
|
|
||||||
+ pts[2].x=m+s+sh; pts[2].y=m+s+d+s+sh; pts[3].x=m+sh; pts[3].y=m+s+d+s+sh;
|
|
||||||
+ fillPolygon(gc, pts, 4, Convex, CoordModeOrigin);
|
|
||||||
+
|
|
||||||
+ pts[0].x=m+s+d+sh; pts[0].y=m+s+d+sh; pts[1].x=m+s+d+s+sh; pts[1].y=m+s+d+sh;
|
|
||||||
+ pts[2].x=m+s+d+s+sh; pts[2].y=m+s+d+s+sh; pts[3].x=m+s+d+sh; pts[3].y=m+s+d+s+sh;
|
|
||||||
+ fillPolygon(gc, pts, 4, Convex, CoordModeOrigin);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
case FbTk::FbDrawable::LEFT:
|
|
||||||
// start at the tip
|
|
||||||
pts[0].x = (width / 2) - (ax / 2); pts[0].y = height / 2;
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
Terminal;/usr/share/icons/hicolor/128x128/apps/terminal.png;xterm -title Terminal
|
|
||||||
Web Browser;/usr/share/icons/hicolor/128x128/apps/chromium.png;chromium
|
|
||||||
Text Editor;/usr/share/icons/hicolor/128x128/apps/editor.png;leafpad
|
|
||||||
Calculator;/usr/share/icons/hicolor/128x128/apps/calculator.png;qalculate
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
Logout;/usr/share/icons/hicolor/128x128/actions/logout.png;logout
|
|
||||||
Restart;/usr/share/icons/hicolor/128x128/actions/restart.png;restart
|
|
||||||
Shut down;/usr/share/icons/hicolor/128x128/actions/shutdown.png;shutdown
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
"AudioCaptureAllowed": false,
|
|
||||||
"account_id_migration_state": 2,
|
|
||||||
"account_tracker_service_last_update": "13154004704520013",
|
|
||||||
"alternate_error_pages": {
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
"bookmark_bar": {
|
|
||||||
"show_on_all_tabs": false
|
|
||||||
},
|
|
||||||
"browser": {
|
|
||||||
"check_default_browser": false,
|
|
||||||
"has_seen_welcome_page": true,
|
|
||||||
"show_home_button": false,
|
|
||||||
"window_placement": {
|
|
||||||
"bottom": 10,
|
|
||||||
"left": 10,
|
|
||||||
"maximized": true,
|
|
||||||
"right": 10,
|
|
||||||
"top": 10
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"extensions": {
|
|
||||||
"theme": {
|
|
||||||
"use_system": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ntp": {
|
|
||||||
"most_visited_blacklist": {
|
|
||||||
"c8e0afd1da1d9e29511240861f795a5a": null,
|
|
||||||
"eacc8c3ad0b50bd698ef8752d5ee24b6": null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"safebrowsing": {
|
|
||||||
"enabled": false,
|
|
||||||
"scout_group_selected": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
include "/usr/share/themes/MurrinaChrome/gtk-2.0/gtkrc"
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
[StatusIcon]
|
|
||||||
stepsize=5
|
|
||||||
lmb_slider=false
|
|
||||||
mmb_mute=false
|
|
||||||
use_horizontal_slider=false
|
|
||||||
show_sound_level=false
|
|
||||||
onclick=xterm -e 'alsamixer'
|
|
||||||
theme=White Gnome
|
|
||||||
|
|
||||||
[Hotkeys]
|
|
||||||
up_enabled=true
|
|
||||||
down_enabled=true
|
|
||||||
mute_enabled=true
|
|
||||||
up=XF86AudioRaiseVolume
|
|
||||||
down=XF86AudioLowerVolume
|
|
||||||
mute=XF86AudioMute
|
|
||||||
|
|
||||||
[Alsa]
|
|
||||||
card=default
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
[xarchiver]
|
|
||||||
preferred_format=0
|
|
||||||
confirm_deletion=true
|
|
||||||
sort_filename_content=false
|
|
||||||
store_output=false
|
|
||||||
icon_size=0
|
|
||||||
show_archive_comment=false
|
|
||||||
show_sidebar=false
|
|
||||||
show_location_bar=false
|
|
||||||
preferred_temp_dir=/tmp
|
|
||||||
allow_sub_dir=0
|
|
||||||
overwrite=false
|
|
||||||
full_path=true
|
|
||||||
touch=false
|
|
||||||
freshen=false
|
|
||||||
update=false
|
|
||||||
store_path=false
|
|
||||||
recurse=true
|
|
||||||
solid_archive=false
|
|
||||||
remove_files=false
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
[app] (name=fbrun)
|
|
||||||
[Position] (WINCENTER) {0 0}
|
|
||||||
[Layer] {2}
|
|
||||||
[end]
|
|
||||||
|
|
||||||
[app] (name=gtkdialog)
|
|
||||||
[Position] (WINCENTER) {0 0}
|
|
||||||
[Layer] {2}
|
|
||||||
[end]
|
|
||||||
|
|
||||||
[app] (name=xlunch)
|
|
||||||
[DECO] {NONE}
|
|
||||||
[IconHidden] {yes}
|
|
||||||
[end]
|
|
||||||
|
|
||||||
[app] (name=xterm) {1}
|
|
||||||
[Position] (WINCENTER) {0 0}
|
|
||||||
[end]
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
||||||
session.screen0.slit.maxOver: false
|
|
||||||
session.screen0.slit.placement: TopLeft
|
|
||||||
session.screen0.slit.layer: Dock
|
|
||||||
session.screen0.slit.onhead: 0
|
|
||||||
session.screen0.slit.acceptKdeDockapps: true
|
|
||||||
session.screen0.slit.alpha: 255
|
|
||||||
session.screen0.slit.autoHide: false
|
|
||||||
session.screen0.menu.alpha: 255
|
|
||||||
session.screen0.clientMenu.usePixmap: true
|
|
||||||
session.screen0.tab.placement: TopLeft
|
|
||||||
session.screen0.tab.width: 64
|
|
||||||
session.screen0.toolbar.maxOver: false
|
|
||||||
session.screen0.toolbar.tools: RootMenu, iconbar, systemtray, clock
|
|
||||||
session.screen0.toolbar.autoHide: false
|
|
||||||
session.screen0.toolbar.widthPercent: 100
|
|
||||||
session.screen0.toolbar.alpha: 255
|
|
||||||
session.screen0.toolbar.visible: true
|
|
||||||
session.screen0.toolbar.placement: BottomCenter
|
|
||||||
session.screen0.toolbar.layer: Dock
|
|
||||||
session.screen0.toolbar.height: 0
|
|
||||||
session.screen0.toolbar.onhead: 1
|
|
||||||
session.screen0.tabs.usePixmap: true
|
|
||||||
session.screen0.tabs.maxOver: true
|
|
||||||
session.screen0.tabs.intitlebar: true
|
|
||||||
session.screen0.window.focus.alpha: 255
|
|
||||||
session.screen0.window.unfocus.alpha: 255
|
|
||||||
session.screen0.iconbar.usePixmap: true
|
|
||||||
session.screen0.iconbar.alignment: Left
|
|
||||||
session.screen0.iconbar.iconTextPadding: 10
|
|
||||||
session.screen0.iconbar.mode: {static groups} (workspace)
|
|
||||||
session.screen0.iconbar.iconWidth: 128
|
|
||||||
session.screen0.titlebar.left:
|
|
||||||
session.screen0.titlebar.right: Minimize Maximize Close
|
|
||||||
session.screen0.clickRaises: true
|
|
||||||
session.screen0.maxIgnoreIncrement: false
|
|
||||||
session.screen0.workspacewarping: true
|
|
||||||
session.screen0.colPlacementDirection: TopToBottom
|
|
||||||
session.screen0.maxDisableMove: false
|
|
||||||
session.screen0.rowPlacementDirection: LeftToRight
|
|
||||||
session.screen0.focusNewWindows: true
|
|
||||||
session.screen0.autoRaise: true
|
|
||||||
session.screen0.opaqueMove: true
|
|
||||||
session.screen0.maxDisableResize: false
|
|
||||||
session.screen0.tabFocusModel: ClickToTabFocus
|
|
||||||
session.screen0.tooltipDelay: 500
|
|
||||||
session.screen0.fullMaximization: false
|
|
||||||
session.screen0.noFocusWhileTypingDelay: 0
|
|
||||||
session.screen0.strftimeFormat: %H:%M
|
|
||||||
session.screen0.workspaces: 4
|
|
||||||
session.screen0.allowRemoteActions: false
|
|
||||||
session.screen0.focusModel: ClickFocus
|
|
||||||
session.screen0.windowMenu: /root/.fluxbox/windowmenu
|
|
||||||
session.screen0.workspaceNames: Workspace 1 Ctrl+F1,Workspace 2 Ctrl+F2,Workspace 3 Ctrl+F3,Workspace 4 Ctrl+F4,
|
|
||||||
session.screen0.edgeSnapThreshold: 10
|
|
||||||
session.screen0.showwindowposition: false
|
|
||||||
session.screen0.defaultDeco: NORMAL
|
|
||||||
session.screen0.menuDelay: 200
|
|
||||||
session.screen0.windowPlacement: RowMinOverlapPlacement
|
|
||||||
session.screen0.focusSameHead: false
|
|
||||||
session.screen0.workspacewarping: false
|
|
||||||
session.keyFile: ~/.fluxbox/keys
|
|
||||||
session.menuFile: ~/.fluxbox/menu
|
|
||||||
session.styleFile: /usr/share/fluxbox/styles/Slax
|
|
||||||
session.colorsPerChannel: 4
|
|
||||||
session.forcePseudoTransparency: true
|
|
||||||
session.ignoreBorder: false
|
|
||||||
session.doubleClickInterval: 250
|
|
||||||
session.appsFile: /root/.fluxbox/apps
|
|
||||||
session.tabPadding: 0
|
|
||||||
session.cacheLife: 5
|
|
||||||
session.cacheMax: 200
|
|
||||||
session.styleOverlay: /root/.fluxbox/overlay
|
|
||||||
session.autoRaiseDelay: 250
|
|
||||||
session.slitlistFile: /root/.fluxbox/slitlist
|
|
||||||
session.tabsAttachArea: Window
|
|
||||||
session.configVersion: 13
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
en
|
|
||||||
|
|
@ -1,139 +0,0 @@
|
||||||
# click on the desktop to get menus
|
|
||||||
OnDesktop Mouse1 :MacroCmd {WindowMenu} {HideMenus}
|
|
||||||
OnDesktop Mouse2 :WorkspaceMenu
|
|
||||||
OnDesktop Mouse3 :RootMenu
|
|
||||||
|
|
||||||
# scroll on the desktop to change workspaces
|
|
||||||
#OnDesktop Mouse4 :PrevWorkspace
|
|
||||||
#OnDesktop Mouse5 :NextWorkspace
|
|
||||||
|
|
||||||
# scroll on the toolbar to change current window
|
|
||||||
#OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no)
|
|
||||||
#OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no)
|
|
||||||
|
|
||||||
# alt + left/right click to move/resize a window
|
|
||||||
OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}
|
|
||||||
OnWindowBorder Move1 :StartMoving
|
|
||||||
|
|
||||||
OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner}
|
|
||||||
OnLeftGrip Move1 :StartResizing bottomleft
|
|
||||||
OnRightGrip Move1 :StartResizing bottomright
|
|
||||||
|
|
||||||
# alt + middle click to lower the window
|
|
||||||
OnWindow Mod1 Mouse2 :Lower
|
|
||||||
|
|
||||||
# control-click a window's titlebar and drag to attach windows
|
|
||||||
OnTitlebar Control Mouse1 :StartTabbing
|
|
||||||
|
|
||||||
# double click on the titlebar to shade
|
|
||||||
OnTitlebar Double Mouse1 :Maximize
|
|
||||||
|
|
||||||
# left click on the titlebar to move the window
|
|
||||||
OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab} {StartMoving}
|
|
||||||
OnTitlebar Move1 :StartMoving
|
|
||||||
|
|
||||||
# middle click on the titlebar to lower
|
|
||||||
OnTitlebar Mouse2 :Lower
|
|
||||||
|
|
||||||
# right click on the titlebar for a menu of options
|
|
||||||
OnTitlebar Mouse3 :WindowMenu
|
|
||||||
|
|
||||||
# alt-tab
|
|
||||||
Mod1 Tab :NextWindow {groups} (workspace=[current])
|
|
||||||
Mod1 Shift Tab :PrevWindow {groups} (workspace=[current])
|
|
||||||
|
|
||||||
# cycle through tabs in the current window
|
|
||||||
Mod4 Tab :NextTab
|
|
||||||
Mod4 Shift Tab :PrevTab
|
|
||||||
|
|
||||||
# go to a specific tab in the current window
|
|
||||||
Mod4 1 :Tab 1
|
|
||||||
Mod4 2 :Tab 2
|
|
||||||
Mod4 3 :Tab 3
|
|
||||||
Mod4 4 :Tab 4
|
|
||||||
Mod4 5 :Tab 5
|
|
||||||
Mod4 6 :Tab 6
|
|
||||||
Mod4 7 :Tab 7
|
|
||||||
Mod4 8 :Tab 8
|
|
||||||
Mod4 9 :Tab 9
|
|
||||||
|
|
||||||
# open a terminal
|
|
||||||
Mod1 F1 :Exec xterm
|
|
||||||
|
|
||||||
# open a dialog to run programs
|
|
||||||
Mod1 F2 :Exec fbappselect
|
|
||||||
|
|
||||||
# volume settings, using common keycodes
|
|
||||||
# if these don't work, use xev to find out your real keycodes
|
|
||||||
176 :Exec amixer sset Master,0 1+
|
|
||||||
174 :Exec amixer sset Master,0 1-
|
|
||||||
160 :Exec amixer sset Master,0 toggle
|
|
||||||
|
|
||||||
# current window commands
|
|
||||||
Mod1 F4 :Close
|
|
||||||
Mod1 F5 :Kill
|
|
||||||
Mod1 F9 :Minimize
|
|
||||||
Mod1 F10 :Maximize
|
|
||||||
Mod1 F11 :Fullscreen
|
|
||||||
|
|
||||||
# open the window menu
|
|
||||||
Mod1 space :WindowMenu
|
|
||||||
|
|
||||||
# exit fluxbox
|
|
||||||
Control Mod1 Delete :Exit
|
|
||||||
|
|
||||||
# change to previous/next workspace
|
|
||||||
Control Mod1 Left :PrevWorkspace
|
|
||||||
Control Mod1 Right :NextWorkspace
|
|
||||||
|
|
||||||
# send the current window to previous/next workspace
|
|
||||||
Mod4 Left :SendToPrevWorkspace
|
|
||||||
Mod4 Right :SendToNextWorkspace
|
|
||||||
|
|
||||||
# send the current window and follow it to previous/next workspace
|
|
||||||
Control Mod4 Left :TakeToPrevWorkspace
|
|
||||||
Control Mod4 Right :TakeToNextWorkspace
|
|
||||||
|
|
||||||
# change to a specific workspace
|
|
||||||
Control F1 :Workspace 1
|
|
||||||
Control F2 :Workspace 2
|
|
||||||
Control F3 :Workspace 3
|
|
||||||
Control F4 :Workspace 4
|
|
||||||
Control F5 :Workspace 5
|
|
||||||
Control F6 :Workspace 6
|
|
||||||
Control F7 :Workspace 7
|
|
||||||
Control F8 :Workspace 8
|
|
||||||
Control F9 :Workspace 9
|
|
||||||
Control F10 :Workspace 10
|
|
||||||
Control F11 :Workspace 11
|
|
||||||
Control F12 :Workspace 12
|
|
||||||
|
|
||||||
# send the current window to a specific workspace
|
|
||||||
Mod4 F1 :SendToWorkspace 1
|
|
||||||
Mod4 F2 :SendToWorkspace 2
|
|
||||||
Mod4 F3 :SendToWorkspace 3
|
|
||||||
Mod4 F4 :SendToWorkspace 4
|
|
||||||
Mod4 F5 :SendToWorkspace 5
|
|
||||||
Mod4 F6 :SendToWorkspace 6
|
|
||||||
Mod4 F7 :SendToWorkspace 7
|
|
||||||
Mod4 F8 :SendToWorkspace 8
|
|
||||||
Mod4 F9 :SendToWorkspace 9
|
|
||||||
Mod4 F10 :SendToWorkspace 10
|
|
||||||
Mod4 F11 :SendToWorkspace 11
|
|
||||||
Mod4 F12 :SendToWorkspace 12
|
|
||||||
|
|
||||||
# send the current window and change to a specific workspace
|
|
||||||
Control Mod4 F1 :TakeToWorkspace 1
|
|
||||||
Control Mod4 F2 :TakeToWorkspace 2
|
|
||||||
Control Mod4 F3 :TakeToWorkspace 3
|
|
||||||
Control Mod4 F4 :TakeToWorkspace 4
|
|
||||||
Control Mod4 F5 :TakeToWorkspace 5
|
|
||||||
Control Mod4 F6 :TakeToWorkspace 6
|
|
||||||
Control Mod4 F7 :TakeToWorkspace 7
|
|
||||||
Control Mod4 F8 :TakeToWorkspace 8
|
|
||||||
Control Mod4 F9 :TakeToWorkspace 9
|
|
||||||
Control Mod4 F10 :TakeToWorkspace 10
|
|
||||||
Control Mod4 F11 :TakeToWorkspace 11
|
|
||||||
Control Mod4 F12 :TakeToWorkspace 12
|
|
||||||
|
|
||||||
Print :Exec fbprintscreen
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
fbsetroot|-foreground #7790aa -solid #7790aa|style|:0.0
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
[begin] (Desktop menu)
|
|
||||||
[exec] (Terminal) { fbstartupnotify && xterm -ls }
|
|
||||||
[exec] (File Manager) { fbstartupnotify && pcmanfm }
|
|
||||||
[exec] (Web Browser) { fbstartupnotify && fbliveapp chromium }
|
|
||||||
[exec] (Text Editor) { fbstartupnotify && leafpad }
|
|
||||||
[exec] (Calculator) { fbstartupnotify && qalculate }
|
|
||||||
[exec] (Network Manager) { fbstartupnotify && wicd-manager }
|
|
||||||
[exec] (Run) { fbappselect }
|
|
||||||
[separator]
|
|
||||||
[workspaces] (Workspaces ...)
|
|
||||||
[submenu] (Screen resolution ...) {}
|
|
||||||
[include] (~/.fluxbox/menu_resolution)
|
|
||||||
[end]
|
|
||||||
[submenu] (Keyboard layout ...) {}
|
|
||||||
[exec] (Czech) { fbsetkb cz } </usr/share/icons/locolor/16x16/flags/flag_czech_republic.png>
|
|
||||||
[exec] (English) { fbsetkb us } </usr/share/icons/locolor/16x16/flags/flag_usa.png>
|
|
||||||
[exec] (French) { fbsetkb fr } </usr/share/icons/locolor/16x16/flags/flag_france.png>
|
|
||||||
[exec] (German) { fbsetkb de } </usr/share/icons/locolor/16x16/flags/flag_germany.png>
|
|
||||||
[exec] (Italian) { fbsetkb it } </usr/share/icons/locolor/16x16/flags/flag_italy.png>
|
|
||||||
[exec] (Polish) { fbsetkb pl } </usr/share/icons/locolor/16x16/flags/flag_poland.png>
|
|
||||||
[exec] (Portuguese) { fbsetkb pt } </usr/share/icons/locolor/16x16/flags/flag_portugal.png>
|
|
||||||
[exec] (Russian) { fbsetkb ru } </usr/share/icons/locolor/16x16/flags/flag_russia.png>
|
|
||||||
[exec] (Slovak) { fbsetkb sk } </usr/share/icons/locolor/16x16/flags/flag_slovakia.png>
|
|
||||||
[exec] (Spanish) { fbsetkb es } </usr/share/icons/locolor/16x16/flags/flag_spain.png>
|
|
||||||
[exec] (Ukrainian) { fbsetkb ua } </usr/share/icons/locolor/16x16/flags/flag_ukraine.png>
|
|
||||||
[submenu] (Other ...) {}
|
|
||||||
[exec] (Afghani) { fbsetkb af }
|
|
||||||
[exec] (Albanian) { fbsetkb al }
|
|
||||||
[exec] (Arabic [Morocco]) { fbsetkb ma }
|
|
||||||
[exec] (Arabic) { fbsetkb ara }
|
|
||||||
[exec] (Armenian) { fbsetkb am }
|
|
||||||
[exec] (Azerbaijani) { fbsetkb az }
|
|
||||||
[exec] (Belarusian) { fbsetkb by }
|
|
||||||
[exec] (Belgian) { fbsetkb be }
|
|
||||||
[exec] (Berber [Algeria]) { fbsetkb dz }
|
|
||||||
[exec] (Bosnian) { fbsetkb ba }
|
|
||||||
[exec] (Brasil) { fbsetkb br }
|
|
||||||
[exec] (Bulgarian) { fbsetkb bg }
|
|
||||||
[exec] (Croatian) { fbsetkb hr }
|
|
||||||
[exec] (Danish) { fbsetkb dk }
|
|
||||||
[exec] (Dutch) { fbsetkb nl }
|
|
||||||
[exec] (English [Australian]) { fbsetkb au }
|
|
||||||
[exec] (Estonian) { fbsetkb ee }
|
|
||||||
[exec] (Finnish) { fbsetkb fi }
|
|
||||||
[exec] (French [Canada]) { fbsetkb ca }
|
|
||||||
[exec] (German [Austria]) { fbsetkb at }
|
|
||||||
[exec] (German [Switzerland]) { fbsetkb ch }
|
|
||||||
[exec] (Greek) { fbsetkb gr }
|
|
||||||
[exec] (Hebrew) { fbsetkb il }
|
|
||||||
[exec] (Hungarian) { fbsetkb hu }
|
|
||||||
[exec] (Icelandic) { fbsetkb is }
|
|
||||||
[exec] (Indian) { fbsetkb in }
|
|
||||||
[exec] (Iraqi) { fbsetkb iq }
|
|
||||||
[exec] (Irish) { fbsetkb ie }
|
|
||||||
[exec] (Latvian) { fbsetkb lv }
|
|
||||||
[exec] (Lithuanian) { fbsetkb lt }
|
|
||||||
[exec] (Norwegian) { fbsetkb no }
|
|
||||||
[exec] (Persian) { fbsetkb ir }
|
|
||||||
[exec] (Romanian) { fbsetkb ro }
|
|
||||||
[exec] (Serbian) { fbsetkb rs }
|
|
||||||
[exec] (Slovenian) { fbsetkb si }
|
|
||||||
[exec] (Swedish) { fbsetkb se }
|
|
||||||
[exec] (Turkish) { fbsetkb tr }
|
|
||||||
[end]
|
|
||||||
[end]
|
|
||||||
[exec] (Exit / Logout) { fblogout }
|
|
||||||
|
|
||||||
[end]
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
! The following line will prevent styles from setting the background.
|
|
||||||
! background: none
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# fluxbox startup-script:
|
|
||||||
#
|
|
||||||
# Lines starting with a '#' are ignored.
|
|
||||||
|
|
||||||
# Change your keymap:
|
|
||||||
xmodmap "/root/.Xmodmap"
|
|
||||||
|
|
||||||
# merge xresource settings
|
|
||||||
xrdb -merge ~/.Xresources
|
|
||||||
|
|
||||||
# set keyboard layout
|
|
||||||
fbsetkb $(cat ~/.fluxbox/kblayout)
|
|
||||||
|
|
||||||
# setup bookmarks for file manager
|
|
||||||
gtk-bookmarks-update
|
|
||||||
|
|
||||||
# Share common directories with guest user. This is necessary
|
|
||||||
# because some apps like chromium must be running under guest
|
|
||||||
for dir in Desktop Documents Downloads Music Pictures Public Templates Videos; do
|
|
||||||
if ! mountpoint /root/$dir; then
|
|
||||||
mount --bind /home/guest/$dir /root/$dir
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# set background color and big wait mouse cursor
|
|
||||||
xsetroot -solid '#111111'
|
|
||||||
xsetroot -xcf /usr/share/icons/breeze_cursors/cursors/watch 37
|
|
||||||
|
|
||||||
# disable screen blanking
|
|
||||||
xset s off
|
|
||||||
xset -dpms
|
|
||||||
|
|
||||||
# volume icon in system tray. Can fail if no soundcard is detected
|
|
||||||
volumeicon &
|
|
||||||
|
|
||||||
# preload compton and fluxbox to cache
|
|
||||||
(compton --help; fluxbox --help) >/dev/null 2>&1
|
|
||||||
|
|
||||||
# Keep black screen for first second while the sound plays.
|
|
||||||
# This slows startup a little, but it is nicer effect.
|
|
||||||
SND=/usr/share/sounds/startup.wav
|
|
||||||
if [ -r $SND ]; then
|
|
||||||
cat $SND > /dev/null # preload
|
|
||||||
aplay $SND &
|
|
||||||
sleep 1 &
|
|
||||||
SOUNDPID=$!
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Debian-local change:
|
|
||||||
# - fbautostart has been added with a quick hack to check to see if it
|
|
||||||
# exists. If it does, we'll start it up by default.
|
|
||||||
which fbautostart > /dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
fbautostart
|
|
||||||
fi
|
|
||||||
|
|
||||||
# We need to postpone compton after fluxbox starts, else it won't set
|
|
||||||
# the transparency of toolbar properly... So we check the fehbg file,
|
|
||||||
# which is created by fluxbox at the phase when it sets background.
|
|
||||||
# Once the file exist, fluxbox-toolbar is already started
|
|
||||||
|
|
||||||
SIGNAL1=~/.fehbg
|
|
||||||
SIGNAL2=~/.fehbg2
|
|
||||||
|
|
||||||
rm -f $SIGNAL1 2>/dev/null
|
|
||||||
rm -f $SIGNAL2 2>/dev/null
|
|
||||||
|
|
||||||
(
|
|
||||||
while [ ! -e $SIGNAL1 ]; do
|
|
||||||
sleep 0.1
|
|
||||||
done
|
|
||||||
touch $SIGNAL2
|
|
||||||
|
|
||||||
(sleep 1; (echo; sleep 10; echo :quit) | xlunch --window --xposition 20 --yposition -30 \
|
|
||||||
--width 195 --height 53 --noscroll --noprompt --backgroundcolor ffffff00 \
|
|
||||||
--multiple --desktop --button "/usr/share/fluxbox/styles/Slax/pixmaps/start-here.png;;0,0;fbappselect" & ) &
|
|
||||||
|
|
||||||
exec compton --sw-opti -e 0.9 --shadow-exclude 'class_g="xlunch-windowed"' --fade-exclude 'role*="fluxbox-toolbar"' --opacity-rule '70:role*="fluxbox-toolbar"' --no-fading-destroyed-argb -D 5 -c -f -l -2 -t -2 -r 0 -o 1 -z --shadow-exclude 'bounding_shaped'
|
|
||||||
) &
|
|
||||||
|
|
||||||
# We want to run systrayicon only after the volumeicon is started
|
|
||||||
# So we have to wait until it is visible to xwinfo
|
|
||||||
# We also wait after background is set and compton is started
|
|
||||||
(
|
|
||||||
while [ ! -e $SIGNAL2 ]; do
|
|
||||||
sleep 0.1
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f $SIGNAL2
|
|
||||||
|
|
||||||
while ! xwininfo -name volumeicon >/dev/null 2>&1 && pgrep volumeicon >/dev/null 2>&1; do
|
|
||||||
sleep 0.1
|
|
||||||
done
|
|
||||||
|
|
||||||
exec systrayicon --command fblogout --iconfile /usr/share/icons/locolor/16x16/actions/system-shutdown-symbolic.png
|
|
||||||
) &
|
|
||||||
|
|
||||||
# gen screen resolutions to fluxbox menu
|
|
||||||
xrandr 2>/dev/null | fgrep x | fgrep . | sort -n | tr -s " " | cut -d " " -f 2 \
|
|
||||||
| sed -r "s:(.*):[exec] (\\1) {fbscreensize \\1}:" > ~/.fluxbox/menu_resolution
|
|
||||||
|
|
||||||
# In all cases, wait for the sound sleeper.
|
|
||||||
# If startup took longer (sound completed already), no extra wait
|
|
||||||
wait $SOUNDPID
|
|
||||||
|
|
||||||
# And last but not least we start fluxbox.
|
|
||||||
# Because it is the last app you have to run it with ''exec'' before it.
|
|
||||||
|
|
||||||
exec fluxbox
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
[begin]
|
|
||||||
[shade]
|
|
||||||
[stick]
|
|
||||||
[maximize]
|
|
||||||
[iconify]
|
|
||||||
[raise]
|
|
||||||
[lower]
|
|
||||||
[settitledialog]
|
|
||||||
[sendto]
|
|
||||||
[layer]
|
|
||||||
[alpha]
|
|
||||||
[extramenus]
|
|
||||||
[separator]
|
|
||||||
[close]
|
|
||||||
[end]
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
include "/usr/share/themes/MurrinaChrome/gtk-2.0/gtkrc"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
startfluxbox
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
COMMAND=$(
|
|
||||||
xlunch_genquick 64 --desktop | \
|
|
||||||
xlunch --border 7% --sideborder 10% --borderratio 100 --sideborderratio 50 \
|
|
||||||
--background /usr/share/wallpapers/slax_wallpaper.jpg --font DejaVuSans/11 \
|
|
||||||
--voidclickterminate --iconpadding 40 --textpadding 10 \
|
|
||||||
--leastmargin 6 --hidemissing --iconsize 64 \
|
|
||||||
--highlight /usr/share/icons/hicolor/128x128/apps/xlunch_highlight.png \
|
|
||||||
--outputonly
|
|
||||||
)
|
|
||||||
|
|
||||||
if [ "$COMMAND" = "" ]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
fbstartupnotify
|
|
||||||
|
|
||||||
# if command is a .desktop file, parse it
|
|
||||||
if [[ "$COMMAND" =~ \.desktop ]]; then
|
|
||||||
NoTerm="$(cat "$COMMAND" | grep Terminal\\s*= | grep -i "Terminal\\s*=\\s*false")"
|
|
||||||
COMMAND="$(cat "$COMMAND" | grep Exec\\s*= | head -n 1 | sed -r s/.*=// | sed -r "s/%[^%]+//g")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmd="$(echo $COMMAND | sed -r "s/\\s.*//")"
|
|
||||||
whi="$(which $cmd | head -n 1)"
|
|
||||||
Xdep=$(ldd $whi | grep libX11)
|
|
||||||
Ndep=$(ldd $whi | grep libncurses)
|
|
||||||
|
|
||||||
WAIT='echo "--------------------------------------------------"; read -n 1 -s -r -p "Command finished. Press any key to close window..."'
|
|
||||||
if [ "$Ndep" != "" -o "$cmd" = "man" -o "$cmd" = "mc" ]; then
|
|
||||||
WAIT=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$Xdep" = "" -a "$cmd" != "chromium" -a "$cmd" != "wicd-manager" -a "$cmd" != "fbliveapp" -a "$NoTerm" = "" ]; then
|
|
||||||
exec xterm -ls -e bash --login -c -- "echo $USER@$HOSTNAME:$PWD# '$COMMAND'; $COMMAND; $WAIT"
|
|
||||||
else
|
|
||||||
exec $COMMAND
|
|
||||||
fi
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ "$1" = "votecoin" ]; then
|
|
||||||
NAME="VoteCoin Wallet"
|
|
||||||
ABOUT="VoteCoin Wallet is a crypto currency wallet,
|
|
||||||
forked from ZCash, which itslef forked from Bitcoin.
|
|
||||||
It supports fully anonymous transactions and voting.
|
|
||||||
Receive free 10 VOT coins for installing the wallet.
|
|
||||||
In the future, VoteCoin will be used for decision
|
|
||||||
funding in Slax."
|
|
||||||
TMP="/tmp/votecoin.tar.gz"
|
|
||||||
EXECUTABLE="/opt/VoteCoin Wallet-linux-x64/VoteCoin Wallet"
|
|
||||||
INSTALL="wget -O $TMP 'https://votecoin.site/download.php?os=linux' && tar -xf $TMP -C /opt && rm -f $TMP && apt install --yes libxss1 libgconf-2-4 libnss3"
|
|
||||||
POSTINSTALL=""
|
|
||||||
ONLY64=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "vlc" ]; then
|
|
||||||
NAME="VLC Video Player"
|
|
||||||
ABOUT="VLC Video Player is a free and open source multimedia player
|
|
||||||
and framework that plays most multimedia files as well as DVDs,
|
|
||||||
Audio CDs, CVDs, and various streaming protocols."
|
|
||||||
EXECUTABLE="/usr/bin/vlc"
|
|
||||||
INSTALL="apt install --yes vlc"
|
|
||||||
POSTINSTALL="rm /usr/share/applications/vlc.desktop; mkdir /home/guest/.config/vlc; echo '[qt4]
|
|
||||||
qt-privacy-ask=0' > /home/guest/.config/vlc/vlcrc;"
|
|
||||||
GUEST=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "chromium" ]; then
|
|
||||||
NAME="Chromium Web Browser"
|
|
||||||
ABOUT="Chromium is a free and open source version of
|
|
||||||
the famous Chrome browser, developed by Google."
|
|
||||||
EXECUTABLE="/usr/bin/chromium"
|
|
||||||
INSTALL="apt install --yes chromium chromium-sandbox"
|
|
||||||
POSTINSTALL="rm -f /usr/share/applications/chromium.desktop"
|
|
||||||
GUEST=true
|
|
||||||
fi
|
|
||||||
|
|
||||||
shift
|
|
||||||
|
|
||||||
# ------------------------------------------------
|
|
||||||
# do not touch anything below this line
|
|
||||||
# ------------------------------------------------
|
|
||||||
|
|
||||||
if [ "$ABOUT" != "" ]; then
|
|
||||||
ABOUT="$ABOUT
|
|
||||||
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$EXECUTABLE" = "" ]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -f "$EXECUTABLE" ]; then
|
|
||||||
|
|
||||||
if [ $(uname -m) != 'x86_64' -a "$ONLY64" = "true" ]; then
|
|
||||||
gtkdialog -i /usr/share/icons/gnome/16x16/status/dialog-warning.png -t Error -m "$NAME only works in 64bit version of Slax" -y OK
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if gtkdialog -i /usr/share/icons/gnome/16x16/status/dialog-question.png -t Question -m "$ABOUT$NAME is not yet installed.
|
|
||||||
Do you like to download and install it now?" -y Yes -n No; then
|
|
||||||
xterm -ls -e bash --login -c -- "$INSTALL; $POSTINSTALL"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f "$EXECUTABLE" ]; then
|
|
||||||
|
|
||||||
fbstartupnotify
|
|
||||||
|
|
||||||
if [ "$GUEST" = "true" -a "$EUID" -eq 0 ]; then
|
|
||||||
xhost + >/dev/null 2>/dev/null
|
|
||||||
exec su -c "$EXECUTABLE "$@"" guest
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$EXECUTABLE" "$@"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
COMMAND=$(
|
|
||||||
xlunch --input /etc/xlunch/logout.dsv --noprompt --border auto --sideborder auto --columns 3 --rows 1 \
|
|
||||||
--background /usr/share/wallpapers/slax_wallpaper.jpg --font DejaVuSans/11 \
|
|
||||||
--voidclickterminate --iconpadding 30 --textpadding 10 \
|
|
||||||
--leastmargin 10 --hidemissing --iconsize 128 \
|
|
||||||
--highlight /usr/share/icons/hicolor/128x128/apps/xlunch_highlight.png \
|
|
||||||
--outputonly
|
|
||||||
)
|
|
||||||
|
|
||||||
SND=/usr/share/sounds/shutdown.wav
|
|
||||||
|
|
||||||
if [ "$COMMAND" != "" -a -r $SND ]; then
|
|
||||||
# blank desktop with smooth effect (if compton still running)
|
|
||||||
xlunch --noprompt --input /dev/null --bc 111111ff &
|
|
||||||
# play shutdown sound
|
|
||||||
aplay $SND
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$COMMAND" = "logout" ]; then
|
|
||||||
killall Xorg
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$COMMAND" = "restart" ]; then
|
|
||||||
reboot
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$COMMAND" = "shutdown" ]; then
|
|
||||||
poweroff
|
|
||||||
fi
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
PICTURES=~/Pictures
|
|
||||||
mkdir -p $PICTURES
|
|
||||||
cd $PICTURES
|
|
||||||
|
|
||||||
# make screenshot
|
|
||||||
SCREENSHOT=$(scrot -e 'echo $f')
|
|
||||||
|
|
||||||
if [ "$SCREENSHOT" = "" ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# open screenshot in 2/3 window
|
|
||||||
read W H X <<< $(xrandr 2>/dev/null | fgrep '*' | tr -s " " | tr "x" " ")
|
|
||||||
W=$(($W*2/3))
|
|
||||||
H=$(($H*2/3))
|
|
||||||
exec feh --geometry $W"x"$H $SCREENSHOT
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
SIGNAL=~/.fehbg
|
|
||||||
rm -f $SIGNAL
|
|
||||||
|
|
||||||
OUTPUT=$(xrandr 2>/dev/null | grep -iv disconnected | grep -i 'connected' | head -n 1 | cut -d " " -f 1)
|
|
||||||
MODE=$1
|
|
||||||
|
|
||||||
xrandr --output $OUTPUT --mode $MODE -s $MODE
|
|
||||||
|
|
||||||
while [ -e $SIGNAL ]; do
|
|
||||||
sleep 0.1
|
|
||||||
done
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
killall -SIGUSR1 compton
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
setxkbmap $1
|
|
||||||
echo $1 > ~/.fluxbox/kblayout
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
CURSORSDIR=/usr/share/icons/breeze_cursors/cursors/
|
|
||||||
SIZE=16
|
|
||||||
|
|
||||||
# Set cursor to wait. As soon as new window is detected, change cursor back
|
|
||||||
xsetroot -xcf $CURSORSDIR/left_ptr_watch $SIZE
|
|
||||||
export WINDOWS="$(wmctrl -l)"
|
|
||||||
|
|
||||||
(
|
|
||||||
sleep 0.2
|
|
||||||
until diff <(echo "$WINDOWS") <(wmctrl -l) | egrep -q "^[>]"; do
|
|
||||||
sleep 0.5
|
|
||||||
done
|
|
||||||
xsetroot -xcf $CURSORSDIR/left_ptr $SIZE
|
|
||||||
) &
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Icon=terminal
|
|
||||||
Name=Terminal
|
|
||||||
Exec=xterm -ls
|
|
||||||
Terminal=false
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=Web Browser
|
|
||||||
GenericName=Web Browser
|
|
||||||
Exec=fbliveapp chromium %U
|
|
||||||
Terminal=false
|
|
||||||
X-MultipleArgs=false
|
|
||||||
Type=Application
|
|
||||||
Icon=chromium.png
|
|
||||||
Categories=Network;WebBrowser;
|
|
||||||
MimeType=audio/*;image/*;video/*;application/pdf;application/x-pdf;text/html;text/xml;application/xhtml_xml;application/x-mimearchive;x-scheme-handler/http;x-scheme-handler/https;
|
|
||||||
StartupWMClass=chromium
|
|
||||||
StartupNotify=true
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Version=1.0
|
|
||||||
Name=Image viewer
|
|
||||||
GenericName=Image viewer
|
|
||||||
Exec=feh %U
|
|
||||||
Terminal=false
|
|
||||||
X-MultipleArgs=false
|
|
||||||
Type=Application
|
|
||||||
Icon=none.png
|
|
||||||
Categories=ImageViewer;
|
|
||||||
MimeType=image/*;
|
|
||||||
StartupWMClass=feh
|
|
||||||
StartupNotify=true
|
|
||||||
Hidden=true
|
|
||||||
|
|
@ -1,132 +0,0 @@
|
||||||
[Default Applications]
|
|
||||||
application/pdf=chromium.desktop;
|
|
||||||
application/x-pdf=chromium.desktop;
|
|
||||||
audio/3gpp=chromium.desktop;
|
|
||||||
audio/ac3=chromium.desktop;
|
|
||||||
audio/flac=chromium.desktop;
|
|
||||||
audio/mp4=chromium.desktop;
|
|
||||||
audio/mpeg=chromium.desktop;
|
|
||||||
audio/mpegurl=chromium.desktop;
|
|
||||||
audio/ogg=chromium.desktop;
|
|
||||||
audio/x-flac=chromium.desktop;
|
|
||||||
audio/x-gsm=chromium.desktop;
|
|
||||||
audio/x-it=chromium.desktop;
|
|
||||||
audio/x-m4a=chromium.desktop;
|
|
||||||
audio/x-matroska=chromium.desktop;
|
|
||||||
audio/x-mod=chromium.desktop;
|
|
||||||
audio/x-mp3=chromium.desktop;
|
|
||||||
audio/x-mpeg=chromium.desktop;
|
|
||||||
audio/x-mpegurl=chromium.desktop;
|
|
||||||
audio/x-pn-wav=chromium.desktop;;
|
|
||||||
audio/x-tta=chromium.desktop;
|
|
||||||
audio/x-vorbis=chromium.desktop;
|
|
||||||
audio/x-vorbis+ogg=chromium.desktop;
|
|
||||||
audio/x-wav=chromium.desktop;
|
|
||||||
audio/x-wavpack=chromium.desktop;
|
|
||||||
audio/x-xm=chromium.desktop;
|
|
||||||
application/ogg=chromium.desktop;
|
|
||||||
application/x-extension-m4a=chromium.desktop;
|
|
||||||
application/x-extension-mp4=chromium.desktop;
|
|
||||||
application/x-flac=chromium.desktop;
|
|
||||||
application/x-flash-video=chromium.desktop;
|
|
||||||
application/x-ogg=chromium.desktop;
|
|
||||||
image/bmp=feh.desktop;
|
|
||||||
image/gif=feh.desktop;
|
|
||||||
image/jpeg=feh.desktop;
|
|
||||||
image/jpg=feh.desktop;
|
|
||||||
image/pjpeg=feh.desktop;
|
|
||||||
image/png=feh.desktop;
|
|
||||||
image/svg+xml=chromium.desktop;
|
|
||||||
image/svg+xml-compressed=chromium.desktop;
|
|
||||||
image/x-bmp=feh.desktop;
|
|
||||||
image/x-gray=chromium.desktop;
|
|
||||||
image/x-icb=chromium.desktop;
|
|
||||||
image/x-ico=chromium.desktop;
|
|
||||||
image/x-pcx=chromium.desktop;
|
|
||||||
image/x-png=feh.desktop;
|
|
||||||
image/x-portable-anymap=chromium.desktop;
|
|
||||||
image/x-portable-bitmap=chromium.desktop;
|
|
||||||
image/x-portable-graymap=chromium.desktop;
|
|
||||||
image/x-portable-pixmap=chromium.desktop;
|
|
||||||
image/x-xbitmap=chromium.desktop;
|
|
||||||
image/x-xpixmap=chromium.desktop;
|
|
||||||
image/vnd.wap.wbmp=chromium.desktop;
|
|
||||||
image/x-fits=gimp.desktop
|
|
||||||
image/x-icon=gimp.desktop
|
|
||||||
image/x-sun-raster=gimp.desktop
|
|
||||||
image/x-tga=gimp.desktop
|
|
||||||
image/x-xcf=gimp.desktop
|
|
||||||
image/x-xwindowdump=gimp.desktop
|
|
||||||
video/3gpp=chromium.desktop;
|
|
||||||
video/dv=chromium.desktop;
|
|
||||||
video/fli=chromium.desktop;
|
|
||||||
video/flv=chromium.desktop;
|
|
||||||
video/mp2t=chromium.desktop;
|
|
||||||
video/mp4=chromium.desktop;
|
|
||||||
video/mp4v-es=chromium.desktop;
|
|
||||||
video/mpeg=chromium.desktop;
|
|
||||||
video/msvideo=chromium.desktop;
|
|
||||||
video/ogg=chromium.desktop;
|
|
||||||
video/quicktime=chromium.desktop;
|
|
||||||
video/vivo=chromium.desktop;
|
|
||||||
video/vnd.divx=chromium.desktop;
|
|
||||||
video/vnd.rn-realvideo=chromium.desktop;
|
|
||||||
video/vnd.vivo=chromium.desktop;
|
|
||||||
video/webm=chromium.desktop;
|
|
||||||
video/x-anim=chromium.desktop;
|
|
||||||
video/x-avi=chromium.desktop;
|
|
||||||
video/x-flc=chromium.desktop;
|
|
||||||
video/x-fli=chromium.desktop;
|
|
||||||
video/x-flic=chromium.desktop;
|
|
||||||
video/x-flv=chromium.desktop;
|
|
||||||
video/x-m4v=chromium.desktop;
|
|
||||||
video/x-matroska=chromium.desktop;
|
|
||||||
video/x-mpeg=chromium.desktop;
|
|
||||||
video/x-ogm+ogg=chromium.desktop;
|
|
||||||
video/x-theora+ogg=chromium.desktop;
|
|
||||||
application/x-flash-video=chromium.desktop;
|
|
||||||
text/plain=leafpad.desktop;
|
|
||||||
text/css=leafpad.desktop;
|
|
||||||
text/javascript=leafpad.desktop;
|
|
||||||
text/mathml=leafpad.desktop;
|
|
||||||
text/x-c++hdr=leafpad.desktop;
|
|
||||||
text/x-c++src=leafpad.desktop;
|
|
||||||
text/x-csrc=leafpad.desktop;
|
|
||||||
text/x-chdr=leafpad.desktop;
|
|
||||||
text/x-dtd=leafpad.desktop;
|
|
||||||
text/x-java=leafpad.desktop;
|
|
||||||
text/x-javascript=leafpad.desktop;
|
|
||||||
text/x-makefile=leafpad.desktop;
|
|
||||||
text/x-moc=leafpad.desktop;
|
|
||||||
text/x-pascal=leafpad.desktop;
|
|
||||||
text/x-patch=leafpad.desktop;
|
|
||||||
text/x-perl=leafpad.desktop;
|
|
||||||
text/x-php=leafpad.desktop;
|
|
||||||
text/x-python=leafpad.desktop;
|
|
||||||
text/x-sql=leafpad.desktop;
|
|
||||||
text/x-tcl=leafpad.desktop;
|
|
||||||
text/x-tex=leafpad.desktop;
|
|
||||||
text/xml=leafpad.desktop;
|
|
||||||
application/javascript=leafpad.desktop;
|
|
||||||
application/x-cgi=leafpad.desktop;
|
|
||||||
application/x-javascript=leafpad.desktop;
|
|
||||||
application/x-perl=leafpad.desktop;
|
|
||||||
application/x-php=leafpad.desktop;
|
|
||||||
application/x-python=leafpad.desktop;
|
|
||||||
application/x-shellscript=leafpad.desktop;
|
|
||||||
application/xml=leafpad.desktop;
|
|
||||||
application/xml-dtd=leafpad.desktop;
|
|
||||||
application/x-bzip=xarchiver.desktop;
|
|
||||||
application/x-bzip-compressed-tar=xarchiver.desktop;
|
|
||||||
application/x-gzip=xarchiver.desktop;
|
|
||||||
application/x-tar=xarchiver.desktop;
|
|
||||||
application/x-zip=xarchiver.desktop;
|
|
||||||
application/x-zip-compressed=xarchiver.desktop;
|
|
||||||
application/zip=xarchiver.desktop;
|
|
||||||
application/x-compressed-tar=xarchiver.desktop;
|
|
||||||
application/x-bzip2=xarchiver.desktop;
|
|
||||||
application/x-bzip2-compressed-tar=xarchiver.desktop;
|
|
||||||
application/x-lzma-compressed-tar=xarchiver.desktop;
|
|
||||||
application/x-lzma=xarchiver.desktop;
|
|
||||||
application/x-xz=xarchiver.desktop;
|
|
||||||
application/x-xz-compressed-tar=xarchiver.desktop;
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Icon=videoplayer
|
|
||||||
Name=Video Player
|
|
||||||
Exec=fbliveapp vlc
|
|
||||||
Terminal=false
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Icon=votecoin
|
|
||||||
Name=VoteCoin Wallet
|
|
||||||
Exec=fbliveapp votecoin
|
|
||||||
Terminal=false
|
|
||||||
Hidden=true
|
|
||||||
|
Before Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 197 B |
|
Before Width: | Height: | Size: 196 B |
|
Before Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 175 B |
|
Before Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 152 B |
|
Before Width: | Height: | Size: 8.1 KiB |
|
|
@ -1,114 +0,0 @@
|
||||||
! Slax fluxbox theme
|
|
||||||
! (c) Tomas Matejicek <www.slax.org>
|
|
||||||
|
|
||||||
! common settings
|
|
||||||
*font: Bitstream Vera Sans-9
|
|
||||||
|
|
||||||
background: fullscreen
|
|
||||||
background.pixmap: /usr/share/wallpapers/slax_wallpaper.jpg
|
|
||||||
|
|
||||||
toolbar.justify: left
|
|
||||||
toolbar.clock.justify: right
|
|
||||||
window.justify: center
|
|
||||||
menu.title.justify: center
|
|
||||||
menu.frame.justify: left
|
|
||||||
|
|
||||||
! window
|
|
||||||
window.focus.backgroundColor: #63b4fb
|
|
||||||
window.unfocus.backgroundColor: #ebebeb
|
|
||||||
window.focus.borderColor: #63b4fb
|
|
||||||
window.unfocus.borderColor: #ebebeb
|
|
||||||
window.borderWidth: 6
|
|
||||||
window.handleWidth: 0
|
|
||||||
|
|
||||||
! title
|
|
||||||
window.title.height: 18
|
|
||||||
window.title.focus: flat solid
|
|
||||||
window.title.focus.color: #63b4fb
|
|
||||||
window.label.focus: parentrelative
|
|
||||||
window.label.focus.textColor: #282828
|
|
||||||
window.title.unfocus: flat solid
|
|
||||||
window.title.unfocus.color: #ebebeb
|
|
||||||
window.label.unfocus: parentrelative
|
|
||||||
window.label.unfocus.textColor: #282828
|
|
||||||
|
|
||||||
! buttons
|
|
||||||
window.button.focus: flat solid
|
|
||||||
window.button.focus.color: #63b4fb
|
|
||||||
window.button.focus.picColor: #282828
|
|
||||||
window.button.pressed: sunken solid
|
|
||||||
window.button.pressed.color: #63b4fb
|
|
||||||
window.button.pressed.picColor: #000000
|
|
||||||
window.button.unfocus: flat solid
|
|
||||||
window.button.unfocus.color: #ebebeb
|
|
||||||
window.button.unfocus.picColor: #282828
|
|
||||||
|
|
||||||
window.close.pixmap: closefcs.png
|
|
||||||
window.close.unfocus.pixmap: closeunfcs.png
|
|
||||||
window.close.pressed.pixmap: closepr.png
|
|
||||||
window.iconify.pixmap: minfcs.png
|
|
||||||
window.iconify.unfocus.pixmap: minunfcs.png
|
|
||||||
window.iconify.pressed.pixmap: minpr.png
|
|
||||||
window.maximize.pixmap: maxfcs.png
|
|
||||||
window.maximize.unfocus.pixmap: maxunfcs.png
|
|
||||||
window.maximize.pressed.pixmap: maxpr.png
|
|
||||||
|
|
||||||
! taskbar
|
|
||||||
toolbar.height: 18
|
|
||||||
toolbar.bevelWidth: 0
|
|
||||||
toolbar.borderWidth: 3
|
|
||||||
toolbar.borderColor: #222222
|
|
||||||
toolbar: flat solid
|
|
||||||
|
|
||||||
toolbar.color: #222222
|
|
||||||
toolbar.clock: flat solid
|
|
||||||
toolbar.clock.color: #222222
|
|
||||||
toolbar.clock.textColor: white
|
|
||||||
|
|
||||||
toolbar.iconbar.empty: flat
|
|
||||||
toolbar.iconbar.empty.color: #222222
|
|
||||||
|
|
||||||
toolbar.iconbar.focused.borderWidth: 15
|
|
||||||
toolbar.iconbar.focused.borderColor: #222222
|
|
||||||
toolbar.iconbar.focused: flat
|
|
||||||
toolbar.iconbar.focused.color: #dddddd
|
|
||||||
toolbar.iconbar.focused.textColor: #282828
|
|
||||||
toolbar.iconbar.focused.justify: left
|
|
||||||
|
|
||||||
toolbar.iconbar.unfocused.borderWidth: 15
|
|
||||||
toolbar.iconbar.unfocused.borderColor: #222222
|
|
||||||
toolbar.iconbar.unfocused: flat
|
|
||||||
toolbar.iconbar.unfocused.color: #444444
|
|
||||||
toolbar.iconbar.unfocused.textColor: white
|
|
||||||
toolbar.iconbar.unfocused.justify: left
|
|
||||||
|
|
||||||
toolbar.button: flat solid
|
|
||||||
toolbar.button.borderWidth: 13
|
|
||||||
toolbar.button.borderColor: #222222
|
|
||||||
toolbar.button.color: #222222
|
|
||||||
toolbar.button.picColor: #61CA00
|
|
||||||
toolbar.button.pressed: flat solid
|
|
||||||
|
|
||||||
! menu
|
|
||||||
menu.title: flat solid
|
|
||||||
menu.title.color: #63b4fb
|
|
||||||
menu.title.textColor: #282828
|
|
||||||
menu.title.justify: center
|
|
||||||
|
|
||||||
menu.bevelWidth: 4
|
|
||||||
menu.borderWidth: 6
|
|
||||||
menu.borderColor: #63b4fb
|
|
||||||
|
|
||||||
menu.frame: flat solid
|
|
||||||
menu.frame.disableColor: #999999
|
|
||||||
menu.frame.color: #ebebeb
|
|
||||||
menu.frame.textColor: #282828
|
|
||||||
menu.frame.justify: left
|
|
||||||
|
|
||||||
menu.hilite: flat solid
|
|
||||||
menu.hilite.textColor: #ffffff
|
|
||||||
menu.hilite.color: #63b4fb
|
|
||||||
|
|
||||||
menu.bullet: empty
|
|
||||||
menu.bullet.position: right
|
|
||||||
menu.itemHeight: 24
|
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 543 B |
|
Before Width: | Height: | Size: 141 B |
|
|
@ -1,6 +0,0 @@
|
||||||
#define command2_width 16
|
|
||||||
#define command2_height 16
|
|
||||||
static unsigned char command2_bits[] = {
|
|
||||||
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xe7, 0xff, 0xcf, 0xff,
|
|
||||||
0x9f, 0xff, 0x3f, 0xff, 0x3f, 0xff, 0x9f, 0xff, 0xcf, 0xff, 0xe7, 0xc1,
|
|
||||||
0xf7, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
|
||||||
|
Before Width: | Height: | Size: 536 B |