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.
- 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 ToolsHub 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:
dotnet build source/ToolsHub.slnx --configuration Release
dotnet test --project source/Xeno.ToolsHub.Tests/Xeno.ToolsHub.Tests.csproj --configuration ReleaseTests 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. Existing ToolsHub.db files
retain their property-bag format and Base64-encoded objects; no file conversion is needed.
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 ToolsHub.1.1.53.nupkg- Copy "Releases" output to our network share for archiving
