Skip to content

0xeb/sally

 
 

Repository files navigation

Sally

Release Build License: GPL v2

A fast, modern dual-panel file manager for Windows — fork of Open Salamander with Unicode, long paths, and ARM64 support.

Sally screenshot

About

Sally is an independent fork of Open Salamander, maintained by Elias Bachaalany. The original Open Salamander authors are not responsible for this project and do not provide support for it. Development is AI-assisted using Claude Code. See Origin for the full project history.

What's New

Unicode & Long Path Support

  • Wide-primary Win32 API wrappers (W-suffix) for all file operations
  • CPathBuffer replaces char[MAX_PATH] buffers — supports up to 32,767-character paths
  • 100+ unit and integration tests covering long paths, Unicode filenames, and edge cases

Modern Build System

  • Complete CMake port — all 25+ plugins, trace server, translator, and shell extension
  • Native x64, x86, and ARM64 targets; clang-cl cross-compilation support
  • GitHub Actions CI/CD with automated releases

Architecture Improvements

  • IPrompter interface decouples UI dialogs from file operation logic
  • IWorkerObserver enables headless I/O testing without a GUI
  • WebView2 markdown viewer replaces the legacy IE WebBrowser control
  • Plugin naming standardized: ieviewer renamed to webviewer to match its WebView2 implementation

Platform & Compatibility

  • ARM64 native build for Windows on ARM
  • Runs under Wine on Linux (imageres.dll dependency made optional)
  • Consent-based loading of legacy Altap Salamander 4.0 plugins

Code Quality

  • Czech-to-English comment translation across the entire codebase
  • Modern C++ idioms: std::wstring, RAII, std::unique_ptr
  • Fixed heap corruption bugs, buffer overflows, and Win32 API pitfalls

Downloads

Pre-built binaries are available on the Releases page.

Building

Prerequisites

Build Commands

# Configure and build (x64 default)
cmake -S . -B build
cmake --build build --config RelWithDebInfo

# Populate output directory
cmake --build build --config RelWithDebInfo --target populate

Output: build/out/sally/<Config>_<Arch>/

Other Architectures

Preset Description
cmake --preset msvc Native MSVC x64 (default)
cmake --preset msvc-arm64 Native MSVC ARM64
cmake --preset x64 clang-cl x64 cross-compile
cmake --preset arm64 clang-cl ARM64 cross-compile

Running Tests

ctest --test-dir build -C Debug --output-on-failure

Contributing

Contributions are welcome! See the Developer Guide for repository structure and internals.

License

Sally is based on Open Salamander, open source software licensed under GPLv2. Individual components and libraries have separate but compatible licenses — see third_party.txt for details.

Resources

Altap Website | Features | Documentation | Community Forum | Upstream Repository | Wikipedia

About

Sally - A dual-pane file manager for Windows

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages

  • C++ 65.6%
  • C 28.1%
  • HTML 3.0%
  • Pascal 2.1%
  • CSS 0.3%
  • CMake 0.2%
  • Other 0.7%