~ubuntu-branches/ubuntu/utopic/kde-workspace/utopic-proposed

« back to all changes in this revision

Viewing changes to kdm/TODO

  • Committer: Bazaar Package Importer
  • Author(s): Michał Zając
  • Date: 2011-07-09 08:31:15 UTC
  • Revision ID: james.westby@ubuntu.com-20110709083115-ohyxn6z93mily9fc
Tags: upstream-4.6.90
Import upstream version 4.6.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
- frontend doesn't handle async aborts correctly
 
2
 
 
3
- too many too big repaints in themer
 
4
 
 
5
- fix strings & add KUIT
 
6
 
 
7
- allow theme to specify gui-style & color-scheme.
 
8
 
 
9
- themer: interpret altfile attribute to image nodes
 
10
 
 
11
- initialize theming 'mode' properly. need to adapt action menu construction.
 
12
  problem: the modes do not cover certain kdmrc settings. (partial patch)
 
13
 
 
14
- do something about GreetString, i18n & theming. need some magic for the default.
 
15
 
 
16
- report critical startup errors to the console
 
17
- set LANGUAGE in the backend for i18n-capable PAM libs
 
18
 
 
19
- handle non-linux VTs:
 
20
  on systems without VT_GETSTATE, try activating all consoles in turn to
 
21
  find free ones. wow, this sucks so much.
 
22
  - BSD: 1st: pcvt, /dev/ttyC[0] (OpenBSD), /dev/ttyv[0] (other),
 
23
              also emulated by wscons on /dev/ttyE.
 
24
         2nd: syscons, /dev/ttyv[0], fallback /dev/vga
 
25
  - Lynx, /dev/atc[0]
 
26
  - Solaris, /dev/vt[00]
 
27
  - SVR4, /dev/vc[00] (ESIX), /dev/vt[00] (other)
 
28
  - SCO, /dev/tty[00], query current with CONS_GETINFO, counts 0-based
 
29
  ref: xorg/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h
 
30
- act on BSD_INIT
 
31
 
 
32
- possibly parse Xserver log to find failure cause. this is very hacky.
 
33
 
 
34
- try harder to get rid of processes, see X servers failure cleanup path
 
35
 
 
36
- make auto-re-login (& EchoPasswd) per-user option; save in .dmrc.
 
37
 
 
38
- add Xserver option set selection (#56329)
 
39
- add support for XRandR (#48602)
 
40
save these options to .dmrc?
 
41
 
 
42
- per-display sections in .dmrc. read-only, as far as kdm is concerned, as
 
43
  otherwise the GUI would become insanely complex.
 
44
 
 
45
- make config position independent
 
46
- warn about conflicting {Static,Reserver}Servers settings. more sanity checks?
 
47
- parse /etc/kderc?
 
48
- merge multiple kdmrcs in the style of kconfig (#143456).
 
49
  how to set section priorities? the included file is recessive to *any*
 
50
  matching entry from the master file.
 
51
 
 
52
genkdmconf:
 
53
- config inherits paths that point directly into the previous installation:
 
54
  LogoPixmap & Theme in kdmrc, Wallpaper & WallpaperList in backgroundrc -
 
55
  to fix the latter, treat backgroundrc as an ini file, not as a text blob
 
56
- add proper quoting and dequoting to ini parser & writer
 
57
- determining *uid could use finding obviously valid uids (valid password,
 
58
  maybe home paths) and rounding
 
59
 
 
60
- kcm: deal with NoPassUsers=*
 
61
- kcm: detach backgroundrc change status from kdmrc change status.
 
62
- write a separate configurator application, as kcontrol does not scale well
 
63
  enough to cover all of kdm's options.
 
64
 
 
65
- write modern conv plugin. or maybe this should be a parallel vs. serial
 
66
  setting of the classic plugin? (#148110)
 
67
- change conversation plugin interface:
 
68
  - make gplugActivity() and gplugChanged() signals
 
69
    - how to handle the meta object? don't want a lib. probably include
 
70
      in every plugin (build system for external plugins?)
 
71
  - introduce signal userPresent() - equivalent to mouse motion. should
 
72
    prevent unlocker from going away, possibly should make unlocker pop up
 
73
    (would need to be emitted even if not running). should not prevent timed
 
74
    login.
 
75
 
 
76
- actually implement the libpam_client support
 
77
 
 
78
- check if pam works before trying to authenticate
 
79
- test whether nis, kerberos4 & kerberos5 work
 
80
- sync BSD_AUTH from xdm, sync osfc2 from kcheckpass
 
81
 
 
82
- Move clock from greeter dialog to desktop
 
83
- add more clock types (#18178)
 
84
- make kdm use plasma?
 
85
- add icons to action menu. icon theme selection!
 
86
 
 
87
- make greeter accels use ctrl instead of alt
 
88
 
 
89
- make auto-completion in login field cope with case-insensitivity
 
90
 
 
91
- Add XDMCP _client_ to core (for remote login like in dtlogin).
 
92
  Currently this is done by simply restarting the x-server with -query.
 
93
  Can't be done without extending XDMCP, though.
 
94
 
 
95
- many simultaneously running choosers will torture the target servers
 
96
  independently from each other.
 
97
 
 
98
- add login restrictions for reserve displays (#59353)
 
99
 
 
100
- possibly do the authentication for the reserve display on the display it
 
101
  is launched from (relates #59353)
 
102
 
 
103
- remote-accessible command sockets for remote shutdown, etc.
 
104
  or maybe implement it as an xdmcp extension?
 
105
- LoginMode=DirectQuery
 
106
 
 
107
- the per-display sockets are in fact nonsense; gdm's approach is better
 
108
- use dbus instead of command socket?
 
109
 
 
110
- add bgset to XDM_MANAGED
 
111
  add socket command "background\t{inprogress,aborted,done}"
 
112
- actually, remove XDM_MANAGED and do everything via the socket.
 
113
 
 
114
- lilo boot option <default>, i.e., -R with no argument
 
115
- support lilo -A mode
 
116
 
 
117
- support suspend/hibernate/standby in the shutdown menu. should this be really
 
118
  treated like a shutdown? (#33839)
 
119
 
 
120
- add language selection (export as LC_*). (#55379, #63804)
 
121
- add keymap selection (via xkb) (#51245, #64642)
 
122
for both, one would preset a list of available options and make one entry
 
123
the greeter's own setting. explicitly setting it sets it for both the greeter
 
124
and the session. .dmrc later affects only the session, not the greeter.
 
125
 
 
126
- handle failsafe internally, take care of focus. see #32973
 
127
 
 
128
- TryExec for "custom" session type. always show the entry, but disable it
 
129
  if it is unavailable for the selected user.
 
130
 
 
131
- cursor theming support via Xcursor (#66829)
 
132
 
 
133
- add screensaver (#41941)
 
134
- support DPMS (#18597)
 
135
 
 
136
- add a minimalistic window manager to the greeter (#17716, #51039)
 
137
 
 
138
- Different logos for each session type (see #74500)
 
139
- User pictures in logo field
 
140
- display user's .plan/.project (or .person? .userinfo?) in the greeter?
 
141
  text area/label would suck -> tooltip?
 
142
 
 
143
- allow disabling full names or login names in userview (#54110)
 
144
- user list loading in the background (after first few to get a reasonable
 
145
  width estimate)
 
146
 
 
147
- faking session parameters (type, language, etc.) of nonexistent users based
 
148
  on statistical analysis of actual users ... severe overkill!?
 
149
 
 
150
- export password to the startup/session scripts. somehow ... (#35396)
 
151
 
 
152
- maybe reset CapsLock in the greeter. there is some CapsLock vs. ShiftLock
 
153
  confusion, though.
 
154
 
 
155
- maybe add kiosk mode: the user and his options are preset and locked in
 
156
  the greeter. i doubt it's usefulness, though.
 
157
 
 
158
- make builtin xconsole hideable; it should free the device when invisible.
 
159
  possibly auto-hide it on vt switch - see krunner_lock for the x event
 
160
  handling.
 
161
 
 
162
- ssh-agent/gpg-agent integration (#44177, #65709)
 
163
 
 
164
- lbxproxy integration (tell ghakko)
 
165
 
 
166
- make shutdown an in-daemon function, not a pre-exit action.
 
167
  displays need to wake up again if nothing happens, though - add
 
168
  configurable shutdown timeout.
 
169
- when a shutdown is scheduled, don't remove all login possibilities.
 
170
  instead, display a warning in the greeter. use SIGUSR1 to notify already
 
171
  running greeters about changes.
 
172
- user notification about scheduled shutdown (and cancelled forced shutdown):
 
173
  - wall
 
174
  - greeter popup
 
175
  - d-bus message. this would be best, particularly because screen savers
 
176
    would need no special handling then.
 
177
- maybe bomb DefaultSdMode, save in state file instead. compare with ksmserver.
 
178
 
 
179
- gdm changelog indicates that PAM sometimes
 
180
  - continues despite PAM_CONV_ERR
 
181
  - asks user name twice
 
182
- gdm avoids the PAM_MESSAGE message box vs. prompt problem by displaying
 
183
  everything in one "error area". all messages are simply appended; an empty
 
184
  message clears the area.
 
185
- gdm stops cursor blinking on not used (remote) displays after 20 secs to
 
186
  save bandwidth.
 
187
 
 
188
internal stuff:
 
189
- sessreg.c does no file locking whatsoever
 
190
- improve signal handling in the subdaemon, it's incredibly racy (SIGTERM, etc).
 
191
  depends on proper main loop.
 
192
- greeter sometimes won't shutdown when killing kdm - prolly some race
 
193
- the process reaping from gClose should be in sync with the main loop.
 
194
- kill warning on AIX - see bug #13628 (really present?)
 
195
- xdmcp.c: make networkAddressToName use networkAddressToHostname?
 
196
- rethink the coupling of the kdm components, particularily the config reader.
 
197
  options:
 
198
  - keep things basically as-is, make the Xaccess interface even more flexible,
 
199
    add capability flags.
 
200
  - as previous, but don't use #defines, but textual constants. even more
 
201
    flexible, but slower, bigger, no compile-time checking, and the typing
 
202
    system would have to be more core-based. keys in the rc are considered
 
203
    invalid if they were not queried.
 
204
  - completely opposite: no explicit queries, but hard-code everything. that
 
205
    kills the idea of having one backend binary for multiple frontends, but
 
206
    that's a BlueSkyDream anyway.
 
207
    following that path, the config reader could be nuked at all. will have to
 
208
    do this for performance reasons anyway if some some sort of call-back
 
209
    mechanism for option values is added to allow some automation (depending
 
210
    on boot options, for example). possible callbacks are KConfig-like [$e]
 
211
    interpretation and an include statement that generates a config on the fly.
 
212
 
 
213
ralf says:
 
214
- put the kmenu sidebar image on the left of the greeter
 
215
- enable the clock by default
 
216
 
 
217
thoughts (not really todo):
 
218
- PAM sucks. big time.
 
219
  historically, it is completely incapable of operating in event-driven contexts
 
220
  when it comes to non-console authentication schemes. the module just hangs in
 
221
  pam_sm_authenticate() (pam_authenticate() to the outside), waiting for input
 
222
  from its device.
 
223
  then came linux-pam 0.58, introducing PAM_BINARY_{MSG,PROMPT} to the
 
224
  conversation function interface. no conversation function could handle the
 
225
  binary prompts generically, of course. so came linux-pam 0.63 with a client
 
226
  library that would add another layer of indirection, so the conversation
 
227
  function could simply call into it and it would do whatever was configured
 
228
  by the admin. and everbody was happy, right? wrong! i've yet to see a single
 
229
  module (except for the demo module in linux-pam, of course) that actually
 
230
  uses this feature. not to mention the non-existing portability (you don't
 
231
  seriously expect TOG to extend the PAM standard within the next decade, do
 
232
  you?). so we're right where we started from.
 
233
  this imposes problems in two use cases:
 
234
  - cancelling authentication alltogether. this happens when the user changes
 
235
    the authentication method or when the greeter exits for some reason. if
 
236
    the process waits in the conversation function, it can simply return
 
237
    PAM_CONV_ABORT. if the module hangs, we're screwed.
 
238
  - suspending authentication. this is needed for shutdowns that need auth.
 
239
    if the module hangs, we're screwed, of course. if we're waiting in the
 
240
    conversation function, we have three options: 1) just abort the auth
 
241
    cycle and start a new one. this is what is done currently. 2) just open
 
242
    a second pam handle and authenticate with it, all from within the "outer"
 
243
    pam_authenticate(). if we're lucky, no involved modules use static variables
 
244
    and things work out. 3) linux-pam 0.65 introduced the following: the
 
245
    conversation function can return PAM_CONV_AGAIN. this in turn makes the
 
246
    module and consequently libpam return PAM_INCOMPLETE, requesting the
 
247
    application to call the resp. libpam function again. in theory this
 
248
    guarantees that authentication with a second pam handle is safe. of course,
 
249
    PAM_INCOMPLETE is just as popular and thus useful as PAM_BINARY_PROMPT.
 
250
  we could just longjmp() out of hanging modules from a signal handler.
 
251
  however, this might lead to resource leaks and even leave us with an unstable
 
252
  libpam. killing the hanging process seems like the most viable solution.
 
253
  however, for this we first need to make the greeter a child of the master
 
254
  daemon. also, the display sub-daemon (which happens to do the main auth.)
 
255
  is responsible for keeping the initial X connection open. killing it would
 
256
  terminate the session according to the XDMCP spec. other issues are probable.
 
257
- multiple conv. plugins could be used in a row, each serving a pam module.
 
258
  the plugins would have to detect that it's their turn by filtering messages
 
259
  and prompts.
 
260
- consider making the menu an actions-only menu again and put an "options >>"
 
261
  button somewhere. relates #63401, #61492
 
262
- pipe .xsession-errors through the daemon and put a size limit on it.
 
263
  remove old logs in disk-full situation.
 
264
 
 
265
 
 
266
last sync with XFree86 HEAD: 2004-04-02