create new tag
, view all tags
Starting a series of pages to record notes, progress, musings, whatever as I try to patch the X11 X server to incorporate a keyboard macro facility.


The keyboard macro facility would let me assign (arbitrary) strings to (arbitrary, but typically unusual — like <ctrl><alt>s) keystrokes, such that, when pressed the arbitrary string would be sent to the application with the current (keyboard) focus. (The string may have to be sent as keycodes, keyevents (keydown, keyup), or whatever X client applications normally expect.)


I've done a fair amount of investigation about other ways to do this, including things like xvkbd, khotkeys (in which this facility hasn't materialized yet, but even if it does will probably be limited to kde applications or applications that use their dcop facility). I've about come to the conclusion that, for my purposes, I need something that works in (or near) the X server. Among other things, that means it will work for any X application. (My hope is that the keyboard events arriving at an application will look "real" vs. "synthesized" or coming from another application, thus there will (should) be no basis for those applications to reject the keystrokes. (Which some applications do, either by refusing to accept SendEvents or by some other mechanism.))

One thing I should take one more look at is Xim and the X compose thingie that I think it supports (or are they two different things?) My notes related to that are currently on Xim. Without having checked that yet, I can think of two things I should beware of:

  • Does Xim / compose also depend on SendEvents (and thus might not work in all X clients)?
  • Must I write an Xim server to support what I want to do? I seem to recall that I do — if so, my preference is to just modify the X server — just solve the problem closer to the source — unless somebody provides me with a good explanation of why that's a bad idea — I've thought a little bit about security, but don't see such an approach increasing the insecurity of X (like if somebody grabs my keyboard, either physically or virtually).

See also many related pages and false starts, but start by looking at:

Aside: You knew I'd have an aside, didn't you wink — Working on topics like this (and the email server thingie) in TWiki is not as easy as I hoped. Seems it would be easier in Word (with collapsible outlining) or Ed Reams' Leo. Maybe it will get better when I can quickly create new webs, especially in a hierarchical manner. (I hesitate to start new webs here on twiki.org -- I feel like I've already taken too much advantage of PeterThoeny's hospitality.) I guess the current workaround is the structured search / page prefix thing, so maybe I should initiate that immediately, then prefix at least all the new pages I create (on this subject) from this point on. Ok, here we go. Back for a minute — maybe I should take more advantage of the parent / child page thingie (and "bread crumb trail") but that just seems a pain to use. If I have children of this page I should put their names here, then start them by clicking on them on this page (unless I want to modify the parents later, which I don't want to do. (Or, add something like a ParentTopic parameter (I think that exists) when I type the page name into the browser address bar.) None of these options are at the level of convenience I'd like to have. Hmm, Ok, what would be the level of convenience you'd like to have? Well, just thinking out loud, some "superpage" that shows the organization of pages under a particular parent, and lets me point, click, copy, paste, drag, and similar (or type in the name of a new page on a blank line under some other page (like you'd start a new directory in, e.g., Windows Explorer)). (That's just a quick thought -- there may be other ideas.) Hmm, but isn't that just about like a "master" collapsible outline or Leo thingie. Hmmm, well, yes! wink

But, to start the first diary page with the right parent: XsmD20030410

X Server Modification Pages

To add additional pages related to my [attempted | intended] modificiations to the X server, simply create a new page using a name prefixed with "Xsm"... (For diary pages, use "XsmD"yyyymmdd with the date of the first entry on that page.)

Note: The following list might not include all pages related to X because it searches only for pages with a prefix of Xsm.

  • Page Title: Summary

  • XsmD20030410: Having (tentatively) concluded that I need to write my own modification / patch to the X server (see other pages for how I came to that conclusion), I`ve: Downloaded...

  • XsmD20030411: 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...

  • XsmD20030412: Shouldn`t spend much time on this for the next several days, as there are other things I need to do. Nevertheless: See: About These Pages X Server...

  • XsmD20030413: Still need to be busy doing other things, but will record some things. See: About These Pages X Server Modification Project , 43 Contents Notes...

  • XsmD20030414: Continuing the `diary` of my effort to modify the X server to include keyboard macros. This is another day with other things to deal with. See: About These...

  • XsmD20030422: Wow, 8 days or so since I did anything. Well, I did print out xc/programs/Xserver/dix/main.c (without the copyright notices, just to save some trees). See:...

  • XsmD20030426: I haven`t updated the diary again in a few days, but I have been doing somethings, primarily related to learning C, specifically: Learning more about macros...

  • XsmD20030428: See: About These Pages X Server Modification Project , 43 Contents Notes Reread the first 20 or so pages of the `Definition of the Porting Layer...

  • XsmD20030428a: Results of some greps see XsmD20030428 do I really want these on WikiLearn? Well, for now, yes reconsider later. See: About These Pages...

  • XsmD20030429: Ok, I`m reviewing events.c (from xc/programs/Xserver/dix, IIRC), and running into problems because I forget what, for example ` ` means. I may even already have...

  • XsmD20030430: Continuing the quest. Some terms from events.c to understand. See: About These Pages X Server Modification Project , 43 Contents Notes Some terms...





  • () RandyKramer - 10 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.

Comments on this Page

Corrected some typos, grammos, etc. -- RandyKramer - 17 Apr 2003

Page Ratings

Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2003-04-17 - 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