Edit Rename Changes History Upload Download Back to Top

Squeak X Server

X Protocol Requests
X Protocol Replies
X Protocol Events
X Extensions

Squeak X Server Links

4/23/04 I'm still having problems encoding/decoding CreateWindow for the proxy.

I've fixed a few things and added some more frames. I also just realized that ListOfSTR is not a list of String. STR is another type. There are a few frames that I had not finished because of that.

I also noticed that half of the predefinded atoms are gone. I guess they got lost merging somewhere

4/2/04 I tried using XFree's reply to xlogo's GetProperty request, but that just made it worse. Using that reply, xlogo stops sooner.

3/24/04 I've added most of the replies. There was a problem with the string8 decoder methode. There are a few replies that have a list of string8. Since the string8 methode includes the pad it can't be used for a list of strings. I think I'm going to make a listOfSting8 methode to handle this.

2/14/04 I've been working on the requests. I'm doing the encoding and decoding of the request first, and then I'll go back and impliment what they they do. I've been keeping the table up to date, so you can check there to see where I am.

I made a few organizational changes. I renamed the frames to requests to match the documentation and renamed decodedFrameLength to decodedRequestLength. I also changed the category name to requests and made a new category for the replies.

2/2/04 I've added some more request frames. I'm also working on a table that shows what parts of requests are complete.

1/23/04 I'm sending the PropertyNotify event to xev. It prints part of the first event and times out without sending anything else. Before it gets the events it says 'unexpected async reply'.

Now I'm making a proxy that will relay frames between XFree86 and the client so I can see what XFree does. I don't know how I'm going to decode replys and events from the server. The first byte of replys is 1, but I don't know how to tell replys apart. Events have start with a code, but I don't know how to tell replys from events. I may have to keep track of what replys I am expecting to decode them. -- Adam: yes, you will have to keep track of what replies you are expecting (and their sequence numbers!). You can distinguish events from replies and errors by the first byte: 0 for error, 1 for reply, anything else is an event (notice that the lowest event code is 2, this is for this exact reason!)

1/16/04 I've been working on the window properties. I made a X11WindowProperty class to hold the property types and data. I've also working on the GetProperty request. I cleanded up the execute methode and handled some conditions that weren't implimented.

1/13/04 I went back and added a check for the request length to each frame. I also added a couple more frames.

1/12/04 I've added the CreateWindow, ChangeProperty, and ListProperty frames. ListProperty is getting a window that doesn't exist, so I what to do for that right now. The protocol doesn't say anything about properties for nonexistent windows ChangeProperty should also send an event. I'll probably have to send it to continue.

Also, I think I'm going to have to do something to manage window numbers. It seems like the client makes up its own numbers an I'll have to translate those into a global number or keep seperate lists for each client. Update - The server gives the client a range of id numbers at connection. It looks like the unknown ids I was getting were decoding errors.

1/5/04 I'm still stuck. I'm trying xev now. I'm working on the create window frame. I'm not sure how to handle windows properties (whether properties should be in the properties dictionary or instance variables).

12/18/03 I'm working on xclock now. It's asking about fonts. I'm just going to fake the replies. I've added PutImage, FreeGC, and OpenFont frames, and I'm working on QueryFont. Xclock is quitting with an error.

12/17/03 I'm still stuck on xlogo. I'm going to try working on xclock until I can figure out whats wrong.

I'm working on the PutImage frame. I can't figure out how long the data is.

12/12/03 The server is sending the visual types, but xlogo still seg faults.

I also also fixed intern atom so it will reply properly if the atom already exists and uploaded the changes.


I'm still working on sending the visual types. I think I'e made some progress. The server has all the types for a depth of 16, but there is a problem encoding them to be sent. I've noticed that the interned atoms are still strings and not symbols. Is that because they have _ in them? I also added the rest of the default atoms to the server.

I also just discovered that caps lock changes the values of mouse clicks and keyboard commands. That was very annoying.


I've been trying to figure out how to send the client the visual types the server supports. I think I'm going to add a class variable that will have the visual types for each depth. I also add a needsWork method to Object to flag methods that are not complete. 12/3/03

I have the GetProperty frame check for the property instead of just replying that it doesn't exist, but I don't understand how to make some of the replies. I also added methods to add and check properties of windows.

The wisker browser was acting strange. Closing it and opening a new one fixed it. 12/1/03

Dr Shaffer and I added a reply to the InterAtom frame.

After replying to those frames we didn't get any more frames. Maybe the reply to one of the GetProperty frames was wrong.


I made an XWindow class to keep track of window properties. The client handler has a list of its windows and creates window 0 after it is created. I somehow got caught in a loop creating an object. I ended up killing squeak trying to stop it and lost some work. I think I've redone everything I lost. 11/19/03

I've started using the Wisker browser. I really like being able to look at multiple classes in the same window, but it has some bugs.

I made a reply for the GetProperty frame. It only replys that the property does not exist. Properties belong to windows, and there are no windows yet, so I don't know why xlogo is asking about properties.

That reply gets xlogo to send another InternAtom frame. This one is for 'Custom Data.' I also added some methods to the X11Server to add atoms, but I haven't tested that yet. 11/15/03

I've started working on the InternAtom frame.

I think I've finished the encodeOn: method and I'm working on the reply now.

Edit Rename Changes History Upload Download Back to Top