System G Help

Please submit all suggestions and bugs via github.


Table of Contents


Getting started with System G

System G is a simple file manager that provides basic access to the file system. The goal is to allow a simple way to access and manipulate files and folders. Files and folders are opened by double-clicking on them, names are changed by clicking on them and then typing in the new name, permissions are changed by clicking on the appropriate permission, etc.

Running System G for the first time will open your home directory. You can then navigate through your files by using the "Open" command in the File menu, or double-clicking on a directory. If you open a directory that you expect to access frequently, you can add it to the shortcut list, by choosing "Add shortcut" from the Shortcuts menu.

As an example of the ease of use of System G, let's suppose that you needed to change the name of a file in a particular directory. You would first use the "Open" command (or Meta-O), and select the appropriate directory, then you would start typing the letters in the old name, which would locate the file in the directory and select it. If you then hit the Return key, the file name would become editable. You then type in the new name and press the Return key again. System G will automatically detect if the directory is managed by Subversion of Git and use the appropriate command to rename the file.


Files

Selecting files

To select a single file, simply click on its icon or its name with the left mouse button. To select multiple files, you can either hold down the Shift key and click on each one, or you can click in a blank area and drag a rectangle to select a range of files.

To deselect all files, click in a blank area. Clicking and releasing on a selected file will deselect all other files. Holding down Shift while clicking on a selected file will deselect it.

By holding down Shift when you begin dragging a rectangle, you will toggle the selection of each of the enclosed files.

Opening a file

The most basic way to open a file is either to double click on it or to select it and then choose "Open" from the File menu. This invokes the default program for the file's type as specified in the File Binding Editor or, if there is no default program, the Run Command with File dialog. This is not your only option, however. The complete list of all the ways to open a file is as follows:

Double-click on file
Meta-O ("Open" on File menu)
Meta-Down-arrow
Open the file using the command from the File Binding Editor, or use the Run Command with File dialog if there is no binding.
Meta-double-click on folder
Meta-Shift-O ("Alternate open" on File menu)
Meta-Shift-Down-arrow
Open the file using the Run Command with File dialog.
Ctrl-double-click on folder
Ctrl-O ("Open ... and close this" on File menu)
Open the file in the same way as double-click, and then close the current window. (You can hold down the Meta key to get the alternate behavior.)
Ctrl-Shift-double-click on folder
Ctrl-Shift-O ("Open ... and iconify this" on File menu)
Open the file in the same way as double-click, and then iconify the current window. (You can hold down the Meta key to get the alternate behavior.)
Middle-double-click on file
Run an arbitrary command with the file name as an argument. (This works even if the file is actually a program, i.e., it has the "executable" flag set.)

The keyboard shortcuts obviously only work when one or more files are selected.

Notice the similarities between these shortcuts and those for opening folders and running programs.

Renaming names

To change the name of a file, either left click on the file name, or select the file and then press the Return key. When you are done typing, simply press Return again and the file's name will be changed. (If you want to open the file or perform some other action after typing in the new name, you do not need to press Return first.) To cancel the process, press the Escape key.

Moving and copying files

Files are moved or copied by dragging the file from one location to another. If the file is placed over a folder, the arrow to the left of the folder will darken to indicate that it is the target. By default, files will be moved when they are dragged, unless you are dragging between disks, in which case they will be copied. To invoke the other action, hold down the Meta key while dragging. If the Control key is held down while dragging, you will be asked which action to perform on the files.

Duplicating files

To duplicate a file or group of files, select them and choose "Duplicate" from the File menu.

Deleting files

Since deleting a file cannot be undone, it must not be possible to perform the required actions unconsciously out of habit. You must therefore drag the file to the trash can window or the trash can icon in the lower right of any window, open the trash can, and empty it. Anything easier is too likely to become a habit. This includes the use of warning dialogs. Once a warning dialog becomes a habit, you are likely to do it unconsciously, and that defeats the purpose. Providing a menu item is also too dangerous because it is possible to accidentally select it instead of the adjacent item. (Warnings are more likely to be effective in this case since they will interrupt one's flow of thought, but programs should always be designed to minimize the possibility of such interruptions.) Allowing the use of the Backspace and Delete keys is even more dangerous because it is possible to press these keys unconsciously when anticipating the creation of an input field for editing a file name.

Since some people will still want to be able to shoot themselves in the foot, a preference option is provided to allow the Delete key (not the Backspace key) to delete the selected files. This always warns you, so if you get in the habit of reading the warning carefully, it might be safe to use it.

Aliases (symbolic links)

An alias acts like a file, but is actully just a pointer to a file in another location. The name of the alias can be anything you like. The advantage of using aliases is that you can have access to a file or folder from many locations without actually duplicating it several times. This not only minimizes the amount of disk space used, it also insures that there is only one copy of the data, so there will never be any chance of one version not agreeing with another.

To create an alias, either select the item and choose "Make alias" from the File menu, or drag the item and hold down the Shift key when you drop it. The alias can be moved to any folder, and its name can be changed. If you have an alias, you can determine what it points to be seleting "Find original" from the File menu.

Locating files in a folder

To locate a file within a window, simply start typing its name. As the letters you type start matching a word, that word will be selected. To clear the selection, or to search for a new word, hit the space key.

File permissions

The permissions on a file or folder determine who can read, write, or execute a file. The permissions are listed from left to right for the owner of the file, the owner's group, and for everyone else. To change the permissions of a file or folder, toggle the permission you want to change. For example, If a file is not currently writable by anyone, and you want to be able to write to it, click the write flag which will be the second digit from the left. Clicking it again will change it back. To change the permissions on every file in a directory, Meta click the appropriate permission on the folder.


Folders

A folder, also called a directory, contains a collection of files and other folders. The icon for a folder is drawn differently depending on the permissions. If you are not allowed to write to the folder, e.g., to create new files, the folder's tab will be black. If you are not allowed to see the contents of the folder, there will not be an arrow to the left of the icon, and there will be a belt around the folder itself.

Opening a folder

System G supports several ways of opening a folder in order to accommodate the various ways that people have of navigating through the file system.

The most basic way to open a folder is by double clicking on it. This will open the folder in a separate window.

You can also open a folder with the "Open" command in the File menu. If a folder is selected, System G will open that folder. If nothing is selected, an open dialog box will prompt you for a folder to open.

Here is the complete list of all the ways to open a folder:

Double-click on folder
Meta-O ("Open" on File menu)
Meta-Down-arrow
Open the folder in a new window.
Meta-double-click on folder
Meta-Shift-O ("Alternate open" on File menu)
Meta-Shift-Down-arrow
Open the folder in the same window.
Ctrl-double-click on folder
Ctrl-O ("Open ... and close this" on File menu)
Open the folder in a new window, and close the current window.
Ctrl-Shift-double-click on folder
Ctrl-Shift-O ("Open ... and iconify this" on File menu)
Open the folder in a new window, and iconify the current window.
Meta-Up-arrow
Open the enclosing folder in a new window.
Meta-Shift-Up-arrow
Open the enclosing folder in the same window.
Click and hold on the folder icon in lower left of window
Open menu to select ancestor folder. (Hold down the Meta key when selecting a folder to avoid opening a new window.)
Click on triangle when folder is closed
Right-arrow
Open the folder to display its contents below its name.
Click on triangle when folder is open
Left-arrow
Close the folder.
Meta-click on triangle when folder is closed
Meta-Right-arrow
Open the folder to display its contents and the contents of sub-folders.
Meta-click on triangle when folder is open
Meta-Left-arrow
Close the folder and all sub-folders. (If you only close the folder itself, the sub-folders will remain open and their contents will be visible next time you open the folder.)
Shift-click on triangle when folder is closed
Shift-Right-arrow
Open all folders to display their contents below their names.
Shift-click on triangle when folder is open
Shift-Left-arrow
Close all folders.
Middle-double-click on folder
Run an arbitrary command with the folder name as an argument.

The keyboard shortcuts obviously only work when one or more folders are selected.

Notice the similarities between these shortcuts and those for opening files and running programs.

You can add folders to the Shortcut menu to allow direct access to them.

Running System G from the command-line opens all of the folders that were opened when you last quit the program (if they still exist). Once it is running, you can also call System G from the command-line with arguments to open other folders. This will not create a new instance of System G, but will pass the arguments to the currently running instance which will open the requested folders. If no arguments are specified on the command-line, System G will open the current working directory.

Creating folders

You can create a new folder by selecting the "New folder" command from the File menu. If nothing is selected, a folder will be created in the current folder. If a file is created, a folder will be created in the folder containing that file. If a folder is created, a folder will be created within that folder.

View options

There are several file properties that can be shown in the window by selecting the appropriate menu item in the Views menu. The properties available are user, group, size, permissions, and date. Selecting "Show hidden" from the View menu will show all of the hidden files with their properties as well.

Filters

There are times when there are too many files visible, making it hard to find a particular file or group of files. The filter field is helpful in this. The filter is made visible by selecting "Show filter" from the View menu. The files are filtered based on the pattern in the filter field. Patterns are constructed by replacing letters or groups of letters in a file name with a '*'. For example, \*.cc\ displays all files the end in \.cc\.

The Shortcuts menu

Shortcuts provide a way to quickly access a folder. Once you have opened a folder that you will be opening frequently, you can add it to the shortcut list by selecting the "Add shortcut" from the Shortcuts menu. Later when you wish to open that folder, simply select it from the list in the Shortcuts menu.

The Shortcuts menu always includes the mount points corresponding to floppy disks, CDROM's, ZIP and JAZ disks, Windows partitions, etc. If you select one of these items, System G will automatically try to mount the disk if it isn't already mounted. When you close the window, System G will automatically try to unmount the disk if it wasn't mounted before its window was opened. This allows you to insert a disk, open the window in System G, do whatever you want, close the window, and then safely remove the disk. The only caveat for this to work is that you must leave the window open until you are completely finished with the disk. If you are editing files on the disk, have other windows open for folders on the disk, etc., then System G will not be able to unmount the disk when you close its window. (You can always open the window again and use the "Unmount" item on the File menu.)


Working with Git

If the directory is managed by git, the Git menu will be enabled. The first item tells you the current branch and provides a menu of the locally available branches. Selecting one of these items will switch your directory contents to that branch. The rest of the menu items work as follows:

Status...
Displays the status of the current branch. By default, git citool is used. You can change this in the Preferences dialog.
History...
Displays the history of the current branch. By default, gitk is used. You can change this in the Preferences dialog.
Commit all changes...
Commits all changes, both staged and unstaged, but does not include unmanaged files. To commit only some changes, use either git citool (via the "Status..." item) or git commit (in a terminal).
Revert all changes...
Discards all changes made to tracked files, both staged and unstaged.
Stash all changes...
Stashes all your changes and reverts the file contents to the last commit.
Pop / Apply / Drop
Displays a list of stashes. Selecting an item pops / applies/ drops the stash.
Pull from remote
Displays a list of remote repositories. Selecting an item retrieves the latest from that repository and merges it into your working copy.
Push current branch to remote
Displays a list of remote repositories. Selecting an item pushes the committed changes in the current branch to that repository.
Merge from branch
Displays a list of local and remote branches. Selecting an item merges the contents of that branch into the current branch.
Fetch remote branch
Displays a list of remote branches. Selecting an item pulls the contents of that branch into the local repository.
Create local branch...
Creates a new branch and switches to it. The initial contents of the branch will be copied from the previously selected branch.
Remove local branch
Displays a list of local branches. Selecting an item deletes that branch from the local repository.
Add remote...
Displays a dialog so you can define a new remote repository and give it a name.
Remove remote
Display a list of the currently defined remote repositories. Selecting an item removes the link to the repository.
Clean list of remote branches
Display a list of the currently defined remote repositories. Selecting an item prunes remote branches for the selected repository. If any branches are removed, asks if the corresponding local branches should also be deleted.

Programs (executables)

On UNIX, the only difference between a program and a regular file is that the program has the "executable" flag set (see File Permissions), i.e., they can be run to perform a task.

Running a program

To run a program without arguments, simply double click on its icon or its name with the left mouse button.

To run a program with arguments, hold down the Meta key while double clicking on it with the left mouse button. This opens a simple dialog that allows you to type in the arguments.

The complete list of all the ways to run a program is as follows:

Double-click on program
Meta-O ("Open" on File menu)
Meta-Down-arrow
Run the program without arguments.
Meta-double-click on program
Meta-Shift-O ("Alternate open" on File menu)
Meta-Shift-Down-arrow
Run the program with arguments.
Ctrl-double-click on folder
Ctrl-O ("Open ... and close this" on File menu)
Run the program in the same way as double-click, and then close the current window. (You can hold down the Meta key to get the alternate behavior.)
Ctrl-Shift-double-click on folder
Ctrl-Shift-O ("Open ... and iconify this" on File menu)
Run the program in the same way as double-click, and then iconify the current window. (You can hold down the Meta key to get the alternate behavior.)

The keyboard shortcuts obviously only work when a program is selected.

Notice the similarities between these shortcuts and those for opening files and folders.

All the above methods run the program in the directory in which it resides. To run a program in an arbitrary directory, place the program in a folder that is on your execution path (e.g. ~/bin) and then invoke the Run Command dialog by using the "Run command..." item on the File menu.


Miscellaneous notes

The Clipboard

By default, Systemg G follows the Macintosh clipboard model. This means that text is not automatically copied when it is selected. Instead, it is only copied when you use the "Copy" item on the Edit menu or Meta-C. (Meta-C works in any input area, regardless of whether or not the window contains an Edit menu.) The main advantage of this model is that paste can then replace the selected text. If you prefer the X clipboard model, the "Mac/Win/X Emulation" preferences dialog lets you use this instead.

Viewing UNIX Man Pages

The Man Pages window lets you specify what function to look up and which section to look in. If you leave the section blank, the system will search all sections.

To search the man pages for all occurrences of the function, check the Apropos checkbox.

You can get the Man Pages window via the "View man page" menu item on the File menu.

The default action is to display the man page using Code Crusader. If you wish to display it in a terminal instead, you can change the action to "xterm -e man" in the Preferences dialog.

Opening a terminal

There are times when the easiest way to do something is with a command line terminal. To open a terminal, select the "Open terminal" item from the File menu. If a file is selected, this will open a terminal in that file's directory. If a folder is selected, the terminal will start inside that folder. If nothing is selected or the window is iconified, this will open a terminal in the current window's directory. By default, the terminal command uses "xterm", but you can change this in the Preferences dialog.

Useful Shortcuts

On PC's, Meta is normally bound to the Alt key on the keyboard. Your system's configuration may be different, however. You can use "xmodmap" to examine and change this configuration.

Drag-And-Drop can be cancelled by pressing the Escape key before releasing the mouse button.

Tab shifts focus to the next input area. Shift-Tab shifts focus to the previous input area.

To use a shortcut for a button or checkbox, hold down the Meta key and press the underlined character.

Scrolling

All scrollbars display increment/decrement arrow pairs if there is space. Coupled with the Shift key which makes the arrows scroll a half page at a time, this conveniently packages all the scrolling functions in one place.

Clicking the middle button in a scrollbar forces the thumb to jump to the place where you clicked.

The arrow keys scroll the tree, read-only text, and help by small steps the way the scrollbar arrows do. Meta-End and Meta-Page Up/Down scroll horizontally, just like End and Page Up/Down scroll vertically.

To save your current position so you can easily jump back to it later, hold down the Meta key and click the left mouse button on the scrollbar thumb. This creates a scrolltab. Clicking on this scrolltab scrolls to the saved location. You can place as many scrolltabs on each scrollbar as you wish.

Meta-left-click on scrollbar thumb
Place a scrolltab
Left-click on scrolltab
Jump to the saved position
Meta-left-click on scrolltab
Remove it
Meta-Shift-left-click on scrolltab
Remove all scrolltabs

These functions are also accessible via the menu that pops up when you right-click on the thumb or any scrolltab.

In the Project, Tree, and Text Editor windows, Control-1 through Control-9 scroll to the first through ninth vertical scrolltab, respectively.

The mouse wheel will scroll the widget that you point to:

No modifiers
Scroll five steps
Shift
Scroll one step
Control
Scroll one page
Meta
Scroll horizontally instead of vertically

The File Chooser

Tab completion in the Path input field is supported, but only when the caret is at the far right of the text. (This allows Tab to be used to switch to the next input area in all other situations.) You don't actually need tab completion, however, because typing in the file list table performs an incremental search, after which you can use the following keys:

Up-arrow
Moves up one item
Down-arrow
Moves down one item
Left-arrow
Meta-up-arrow
Goes up one directory (just like clicking on the Up button)
Right-arrow
Meta-down-arrow
Enters the selected directory
Return
Enters the selected directory or chooses the selected file

Note that Meta-up-arrow and Meta-down-arrow work even if the file list table does not have focus.

The next sub-section describes how to select multiple files in the Choose Files dialog.

Double clicking a file in the Save File dialog copies the name to the input field. This is useful if you want to replace a file or create a new file with a similar name.

The window is resizable, and always remembers its size and position.

Selecting more than one item in a list

If selecting more than one item at a time is possible in a particular list, you can do so with the following actions:

Left-click and drag
Selects files between where you click and where you release the button
Shift-left-click and drag
Right-click and drag
Selects files between where you last clicked and where you release the button
Shift-up/down-arrow
Selects files just like Shift-left-click
Control-left-click and drag
Selects/Deselects each file that you drag over

Editing items in a list or table

If you are editing an item in a list or a table, you can switch to a different item by using the following shortcuts:

Meta-up-arrow
Meta-8
Shift-Return
Moves up one row
Meta-down-arrow
Meta-2
Return
Moves down one row
Meta-left-arrow
Meta-4
Shift-Tab
Moves left one column
Meta-right-arrow
Meta-6
Tab
Moves right one column

The digits correspond to the appropriate positions on a numeric keypad.

How to avoid fiddling with windows

System G's paradigm is to display information in many separate windows instead of trying to cram everything into a single window. This allows you to easily place windows side by side so you can view more than one at a time and drag information from one to the other. It also allows you to place different windows on different virtual desktops. For those who prefer to work with all their windows arranged within a single window, refer to the section on Window Docks.

You can call up any particular window by using the Windows menu. To make it easier to navigate between windows without using the Windows menu, you should consider re-configuring your window manager/desktop to use the "point to focus" method and then adding a key shortcut that raises or lower the window that has focus. This allows you to simply point to a window with the cursor and then press a key to bring that window to the front.

In addition, System G has several features that minimize the amount of effort required to deal with window placement and focus:

Some window managers have an option that defeats System G's automatic window placement. To avoid this, you can do the following:

fvwm
Comment out "NoPPosition" from ~/.fvwmrc
fvwm2
Use "UsePPosition" instead of "NoPPosition" in ~/.fvwm2rc
sawfish
Select the Placement item for Sawfish in the Gnome control panel and change the Method to "None".
twm
Set "UsePPosition on" in ~/.twmrc

Window managers like KDE and Gnome that provide a taskbar listing all the currently open windows allow you to filter this list based on the window's title or WM_CLASS attribute. System G sets WM_CLASS to SystemG_Folder.

Remapping modifier keys

You can choose which keys on your keyboard should map to each modifier by using xmodmap in your ~/.xinitrc file. As an example, if you have a PC keyboard with the new Windows key between Ctrl and Alt, you can change the left Windows key to produce the Mod4 modifier as follows:

xmodmap -e "clear mod4"
xmodmap -e "keycode 115 = Super_L"
xmodmap -e "add mod4    = Super_L"

To check which keys produce each modifier, use xmodmap -pm.

You can use xev to get the keycode for a particular key on your keyboard. Run it from a terminal window, move the cursor into the resulting window, press the key, and check the keycode value that is printed.