On Fri, Sep 08, 2006 at 01:35:31AM +0300, Vlad Shakhov wrote:
> On Thu, Sep 07, 2006 at 04:17:38PM +0200, Peter Colberg wrote:
> > Package: wdm
> > Version: 1.28-2.1
> > Severity: normal
> > Tags: patch
> >
> > In Debian, the font displayed with the wdm greeter is quite ugly.
> > Changing to another font is not possible at the moment, as wdm simply
> > ignores the appropriate option in `/etc/GNUstep/Defaults/WMGLOBAL'.
> >
> > Fortunately, there exists a compile time option with wdm which allows to
> > set a fake $HOME path. Setting this to `/etc' makes the wdm greeter query
> > the font settings in `/etc/GNUstep/Defaults/WMGLOBAL', which is available
> > by default if wmaker is installed. In any case, it allows one to alter
> > the greeter font.
> >
> > Could you please use said option `--with-fakehome=/etc' with configure?
>
> Hello, Peter
>
> Before do it, I need to check for possible side-effects of turning on
> this option. Thanks for your report.
As it turns out, you guessed right about the side-effects.
I found a fonts cache file under the path /etc/.fonts.cache-1, which
was obviously created by wdm. This is indirectly mentioned in the
source file wdm-1.28/README.aa.
As an alternative, could you have a look at the patch below?
It allows setting the environment variable GNUSTEP_USER_ROOT via
/etc/X11/wdm/wdm-config, which definitely does not produce any
side-effects and has been working quite well since more than a year.
A hackier, but nevertheless working approach not requiring to change
the upstream source might be symlinking the GNUstep directory.
The default HOME directory /var/run/wdm along with a symlink in
/var/run/wdm/GNUstep pointing to /etc/GNUstep would have to be created
by the wdm init script upon starting.
Regards,
Peter
diff -urN wdm-1.27~/INSTALL wdm-1.27/INSTALL
--- wdm-1.27~/INSTALL 2004-05-28 06:21:17.000000000 +0200
+++ wdm-1.27/INSTALL 2005-01-05 14:19:13.000000000 +0100
@@ -281,6 +281,7 @@
DisplayManager*wdmLocale: <locale to use with wdmLogin>
DisplayManager*wdmCursorTheme: <XFree86 4.3.x cursor theme to use>
DisplayManager*wdmXineramaHead: <display on which login panel will appear>
+DisplayManager*wdmUserRoot: <GNUSTEP_USER_ROOT path for wdmLogin>
background specifications:
pixmap:full_path_to_background_pixmap
diff -urN wdm-1.27~/debian/config/wdm-config wdm-1.27/debian/config/wdm-config
--- wdm-1.27~/debian/config/wdm-config 2005-01-05 14:24:32.000000000 +0100
+++ wdm-1.27/debian/config/wdm-config 2005-01-05 14:14:28.000000000 +0100
@@ -45,3 +45,4 @@
DisplayManager*wdmLoginConfig: /etc/X11/wdm/wdmlogin.conf
DisplayManager*useSyslog: true
DisplayManager*syslogFacility: LOG_AUTHPRIV
+DisplayManager*wdmUserRoot: /etc/GNUstep
diff -urN wdm-1.27~/doc/wdm.man.in wdm-1.27/doc/wdm.man.in
--- wdm-1.27~/doc/wdm.man.in 2003-09-24 06:05:58.000000000 +0200
+++ wdm-1.27/doc/wdm.man.in 2005-01-05 14:17:51.000000000 +0100
@@ -472,6 +472,9 @@
cursors you can select cursor theme to use on login panel.
XCURSOR_THEME environment variable will be set to value of this
resource before starting wdmLogin.
+.IP "\fBDisplayManager.wdmUserRoot\fP"
+GNUSTEP_USER_ROOT environment variable will be set to value of this resource
+before starting wdmLogin.
.SH "CONFIGURATION FILE"
The default location of the
.I wdm
diff -urN wdm-1.27~/src/wdm/Greet.c wdm-1.27/src/wdm/Greet.c
--- wdm-1.27~/src/wdm/Greet.c 2003-09-18 22:20:04.000000000 +0200
+++ wdm-1.27/src/wdm/Greet.c 2005-01-05 14:13:41.000000000 +0100
@@ -132,6 +132,7 @@
extern char *wdmLoginConfig;
extern char *wdmCursorTheme;
extern int wdmXineramaHead;
+extern char *wdmUserRoot;
static int pipe_filedes[2];
static char name[128], password[128];
@@ -223,6 +224,9 @@
if(*wdmCursorTheme)
env = WDMSetEnv(env, "XCURSOR_THEME", wdmCursorTheme);
+ if(*wdmUserRoot)
+ env = WDMSetEnv(env, "GNUSTEP_USER_ROOT", wdmUserRoot);
+
if((argv[0] = strrchr(wdmLogin, '/')) == NULL)
argv[0] = wdmLogin;
else
diff -urN wdm-1.27~/src/wdm/resource.c wdm-1.27/src/wdm/resource.c
--- wdm-1.27~/src/wdm/resource.c 2004-05-28 06:18:21.000000000 +0200
+++ wdm-1.27/src/wdm/resource.c 2005-01-05 14:12:22.000000000 +0100
@@ -94,6 +94,7 @@
int_resource wdmXineramaHead;/* select xinerama head where to show login */
/* panel this _should_ be display dependant, */
/* but I make it later */
+char *wdmUserRoot; /* GNUSTEP_USER_ROOT path for wdmLogin */
# define DM_STRING 0
# define DM_INT 1
@@ -392,6 +393,8 @@
""} ,
{ "wdmXineramaHead", "WdmXineramaHead", DM_INT, &wdmXineramaHead.c,
"0"} ,
+{ "wdmUserRoot", "WdmUserRoot", DM_STRING,
&wdmUserRoot,
+ ""} ,
};
# define NUM_WDM_RESOURCES (sizeof wdmResources/\