[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

startkde mods: ssh-askpass support and better font handling ;)



Hi,

FWIW: Appended a patch that adds 3 things to startkde aka kde3:

	o Prompt just before ksplash for the passphrase of the
	   ssh private keys (tested with a user w/o private keys)

	o Do this KDE spezific fonts handling only for local displays
	   and not for X-Terminals.  It just makes KDE startup slower.
	   (simple case "DISPLAY" in ..  with lots of white space changes)
	   Anyone care to check the cvs how often such a patch went
	  in and out in debians kde startup script ;)

	o My way of dealing with:  kde3 ignores login files.
	   source ~/.bash_profile if it exists ;)

Achim
-- 
  To me vi is Zen.  To use vi is to practice zen. Every command is
  a koan. Profound to the user, unintelligible to the uninitiated.
  You discover truth everytime you use it.
                                      -- reddy@lion.austin.ibm.com
--- /etc/kde3/debian/startkde.orig	Wed Jan 22 21:46:22 2003
+++ /etc/kde3/debian/startkde	Wed Jan 22 21:36:03 2003
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 #  DEFAULT KDE STARTUP SCRIPT ( KDE-3.1 )
 #
@@ -7,6 +7,8 @@
 # because we still need to do some cleanup.
 trap 'echo GOT SIGHUP' HUP
 
+test -r "$HOME"/.bash_profile && . "$HOME"/.bash_profile
+
 # Boot sequence:
 #
 # kdeinit is used to fork off processes which improves memory usage
@@ -59,46 +61,57 @@
 #
 # Where X is the original font database that was set up before this script
 # runs.
-
-usr_odir=$kdehome/share/fonts/override
-usr_fdir=$kdehome/share/fonts
-if test -n "$KDEDIRS"; then
-  kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'`
-  sys_odir=$kdedirs_first/share/fonts/override
-  sys_fdir=$kdedirs_first/share/fonts
-else
-  sys_odir=$KDEDIR/share/fonts/override
-  sys_fdir=$KDEDIR/share/fonts
-fi
-
-# We run mkfontdir on the user's font dirs (if we have permission) to pick
-# up any new fonts they may have installed. If mkfontdir fails, we still
-# add the user's dirs to the font path, as they might simply have been made
-# read-only by the administrator, for whatever reason.
-
-test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir")
-test -d "$sys_odir" && xset +fp "$sys_odir"
-test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir")
-test -d "$sys_fdir" && xset fp+ "$sys_fdir"
-
-#
-# Add any user-installed font directories to the X font path
-kde_fontsdir=$kdehome/share/fonts
-kde_fontpaths=$kde_fontsdir/fontpaths
-
-if test -r "$kde_fontpaths" ; then
-    savifs=$IFS
-    IFS=
-    for fpath in `grep -v '^[ 	]*#' < "$kde_fontpaths"` ; do
-        if test -s "$fpath"/fonts.dir ; then
-            xset fp+ "$fpath"
-        fi
-    done
-    IFS=$savifs
-fi
-
-# Ask X11 to rebuild its font list.
-xset fp rehash
+#
+# Check for fonts only for local displays (XXX What about: localhost:* unix/:* ?)
+case "$DISPLAY" in
+  :[0-9]*)
+    echo "Checking for local KDE fonts dirs ..."
+
+    usr_odir=$kdehome/share/fonts/override
+    usr_fdir=$kdehome/share/fonts
+    if test -n "$KDEDIRS"; then
+      kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'`
+      sys_odir=$kdedirs_first/share/fonts/override
+      sys_fdir=$kdedirs_first/share/fonts
+    else
+      sys_odir=$KDEDIR/share/fonts/override
+      sys_fdir=$KDEDIR/share/fonts
+    fi
+
+    # We run mkfontdir on the user's font dirs (if we have permission) to pick
+    # up any new fonts they may have installed. If mkfontdir fails, we still
+    # add the user's dirs to the font path, as they might simply have been made
+    # read-only by the administrator, for whatever reason.
+
+    test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir")
+    test -d "$sys_odir" && xset +fp "$sys_odir"
+    test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir")
+    test -d "$sys_fdir" && xset fp+ "$sys_fdir"
+
+    #
+    # Add any user-installed font directories to the X font path
+    kde_fontsdir=$kdehome/share/fonts
+    kde_fontpaths=$kde_fontsdir/fontpaths
+
+    if test -r "$kde_fontpaths" ; then
+        savifs=$IFS
+        IFS=
+        for fpath in `grep -v '^[ 	]*#' < "$kde_fontpaths"` ; do
+            if test -s "$fpath"/fonts.dir ; then
+                xset fp+ "$fpath"
+            fi
+        done
+        IFS=$savifs
+    fi
+
+    # Ask X11 to rebuild its font list.
+    xset fp rehash
+
+    ;;
+  *)
+    echo "local KDE fonts dirs ignored for DISPLAY='$DISPLAY'"
+    ;;
+esac
 
 #
 # Get Ghostscript to look into user's KDE fonts dir for additional Fontmap
@@ -137,6 +150,14 @@
     dcopserver_shutdown
     # shutdown will also make kwin quit, give it time to do so
     sleep 1
+fi
+
+echo "Checking for SSH private keys..."
+if test -x /usr/bin/ssh-askpass ; then
+	# argl! kdialog --password "$1" is horrible slow.  Needs/starts dcop daemons and co?
+	#export SSH_ASKPASS=/home/ach/bin/kde-ssh-askpass
+	export SSH_ASKPASS=/usr/bin/ssh-askpass
+	test -x /usr/bin/ssh-add && nohup /usr/bin/ssh-add < /dev/null >/dev/null
 fi
 
 # the splashscreen and progress indicator


Reply to: