Current setup: An X app provides the UI and does the root-privledge scanning. The next step along this line is to get the scanning in its own thread.
Better idea: separate the root-privledge operations into a daemon. use dbus for client/server communications. One daemon could support multiple clients.
New package layout:
The server threads would be:
dbus listener - dbus message handler
wireless scan loop - periodically executes wireless driver's scanning function. update local cache of scan data.
step 1. create a client/server hello world progam in dbus.
step 2. add a wireless scan thread to the server
step 3. test dbus-assisted server startup
step 4. define an API between client and server
step 5. work on a new look and feature list for the client