first attempt for debian10 Slax

master
TomasM 2019-10-19 19:02:17 +00:00
parent 7bca13b9a6
commit 32afaf7f89
224 changed files with 3924 additions and 0 deletions

View File

@ -0,0 +1,34 @@
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

@ -0,0 +1,101 @@
#!/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

@ -0,0 +1,154 @@
#!/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.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,19 @@
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

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

View File

@ -0,0 +1,68 @@
' 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

@ -0,0 +1,42 @@
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.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,26 @@
#!/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
mv -f $INITRAMFS.img $LIVEKITDATA/$LIVEKITNAME/boot/initrfs.img
cp -vf $THIS/bootfiles/* $LIVEKITDATA/$LIVEKITNAME/boot/

View File

@ -0,0 +1,90 @@
#!/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/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

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

View File

@ -0,0 +1,22 @@
#!/bin/bash
apt-get update
apt-get dist-upgrade --yes
# 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
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

@ -0,0 +1,21 @@
#!/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

@ -0,0 +1,42 @@
#!/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

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

View File

@ -0,0 +1,7 @@
[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

@ -0,0 +1,30 @@
! 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

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

View File

@ -0,0 +1,6 @@
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

@ -0,0 +1,79 @@
*.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

@ -0,0 +1,6 @@
#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

@ -0,0 +1,117 @@
#!/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

@ -0,0 +1,97 @@
--- 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

@ -0,0 +1,4 @@
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

@ -0,0 +1,3 @@
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

@ -0,0 +1,38 @@
{
"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

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

View File

@ -0,0 +1,19 @@
[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

@ -0,0 +1,20 @@
[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

@ -0,0 +1,18 @@
[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

@ -0,0 +1,76 @@
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

@ -0,0 +1,139 @@
# 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

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

View File

@ -0,0 +1,68 @@
[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

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

View File

@ -0,0 +1,111 @@
#!/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

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

View File

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

View File

@ -0,0 +1 @@
startfluxbox

View File

@ -0,0 +1,39 @@
#!/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

@ -0,0 +1,83 @@
#!/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"
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

@ -0,0 +1,31 @@
#!/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

@ -0,0 +1,18 @@
#!/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

@ -0,0 +1,17 @@
#!/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

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

View File

@ -0,0 +1,18 @@
#!/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

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

View File

@ -0,0 +1,13 @@
[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

@ -0,0 +1,14 @@
[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

@ -0,0 +1,132 @@
[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

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1,114 @@
! 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.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

View File

@ -0,0 +1,6 @@
#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 };

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

View File

@ -0,0 +1,438 @@
gtk_color_scheme = "fg_color:#000000\nbg_color:#eeeeee\nbase_color:#FFFFFF\ntext_color:#000000\nselected_bg_color:#63b4fb\nselected_fg_color:#FFFFFF\ntooltip_bg_color:#F5F5C9\ntooltip_fg_color:#000000"
# menu delay
#gtk-menu-popup-delay = 0
# icon sizes
#gtk-icon-sizes = "gtk-menu=16,16:\ngtk-button=16,16:\ngtk-dnd=16,16:\npanel-menu=16,16:\npanel=16,16:\ngtk-dialog=16,16:"
# icon sizes (small toolbar)
# gtk-icon-sizes = "gtk-menu=16,16:\ngtk-button=16,16:\ngtk-dnd=16,16:\npanel-menu=16,16:\npanel=16,16:\ngtk-dialog=16,16:\ngtk-small-toolbar=16,16:\ngtk-large-toolbar=16,16:"
style "murrine-default"
{
########
# Style Properties
########
GtkButton ::child-displacement-x = 1
GtkButton ::child-displacement-y = 1
GtkButton ::default-border = { 0, 0, 0, 0 }
GtkButton ::inner-border = { 5, 5, 5, 5 }
GtkCheckButton ::indicator-size = 14
GtkPaned ::handle-size = 6
GtkRange ::trough-border = 0
GtkRange ::slider-width = 15
GtkRange ::stepper-size = 15
GtkScale ::slider-length = 15
GtkScale ::trough-side-details = 0
GtkScrollbar ::min-slider-length = 30
GtkMenuBar ::internal-padding = 1
GtkExpander ::expander-size = 16
GtkToolbar ::internal-padding = 0
GtkTreeView ::expander-size = 14
GtkTreeView ::vertical-separator = 0
GtkMenu ::horizontal-padding = 1
GtkMenu ::vertical-padding = 1
GtkMenuBar ::shadow_type = GTK_SHADOW_NONE
GtkToolbar ::shadow_type = GTK_SHADOW_NONE
# Glow the tasklist by changing the color, instead of overlaying it with a rectangle
#WnckTasklist ::fade-overlay-rect = 0
xthickness = 1
ythickness = 1
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @fg_color
fg[INSENSITIVE] = darker (@bg_color)
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = @bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
base[NORMAL] = @base_color
base[PRELIGHT] = shade (0.95, @bg_color)
base[ACTIVE] = shade (0.88, @selected_bg_color)
base[SELECTED] = shade (0.89, @selected_bg_color)
base[INSENSITIVE] = @bg_color
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[ACTIVE] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[INSENSITIVE] = darker (@bg_color)
engine "murrine"
{
animation = TRUE
colorize_scrollbar = FALSE
contrast = 0.65 # 0.8 for less contrast, more than 1.0 for more contrast on borders
glazestyle = 0 # 0 = flat highlight, 1 = curved highlight, 2 = concave style, 3 = top curved highlight, 4 = beryl highlight
gradient_shades = {1.03,1.0,1.0,0.985}
#gradient_shades = {1.09,1.06,1.04,1.01} # default: {1.1,1.0,1.0,1.1}
highlight_shade = 1.0 # set highlight amount for buttons or widgets
lightborder_shade = 1.06 # sets lightborder amount for buttons or widgets
#lightborderstyle = 0 # 0 = lightborder on top side, 1 = lightborder on all sides
listviewheaderstyle = 1 # 0 = flat, 1 = glassy, 2 = raised
listviewstyle = 1 # 0 = nothing, 1 = dotted
menubaritemstyle = 0 # 0 = menuitem look, 1 = button look
menubarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient, 3 = striped
menuitemstyle = 1 # 0 = flat, 1 = glassy, 2 = striped
menustyle = 0 # 0 = no vertical menu stripe, 1 = display vertical menu stripe
reliefstyle = 0 # 0 = flat, 1 = inset, 2 = shadow
rgba = TRUE # FALSE = disabled, TRUE = enabled
roundness = 0 # 0 = squared, 1 = old default, more will increase roundness
scrollbarstyle = 0 # 0 = nothing, 1 = circles, 2 = handles, 3 = diagonal stripes, 4 = diagonal stripes and handles, 5 = horizontal stripes, 6 = horizontal stripes and handles
sliderstyle = 0 # 0 = nothing added, 1 = handles
stepperstyle = 0 # 0 = standard, 1 = integrated stepper handles, 2 = unknown
toolbarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient
}
}
style "murrine-wide"
{
xthickness = 2
ythickness = 2
bg[SELECTED] = @selected_bg_color
}
style "murrine-wider"
{
xthickness = 3
ythickness = 3
bg[SELECTED] = @selected_bg_color
}
style "murrine-button" = "murrine-wider"
{
bg[NORMAL] = shade (1.04, @bg_color)
bg[PRELIGHT] = shade (1.06, @bg_color)
bg[ACTIVE] = shade (1.02, @bg_color)
bg[INSENSITIVE] = shade (1.0, @bg_color)
engine "murrine" {
contrast = 0.45
}
}
style "murrine-entry" = "murrine-wider"
{
engine "murrine" {
contrast = 0.35
}
}
style "murrine-notebook"
{
xthickness = 2
ythickness = 2
bg[ACTIVE] = shade (0.99, @bg_color)
bg[NORMAL] = shade (1.03, @bg_color)
bg[SELECTED] = @selected_bg_color
fg[ACTIVE] = shade (0.34, @bg_color)
}
style "murrine-tasklist" = "murrine-wide"
{
}
style "murrine-menu" = "murrine-wider"
{
xthickness = 3
ythickness = 3
bg[NORMAL] = shade (1.18, @bg_color)
}
style "murrine-menu-item" = "murrine-wider"
{
xthickness = 2
ythickness = 3
fg[PRELIGHT] = @selected_fg_color
bg[SELECTED] = shade (0.95, @selected_bg_color)
bg[SELECTED] = shade (0.95, @selected_bg_color)
engine "murrine"
{
roundness = 0
}
}
style "murrine-separator-menu-item"
{
}
style "murrine-treeview"
{
bg[SELECTED] = @selected_bg_color
}
style "murrine-treeview-header" = "murrine-default"
{
bg[NORMAL] = shade (1.06,@bg_color)
bg[PRELIGHT] = shade (1.06,@bg_color)
}
style "murrine-frame-title"
{
fg[NORMAL] = lighter (@fg_color)
}
style "murrine-tooltips" = "murrine-wider"
{
bg[NORMAL] = @tooltip_bg_color
fg[NORMAL] = @tooltip_fg_color
}
style "murrine-progressbar"
{
xthickness = 0
ythickness = 0
fg[PRELIGHT] = @selected_fg_color
bg[NORMAL] = shade (0.98, @bg_color)
bg[SELECTED] = @selected_bg_color
}
style "murrine-statusbar"
{
}
style "murrine-comboboxentry"
{
}
style "murrine-spinbutton"
{
}
style "murrine-scale" = "murrine-button"
{
GtkRange ::slider-width = 15
engine "murrine"
{
roundness = 6
}
}
style "murrine-hscale"
{
}
style "murrine-vscale"
{
}
style "murrine-scrollbar"
{
bg[NORMAL] = shade (1.04, @bg_color)
bg[PRELIGHT] = shade (1.06, @bg_color)
bg[ACTIVE] = shade (1.02, @bg_color)
bg[INSENSITIVE] = shade (1.0, @bg_color)
}
style "murrine-hscrollbar"
{
}
style "murrine-vscrollbar"
{
}
style "murrine-menubar"
{
}
style "murrine-nautilus-location"
{
# bg[NORMAL] = shade (1.0,@selected_bg_color)
# bg[SELECTED] = shade (1.0,@selected_bg_color)
# bg[ACTIVE] = shade (1.0,@selected_bg_color)
}
style "murrine-radiocheck" = "murrine-default"
{
text[NORMAL] = "#FFFFFF"
text[PRELIGHT] = "#FFFFFF"
}
style "panel"
{
fg[NORMAL] = "#FFFFFF"
fg[PRELIGHT] = "#FFFFFF"
fg[ACTIVE] = "#FFFFFF"
bg[NORMAL] = shade (0.4, @bg_color)
bg[ACTIVE] = shade (0.5, @bg_color)
bg[PRELIGHT] = shade (0.56, @bg_color)
engine "murrine" {
contrast = 0.8
}
}
style "smaller-text"
{
font_name = "7"
}
style "handle"
{
bg[NORMAL] = "#232323"
}
#########################################
# Matches
#########################################
# theme radio buttons and checkmarks
class "GtkRadio*" style "murrine-radiocheck"
class "GtkCheck*" style "murrine-radiocheck"
# theme default style is applied to every widget
class "GtkWidget" style "murrine-default"
# Increase the x/ythickness in some widgets
class "GtkToolbar" style "murrine-default"
class "GtkRange" style "murrine-wide"
class "GtkFrame" style "murrine-wide"
class "GtkSeparator" style "murrine-wide"
class "GtkEntry" style "murrine-entry"
class "GtkSpinButton" style "murrine-spinbutton"
class "GtkScale" style "murrine-scale"
class "GtkVScale" style "murrine-vscale"
class "GtkHScale" style "murrine-hscale"
class "GtkScrollbar" style "murrine-scrollbar"
class "GtkVScrollbar" style "murrine-vscrollbar"
class "GtkHScrollbar" style "murrine-hscrollbar"
# General matching following, the order is choosen so that the right styles override each other
# eg. progressbar needs to be more important then the menu match.
# This is not perfect, it could be done better
# (That is modify *every* widget in the notebook, and change those back that
# we really don't want changed)
widget_class "*<GtkNotebook>*<GtkEventBox>" style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkLayout>" style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkLabel>" style "murrine-notebook"
widget_class "*<GtkButton>" style "murrine-button"
widget_class "*<GtkNotebook>" style "murrine-notebook"
widget_class "*<GtkStatusbar>*" style "murrine-statusbar"
widget_class "*<GtkComboBoxEntry>*" style "murrine-comboboxentry"
widget_class "*<GtkCombo>*" style "murrine-comboboxentry"
widget_class "*<GtkMenuBar>*" style "murrine-menubar"
widget_class "*<GtkMenu>*" style "murrine-menu"
widget_class "*<GtkMenuItem>*" style "murrine-menu-item"
widget_class "*<GtkSeparatorMenuItem>*" style "murrine-separator-menu-item"
widget_class "*.<GtkFrame>.<GtkLabel>" style "murrine-frame-title"
widget_class "*.<GtkTreeView>*" style "murrine-treeview"
widget_class "*<GtkProgressBar>" style "murrine-progressbar"
# Treeview header
widget_class "*.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkCTree>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkList>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkCList>.<GtkButton>" style "murrine-treeview-header"
# Workarounds for Evolution
widget_class "*.ETable.ECanvas" style "murrine-treeview-header"
widget_class "*.ETree.ECanvas" style "murrine-treeview-header"
# Panel style
class "*Panel*" style "panel"
class "*notif*" style "panel"
class "*Notif*" style "panel"
class "*Tray*" style "panel"
class "*tray*" style "panel"
widget_class "*ToolButton*" style "smaller-text"
widget_class "*Statusbar*" style "smaller-text"
widget_class "*Mail*" style "panel"
widget "*PanelWidget*" style "panel"
widget "*PanelApplet*" style "panel"
class "PanelAppletFrame" style "handle"
# The window of the tooltip is called "gtk-tooltip"
################################
# FIXME:
# This will not work if one embeds eg. a button into the tooltip.
# As far as I can tell right now we will need to rework the theme
# quite a bit to get this working correctly.
# (It will involve setting different priorities, etc.)
################################
widget "gtk-tooltip*" style "murrine-tooltips"
###################################################
# Special cases and work arounds
###################################################
# Special case the nautilus-extra-view-widget
# ToDo: A more generic approach for all applications that have a widget like this.
widget "*.nautilus-extra-view-widget" style : highest "murrine-nautilus-location"
# Work around for http://bugzilla.gnome.org/show_bug.cgi?id=382646
# Note that the work around assumes that the combobox is _not_ in
# appears-as-list mode.
# Similar hack also in the menuitem style.
# This style does not affect GtkComboBoxEntry, it does have an effect
# on comboboxes in appears-as-list mode though.
style "murrine-combobox-text-color-workaround"
{
text[NORMAL] = @fg_color
text[PRELIGHT] = @fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @fg_color
text[INSENSITIVE] = darker (@bg_color)
}
widget_class "*.<GtkComboBox>.<GtkCellView>" style "murrine-combobox-text-color-workaround"
style "murrine-menuitem-text-is-fg-color-workaround"
{
text[NORMAL] = @fg_color
text[PRELIGHT] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @fg_color
text[INSENSITIVE] = darker (@bg_color)
}
widget "*.gtk-combobox-popup-menu.*" style "murrine-menuitem-text-is-fg-color-workaround"
# Work around the usage of GtkLabel inside GtkListItems to display text.
# This breaks because the label is shown on a background that is based on the
# base color set.
style "murrine-fg-is-text-color-workaround"
{
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[ACTIVE] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = darker (@bg_color)
}
widget_class "*<GtkListItem>*" style "murrine-fg-is-text-color-workaround"
# The same problem also exists for GtkCList and GtkCTree
# Only match GtkCList and not the parent widgets, because that would also change the headers.
widget_class "*<GtkCList>" style "murrine-fg-is-text-color-workaround"

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