Flexible tools launcher desktop app which is "not your average extensible sidebar"
This project is a Work in Progress
| License | |
| Master | |
| Develop |
Author: Damian Suess
- Launch app from System Tray
- Add-on extensions via Mono.Addins
- Safely send shutdown signals to your add-ons
- Launch app from Sidebar (i.e. RocketDock, ObjectDock)
- Launch app on system startup
- Status: Ready
- Launch shortcuts (apps, folders, urls) directly from SystemTray
- Launch apps, files, folders, Windows shortcuts, and web links from an icon dock.
- Drop items onto the dock to add them; drag icons to reorder them. Changes save immediately. While reordering, the grabbed icon follows the pointer and a blue marker shows its destination.
- Hover to enlarge an icon, click to launch, or right-click to add/remove launchers.
- The permanent + button opens the launcher picker and also accepts dropped apps. Right-click the dock or any launcher and choose Sidebar settings… to open its preference page.
- In Settings > Sidebar, choose the monitor and Left, Right, Top, or Bottom edge. Layout follows the selected edge. Long lists scroll with the mouse wheel.
- Auto-hide slides the dock away after a short idle delay. Hover its thin edge strip to bring it back. The slide is clipped to the selected monitor, including shared edges. Turn Auto-hide off to keep the dock visible.
- A small dot beneath an icon indicates that the app has an open window. Indicators refresh automatically and support executable targets and Windows shortcuts.
- Sidebar appearance settings preview immediately. Apply/OK keeps them; Cancel restores the last saved appearance without changing launcher items.
- Enabling the Sidebar add-in shows it immediately; disabling it closes the dock. The startup visibility setting only controls display when the app starts.
- Enabling the Sidebar add-in shows it immediately; disabling it closes the dock. The startup visibility setting only controls display when the app starts.
If Explorer shows a blocked cursor when dropping onto the dock, run Dockzi without administrator privileges. When debugging, start Visual Studio normally too: Windows does not allow drag-and-drop from a non-elevated app into an elevated app.
- Status: WiP
- Auto-mount drives on startup
- Safely dismount drive on system shutdown to guard against corruption
The framework relies on Mono.Addins for extending to add new features. We provide a list of key extension points you can attach to.
From a fresh start:
git clone --recurse-submodules https://github.com/xenoinc/ToolsHub.git
If closed and forgot the submodule:
git submodule update --init --recursive
Read our wiki to learn how to help and make your own add-in.
Use the .NET 10 SDK on Windows:
# Build for Release
.\build.ps1
# Build solution
dotnet build source/Dockzi.slnx --configuration Release
# Run Tests
dotnet test --project source/Xeno.Dockzi.Tests/Xeno.Dockzi.Tests.csproj --configuration ReleaseYou can also run build.bat, which uses PowerShell 7 when available and falls back to
Windows PowerShell. Both scripts work from any current directory and rebuild the full
solution in Release after clearing generated files from output. Close Dockzi first.
The cleanup preserves Dockzi.config, legacy Dockzi.db and ToolsHub.db, SidebarLaunchers.json, logs, .bak backups, and
readme.txt. Use -SkipRestore with either script when packages are already restored.
Tests use Microsoft Testing Platform, selected by global.json. Pass the project with
--project; VSTest options such as --logger no longer apply.
Settings use the built-in System.Text.Json serializer. The Dockzi.config file
retains their property-bag format and Base64-encoded objects; no file conversion is needed.
Dockzi uses the Xeno.Dockzi base namespace and writes the launcher to output/Dockzi.exe.
On first launch, existing Dockzi.db or ToolsHub.db settings are copied to Dockzi.config
without changing the original files. All-users and per-user installations also check their previous XI/ToolsHub
settings folders. Existing Dockzi.config settings always take precedence. An enabled Windows
startup entry for ToolsHub.exe in the same installation folder is updated to Dockzi.exe;
other installations' entries are preserved. Add-ins must be rebuilt against the renamed
host and its /Dockzi extension points. Repository and update URLs keep their original addresses.
See, Docs\Squirrel-Usage.md for more info.
- NuGet:
Squirrel.Windows - NuGet:
NuGet.CommandLine
- Open command prompt in root of project
MSBuild /t:MakeInstaller- Carefully copy select output from "Releases" folder to our network share.
Only perform this method if the MSBuild one does not.
- VS: Update the version numbers in ApplicationInfo.cs
- VS: Build from Release
- NuGet Package Explorer (or Notepad++)
- Update .nuspec version number to match ApplicationInfo version.
- Click, Save As.
- Place file in root of project folder.
- Execute Releasify from VS inside of project
- VS: View > Other Windows > Package Manager Console
- Navigate to root of project folder and releasify
- Example:
PM> cd ..
PM> Squirrel --releasify Dockzi.1.1.53.nupkg- Copy "Releases" output to our network share for archiving
