Current stable version: 0.5.103   development: 0.6.70 Last updated: 2009-11-15    
Tux Commander

Welcome to the project site of the Tux Commander application.

Tux Commander is a windowed file manager with 2 panels side by side similar to popular Total Commander or Midnight Commander file managers. The main goal of this project is to create powerful and user friendly file manager for Unix operating systems.

General features:
  • Graphical application, uses GTK2 windowing toolkit
  • Two directory panels side by side (vertical)
  • Tabbed interface, buttons for quick access to favorite places
  • Configurable mounter bar for quick access to removable media and network shares
  • Multilingual user interface
  • Basic VFS (Virtual File System) support, allowing you to browse archives and network places
  • Extendable via plugin system, several VFS modules available in the distribution
  • Portable, no installation required, usable right after the extraction
  • Designed for GNOME and XFCE desktop environments while preserving complete independency (libraries are loaded dynamically when available)
  • Extension-based file type actions (associations)
  • Threaded file operations
  • Large files (> 4GB) support
  • Main application written in Object Pascal language (with FreePascal as default compiler), plugins are written in C/C++ language
  • Sources available in GIT repository

    Using Object Pascal language might be considered as limiting factor, however we recently switched to FreePascal compiler, solving many compatibility issues. Also, the x86_64 port was introduced and is officially supported as well as the i386 platform. PowerPC port is working, though issues may appear. Kylix compatibility will be still maintained.
    This project uses Pascal GTK2 bindings from the gtk2 for pascal project, which are now part of FreePascal v2.0 distribution.
  • Plugins
    Several VFS plugins are available at the moment. To keep main application and modules separated for better maintenance, all plugins are distributed within the tuxcmd-modules package.

    It's worth to mention that some modules might have dependencies to various libraries not available on your system. It's strongly recommended to install latest libstdc++6 libraries which are needed for modules written in C++.
    The current VFS implementation lacks support for extended features of both archiving and remote filesystems. This is one of the main goals for 0.6.x series.

    GVFS plugin
    This plugin is built on top of the GVFS daemon, which is an integral part of Gnome Desktop since version 2.22. It provides access to many type of resources such as network shares (FTP, SSH/SFTP, Samba, WebDAV), bluetooth devices (ObexFTP), cameras and portable players (gphoto2) and others.

    Feature highlights:
  • read/write access to network resources (FTP, SSH/SFTP, SMB, WebDAV)
  • complete support for various gvfs authentication methods
  • automatic gnome-keyring integration (ability to turn it off; password are synchronized one way to gnome-keyring only)

    To be implemented:
  • support for appending

  • ZIP plugin
    This plugin uses ZipArchive library, Copyright (C) 2000 - 2007 Artpol Software - Tadeusz Dracz. Both plugin and the library are pretty stable for normal use at their current versions.

    Feature highlights:
  • full read/write support for ZIP archives
  • full support for Unix file and directory permissions
  • password protection support (read/write)
  • statically linked in one module, no external libraries needed

    To be implemented:
  • archive consistency testing (needs new VFS API)
  • creating archives from scratch (needs new VFS API)
  • compression level setting (needs new VFS API)
  • multidisk archives

  • UNRAR plugin
    This plugin is based on original unrar sources, Copyright (C) Alexander L. Roshal.
    Please note that additional licence applies to unrar sources.

    Feature highlights:
  • read-only support for RAR archives
  • full support for Unix file and directory permissions
  • password protected archives are supported
  • multidisk archives support
  • large files (> 4GB) support
  • can handle self-extracting .exe archives (when renamed to .rar)

    To be implemented:
  • archive consistency testing (needs new VFS API)

  • libarchive plugin
    This plugin uses libarchive library, Copyright (c) 2003-2007 Tim Kientzle. The plugin can be either linked statically or can use shared system library.

    Feature highlights:
  • read-only support for TAR, TAR.GZ, TAR.BZ2, ISO (CD images/ISO9660), CPIO, A (ar) and DEB archives
  • large files (> 4GB) support
  • correctly handles sparse files

    To be implemented:
  • archive consistency testing (needs new VFS API)
  • write support (probably creating new archives only)

  • Participation in project development
    At the moment, the project is actively maintained only by one developer. I'm developing it in my free time and cannot guarantee flexible responses to bugs and new features, sometimes experiencing shorter or longer downtimes.

    There are several ways how to contribute to this project:
  • user interface translations - please check below for the list of available translations. Some of them are not maintained anymore.
  • plugin development - new archives support, new network protocols. Any programming language generating standard shared objects can be used.
  • main application development - please contact me if you are interested in main application development. There are lot of things to explain, internal structure, objects, ...
  • documentation - integrated program help, description of dialogs, tutorials

    Please check the Development section for more informations.

    I will appreciate any support, if you find bug or inconsistency, please let me know.
  • Features
    Tux Commander supports profiles, which means you can have more than one settings per user. User settings is stored in several files in the ~./tuxcmd directory with the standard INI-like structure, easy to edit. Profile is selected and loaded on application start and can be specified by the --profile=<PROFILENAME> commandline parameter. Some settings like file actions are not profiled and are common for all profiles within one user.
    This feature might appear useless to most people, but could be useful in some cases (e.g. debugging purposes).

    File types
    A Filetype subsystem gives user option to open certain type of file in one or more external applications compatible with it. A quite unusual approach how the file types are distinguished was chosen for Tux Commander. It's completely extension based, similar to Windows, in contrast to Unix file managers where MIME type handling is commonly used. Since Tux Commander is primary intended for end users who want to work with their data and not with the system files, we believe this is the right solution. This however brings incompatibility to popular desktop environments but imagine that KDE and Gnome are also separated. The other reason why separate system was used is to keep the application universal and not dependent to any existing desktop environments. Also, converters and linking plugins are planned for future versions.

    To understand the system, it would be better to explain it in practice: Open the "File Types Configuration" dialog from the Settings menu, there you can see a list of existing file types and buttons for adding new or removing existing ones. For each file type you need to define file extensions (for example mp3) and add them to the list or extensions. A color and icon of this filetype can be specified here to visually separate files in the directory panels. On the second page you need to define at least one action, by specifying application command to be executed. If you define more than one action, you can choose from them in file popup menu, invoked by clicking right mouse button on the file.

    Key shortcuts
    The following key shortcuts can be used in panels:
    LetterRedirect typing to command line
    EnterChange directory / run program / run associated program / execute command line if not empty
    Ctrl+Enter, Alt+EnterInsert selected file/directory name to the command line
    TabSwitch to opposite panel
    Num +Expand selection
    Num -Shrink selection
    Num *Invert selection
    BackspaceChange to the parent directory
    InsertInclude or exclude file/directory to or from the selection
    Ctrl+RRefresh current directory
    Ctrl+O, Alt+OChange the path in the opposite panel to the focused directory
    Ctrl+S, Alt+S, "/" keyStart quick search and redirect typing to the search box
    Ctrl+A, Alt+AInsert current path to the command line
    Ctrl+P, Alt+PSelect previous command in the command line history
    Ctrl+N, Alt+NSelect next command in the command line history
    Shift+F4Create new text file and open it in the editor
    Shift+F5Copy files (with rename) in the same directory
    Shift+F6Perform quick-rename (inplace editing)
    SpaceCount the directory size under the cursor
    Alt+Shift+EnterCount sizes of all directories in the list
    Ctrl+HomeGo to the home directory in the current panel
    Ctrl+/Go to the root directory ("/") in the current panel
    Ctrl+LeftArrow/RightArrowSwitch the panel on the left/right to the selected directory (or actual if file is selected)
    Alt+F1, Alt+F2Display bookmark menu for left (right) panel
    Ctrl+DDisplay bookmark menu for active panel
    Alt+1..9,0Quick jump to the bookmark (the numbering starts from 1 = first bookmark)
    Ctrl+DownActivate commandline
    Ctrl+UpGet back to panel from commandline
    Ctrl+TDuplicate current panel tab
    Ctrl+WClose current panel tab
    Ctrl+Tab, Ctrl+PageDownSwitch to the next panel tab
    Ctrl+Shift+Tab, Ctrl+PageUpSwitch to the previous panel tab
    Ctrl+.Show/hide dot files
    Ctrl+FOpen the Connection Manager
    Shift+Ctrl+FDisconnect active connection
    Shift+F2, Ctrl+F2Copy selected file names to the clipboard (Ctrl+F2 with full pathnames)
    Alt+ROpen terminal from the current location (shortcut depends on localization)
        Tux Commander
        Copyright (C) 2009 Tomáš Bžatek <>
        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        GNU General Public License for more details.
        You should have received a copy of the GNU General Public License along
        with this program; if not, write to the Free Software Foundation, Inc.,
        51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

    Copyright © 2009 Tomáš Bžatek