Possibly the most basic utility for burning CDs ever created!


You need cdrtools-1.10 or later already installed. In particular mkisofs and cdrecord must be in your PATH, and must have appropriate permissions for scanning the bus, reading CDs and burning CDs. You can check they are installed by issuing the command cdrecord -scanbus and you can check the version using cdrecord -version. xcdr has been built using the Qt toolkit so the qt-mt.so.2 shared library must be available in the LD_LIBRARY_PATH.


A file browser can be started from the View | File Browser menu which enables you to drag files and directories onto xcdr. By default the simple fileiconview program from Qt examples is started although if konqueror is available it will be used instead. The file browser can be changed by setting an environment variable; see below for details.

Prior to creating the ISO image you can check the total size of files selected using the View | Total size menu. Note that the size is an under-estimate since it does not know about block and track padding, etc. If a large directory has just been added to the view the size calculation may not yet be complete but you will be warned of that fact and should select the menu option again later.

If you wish to reduce the record speed then it can be changed in the Preferences tab. By default, all CDs will be written multi-session and left open so that more sessions can be added in the future. To finalise the disc uncheck the option in the Preferences tab.

After selecting Burn you are given a few seconds to cancel the operation, indicated by a progress meter counting down. Pressing Abort during this period will prevent any changes to the CD.

The burn is then started and the progress meter counts up to 100%. Pressing Abort during this process will leave the CD in an unusable state.

After burning the CD it is "fixated" which may take up to two minutes. You cannot Abort during this process.

At any stage you can view the current log file by selecting the View | Log menu option. You may wish to do this when xcdr has just burned yet another coaster!

Screen shot


See mkisofs(8) and cdrecord(1) for configuration files such as .mkisofsrc and /etc/default/cdrecord.

Environment Variables

The external commands used for XCDR operation can be tailored by setting environment variables.

Variable Value Default
XCDR_CMD_FILEBROWSER File browser fileiconview or konqueror
XCDR_CMD_SCANBUS Bus scanning command cdrecord -scanbus
XCDR_CMD_IMPORT Session import command cdrecord -msinfo
XCDR_CMD_MKISOFS ISO creation command mkisofs -r -J -graft-points
XCDR_CMD_CDRECORD CD burning command cdrecord -v -eject

See mkisofs(8) and cdrecord(1) for environment variables such as CDR_DEVICE, CDR_SPEED, CDR_FIFOSIZE.


If your recorder or the CD to be burned do not support the chosen speed then cdrecord will simply use the highest speed possible which is lower than the chosen speed.

Features not supported by XCDR can be enabled using configuration files or environment variables for mkisofs and cdrecord. For example the volume label can be set using VOLI=id in .mkisofsrc

Future improvements will involve moving to Qt-3 to provide more robust communication with sub-programs and the saving of preferences such as speed.

Does not gracefully handle multiple files / directories with the same name.

See Also

See the manual pages cdrecord(1) and mkisofs(8).

1.07, 27 March 2002, Andrew Brooks <arb@sat.dundee.ac.uk>