Compare commits

..

No commits in common. "master" and "v1.1" have entirely different histories.
master ... v1.1

502 changed files with 277 additions and 9342 deletions

View File

@ -2,39 +2,25 @@
# 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.
LIVEKITNAME="briq"
# 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-$$

View File

@ -1,5 +0,0 @@
You can pass the following boot parameters:
debug ... start shell prompt several times during live kit startup
from=... load data from given directory (search all drives for it)

View File

@ -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

View File

@ -1,2 +0,0 @@
Source code for precompiled binaries (initramfs/static/*) can be found at
http://ftp.slax.org/Slax-7.x-development/sources/Slax-7.0-sources/busybox-and-ntfs3g/

View File

@ -5,8 +5,7 @@ The Live distro created by Linux Live Kit can be installed
on the following filesystems: on the following filesystems:
* iso9660 (CD) ..... using isolinux * iso9660 (CD) ..... using isolinux
* FAT32 (vfat) ..... using syslinux or extlinux * FAT32 (vfat) ..... using syslinux
* ntfs ............. using syslinux or extlinux
* ext2/3/4,btrfs ... using extlinux * ext2/3/4,btrfs ... using extlinux
* any other fs ..... using lilo * any other fs ..... using lilo

37
README
View File

@ -1,56 +1,27 @@
Linux Live Kit Linux Live Kit v1.0
============== ===================
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
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
of that. Simply go to directory ./tools/ and run isolinux.bin.update ... of that. Simply go to directory ./tools/ and run isolinux.bin.update ...
it will update ./bootfiles/isolinux.bin automatically by downloading it will update ./bootfiles/isolinux.bin automatically by downloading
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.
* 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>

View File

@ -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.

View File

@ -1,10 +0,0 @@
\l
_ ____ _____
| | / __ \\ / ____|
__| |_ __ __ _| | | | (___
/ _` | '_ \\ / _` | | | |\\___ \\
| (_| | | | | (_| | |__| |____) |
\\__,_|_| |_|\\__,_|\\____/|_____/
powered by Briq

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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 "$@"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Binary file not shown.

View File

@ -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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
Set UAC = CreateObject("Shell.Application")
Set args = WScript.Arguments
UAC.ShellExecute args.Item(0), "", "", "runas", 1

View File

@ -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

View File

@ -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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -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/

View File

@ -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

View File

@ -1,3 +0,0 @@
#!/bin/bash
(cd rootcopy && cp --parents -afr * /)

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
/lib/systemd/system/xorg.service

View File

@ -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

View File

@ -1,5 +0,0 @@
[begin] ( Menu )
[exec] (Terminal) { xterm -ls -title Terminal }
[exec] (Web browser) { chromium }
[exit] (Exit)
[end]

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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 };

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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
}
}

View File

@ -1 +0,0 @@
include "/usr/share/themes/MurrinaChrome/gtk-2.0/gtkrc"

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
fbsetroot|-foreground #7790aa -solid #7790aa|style|:0.0

View File

@ -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]

View File

@ -1,2 +0,0 @@
! The following line will prevent styles from setting the background.
! background: none

View File

@ -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

View File

@ -1,15 +0,0 @@
[begin]
[shade]
[stick]
[maximize]
[iconify]
[raise]
[lower]
[settitledialog]
[sendto]
[layer]
[alpha]
[extramenus]
[separator]
[close]
[end]

View File

@ -1 +0,0 @@
include "/usr/share/themes/MurrinaChrome/gtk-2.0/gtkrc"

View File

@ -1 +0,0 @@
startfluxbox

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,4 +0,0 @@
#!/bin/bash
setxkbmap $1
echo $1 > ~/.fluxbox/kblayout

View File

@ -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

View File

@ -1,5 +0,0 @@
[Desktop Entry]
Icon=terminal
Name=Terminal
Exec=xterm -ls
Terminal=false

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -1,5 +0,0 @@
[Desktop Entry]
Icon=videoplayer
Name=Video Player
Exec=fbliveapp vlc
Terminal=false

View File

@ -1,6 +0,0 @@
[Desktop Entry]
Icon=votecoin
Name=VoteCoin Wallet
Exec=fbliveapp votecoin
Terminal=false
Hidden=true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Some files were not shown because too many files have changed in this diff Show More