diff --git a/functions.sh b/functions.sh index fa73126..c579c87 100755 --- a/functions.sh +++ b/functions.sh @@ -272,25 +272,26 @@ buildStepExec() { } copyTreeExec() { - local calling_script="$1" + local source_dir="$1" local dir="$2" local template_flavor="$3" + local target_dir="$4" local template_dir="$(templateDir ${template_flavor})" - local source_dir="$(readlink -m ${template_dir}/${dir})" - local install_dir="$(readlink -m ${INSTALLDIR})" + local source_dir="$(readlink -m ${source_dir:-${template_dir}}/${dir})" + local target_dir="$(readlink -m ${target_dir:-${INSTALLDIR}})" if ! [ -d "${source_dir}" ]; then debug "No extra files to copy for ${dir}" return 0 fi - debug "Copying ${source_dir}/* ${install_dir}" - cp -rp "${source_dir}/"* "${install_dir}" + debug "Copying ${source_dir}/* ${target_dir}" + cp -rp "${source_dir}/"* "${target_dir}" if [ -f "${source_dir}/.facl" ]; then debug "Restoring file permissions..." - pushd "$install_dir" + pushd "${target_dir}" { setfacl --restore="${source_dir}/.facl" 2>/dev/null ||: } @@ -368,11 +369,16 @@ buildStep() { # NOTE: Don't forget to redo this process if you add -OR- remove files # ------------------------------------------------------------------------------ copyTree() { - local not_used="" local dir="$1" + local source_dir="$2" + local target_dir="$3" local function="copyTreeExec" - callTemplateFunction "${not_used}" "${dir}" "${function}" + if [ "x${source_dir}" == "x" ]; then + callTemplateFunction "" "${dir}" "${function}" + else + copyTreeExec "${source_dir}" "${dir}" "" "${target_dir}" + fi } # $0 is module that sourced vars.sh diff --git a/scripts_debian/04_install_qubes.sh b/scripts_debian/04_install_qubes.sh index 94071c9..c5067b4 100755 --- a/scripts_debian/04_install_qubes.sh +++ b/scripts_debian/04_install_qubes.sh @@ -182,6 +182,12 @@ EOF # Need a xen log directory or xen scripts will fail # -------------------------------------------------------------------------- mkdir -p -m 0700 "$INSTALLDIR/var/log/xen" + + # -------------------------------------------------------------------------- + # Copy extra files to installation directory. Contains: + # - font fixes for display issues + # -------------------------------------------------------------------------- + copyTree "qubes-files" "${SCRIPTSDIR}" "${INSTALLDIR}" fi # ------------------------------------------------------------------------------ diff --git a/scripts_debian/packages_qubes.list b/scripts_debian/packages_qubes.list index d14a42b..11bcbd2 100644 --- a/scripts_debian/packages_qubes.list +++ b/scripts_debian/packages_qubes.list @@ -1,2 +1,5 @@ qubes-core-agent qubes-gui-agent +xdg-user-dirs +gnome-themes-standard +xsettingsd diff --git a/scripts_debian/qubes-files/.facl b/scripts_debian/qubes-files/.facl new file mode 100644 index 0000000..641da9f --- /dev/null +++ b/scripts_debian/qubes-files/.facl @@ -0,0 +1,70 @@ +# file: . +# owner: user +# group: user +user::rwx +group::r-x +other::r-x + +# file: etc +# owner: root +# group: root +user::rwx +group::r-x +other::r-x + +# file: etc/xdg +# owner: root +# group: root +user::rwx +group::r-x +other::r-x + +# file: etc/xdg/Xresources +# owner: root +# group: root +user::rw- +group::r-- +other::r-- + +# file: etc/xdg/fonts.conf +# owner: root +# group: root +user::rw- +group::r-- +other::r-- + +# file: etc/xdg/xsettingsd +# owner: root +# group: root +user::rw- +group::r-- +other::r-- + +# file: etc/X11 +# owner: root +# group: root +user::rwx +group::r-x +other::r-x + +# file: etc/X11/Xsession.d +# owner: root +# group: root +user::rwx +group::r-x +other::r-x + +# file: etc/X11/Xsession.d/25xdg-qubes-settings +# owner: root +# group: root +user::rwx +group::r-x +other::r-x + +# file: .facl +# owner: root +# group: root +user::rw- +group::r-- +other::r-- + diff --git a/scripts_debian/qubes-files/etc/X11/Xsession.d/25xdg-qubes-settings b/scripts_debian/qubes-files/etc/X11/Xsession.d/25xdg-qubes-settings new file mode 100755 index 0000000..3bab64b --- /dev/null +++ b/scripts_debian/qubes-files/etc/X11/Xsession.d/25xdg-qubes-settings @@ -0,0 +1,18 @@ +#!/bin/sh + +installConfigurationFile() { + file="${1}" + + if ! [ -f "${HOME}/.${file}" ]; then + if [ -f "/etc/xdg/${file}" ]; then + cp "/etc/xdg/${file}" "${HOME}/.${file}" + fi + fi +} + +if [ -x /usr/bin/xsettingsd ]; then + installConfigurationFile "xsettingsd" + installConfigurationFile "fonts.conf" + installConfigurationFile "Xresources" + /usr/bin/xsettingsd & +fi diff --git a/scripts_debian/qubes-files/etc/xdg/Xresources b/scripts_debian/qubes-files/etc/xdg/Xresources new file mode 100644 index 0000000..2bb5317 --- /dev/null +++ b/scripts_debian/qubes-files/etc/xdg/Xresources @@ -0,0 +1,5 @@ +Xft.antialias: 1 +Xft.hinting: 1 +Xft.rgba: rgb +Xft.hintstyle: hintslight +Xft.lcdfilter: lcddefault diff --git a/scripts_debian/qubes-files/etc/xdg/fonts.conf b/scripts_debian/qubes-files/etc/xdg/fonts.conf new file mode 100644 index 0000000..17408f4 --- /dev/null +++ b/scripts_debian/qubes-files/etc/xdg/fonts.conf @@ -0,0 +1,29 @@ + + + + + + rgb + + + + + true + + + + + hintslight + + + + + true + + + + + lcddefault + + + diff --git a/scripts_debian/qubes-files/etc/xdg/xsettingsd b/scripts_debian/qubes-files/etc/xdg/xsettingsd new file mode 100644 index 0000000..1cf2f71 --- /dev/null +++ b/scripts_debian/qubes-files/etc/xdg/xsettingsd @@ -0,0 +1,19 @@ +Gtk/ButtonImages 1 +Gtk/CursorThemeName "Vanilla-DMZ" +Gtk/FontName "sans 10" +Gtk/KeyThemeName "Adwaita" +Gtk/MenuImages 1 +Gtk/ToolbarIconSize 2 +Gtk/ToolbarStyle "Icons" + +Net/EnableEventSounds 0 +Net/EnableInputFeedbackSounds 0 +Net/FallbackIconTheme "gnome" +Net/IconThemeName "gnome" +Net/ThemeName "Adwaita" + +Xft/Antialias 1 +Xft/Hinting 1 +Xft/HintStyle "hintslight" +Xft/RGBA "rgb" +Xft/lcdfilter "lcddefault" diff --git a/scripts_debian/vars.sh b/scripts_debian/vars.sh index b2450b1..5f191ee 100755 --- a/scripts_debian/vars.sh +++ b/scripts_debian/vars.sh @@ -12,8 +12,8 @@ DEBIANVERSION=$DIST # Location to grab debian packages #DEBIAN_MIRROR=http://http.debian.net/debian -#DEBIAN_MIRROR=http://mirror.csclub.uwaterloo.ca/debian/ DEBIAN_MIRROR=http://ftp.ca.debian.org/debian/ +#DEBIAN_MIRROR=http://ftp.us.debian.org/debian/ # XXX: Is this even used? EXTRAPKGS="openssh-clients,screen,vim-nox,less"