DOpus

DOpus is MixOS's file manager: two panes side by side, each a folder tree, with a Places sidebar on the left and a Properties sidebar on the right. The name is a nod to Directory Opus on the Amiga, whose twin panes it keeps.

The window

  • Two panes. Each shows one folder as a tree with Name, Size and Modified columns; columns that do not fit are hidden, Modified first. One pane is active; Switch Pane (Tab) moves between them, and copy and move always go to the other pane. Drag the divider to change the split.
  • The path field at the top of each pane always shows where it is. Click it, type a path and press Enter to go there; ~ is your home, and a file path opens the folder that holds it.
  • The tree. A chevron or a double-click opens a folder in place; another collapses it. Double-click a file to open it in its default application.
  • Selecting. Click a row to select it, Ctrl-click to add or remove one, Shift-click for a range. The arrow keys, Home and End move the selection.
  • Sorting. Click a column header to sort by it, ascending first; click it again to reverse.
  • Places lists Home, the filesystem root and your Desktop, Documents, Downloads, Music, Pictures and Videos folders, where they exist. Its toggle sits left of the left pane's path field.
  • Properties shows the selected item: kind, size, dates, permissions, owner and path, under a preview of a file when one can be made. Its toggle sits right of the right pane's path field.
  • Previews (View › Previews, per pane, on by default) are thumbnails from the desktop's shared thumbnail cache, made by the thumbnailers installed on the system (the same ones GNOME and COSMIC use). A type with no thumbnailer keeps its icon. Files on network, FUSE and automounted filesystems (NFS, SMB, sshfs, ntfs-3g and the like) keep their icons too, unless remote_previews: true is set in the configuration (below). A file whose filesystem stops answering keeps its icon rather than holding up the previews of the others.
  • Icons show what a folder or file holds: your well-known folders have their own, and files are grouped by their MIME type (document, code, image, audio, video, archive, spreadsheet, presentation, font, disk image, program, shell script).
  • Drag and drop. Drag rows from one pane onto the other, or onto a folder in it, and choose Move Here, Copy Here or Cancel.
  • Right-click a row or a pane's background for the actions that apply there.

Deleting asks first, and naming a new folder or a rename is checked before anything happens. Copies, moves and deletes run in the background, and the status line says how they ended.

The menus hold every action except moving the selection (the arrow keys, Home and End) and the quick theme keys (Ctrl+Alt+D for light or dark, Ctrl+Alt+1 to 6 for a scheme; View › Theme has the full choice). Help › Keyboard Shortcuts lists every key in force.

MenuActionKeys
FileOpenEnter
New FolderCtrl+Shift+N
RenameCtrl+E
Copy to Other PaneCtrl+C
Move to Other PaneCtrl+X
DeleteDelete
QuitCtrl+Q
ViewPlaces, PropertiesCtrl+B, Ctrl+I
Hidden FilesCtrl+H
RefreshCtrl+R
Sort by Name, Size, ModifiedCtrl+1, Ctrl+2, Ctrl+3
Theme(this window's look; the session's by default)
GoBack, ForwardAlt+ArrowLeft, Alt+ArrowRight
Parent FolderBackspace, Alt+ArrowUp
HomeAlt+Home
Location…Ctrl+L
Switch PaneTab
HelpKeyboard ShortcutsCtrl+/

To change a key, set it in the desktop profile: the binding applies at once, and DOpus's defaults stay for every action you leave alone. For example, settings.apply with keymaps.dopus.nav.parent: ["Ctrl+U"] makes Ctrl+U the parent-folder key, an empty list leaves an action without a key, and a reset of keymaps.dopus restores the defaults. See key bindings are desktop settings.

What it remembers

The two panes' folders, sorting and hidden-files setting, which pane was active, the split, and the sidebars' state and widths are kept in config.conf.mix in DOpus's own directory (by default ~/.local/state/mixos/apps/dopus/config/). dopus --print-config shows the configuration it would use. One setting lives only there: remote_previews (default false) makes previews of files on network, FUSE and automounted filesystems too.

For agents

DOpus answers on the Bus as dopus (schema dopus.v1).

VerbArgumentsAnswer
dopus.ping, dopus.describe, dopus.infoliveness, the control surface, version and build
dopus.stateboth panes (path, sort, hidden files, previews, selection, rows, status) and the sidebars
dopus.openpaths (one per pane), or one path and panegoes there
dopus.actionid, pane (left, right or active)runs one action
dopus.actions.listevery action, its keys in force and whether it can run now
dopus.theme.setscheme, modethis window's look
dopus.quitcloses the window

File operations are keyboard-only. dopus.action refuses every file.* action (FORBIDDEN). Input played through the drive verbs (dopus.ui.*) is held to the same rule: while it runs, file actions and opening files are refused, and a delete, name or drop dialog can be dismissed but not accepted. The rule holds for the whole time drive input runs, so a key you press yourself in that moment is refused too; press it again after. An agent reads, navigates, sorts and selects through DOpus, but never creates, renames, moves, copies, deletes or opens files through it.

The window is drivable like every MixOS app, including its menus: see driving an app (dopus.ui.*, dopus.window). The verbs are registered in docs/docs/spec/bus/verbs.conf.mix.

Each command run from a menu, a key, a sidebar button or an accepted dopus.action is published on dopus.command.executed, with how it was reached (menu, shortcut, ui or bus; executed commands). A refused action is not published.

dopus --headless runs the core and the Bus port without a window, for tests: the same verbs, minus those that need a window. It publishes its accepted dopus.action runs on <service>.command.executed too.

This page as Markdown · This page describes the current main branch of MixOS.