Skip to content
Eric Turgeon edited this page Sep 26, 2026 · 1 revision

This guide covers Mocka Dock 0.0.1, the first alpha. Features still to come are listed at the end.

Adding the dock to a panel

  1. Install the dock: pkg install mocka-dock on GhostBSD, or build it from source (see the README).
  2. If the panel was running during the install, restart it: mate-panel --replace &
  3. Right click an empty part of a panel, choose Add to Panel..., pick Mocka Dock, and click Add.
  4. To move the dock, right click an empty part of the dock (or Ctrl + right click a button), choose Move, and drag it.

You can add more than one dock, on the same panel or on different panels. All docks show the same apps in the same order.

How long the dock is

  • On an expanded panel (Panel Properties, Expand ticked), the dock takes all the free room. The space after the last button is empty dock space.
  • On a panel that is not expanded, the dock is as long as its buttons, and the panel grows as apps open.
  • When the buttons do not fit, an arrow appears at each end. Click an arrow to scroll by one button. The mouse wheel does not scroll the dock.

Buttons

  • Each app has one button, however many windows it has open.
  • Pinned apps come first, in the order you arranged them. Apps that are running but not pinned follow, in the order they were started.
  • A bar on the edge of a button means the app is running. The button of the app you are using is highlighted.
  • The dock shows windows from the current workspace only. A pinned app whose windows are all on other workspaces shows no bar, and clicking it takes you to its window.

Mouse

Action Result
Click an app that is not running Start it. The button pulses while the app starts.
Click an app with one window Bring the window forward, or minimize it when it is already in front
Click an app with several windows Show a list of its windows. Click the button again to close the list.
Middle click, or Shift + click Open a new window of the app
Right click a button App menu
Shift + right click a button Window menu
Ctrl + right click anywhere, or right click empty dock space Dock menu

App menu (right click)

From top to bottom:

  • The app's own actions, when the app offers any, such as New Private Window in Firefox.
  • Recent files opened with the app, up to five, newest first. They come from the desktop's recent files list, so apps that keep their own history (JetBrains IDEs, VS Code, LibreOffice) show none.
  • The app's name, which opens a new window.
  • Pin to dock or Unpin from dock.
  • Close window, or Close all windows when the app has several.

Window menu (Shift + right click)

The standard window menu for the app's last used window: minimize, maximize, move, resize, always on top, workspaces, and close.

Dock menu

About, and the panel's own items: Move, Lock to Panel, and Remove From Panel.

Pinning

To pin an app:

  • Right click its button and choose Pin to dock. It is added after the other pinned apps.
  • Or drag it from the applications menu, the desktop, or the file manager onto the dock. A line shows where it will land.

To reorder pinned apps, drag a button to a new place. Dragging a running app that is not pinned in among the pinned apps pins it there.

To unpin an app, right click it and choose Unpin from dock. A popup with an Undo button appears for 5 seconds.

A .desktop file dropped from outside the applications folders is copied to ~/.local/share/applications first, and the copy is pinned.

Settings

The Preferences window is not in this release yet. Until then, settings are changed with gsettings in a terminal.

Pinned apps

The pinned apps are shared by all docks:

# Show the pinned apps
gsettings get org.mocka_desktop.Dock pinned-apps

# Set them, in order
gsettings set org.mocka_desktop.Dock pinned-apps "['caja-browser.desktop', 'firefox.desktop', 'mate-terminal.desktop']"

# Go back to the default
gsettings reset org.mocka_desktop.Dock pinned-apps

Each app is named by its desktop file, as found in /usr/local/share/applications or ~/.local/share/applications. Apps in the list that are not installed are skipped.

Windows from all workspaces

This setting belongs to each dock. First find the dock's panel object:

for id in $(gsettings get org.mate.panel object-id-list | tr -d "[],'"); do
  gsettings get org.mate.panel.object:/org/mate/panel/objects/$id/ applet-iid | grep -q MockaDock && echo $id
done

Then, with the ID it prints (for example object-1):

gsettings set org.mocka_desktop.Dock.Instance:/org/mate/panel/objects/object-1/prefs/ show-all-workspaces true

Not in this release yet

  • Window thumbnails when hovering a button. The list of window titles stands in for them.
  • Super + 1 to 0 to start or switch to the first ten apps.
  • Mouse wheel and Ctrl + click to go through an app's windows.
  • Blinking when an app needs attention.
  • The Preferences window, the trash, and translations.

Known limitations

  • LibreOffice windows cannot be pinned from their right-click menu, because LibreOffice does not name its windows after Writer, Calc and the others on FreeBSD. Drag them from the applications menu instead.
  • The dock runs inside the panel, so if the dock crashes, the panel restarts.

Reporting problems

Please open an issue at https://github.com/mocka-desktop/mocka-dock/issues with what you did, what you expected, and what happened.

If an app lands on the wrong button, or cannot be pinned, run this from the source tree while the app is open, click one of its windows, and attach the file it writes in docs/test-data/:

tools/collect-test-data.sh <name> <expected-desktop-file>

For example: tools/collect-test-data.sh gimp gimp.desktop