Hi Denis, On Saturday 09 September 2006 09:12, Denis Barbier wrote: > With help from Eddy Petrişor, I copied the > HighContrastLargePrintInverse theme (from gnome-accessibility-themes) > into rootskel-gtk, you can find this package under > people/barbier/rootskel-gtk in d-i subversion repository. > This theme is currently enabled when the FRONTEND_BACKGROUND=dark boot > argument is found. Is it okay to put this stuff into trunk? > Do people on d-accessibility have an opinion on this theme and font > size? Thanks for coming back to this. Theming for g-i was on the TODO list, but we had not yet really gotten around to it. I guess an accessibility theme is a great place to start. I've checked your changes in rootskel-gtk and I think the implementation can be improved. I've not looked at how the theme looks, only at the technical side of it. I think I have mentioned before that I would like to be able to set themes consistently with other parameters, i.e. using a debconf value like debian-installer/theme (with a shortcut for the boot prompt "theme=...") instead of FRONTEND_BACKGROUND or whatever. I have now implemented this in rootskel and preseed (see attached patches). This works for both gtk and newt frontends. I feel that for now it is OK to include the theme file(s) in rootskel-gtk; we may want to split them out later. I don't really like that the theme file and theme name are different; IMO it would be better to have those the same (although we can script around that if there is a good reason for the current name). I don't like just replacing the whole /etc/gtk-2.0/gtkrc file. GTK supports a gtk-theme-name parameter in that file and IMO we should use that. How that translates to a theme definition I don't know, but should be easy to find out. Note that we already had some scripts (currently unused and not really tested yet) to support switching font and theme. See rootskel-gtk/src/usr/bin/ for current versions. I've fixed them up a bit for basic support for your theme (see attached patches). Setting the font as part of the theme is a bad idea as we want to be able to switch fonts for other reasons too. I have resolved this by increasing the font size for this theme in gtk-set-font (see patches). Note that for gtk-set-font to work we need fc-list in the fontconfig udeb. Cheers, FJP
Index: rootskel/debian/templates-arch
===================================================================
--- rootskel/debian/templates-arch (revision 40624)
+++ rootskel/debian/templates-arch (working copy)
@@ -14,3 +14,7 @@
Type: boolean
Default: false
Description: halt the machine
+
+Template: debian-installer/theme
+Type: string
+Description: theme to use for the (newt or gtk) frontend
Index: rootskel/src/lib/debian-installer.d/S65theme
===================================================================
--- rootskel/src/lib/debian-installer.d/S65theme (revision 0)
+++ rootskel/src/lib/debian-installer.d/S65theme (revision 0)
@@ -0,0 +1,12 @@
+theme="`debconf-get debian-installer/theme`"
+
+if [ "$theme" ]; then
+ case "$DEBIAN_FRONTEND" in
+ newt)
+ export FRONTEND_BACKGROUND="$theme"
+ ;;
+ gtk)
+ gtk-set-theme "$theme" || true
+ ;;
+ esac
+fi
Index: rootskel/src/lib/debian-installer.d/Makefile
===================================================================
--- rootskel/src/lib/debian-installer.d/Makefile (revision 40624)
+++ rootskel/src/lib/debian-installer.d/Makefile (working copy)
@@ -17,6 +17,7 @@
files += \
S30term \
S60frontend \
+ S65theme \
S72menu-exit
ifeq ($(DEB_HOST_ARCH_OS),linux)
Index: rootskel-gtk/src/usr/bin/gtk-set-font
===================================================================
--- rootskel-gtk/src/usr/bin/gtk-set-font (revision 40624)
+++ rootskel-gtk/src/usr/bin/gtk-set-font (working copy)
@@ -2,23 +2,28 @@
set -e
+. /usr/share/debconf/confmodule
+
[ "$DEBIAN_FRONTEND" = "gtk" ] || exit 0
-language="$1"
CONFFILE="/etc/gtk-2.0/gtkrc"
-
-[ -n "$language" ] || exit 1
[ -f "$CONFFILE" ] || exit 1
+if db_get debian-installer/language && [ "$RET" ]; then
+ language="$RET"
+else
+ language=en
+fi
+
DEFAULT_FONT="DejaVu"
# Default font size; good for 640x480 or 800x600 screens
-FONT_SIZE=11
+FONT_SIZE=9
# Set the primary GTK font according to language
case "$language" in
ar|fa)
FONT_NAME="Nazli"
- FONT_SIZE=14
+ FONT_SIZE=$(($FONT_SIZE + 2))
;;
ja)
FONT_NAME="Sazanami Gothic"
@@ -34,12 +39,16 @@
;;
esac
+if db_get debian-installer/theme && [ "$RET" = dark ]; then
+ # Theme for visually impaired; increase fontsize
+ FONT_SIZE=$(($FONT_SIZE + 7))
+fi
+
# Fall back to default if font does not exist; default is assumed to exist
if ! fc-list | grep -q "$FONT_NAME"; then
FONT_NAME=$DEFAULT_FONT
fi
-cp $CONFFILE $CONFFILE.old
sed -i "s/^gtk-font-name.*$/gtk-font-name = \"$FONT_NAME $FONT_SIZE\"/" $CONFFILE
exit 0
Index: rootskel-gtk/src/usr/bin/gtk-set-theme
===================================================================
--- rootskel-gtk/src/usr/bin/gtk-set-theme (revision 40624)
+++ rootskel-gtk/src/usr/bin/gtk-set-theme (working copy)
@@ -13,12 +13,12 @@
#TODO: test that theme actually exists
if grep -q "^gtk-theme-name" $CONFFILE ; then
- cp $CONFFILE $CONFFILE.old
- sed "s/^gtk-theme-name.*$/gtk-theme-name = \"$THEME\"/" \
- $CONFFILE.old >$CONFFILE
- rm -f $CONFFILE.old
+ sed -i "s/^gtk-theme-name.*$/gtk-theme-name = \"$THEME\"/" $CONFFILE
else
echo "gtk-theme-name = \"$THEME\"" >>$CONFFILE
fi
+# For the accessibility theme the font size is increased
+gtk-set-font || true
+
exit 0
Index: preseed/preseed_aliases
===================================================================
--- preseed/preseed_aliases (revision 40624)
+++ preseed/preseed_aliases (working copy)
@@ -10,3 +10,4 @@
fb debian-installer/framebuffer
classes auto-install/classes
tasks tasksel/first
+theme debian-installer/theme
Attachment:
pgpu_G5DD_jG7.pgp
Description: PGP signature