• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Core wayland protocol
2
3 - Maybe try to make remote wayland actually happen, to see if there
4   is something in the protocol/architecture that makes it harder than
5   it should be.
6
7ICCCM
8
9 - mime-type guidelines for data_source (ie, both dnd and selection):
10   recommended types for text or images, types that a clipboard
11   manager must support, mime-types must be listed in preferred order
12
13 - we need a "no kb focus please" mechanism.  Or should this be
14   implicit in a specific surface type?
15
16EWMH
17
18 - configure should provide dx_left, dx_right, dy_top, dy_bottom, or
19   dx, dy, width and height.
20
21 - move to workspace, keep on top, on all workspaces, minimize etc
22   requests for implementing client side window menu? or just make a
23   "show window menu" request to let the compositor display and manage
24   a popup window?
25
26 - window move and resize functionality for kb and touch.
27
28 - Protocol for specifying title bar rectangle (for moving
29   unresponsive apps).  Rectangle for close button, so we can popup
30   force-close dialog if application doesn't respond to ping event
31   when user clicks there.  We could use the region mechanism here
32   too.
33
34 - popup placement protocol logic.
35
36 - subsurface mechanism.  we need this for cases where we would use an
37   X subwindow for gl or video other different visual type.
38
39EGL/gbm
40
41 - Land Robert Braggs EGL extensions: frame age, swap with damage
42
43 - Make it possible to share buffers from compositor to clients.
44   Tricky part here is how to indicate to EGL on the server side that
45   it should make an EGLImage available to a client.  We'll need a
46   "create a wl_buffer for this EGLImage for this client" kind of
47   entry point.
48
49 - Protocol for arbitrating access to scanout buffers (physically
50   contiguous memory).  When a client goes fullscreen (or ideally as
51   the compositor starts the animation that will make it fullscreen)
52   we send a "give up your scanout buffer" to the current fullscreen
53   client (if any) and when the client acks that we send a "try to
54   allocate a scanout buffer now" event to the fullscreen-to-be
55   client.
56
57
58Misc
59
60 - glyph cache
61
62    - Needs a mechanism to pass buffers to client.
63
64      buffer = drm.create_buffer(); /* buffer with stuff in it */
65
66      cache.upload(buffer, x, y, width, height, int hash)
67
68      drm.buffer: id, name, stride etc /* event to announce cache buffer */
69
70      cache.image: hash, buffer, x, y, stride /* event to announce
71					      * location in cache */
72
73      cache.reject: hash   /* no upload for you! */
74
75      cache.retire: buffer /* cache has stopped using buffer, please
76			    * reupload whatever you had in that buffer */
77
78 - A "please suspend" event from the compositor, to indicate to an
79   application that it's no longer visible/active.  Or maybe discard
80   buffer, as in "wayland discarded your buffer, it's no longer
81   visible, you can stop updating it now.", reattach, as in "oh hey,
82   I'm about to show your buffer that I threw away, what was it
83   again?".  for wayland system compositor vt switcing, for example,
84   to be able to throw away the surfaces in the session we're
85   switching away from.  for minimized windows that we don't want live
86   thumb nails for. etc.
87
88
89Clients and ports
90
91 - port gtk+
92
93    - draw window decorations in gtkwindow.c
94
95    - Details about pointer grabs. wayland doesn't have active grabs,
96      menus will behave subtly different.  Under X, clicking a menu
97      open grabs the pointer and clicking outside the window pops down
98      the menu and swallows the click.  without active grabs we can't
99      swallow the click.  I'm sure there much more...
100
101    - dnd, copy-paste
102
103 - Investigate DirectFB on Wayland (or is that Wayland on DirectFB?)
104
105 - SDL port, bnf has work in progress here:
106   http://cgit.freedesktop.org/~bnf/sdl-wayland/
107
108
109Ideas
110
111 - A wayland settings protocol to tell clients about themes (icons,
112   cursors, widget themes), fonts details (family, hinting
113   preferences) etc.  Just send all settings at connect time, send
114   updates when a setting change.  Getting a little close to gconf
115   here, but could be pretty simple:
116
117     interface "settings":
118       event int_value(string name, int value)
119       event string_value(string name, string value)
120
121   but maybe it's better to just require that clients get that from
122   somewhere else (gconf/dbus).
123
124
125Crazy ideas
126
127 - AF_WAYLAND - A new socket type.  Eliminate compositor context
128   switch by making kernel understand enough of wayland that it can
129   forward input events as wayland events and do page flipping in
130   response to surface_attach requests:
131
132    - ioctl(wayland_fd, "surface_attach to object 5 should do a kms page
133			 flip on ctrc 2");
134
135    - what about multiple crtcs? what about frame event for other
136      clients?
137
138    - forward these input devices to the client
139
140    - "scancode 124 pressed or released with scan codes 18,22 and 30
141       held down gives control back to userspace wayland.
142
143    - what about maintaining cursor position? what about pointer
144      acceleration?  maybe this only works in "client cursor mode",
145      where wayland hides the cursor and only sends relative events?
146      Solves the composited cursor problem.  How does X show its
147      cursor then?
148
149    - Probably not worth it.
150