We relaunched the TWiki.org project with an expanded TWiki charter, and we invite you to participate! The TWiki.org Code of Conduct agreement took effect on 27 Oct 2008. We ask existing twiki.org users to opt-in. You need to opt-in to participate in the Blog, Codev, Plugins and TWiki webs. -- PeterThoeny - 27 Oct 2008
Tags:
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

See:

Contents

Notes

Keyboard Related Files

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

/xdev/xc/include/bitmaps/keyboard16
/xdev/xc/lib/xkbfile/xkbdraw.c
/xdev/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
/xdev/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
/xdev/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
/xdev/xc/programs/Xserver/hw/sun/kbd_mode.c
/xdev/xc/programs/Xserver/hw/sun/kbd_mode.man
/xdev/xc/programs/Xserver/hw/vfb/lk201kbd.h
/xdev/xc/programs/Xserver/hw/xfree86/etc/kbd_mode.c
/xdev/xc/programs/Xserver/hw/xfree86/etc/kbd_mode.man
/xdev/xc/programs/Xserver/hw/xfree86/input/keyboard
/xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile
/xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c
/xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.man
/xdev/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.man
/xdev/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c
/xdev/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.h
/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

  • /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/linux/keyboard.c — defines a keyboard table (??), some mention of emulation (can't emulate KT_ASCII, some functions to enable / disable the keyboard, etc. (LinuxKeyboardLoad? , LinuxKeyboardInit? , LinuxKeyboardLeds? , LinuxKeyboardBell? , LinuxKeyboardFini? )

  • /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/bsd/bsd_kbd.h — "extern void KbdGetMapping? (InputInfoPtr? pInfo, KeySymsPtr? pKeySyms, CARD8 *pModMap);"

  • /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 —

Contributors

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

Topic revision: r4 - 10 Apr 2003 - 20:29:00 - RandyKramer
 
TWIKI.NET
Copyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
See TWiki's New Look