From b4c1ef5c2ba803701cdd1eff4a8894abeaab98a1 Mon Sep 17 00:00:00 2001 From: Devan Franchini Date: Wed, 7 May 2014 16:56:36 -0400 Subject: [PATCH] tools-hardened/desktop: Adds ability to set wallpaper for fluxbox. Previously, if you were to boot this image you would be greeted with an error message telling you that the background could not be set. To fix this the package eterm was added to the fluxbox world file to be pulled in on build-time. However, this only solved the problem of being unable to set the background manually. To have fluxbox set it automatically the .xinit was altered to call "exec startfluxbox". When fluxbox is called by that command it searches for and executes the startup file located in ~/.fluxbox/. This commit also adds a custom startup file which sets the background to the default background: /usr/share/backgrounds/background.jpg. This commit also includes one unrelated alteration to fluxbox-run.sh which changes the fluxbox init file to look at the custom menu in /usr/share/fluxbox/usermenu instead of ~/.fluxbox/my-menu. --- tools-hardened/desktop/files/fluxbox-startup | 24 ++++++++++++++++++++ tools-hardened/desktop/files/fluxbox-world | 1 + tools-hardened/desktop/fluxbox-run.sh | 17 ++++++++------ 3 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 tools-hardened/desktop/files/fluxbox-startup diff --git a/tools-hardened/desktop/files/fluxbox-startup b/tools-hardened/desktop/files/fluxbox-startup new file mode 100644 index 00000000..d37a258e --- /dev/null +++ b/tools-hardened/desktop/files/fluxbox-startup @@ -0,0 +1,24 @@ +#!/bin/sh +# +# fluxbox startup-script: +# +# Lines starting with a '#' are ignored. + +# Change your keymap: +xmodmap "/home/thuser/.Xmodmap" + +# Applications you want to run with fluxbox. +# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END. +# +# unclutter -idle 2 & +# wmnd & +# wmsmixer -w & +# idesk & + +exec fbsetbg -f /usr/share/backgrounds/background.jpg & +# 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 +# or if you want to keep a log: +# exec fluxbox -log "/home/thuser/.fluxbox/log" diff --git a/tools-hardened/desktop/files/fluxbox-world b/tools-hardened/desktop/files/fluxbox-world index bce6561f..d55ef531 100644 --- a/tools-hardened/desktop/files/fluxbox-world +++ b/tools-hardened/desktop/files/fluxbox-world @@ -38,6 +38,7 @@ sys-process/fcron www-client/firefox x11-base/xorg-server x11-misc/slim +x11-terms/eterm x11-terms/xfce4-terminal x11-wm/fluxbox xfce-base/thunar diff --git a/tools-hardened/desktop/fluxbox-run.sh b/tools-hardened/desktop/fluxbox-run.sh index c6c85ad9..a429aad2 100755 --- a/tools-hardened/desktop/fluxbox-run.sh +++ b/tools-hardened/desktop/fluxbox-run.sh @@ -26,18 +26,22 @@ setup_usergroups() { cp -a thuser "${ROOTFS}"/etc/skel cp -f files/usermenu "${ROOTFS}"/usr/share/fluxbox/ - sed -i 's/^\/usr\/*.*/\/usr\/bin\/fluxbox/' "${ROOTFS}"/etc/skel/.xinitrc - mkdir -p "${ROOTFS}"/etc/skel/{Desktop,Documents,Downloads,Music,Pictures,Public,Templates,Videos,.ssh,.cache/dconf,.config/dconf} + cp -f files/fluxbox-startup "${ROOTFS}"/usr/share/fluxbox/startup + + sed -i 's/^\/usr\/*.*/exec startfluxbox/' "${ROOTFS}"/etc/skel/.xinitrc + mkdir -p "${ROOTFS}"/etc/skel/{Desktop,Documents,Downloads,Music,Pictures,Public,Templates,Videos,.ssh,.cache/dconf,.config/dconf,.fluxbox} + chmod 700 "${ROOTFS}"/etc/skel/.ssh wget -O "${ROOTFS}"/etc/skel/.config/dconf/user "${DCONF_LOCAL}" wget -O "${ROOTFS}"/etc/skel/.cache/dconf/user "${DCONF_LOCAL}" rm -rf "${ROOTFS}"/home/thuser cp -a thuser "${ROOTFS}"/home/thuser - sed -i -e 's/^\/usr\/*.*/\/usr\/bin\/fluxbox/' "${ROOTFS}"/home/thuser/.xinitrc + sed -i -e 's/^\/usr\/*.*/exec startfluxbox/' "${ROOTFS}"/home/thuser/.xinitrc cp -a files/{Encrypt,Save,Utilities} "${ROOTFS}"/home/thuser rm -rf "${ROOTFS}"/home/thuser/Utilities/post_gnome3_install.sh - mkdir -p "${ROOTFS}"/home/thuser/{Desktop,Documents,Downloads,Music,Pictures,Public,Templates,Videos,.ssh,.cache/dconf,.config/dconf} + mkdir -p "${ROOTFS}"/home/thuser/{Desktop,Documents,Downloads,Music,Pictures,Public,Templates,Videos,.ssh,.cache/dconf,.config/dconf,.fluxbox} + cp -f "${ROOTFS}"/usr/share/fluxbox/{apps,init,keys,menu,overlay,startup,usermenu,windowmenu} /home/thuser/.fluxbox/ chmod 700 "${ROOTFS}"/home/thuser/.ssh wget -O "${ROOTFS}"/home/thuser/.config/dconf/user "${DCONF_LOCAL}" wget -O "${ROOTFS}"/home/thuser/.cache/dconf/user "${DCONF_LOCAL}" @@ -45,8 +49,6 @@ setup_usergroups() { chroot "${ROOTFS}"/ chown -R thuser:thuser /home/thuser sed -i 's/# \(%wheel.*NOPASSWD\)/\1/' "${ROOTFS}"/etc/sudoers sed -i 's/^\/usr\/*.*/\/usr\/bin\/fluxbox/' "${ROOTFS}"/etc/skel/.xinitrc - mkdir -p "${ROOTFS}"/home/thuser/.fluxbox - cp -f files/usermenu "${ROOTFS}"/home/thuser/.fluxbox/my-menu } setup_confs() { @@ -57,7 +59,8 @@ setup_confs() { sed -i '/# login_cmd.*Xsession/ a\login_cmd exec /bin/bash -login ~/.xinitrc' "${ROOTFS}"/etc/slim.conf sed -i 's/^\(sessiondir.*\)/# \1/' "${ROOTFS}"/etc/slim.conf sed -i '/# sessiondir.*/ a\sessiondir /etc/X11/Sessions' "${ROOTFS}"/etc/slim.conf - sed -i 's/^session\.menuFile.*./session\.menuFile: \~\/.fluxbox\/my-menu/' "${ROOTFS}"/usr/share/fluxbox/init + sed -i 's/^session\.menuFile.*./session\.menuFile: \/usr\/share\/fluxbox\/usermenu/' "${ROOTFS}"/usr/share/fluxbox/init + mkdir -p "${ROOTFS}"/usr/share/backgrounds/ wget -O "${ROOTFS}"/usr/share/backgrounds/background.jpg "${IMAGE}" sed -i '/^SYNC/d' "${ROOTFS}"/etc/portage/make.conf