create new tag
, view all tags
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 a tarball of X (4.3.0) and installed it in a new top level directory (/xdev) on my System5. I considered CVS'ing, and I might in the future. The tarball was about 50 MB and expanded to about 350 MB -- I don't know whether using CVS would have meant actually downloading 350 MB. I'm hoping, but don't know, that I will be able to use CVS on the expanded code from the tarball.

  • Found a documentation directory (/xdev/xc/programs/Xserver/hw/xfree86/doc/) and reviewed many of the documents including one named DESIGN -- it had hardly anything related to the keyboard. I don't know what the intent of the DESIGN document is -- is it to map future X development or what?? Those documents are also available on the web as .html documents at http://www.xfree86.org/current/index.html.

  • Found a program named kbd.c in directory /xdev/xc/programs/Xserver/hw/xfree86/input/keyboard. Browsed through it a few times and printed a copy out to start digging into.

  • Posted some questions on the xfree86@xfree86PLEASENOSPAM.org mailing list (might not be noticed as they are buried in the reply to another post) asking for help with finding the documentation, etc.

  • Still want to write to the authors of Xim and the Next dumpkeys facility to see if they can help. (Recently wrote to the authors of xvkbd and gtkeyboard and got prompt and courteous replies, but nothing that solved my problem. Wrote to the author of Xremote last night, no response so far (not complaining, just recording current efforts).

  • Hopefully today I'll:
    • look for additional copies of kbd.c (Is there a variation for each hardware platform? _No, but there are 20 to 30 files with names that include "kbd" or "keyboard", some for different platforms -- requires more digging)
    • investigate Xim / compose a little more (questions posed on previous page)
    • write to the authors of Xim and the Next dumpkeys thingie
    • review kbd.c some more
    • think about my mindset (see below)

My mindset: (This will be cryptic.) If I was solving an electrical problem I'd look for the wire which carries X (keyboard) events from the X server to the X client, cut it, and insert a new module that looks for certain keyboard events (<ctrl><alt>s) and, when found, deletes them and replaces them with other keyboard events (to transmit the desired replacement string). My mind is not really wired to look at the software that way -- not sure how to look for that wire. (And, maybe it differs for object oriented vs. <darn> programming, and maybe it's easier to find in oo? That might be nice, if I get to working on AbiWord.) Anyway, I think I want to think about how to find that wire in the X server C program.

Nice short bread crumb trail! wink




Keyboard Related Files

Files with kbd or keyboard in their name (or path):


  • /xdev/xc/include/bitmaps/keyboard16 — short, just some define statements, looks like something to define an icon or graphic for the keyboard?

  • /xdev/xc/lib/xkbfile/xkbdraw.c — based on the comments, it is copyrighted and licensed, but no one knows what it does wink I have a feeling I'll find those same comments in each file I look at.

  • /xdev/xc/programs/Xserver/hw/kdrive/itsy/kbd.c — stuff related to itsy??

  • /xdev/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c — (for a minute I thought it said xvkbd) — some similarity to the previous file -- loading/initializing the keyboard <something> for VxWorks (??)

Mostly the same comments in every file. Do they use ctags, bonzai, or anything like that?

  • /xdev/xc/programs/Xserver/hw/sun/kbd_mode.c — setting different keyboard "modes" ("for ascii, encoded (normal) SunView events, non-encoded, or unencoded SunView events") ??

  • /xdev/xc/programs/Xserver/hw/sun/kbd_mode.man — man page for the previous file ("resets the Sun console keyboard to a rational state.", "Causes ASCII to be reported.", "Causes ESC[4mFirm_eventsESC[24m to be reported.", "Causes up/down key codes to be reported.", "Causes undecoded keyboard values to be reported.")

  • /xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.man — man page for keyboard —

keyboard is an XFree86 input driver for keyboards. The driver supports the standard OS-provided keyboard interface. This driver is currently built-in to the core X server.

The keyboard driver functions as a keyboard input device, and may be used as the X server's core keyboard. This driver is currently built-in to the core X server, and multiple instances are not yet supported.

  • /xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile — clearly a make file related to the keyboard

  • /xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c — the file I printed out —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/dgux/dgux_kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/dgux/dgux_kbdEv.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.h —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/nto/nto_kbdEv.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/os2/os2_kbdEv.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/qnx4/qnx_kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/shared/kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/shared/std_kbdEv.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/shared/sysv_kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_kbdEv.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/xf86cfg/keyboard-cfg.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/xf86cfg/keyboard-cfg.h —

  • /xdev/xc/programs/Xserver/hw/xfree86/xf86cfg/keyboard.xbm —

  • /xdev/xc/programs/Xserver/hw/xfree86/xf86cfg/keyboard.xpm —

  • /xdev/xc/programs/Xserver/hw/xfree86/XF86Setup/kbddata.tcl —

  • /xdev/xc/programs/Xserver/hw/xfree86/XF86Setup/keyboard.tcl —

  • /xdev/xc/programs/Xserver/hw/xfree86/XF86Setup/tclkbd.c —

  • /xdev/xc/programs/Xserver/hw/xfree86/XF86Setup/texts/generic/help_keyboard.tcl —

  • /xdev/xc/programs/Xserver/hw/xfree86/XF86Setup/texts/ja/help_keyboard.tcl —

  • /xdev/xc/programs/Xserver/Xi/chgkbd.c —

  • /xdev/xc/programs/Xserver/Xi/chgkbd.h —


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

Page Ratings

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