Tags:
create new tag
, view all tags
It's not necessarily my intent to start a new X Server Modification Project page every day (nor is it to limit myself to just one page a day), more, it's my intent to use these something like scratch paper -- when a page gets too cluttered or I recognize a blind alley, I'll just start a new page (tear off a new sheet of scratch paper).

  • Explored some of the kbd and keyboard files last night -- many of them seemed to be attempting the same objective, and appeared to be setting up data structures and so forth or initializing the keyboard rather than trying to handle keypress or key release events.

  • Grepped through the code yesterday using grep -H -r -e \ main\( * to try to find the "main" Xserver routine. Probably close to 200 instances found (some in comments) -- didn't open any of those files -- might paste them here (or some similar page) to keep records as I browse some of those files.

  • Maybe I should grep on "keypress" or similar?

  • Found a useful resource -- (from the online xfree documentation index: http://www.xfree86.org/current/XFree86.1.html, which talks about (or at least mentions) how the X server and X client communicate (the mechanism rather than the protocol) talks about Unix sockets, and some alternates, like NAMED, PTS, SCO, and ISC. Want to investigate this further:
    • Unix Sockets
    • NAMED — SVR4 Named Streams pipe
    • PTS — old-style USL Streams pipe (USL = Unix Systems Laboratory??) -- this appears to be what's used on my Mandrake 9.0 system (based on who returning a bunch of processes like /dev/pts0)
    • SCO — SCO XSight Streams pipe — maybe only relevant if I would try to make this work on SCO?
    • ISC — ISC Streams pipe

One problem I suspect I'll have is that many of the above (except sockets) will refer to themselves (in documentation) simply as pipes — I wonder how I'll distinguish them so I keep their capabilities straight? Is this all what is found on man pipe and all related, since that page includes the line: "CONFORMING TO ... SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3" — sounds rather likely(??). — On the assumption that such is the case, I'll start a page Unix Pipes.

  • Started reading ps documents I found yesterday (in the tree) on the X Protocol and the X keyboard extensions. Looks to me like the X keyboard extensions (whatever the right name is) are not really anything I need -- what I was planning to do seems entirely appropriate within the X server core (there's a diagram on one of the early pages), and would have the advantage of working with any X client (not just those that were extension aware or capable (IIR the two categories C). (Woke up with a headache this am -- wonder if it's because of reading those documents in Ghostview? It is really ugly -- ugly fonts and ugly within the page navigation (although the space bar would work if I hadn't doubled the type size and had to continually recenter the document on the page (horizontally)).

  • Wonder if those documents are online -- I should record the filenames here (the below is a weak start -- need to get the paths, I guess): (and again I hate ps and pdf -- can't cut and paste (at least so far))
    • proto.ps — "X Window System Protocol", "X Version 11, Release 6.4" (I was at about page 84 (browsing and skimming)
    • allchaps.ps — "The X Keyboard Extension, Library Specification", "Library Version 1.0, Document Revision 1.1" (I was at about page 5 (browsing))

  • After reading what I did yesterday I had a different thought -- maybe I just want to intercept the data stream between the X server and X client(s), watch that stream for keyboard events coming from the X server with "my" defined special keycodes, and inject my additional string as additional events (deleting the first event). It means I'd have to handle (pass along) each event, maybe in both directions, which will involve some processing, and, hence, increased latency. Something to think about.

See:

Contents

Notes

Contributors

  • () RandyKramer - 11 Apr 2003
  • If you edit this page: add your name here; move this to the next line; and include your comment marker (initials), if you have created one, in parenthesis before your WikiName.

Page Ratings

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2003-04-11 - RandyKramer
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by PerlCopyright 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WikiLearn? WebBottomBar">Send feedback
See TWiki's New Look