Developers
Build, extend and contribute
Sally is free software under the GNU GPL version 2 or later, developed in the open on GitHub. Here is how to build it, extend it and send changes back.
Build from source
Visual Studio 2022, the Windows 11 SDK and CMake. One command builds Sally and every plugin, with all languages built in.
BuildWrite a plugin
Add archive formats, file systems, viewers or commands through the plugin interface, starting from the demo plugins.
PluginsScript Sally
Automate repetitive work with JScript, VBScript or other Windows Script Host languages.
ScriptingContribute
Fix a bug, improve a translation, or report a problem.
ContributeBuild from source
You need Visual Studio 2022 with the Desktop development with C++ workload and the Windows 11 SDK 10.0.26100 or newer.
git clone https://github.com/0xeb/sally.git
cd sally
cmake -S . -B build
cmake --build build --config RelWithDebInfo
cmake --build build --config RelWithDebInfo --target populate
The runnable program lands in build/out/sally/<Config>_<Arch>/. Run populate again after each build so the plugins next to sally.exe match it. CMake presets cover x64, ARM64 and clang-cl cross-compilation; the developer guide describes the repository layout, the targets and the code style.
Write a plugin
Plugins are DLLs that Sally loads on demand. The interface lives in src/plugins/shared/spl_*.h: an entry point registers what the plugin provides, such as an archiver (spl_arc.h), a file system for the panels (spl_fs.h), a viewer, menu commands (spl_menu.h) or thumbnails (spl_thum.h), and Sally calls back through general, GUI and file services (spl_gen.h, spl_gui.h, spl_file.h).
- Start from a demo:
src/plugins/demoplugexercises most interfaces,demomenushows a menu extension anddemoviewa viewer. - Study a real one: every bundled plugin is in
src/plugins, from the smallchecksumtoftpandzip. - Plugin SDK version: since Sally 1.0.33 only plugins built for the current plugin SDK (109) load. Plugins written for Altap Salamander 4.0 or older Sally versions must be rebuilt against the current headers.
Script Sally
The Automation plugin runs Windows Script Host scripts with access to the panels, the selection, progress windows and simple forms. Its manual documents the object model and ships sample scripts.
Contribute
- Code: open a pull request on GitHub. Small, focused changes with a clear description of the problem are easiest to review.
- Translations: every language is an ordinary resource file built into Sally:
src/lang/<language>/lang.rcfor Sally andsrc/plugins/<plugin>/lang/<language>/lang.rcfor each plugin. Edit the text, keeping every ID, style and control in the same order as the English file, and open a pull request, or report a wrong translation as an issue. The developer guide explains how to add a language. - Funding: donations through PayPal or Buy Me a Coffee pay for development time.
- Bug reports: describe a problem and the steps to reproduce it in Issues. Include your Sally version and Windows version.
- The manual: report a wrong or missing page in Issues. Its source is published as manual/source.zip.