Possible design of gpm2: gpm2-starter: - reads configuration - starts daemons * first gpm2-daemon - connects daemons * connects them through stdin and stdout? - perhaps a job of gpm2-daemon? * stderr is relayed to the log console - which can log to syslog gpm2-daemon: - main daemon - starts mice handlers - listens for ipc - relays input data abstracted to clients - does *NOT* draw a cursor or something like that - can be used by x.org (see below) - opens mice devices? - should be portable gpm2-io: - gets list of opened fds or of devices - uses poll() / select() on mice devices - retrieves data packets - forwards raw data packets to gpm2-daemon from devices - either - forwards raw data packets from gpm2-daemon to devices?? - decodes mice packets: does protocol handling and forwards decoded packages to gpm2_daemon - has a mouse - fd_in - fd_out list - has *NO* root priviliges gpm2-decode: - forwards raw data packets from gpm2-daemon - forwards decoded packages to clients (like gpm2-cdisplay) gpm2-raw-relay: - reads data from gpm2-daemon - writes raw data to clients - a client needs to connect n times for n mice gpm2-cdisplay: - Console DISPLAYS: displays mouse cursor on console - reads input from gpm2-daemon - reads mouse information - perhaps os-specific versions gpm2-ccandp: - Console Copy AND Paste daemon - reads input from gpm2-daemon - copies selected text into own buffer - pastes buffer to console - perhaps os-specific versions gpm2-xorg: - interface between gpm2 and x.org - could make mouse support unecessary in x.org - should be portable gpm2-syslog: - connects to the gpm2-daemon logging port - reads messages - relays them to syslog gpm2-log: needed? - logging interface for gpm2-daemon - recieves messages