Back to Table of Contentsgentoo - A Click-Ass Filemanager Go to Obsession Developments Homepage
  LICENSE   GUIDE   INTRO   USAGE CONFIG HISTORY CONTRIBUTING ACKS  

Commands

Introduction

Commands are important. In fact, I would almost go as far as to say that much of the rest of gentoo is there just so you can get to a point where executing the right commands, at the right time, and on the right files, becomes easy...

There are two different flavors of command: the built-in (sometimes called native) command, and the user-defined (external) commands. The difference is simple: built-in commands are written in C and compiled into the gentoo proper, while user-defined commands are defined by you, the user, at run time. It has been a goal to provide the most frequently used file operations as built-ins, in order to reduce the dependancies between gentoo and its host operating system.

The Built-In Commands

All built-in commands have names where the initial letter of each word is capitalized. There are never any spaces or any other non-alphanumerical characters in command names. In this document, built-in commands are generally rendered in boldface to make them stand out.

The Standard Dialog

Many of the built-in commands share the same dialog framework. This improves interface consistency, and cuts down on internal wheel reinvention. Such a dialog might look like this:

Image of standard command dialog

The area above the horizontal divider line in the window is known as the body of the dialog; it generally provides command-specific GUI controls. In this case, the "control" is just a text label asking you to confirm the Delete operation. The buttons have the following meanings:

OK
Answer "yes, go ahead and do it" to whatever question is asked (or implied) by the body of the dialog. In this case, clicking OK (or hitting Return) would delete the named file. Note: deleting the OS kernel file is generally not a very wise thing to do!
All
Perform the action on all selected rows, and don't ask for confirmation again.
Skip
Skip the current row, and go ahead to the next one, repeating the dialog for that row. A safe choice.
Cancel
Stop executing the command, and return to the normal gentoo idle state. You can also press the Escape key on your keyboard, or close the window via your window manager, to get this effect.

For some commands, some of the buttons would be pointless; such as an "All" button for the Rename command. In those cases, the unwanted button is simply hidden from the dialog as to not confuse the user.

Command Input

All built-in commands make sure they have the input they require before doing anything. For many commands, the input is just the set of selected items in the current pane. Some commands are sensitive to mouse doubleclicks; if they are envoked as the result of a doubleclick, they will detect this and act accordingly. Other commands ignore both selections and doubleclicks, and pop up a dialog where you specify the input the command needs.

Built-In Command Reference

Here is a reference table of all currently available built-ins. For each command a brief and a detailed explanation of the command's actions are provided. In this table, the commands have been divided into various groups (directory, activation, file ops and so on). This division is not visible when you use the commands; they are all accessed just by the plain names listed here.

NameBriefDetailed
Directory - Various dirpane operations
DirEnterEnter a directory.This command will make the current pane enter (CD into) a new directory. The directory chosen is either the one that was just doubleclicked upon by the user, or else the first selected directory found. This command is typically only used as the action property binding in the directory style(s). Of course, you can bind it to a button (or whatever) just as any command, but doing so is seldom convenient.
DirOtherCopy contents of other directory to current. This command copies the path shown in the other pane to the current, and then does a rescan. The net effect is that both panes show the same thing.
DirParentGo to the parent directory. This changes the path of the current directory to its parent path. If you are already at the root of the filesystem (the path is "/"), nothing happens.
DirRescanReread the current directory. Use this command to ensure that the display is up-to-date and in synch with what is actually in the filesystem. It flushes the current pane and then rebuilds it by reading in the directory from disk. It does not affect the set of selected rows, however.
DirSwapSwap contents of the two panes. This command will simply exchange the contents of the two panes. It is done without any rereading of the disk directories, and therefore is quite fast.
Activation - Change current dirpane
ActivateLeftMake the left pane the current. Not much to add.
ActivateOtherMake the other pane the current. Which pane is activated by this pane depends on which one is the current when the command is envoked. If the left is current, the right is made the new current, and vice versa.
ActivateRightMake the left pane the current. Not much to add.
Basic - Basic file operations
CopyCopy selected files and directories to destination. This command does a straight copy of the selected files (and directories), placing byte-for-byte copies of the files in the destination directory. The copy is done recursively, so any directories in the selection will be copied in their entierity.
MoveMove selected files and directories to destination. This command moves all selected files and directories, recursively, from the current directory into the destination dir. It is equivalent to first doing a Copy, then reselecting the same files and doing a Delete, but is implemented more efficiently.
DeleteDelete selected files and directories. This command deletes the selected items from the disk. Directories are recursively deleted, and need not be empty in order to be removed. Please be careful with this operation, since it is potentially dangerous (it is hard to undo a delete).
RenameRename files and directories. This command pops up a variant of the standard command dialog as shown above, but includes in the body of the dialog a text entry box where you enter a new name for each of the files. As you click OK in the dialog, gentoo changes the name of the file (or directory) to the name given. This process is repeated for every selected row.
ChModChange file permissions. This command pops up a big dialog which provides buttons for manipulating the various permission bits defined by the operating system. You can use this to make a file unreadable for any user but yourself (and root), for example. For an enlightening screenshot of the dialog in question, look here.
ChOwnChange file user and group ownerships. This command allows you to change the user and group ownerships of files, just like the normal shell command of the same name. It is currently very lazily implemented, and not likely to be very useful on a large system. Expect a better implementation in future releases of gentoo. Currently this command sort of sucks.
(Split)Split large file into smaller parts. This command is not fully implemented. Its intended purpose is to provide a graphical way of splitting (sometimes called segmenting) a file into several smaller parts. It is currently about 50% implemented, and actually works. In the future, it will be accompanied by a Join command to paste the parts back together, of course.
MkDirMake a new directory. This command is used to create a new, empty, directory. It totally ignores the set of selected files, and thus runs perfectly well without any selection. It pops up a dialog asking you for the name of the directory to create, and creates it. It also allows you to specify that the directory should be read into the current pane immediately after being created, which is sometimes convenient.
Selection - Modify the set of selected rows
SelectAllSelect all rows in current pane. This command will select all rows in the current pane, no matter which rows are selected when it is run.
SelectNoneDeselect all currently selected rows. After this command has been run, the current pane will have no selected rows whatsoever.
SelectToggleInvert the selected set. This command, which might be classified as mildly silly, makes all rows selected when it is envoked become deselected, and vice versa. If all rows in the pane were selected, it acts like SelectNone; if no rows were selected it acts like SelectAll.
SelectRESelect using regular expression.

This command pops up a special command dialog window, in which you can specify a set of rows, an action, and a regular expression. The expression is then matched against the name of each row of the specified set, and when a hit occurs, the action is applied to the row in question. For more information on the peculiar check button labeled "Treat RE as glob pattern?", check here.

File Commands - Operate upon currently selected file(s)
DoubleClickDo canonical file operation. This command is used to make gentoo do "The Right Thing" when you doubleclick on a file. Behind the scenes, it merely triggers the "Doubleclick" action property for the file being clicked. This can then be used to view, print, play, compress, or generally do just about anything with the file. The chain of events that involves this command is:
  1. User doubleclicks on a dirpane row
  2. A (currently hardcoded) binding executes Doubleclick
  3. Doubleclick executes the row's "Doubleclick" action property
  4. The action property executes its command sequence
By default, the action command sequence for directories is just DirEnter, which is why doubleclicking on a directory enters it.
FileEditEdit selected files. This executes the "Edit" action property for the selected files (or the doubleclicked one, if one exists).
FilePrintPrint selected files. Just like FileEdit, but executes the "Print" action property.
FileViewView contents of selected files. Just like FileEdit, but executes the "View" action property.
Miscellanous - Various other commands
ConfigureOpen up the configuration GUI. This command enters configuration mode, by opening up the modal configuration dialog. Until that dialog has closed, no other command is executed.
QuitQuit gentoo. This command exits gentoo immediately. Currently it asks no questions, but this behavior might change in the future.

Note that you need never worry about providing a built-in command with any form of arguments textually. You just name the command, and it takes care of the rest. Since these commands are really built-in, they have full access to gentoo's intenal state where the lists of selected files, current paths, and so on is easily available.

User Commands

Although sure important, the built-in commands are very limited. In order to make the most out of gentoo, you'll need to define your own commands to do the things you want. You use the mechanism provided by user commands to accomplish this. A user command is simply a call to an external program, which is provided with the correct file name arguments by gentoo.

A user command has the follow