Made libz, libbz2 and libgdbm optional.
[doldaconnect.git] / doc / gui-shell
CommitLineData
c4b406ca
FT
1 GUI shell details
2
3The majority of Dolda Connect is made out of a number of ordinary Unix
4programs; for example, doldacond follows the normal Unix daemon
5conventions, and dolcon -- while not a command-line program -- is a
6self-contained GUI completely separate from the daemon. While Unix
7users should feel quite at home with these programs, the whole
8convention of using separate programs may seem quite alien to those
9used to traditional Direct Connect clients, such as DC++, where
10everything is done by one, monolithic program.
11
12In order to make life a bit easier for those people, Dolda Connect, as
39d66815 13of 1.0, comes with a number of wrapper programs, which should be able
c4b406ca
FT
14to provide the illusion of Dolda Connect being one, integrated
15environment. For those wishing to hack on them or those just being
16curious about how everything works together, this file attempts to
17document the details of this so called `GUI shell'.
18
19At its core, Dolda Connect consists of two programs: The doldacond
20daemon, and the dolcon GUI. The GUI shell adds three programs to wrap
21them together:
22
23 * The `dolconf' GUI configuration program
24 * The `doldacond-shell' daemon wrapper
25 * The `dolcon-launch' magic do-what-I-mean program
26
27The dolconf program is simply a program which provides a GUI to the
28user in order to compose a configuration file for doldacond. It can
29run both in assistant (that's `wizard' for you Windows users)
30super-simple mode, or on a slightly more advanced ordinary mode,
31somewhat, vaguely reminiscent of the configuration dialog in
32DC++. When it starts, it checks to see if the $HOME/.doldacond.conf
33file exists. If it does, it will automatically start in its ordinary
34mode, whereas if it does not, it will ask the user whether to start in
35assistant or ordinary mode. It provides the `-a' and `-w' command-line
989e31f2 36options to immediately, regardlessly of the existance of the
c4b406ca
FT
37configuration file, enter the assistant or ordinary modes,
38respectively.
39
40The doldacond-shell program is a wrapper program for the daemon. Its
41main task is providing visual feedback (by means of a window) while
42the daemon is starting and scanning the shares, and a tray icon to
43indicate that the daemon is currently running. It also provides a
44simple way to launch dolcon simply by clicking the tray icon. As an
45extra service, it also monitors all transfers in progress and, if
46compiled with libnotify support, will pop up notifications when
47interesting things happen to the transfers. When it starts, it will
48check the $HOME/.doldacond.pid file for the PID of a running
49daemon. If a daemon is already running as indicated by that file, it
50will not attempt to start a new one. It shuts down along with the
51daemon itself.
52
53The dolcon-launch program is a little DWIM program for facilitating
54the creation of a desktop file (a program menu entry). It is quite
989e31f2 55simple -- if $HOME/.doldacond.conf does not exist, it starts
c4b406ca
FT
56dolconf. If it does exist, but no daemon can be found (again as
57indicated by $HOME/.doldacond.pid), it starts doldacond-shell, and
58otherwise it starts an instance of dolcon.
59
60To facilitate all this, dolcon has been gifted with a `-l' command
61line option, which, if present, causes dolcon to autoconnect to a
62local daemon via a Unix socket. That way, $HOME/.dolconrc need not
63necessarily be configured for local operation for the GUI shell to
64work.
65
66In all, I believe these programs together should present the illusion
67of an integrated Direct Connect client program.