- Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Press Releases
  Off Topic

Back to files

mvM - mvManager (c)2001

Misko Vagac <>


  1. Disclaimer
  2. Description
  3. Installation
  4. Documentation 4.1 Controlling MVM 4.2 Configuration 4.3 Plugins

    4.3.1 Files 4.3.2 Shell

  5. Bugs Appendix: keyboard notation

1. Disclaimer

I am not liable for any damage caused by the use of this program.

2. Description

Program is simple plugin manager for X11. Main aim was to make Xlib only file manager.
I tested it only under Slackware 7.1, so if you know about any other distributions where it works as is, please let me know.

This project wouldn't become reality if there are not several other GNU projects, from which I have larned:

  • blackbox-0.10.0 - I learned some X11 principes. Also I took debug and list management from here (I hope I didn't break any law... ;-))
  • freeciv-1.8.0 - gave me other information about X11 programming, also sockets programming I have learned from here
  • xmms-1.2.4 - plugin management was learned from here
  • emelfm-0.9.2 - last, but not the least - here I saw how to grab output from executed commands and using of pthread. If I find this application earlier, I doubt about making mvm

personal note: I just finished uni and looking for job abroad. If you know about

something, please let me know ( I'll take anything ;-)

3. Installation

cd mvm-source
make install
strip /usr/local/bin/mvm

This will install the binary in /usr/local/bin and plugins in /usr/local/lib/mvm/

4. Documentation

This file or try

4.1 Controlling MVM

Main window:

  escape                = exit
  tab                   = next panel (but plugin can change it)
  ctrl/shift + tab      = previous panel (but plugin can change it)
  ctrl + arrows         = change size of current panel
arrow left = go left arrow right = go right home = go home (I mean start of text) end = go end backspace = erase character on left delete = erase character on right insert = turn on/off insert mode shift = select (in combination with left, right, home, end)
arrow up = go one item up arrow down = go one item down page up = go one page up page down = go one page down home = go to the first item end = go to the last item enter = activate item spacebar = select item shift = select (in combination with up, down, page up, page down, home, end) arrow right = start editing active item (if editing mode is on) any text will automaticaly search typed item (if editing mode is off) backspace = erase last character in search buffer (if editing mode is off)

4.2 Configuration

Configuration is saved in .mvm.conf file in your home directory. It's very simple XML style (it's not very clever - e.g. it doesn't test crossing of elements, so please be patient with it). Some arguments are required always - when you arease required argument, after restarting and exiting application, argument will be added with value "???". If you erase all tags of any kind and you want to remake them from defaults, it's enough to erase direct parent's tags (and start and exit the application). For example, if you erase all panel tags, they won't be restored from defaults. You can do it by erasing also their scheme tag. Some tags are added always - for example scheme tags. If you want to put scheme tag away, you need also to erase related plugins - because these plugins create these tagse when they find out there is no their scheme. Tags:

  • geometry - now can contain only 'main' tag, describing

    geometry of the main window

    • attributes: x, y, width, height - position
  • schemes - describes schemes (each scheme is represented with 'scheme'


  • scheme - describes scheme. Contains tag 'panel'.
    name - name of scheme key - key shortcut to go to scheme
  • panel - describes panel
    • attributes: plugin - name of plugin, which belongs to panel px, py, pwidth, pheight - position and size of panel

      (in range 0.0-1.0) type - special parameter:

      bit 0 - if set, panel with plugin can't be activated

      by tab key bit 1 - if set, panel with plugin can't be activated

      by ctrl+tab or shift+tab key

  • palette - contain tag 'color'
  • color - describes color
    • attributes: name - name of color (used by mvm!) r, g, b - color in range 0 - 65535

After MVM configuration succeeds configuration of plugins The easiest way is to run MVM what generates default configuration file, and then just modify it.

4.3 Plugins

MVM is plugin manager - without plugins mvm can do nothing (you can easyly try it...).

4.3.1 Files

Displays files from the filesystem.

The plugin works thanx to associations (look into configuration file, tag <files>). Each association has the name, the key by which it's activated, mask on which it's working and finally the command it executes.

<association name='view' key='F3' mask='@f*.txt' cmd='cat @p@f'/> Association 'view' is activated by pressing key 'F3', but working only on 'txt' files (not directories), and command cat with file under the cursor as an argument is executed (it's send to 'shell' plugin).

these commands/associations are set as default:

    F1          xman
    F2          rename (internal command; not an association)
    F3          view file/directory size
    F4          edit file/pack directory
    F5          copy
    F6          move
    F7          mkdir (internal command)
    F8          delete
    enter       unpack archive, run viewer ...
    ctrl+.      . button (show/hide files starting with dot)
    insert      select file and move down
    keypad+     select all files
    keypad-     deselect all files
    keypad     invert all selected files

Configuration tags:

  • files - main tag. Can contain 'panel' tags, 'functions' tag and

    'associations' tag

    • attributes: dotfiles - enables/disables displaying files beginning

      with dot (possible values "on" or "off")

  • panel - property of panel. Can contains 'fastcd' tags
    path - default path opened when panel is opened key - hot key to list fastcds
  • fastcd - attributes:

    path - describes path, which will be listed after

    pressing key specified in panel

  • functions - contains 'function' tags
  • function - sets function
    • attributes: name - name of hotkey. It's used internally;

      only certain names may be used. key - key activating internal action button - if hotkey will be also displayed

      as a button (possible values "yes" or "no")

  • associations - contains 'association' tags
  • association - sets association
    • attributes: name - name of association. It's not really used key - key activating association mask - file mask specifying where association

      may be used. Can contain: %f - file is required %d - directory is required

      • - any characters ? - any single character cmd - command executed after pressing 'key'

        on file fitting for 'mask'. Can contain following macros: %f - current file %s - current selection - all line

        containing %s is repeated for each file from selection %S - current selection in one line %t - tmp dir, which is automatically

        created and deleted when needed %p - path in current panel %P - path in all other panels button - if association will be displayed also

        as a button (possible values "yes" or "no")

4.3.2 Shell

Once should be shell implementation, but now it's sooo far from it. So now it's able to execute received commands (e.g. from 'files' plugin or from user) and write their output. User can focus shell plugin with mouse or by pressing ctrl+tab or shift+tab.
Frequently used commands can be attached to specified keys.

Configuration tags:

  • shell - main tag. Can contain 'hotkey' tags.
  • hotkey - sets hotkey
    • attributes: name - name of hotkey key - key activating internal action cmd - command to be executed button - if hotkey will be also displayed

      as a button (possible values "yes" or "no")

4.3.2 Mail

At this time only POP3 mail reading is working. It's requested (or highly recommended) to fill addressbook, because received emails are sorted by senders to separate folders (each person in addressbook will have own folder). Emails are then saved into these folders. Filename is created according to date ( In the plugin is not any database of emails, so it's possible to erase/move emails from disk.

Configuration tags:

  • mail - main tag. Can contain tag 'functions' and 'account' tags.
  • functions - contains 'function' tags
  • function - sets function
    • attributes: name - name of hotkey. It's used internally;

      only certain names may be used. key - key activating internal action button - if hotkey will be also displayed

      as a button (possible values "yes" or "no")

  • account - sets mail account
    • attributes: type - type of mail server (pop3) host - address of mail server port - usually 110 username - no comment password - -||-
  • addrbook - also top-level tag. Contain 'person_name' tags.
  • person_name - defines one person in addressbook. Can contain 'email'


    • attributes: first - first name middle - middle name last - surname nick - nickname title - title birthday - birthday
  • email - defines email for the person
    • attributes: address - email address

5. Bugs

  • pthread support is not working, so now it's default turned off

Appendix: keyboard notation

Special keys MUST be used in following order: shift, capslock, ctrl, alt, numlock, scrolllock and must be separated by character '+'. E.g.: 'ctrl+alt+f1' (!not 'alt+ctrl+f1'!) all alphanumerical characters may be used (1, 2, 3, ..., a, b, ..., A, B, ...) Names of the other keys, which may be used: escape, f1, f2, f3, f4, f5, f6, f7 f8, f9, f10, f11, f12, printscreen, SysRq, pause, break, backspace, tab, enter, spacebar, home, uparrow, pageup, leftarrow, rightarrow, end, downarrow, pagedown, insert, delete
keypad keys begins with keyword 'kp' (kp*, kp7, kp+, kp., kp/, kpenter, ...)

For more information please visit, or email me to

Sponsored Links

Discussion Groups
  Networking / Security

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 All rights reserved.