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, every plugin and the language files.
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 help test releases.
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 and language files 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. - Old plugins: binaries written for Altap Salamander 4.0 (SDK version 102) still load through a compatibility layer, after the user agrees.
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: the language files are the
.sltarchives undertranslations/<language>/. Edit the text for your language and open a pull request; the maintainer validates it and builds the language packs for the next release. - Funding: donations through PayPal or Buy Me a Coffee pay for development time.
- Testing: try new releases on your setup, especially with long paths, network shares, ARM64 or Wine, and report what you find in Issues.
- The manual: report a wrong or missing page in Issues. Its source is published as manual/source.zip.