About

XYZCommander is a pure console visual file manager.
Main features:
  • Tight integration with python run–time system — most of the settings can be changed "on the fly" using management console.
  • Powerful configuration system - define own actions, aliases, internal commands, key bindings.
  • Extensible plug-in system - even core functionality implemented mainly using plug–ins, keeping base system small and clean.
  • Events & hooks subsystem - a flexible way of reacting on certain system events.
  • Customizable look-n-feel - every widget component look can be changed using skins.
  • Unicode support
  • VFS subsystem
  • Tabs in navigation panels

XYZCommander runs on *nix platform and requires python version >= 2.4 and urwid library.

News

I'm pleased to announce the XYZCommander version 0.0.5!

Change log for 0.0.5:

Overview
--------
* Nested VFS support
* Heavy LocalVFS walker optimization: 30 to 40 times faster
to enter a directory, and a lot less memory intensive as well
* New Russian translation
* XYZCommander manpage
* Development has moved to github (http://github.com/syhpoon/xyzcmd)

VFS
---
* VFS subsystem now supports arbitrary nested VFS objects.
* Local VFS objects walking optimization. Simple lazy instantiation allows
30 to 40 times faster to enter the directory.

Plugins
-------
* New method :sys:panel:get_all()
Method returns list of all VFSObject instances in panel.

* New method :sys:panel:tag_diff()
Tag all the objects in active panel which are missing from the inactive one.
Bound to Ctrl-x d.

* Version 0.2 of plugin :ui:testinput.
Added support for prefix keys and also allow plugin to show current
binding of pressed key.

Configuration
-------------
* New icmd - exit.
* New FSRules type{} arguments:
* file_or_link2: Matches file objects or links to ones.
* dir_or_link2: Matches directory objects or links to ones.
* socket_or_link2: Matches socket objects or links to ones.
* fifo_or_link2: Matches fifo objects or links to ones.
* char_or_link2: Matches character device or links to ones.
* block_or_link2: Matches block device or links to ones.
* New command line flag -l showing list of available skins.

I18N
----
* Added infrastructure for i18n.
* Added new Russian translation.

Documentation
-------------
* Manpage added.
* Described all standard events.
* Described all standard plugins.

syhpoon | 2010-09-16 00:22:03 (comments: 0)

Development of XYZCommander has moved to GitHub!

syhpoon | 2010-06-22 02:09:30 (comments: 0)

I'm pleased to announce the XYZCommander version 0.0.4!

Change log for 0.0.4:

Overview
--------
* Tabs in navigation panels
* Auto-completion subsystem
* VFS caching
* New piece of documentation: XYZCommander overview
* XYZCommander on Ubuntu PPA

Installation
------------
For ubuntu users:

1) sudo add-apt-repository ppa:syhpoon/xyzcmd
2) sudo aptitude update && sudo aptitude install xyzcmd

Configuration
-------------
* New variable cache_time (integer) in section vfs.
Variable sets number of seconds during which VFS cache obsoletes.
Default 60.

Skins
-----
* New attribute for selected buttons - button_active.
* New attribute for tab bar - tabbar
* New attribute for active tab - tabact

Events
------
* New event event:sys:panel:before_switch_tab.
Fires before switching to another tab.

* New event event:sys:panel:switch_tab.
Fires when switching to another tab.

* New event event:sys:panel:new_tab.
Fires when new tab is added.

* New event event:sys:panel:del_tab.
Fires when tab is deleted.

VFS
---
* Fixed bug when permission bits where ignored in recursive copying
* Implemented VFS objects caching. This highly improves non-local VFS
handlers working speed.
* Implemented copy() method for tar VFS handler. That is it is now possible
to copy objects from inside tar archives to local filesystem.

Plugins
-------
* New plugin - :core:complete.
Plugin provides ability to auto-complete provided text in different domains.
Currently three domains implemented:
* binpath - searches through directories defined in $PATH variable
* fs - searches through filesystem hierarchy
* service - searches through services in /etc/init.d

Auto-completion function bound to META-Tab by default.

* New method :sys:cmd:get()
Method retrieves current cmd contents.

* New method :sys:cmd:append()
Method append string to the end of cmd.

* New method :sys:panel:new_tab().
Create new tab.
Bound to Ctrl-c c to create tab in active panel and to
Ctrl-c C to create tab in inactive one.

* New method :sys:panel:del_tab().
Delete tab.
Bound to Ctrl-c d to delete tab in active panel and to
Ctrl-c D to delete tab in inactive one.

* New method :sys:panel:switch_tab().
Switch to particular tab.
Bound to Ctrl-c [0-9] to switch to tab with provided index in active panel
and to Ctrl-c SHIFT-[0-9] to switch to tab in inactive one.

* New method :sys:panel:next_tab().
Switch to the next tab.
Bound to Ctrl-c n to switch to the next tab in active panel and to
Ctrl-c N to switch to the next tab in inactive one.

* New method :sys:panel:prev_tab().
Switch to the previous tab.
Bound to Ctrl-c p to switch to the previous tab in active panel and to
Ctrl-c P to switch to the previous tab in inactive one.

* New method :sys:cmd:get().
Method allows to get current command line contents.

* New method :sys:panel:get_tabs().
Return list of tabs in format (path, selected_entry_name).

* New method :sys:panel:active_tab().
Return index of currently active tab.

* Plugin :misc:where is extended to save/restore tabs as well

syhpoon | 2010-05-06 23:02:08 (comments: 156)

I'm pleased to announce the XYZCommander version 0.0.3!

Change log for 0.0.3:

New features
---------------
* Python2.4 support
* Permanents filters
* Custom sorting
* High-color mode support with urwid >= 0.9.9
* New command line options: -c colors and -s skin
* XYZCommander's system prefix can be set using XYZCMD_PREFIX environment
variable in case of custom installation, by default it is equal to sys.prefix.

Configuration
---------------
* New internal cmd "alias" is used to print all xyzcmd's aliases.

* New DSL method - section().
Return whole configuration section contents as a dictionary or None.

* New DSL method - fsrule().
Return libxyz.core.FSRule instance from string.

* New DSL method - palette().
Create internal palette object.

* New DSL method - skin().
Make and register new skin.

* New option 'term_colors' in main.xyz. It defines color mode.
Valid values are: 1, 16 (default), 88 and 256. It also can be defined
using -c command line flag.

Plugins
--------
* New method :sys:panel:get_untagged()
Method returns list of not tagged VFSObject instances.

* New method :core:shell:echo()
Method allows to show any custom string similar to command output.

* Added two hooks to :sys:cmd plugin to save command history on
exit and to restore its contents upon startup.

* :core:shell receives a 'wait' configuration flag, indicating
whether to wait for user input after command executed.

* :core:shell receives a 'setup_shell' configuration flag,
indicating whether to run system shell-specific initialization.

* :sys:panel receives five new filter-related variables:
filters_enable - enables object filtering
filters_policy - dtermines filtering policy
fitlers - list of FSRules to be sequentially applied on objects
sorting_policy - Active sorting policy name or None
sorting - Defined sorting policies. Each key corresponds to a policy
name and value is either a function with two arguments (VFSObject)
behaving like cmp() or a list of those functions.
If value is a list, each function applied sequentially.

* New method :sys:panel:filter
Method takes a list of VFSObject objects and filters out entries according to
filters defined in plugin configuration.

* New method :sys:panel:sort
Method takes a list of VFSObject objects and sorts entries according to
sorting policy defined in plugin configuration.

UI
--
* New shortcut - (META-=) to quickly change directory in active panel
to the same as in the inactive one.

Skins
------
* Skins were completely reworked. Now skin file uses python syntax and
DSL helper functions: skin and palette to define new skin

* High-color mode now supported with urwid version >= 0.9.9.

* New high-color mode skin added - lighty.

syhpoon | 2010-01-17 01:42:31 (comments: 0)

There seems to be an error running xyzcmd on ubuntu 9.10. It is due to ubuntu-specific python modules installation policy. In order to install it properly, run: setup.py install --install-layout=deb

I'll try to create some distro-specific packages soon.

syhpoon | 2010-01-02 20:38:00 (comments: 0)

I'm pleased to announce the XYZCommander version 0.0.2!

Change log for 0.0.2:

* [UI] New box widget: ButtonBox.
Widget shows a dialog box with custom buttons.

* [UI] New method :sys:panel:get_active()
Method returns list of tagged VFSObject instances or list of single selected
object if none tagged.

* [UI] New method :sys:panel:get_current().
Method returns VFSObject instance of current directory.

* [UI] New method :sys:panel:vfs_driver().
Method returns vfs driver used by current object

* [UI] New method :sys:cmd:put().
Method allows to put arbitrary string to command line.

* [UI] New method :sys:panel:search_cycle().
Method allows to search objects in current
working directory in direction downwards-from up to selected file.
Set this method as default binding for META-S.

* [PLUGIN] New method :vfs:vfsutils:remove()
Method shows a dialog for [recursively] deleting VFSObjects.
Bound to F8.

* [PLUGIN] New method :vfs:vfsutils:copy()
Method shows a dialog for [recursively] copying VFSObjects.
Bound to F5.

* [PLUGIN] New method :vfs:vfsutils:move()
Method shows a dialog for [recursively] moving VFSObjects.
Bound to F6.

* [PLUGIN] New plugin :misc:where.
Plugin provides an ability to load/restore path locations on both panels

* [PLUGIN] New plugin :fsrules:magic.
Plugin adds an ability to match files based on magic database.

* [VFS] Implemented Tar VFS module. Default actions set to use it on
*.tar, *.tar.gz and *.tar.bz2 named files.

* [CORE] New events and hooks mechanism.
It is now possible to set own hooks on all events.

* [SKINS] New box rule attribute - input.
It is used for any text input widgets

It is available on download page.

syhpoon | 2009-10-22 23:47:20 (comments: 0)

Now the site has a new face!
Thanks to my darling wife for this new fancy design!

syhpoon | 2009-09-08 23:29:45 (comments: 0)

Here we go!
The first beta release of XYZCommander is here!

It is available on download page.

Please note:
XYZCommander is currently in early beta state, it still lacks a lot of features, like VFS support, readline auto-completion, internationalization and so on. But all those features are planned for the next releases.
I've decided to release it even without all these useful features in order to reveal this project to public.

syhpoon | 2009-08-03 02:20:49 (comments: 0)

I've placed a first alpha-version of User manual. It is still under heavy development, but nevertheless I believe it could be useful.

syhpoon | 2009-07-30 23:52:54 (comments: 0)