by George Staikos
Dazzle your friends and family, but more importantly, make your applications rock, by using KDE's fully networked desktop protocol handlers!
KDE is, by design, a fully networked desktop. Network files are accessible as readily and easily as local files from most applications. This is accomplished through special protocol handlers built into KDE, known as I/O slaves. These handlers implement a specific network protocol such as HTTP, FTP, or IMAP, and transparently interact with applications when they try to open a URL that requires that protocol.
In the KDE Info Center you will find a category called Protocols. If you select this category, you will be presented with a list of all the protocol handlers installed, and selecting a given handler will display some usage help (where available) in a panel to the right. A typical KDE installation supports approximately 75 different protocols! This can certainly be overwhelming, and very few users make use of more than a few of these. In fact, many of these protocol handlers are designed primarily for internal use by various applications, or as compression filters for other protocol handlers.
A complete list of installed protocol handlers can be found in the KDE Info Center. You can run this by opening the K-Menu, and running "Info Center" in the "System" sub-menu, or simply "Alt-F2" and run "kinfocenter".
The easiest way to explore and experiment with the different protocol handlers is to try them in Konqueror, the universal browser application. Not all protocols actually go out onto the network. For instance, if you type "fonts:/" into the Konqueror "Location:" prompt, you will get a virtual directory of folders with the fonts installed on the system. Incredibly, you can drag these fonts out of the folders to copy them, move them to the trash to uninstall them, or even drag new fonts into the folders to have them installed and made available to applications! You can even see iconic previews of the fonts as you browse, making it easy to see which font is the one you are looking for.
Some other interesting "local" protocol handlers include:
"audiocd:/" - A powerful tool to browse and play tracks on audio CDs. Includes transparent encoding into MP3 and OGG when dragging tracks off the CD.
"devices:/" - Presents a list of storage devices on the system, allowing browsing, mounting, unmounting, and other sorts of device manipulation.
"info:/" - Provides a very clean, easy-to-use interface to GNU info pages.
"man:/" - Provides access to the entire system manual.
"perldoc:/" - Provides access to the PERL manual, for PERL programmers.
"settings:/" - A mechanism to configure your KDE desktop from any place that accepts URLs.
"trash:/" - In KDE 3.4, will provide direct access to your trash bin.
"tar:/path/filename" and "zip:/path/filename" - Browse into TAR and ZIP files without unpacking them, opening a command prompt, or opening a packaging application. You can even edit the archive as though it were unpackaged!
Perhaps more interesting than the local protocol handlers are the network ones. They bring the network to the local desktop in a transparent way, making communication and collaboration downright trivial. You're probably already familiar with the HTTP protocol, used by websites to transfer web pages to the browser. KDE supports this protocol along with many others. For instance, you can browse FTP sites with the ftp:// protocol, or connect to the Microsoft Windows "network neighborhood" with the smb:/ protocol. Protocols with an equivalent protocol ending in the letter "s" generally signify that they support SSL encryption, such as "https", "ldaps", and "imaps".
Some interesting network protocol handlers include:
"ftp://host/" - A fully functional FTP client.
"http://host/" - A fully functional web client.
"imap://host/" - Access your IMAP mail account.
"ldap://host/" - LDAP directory browser.
"nntp://host/" - Access a Usenet news server.
"pop3://host/" - Access your POP3 mail account.
"sftp://host/" - SSH encrypted FTP.
"webdav://host/" - Webdav (AKA Webfolder) client for KDE.
Being able to do all of these things from a web browser is definitely a nice parlor trick, but in reality it's not a very easy way to use a computer. The real power of these protocol handlers is unleashed when they're used within various KDE applications. Any of these protocols can be used from the KDE file dialog, allowing files to be opened from or saved to any protocol! You can open your word processor, select File->Open, browse to a file on an FTP server, edit it, and save it back to the server all without leaving the word processor.
Finally, KDE includes one special protocol that lets you access another computer that isn't running traditional network services such as FTP and HTTP. This protocol is called "fish", and requires a running SSH server and PERL installed on the remote machine. Simply use the URL fish://host/ and log into the server when prompted. You can browse around the server, manipulate files with drag and drop, and edit files as though they were local. Many KDE users eventually find this to be an indispensable tool for accessing their files on other computers.
The integrated networking layer is certainly one of the strongest points of innovation in KDE. Microsoft Windows and Mac OS X have a long way to go to catch up with the robust, transparent functionality that KDE has provided since version 2.0.
George is a software developer from Toronto, Canada. He has been actively involved with the KDE project for over 5 years, developing KDE code and attending conferences to discuss and promote KDE and Linux on the desktop. He is presently the North American press contact for KDE, and is still an active developer. George has contributed to many different areas of KDE including the libraries and I/O subsystem, Konqueror, KMail, and various other applications.