1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
I think some servers are not properly initialised after reexec
documentation:
Make sure everything uses active voice
Make sure mood is consistent
Texinfo manual should use declarative mood
Source code documentation should use imperative mood
Missing servers:
xmds wmds mmds mdsx
mdsw mdsm hwgamma swgamma
hwcursor swcursor cursorgamma coopgamma
host remote fb kbd
keytrans kkbdrate rat compositor
crtc seat dri drag
cursorshadow kill focus dither
state screensaver
Extra servers:
kbdbind ratbind gestures dcvs
decorator tile stack workspace
tray retro-crt kbd2rat multikey
keystick posmem nest mds
meta keybounce slowkey keycue
ratbarrier desktop endomon
a speech-to-keyboard server
some server that hides the cursor when appropriate, such
as when the user starts typing
some server for drawing on the screen
some server for delaying video output from programs
(used if a video is not in sync with its audio, and is ahead)
cinerama: combines multiple output to one single output
transform: like xkeystone and xrandr --transform,
should transform the rat cursor too
kbdautorelease: server that automatically relases selected keys
when pressed, emulating the feature found on the
most keyboards for the pause-key. This is
primarily intended for keyboards that do not
have this feature on the pause-key.
ratrot: rotate input of pointer device. Should be able do be
monitor dependent and be able to follow the rotation
of that monitor's output.
converge: displace subpixels to correct for bad colour
convergence on CRT:s
ratautohide: automatically hide the rat when it has not been in use
for a few seconds.
pinkeye: translate everything to sRGB red.
gamut: sRGB to screen specific RGB converter.
(not all modern monitors actually use sRGB.)
change colors to make it easier for people with defective
colour vision to distinguished between certain (selectable)
colours.
Missing commands:
reg clip screenshot slay
chvt
conf Command line interface for reconfiguring servers
Need testing:
registry
clipboard
kkbd
kkbd, on a SPARC
vt
colour
Security features:
The server should authenticate itself for the clients
This will require that the display server is not
identified by an index by instead by the PID
of the kernel, and that the master server passes
file descriptors to the kernel and let the kernel
sent its credentials to the client to prove that
it is the correct server. Sockets cannot be hijacked
so the server does not need to send its credentials
to the kernel
Clients should send their credentials upon connection.
Sockets cannot be hijacked so the credentials are
valid forever.
The server should insert the credentials of each client
a message pass through and why the the message passed
through that client, and whether the message was modified.
Clients should be able to tell the server who is allowed
to see a message (all that can see are allowed to modify)
based on PID, UID, GID, the permissions, owner and
group of the executable, and the path of the executable,
and possibly other attributes.
Stability features:
On failed re-execution, execute back to the old version.
This is done by opening /proc/self/exe before preexecuting
and execute back to that file descriptor on upgrade failure
and close that file descriptor on successful upgrade
Full introspection may be useful for debugging.
Fast lanes
Optimise use of mutexe by replace them with rwlocks (where appropriate)
Listen for `Command: reregister`
Register protocols
A facility is needed to lookup available compose sequences to any character,
it would be useful in character map programs so one can easier learn the
compose sequences for character that one uses often
Servers should be stored in LIBEXECDIR.
Implement reconnect_to_display()
Something is up with the test, it does not exit on Control+C
Make sure it is possible and easy to change window manager
and desktop environment online.
IPA keyboard layout
Add support for SIGINFO
mds-registry mds-server
If getpgrp() == tcgetpgrp(STDOUT_FILENO), a graphical program
should be able to commandeer a window (in particular a terminal
emulator) and return it when exiting.
How do we best avoid that hung clients freeze the display.
mds-hwgamma and mds-swgamma should be able to limit the
gamma ramps' convergence to help ensure that the screen is
always readable (optional feature). Soft limits are set
in argv, hard limits are set via #define:s at compile-time.
Perhaps (at least later): rewrite multithreaded servers to use epoll,
especially mds-server
Non-sRGB support, we need to take a step towards wider gamuts.
|