Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SafiFiles

A modern, native macOS file manager written in pure C using the microui immediate-mode UI library and SDL3. Designed as a Finder replacement with first-class SSH/SFTP, dual-pane navigation, tabbed browsing, and a built-in terminal emulator.

Status

Early development. The core file browser is functional with both list and grid views, real image thumbnails, and animated light/dark themes. SSH integration, the terminal, and most file operations are still on the roadmap — see FEATURES.md for the full status.

Features in the current build

  • Native macOS window powered by SDL3 + microui
  • Light & Dark themes (auto-detected from system, toggle with ⌘J)
  • Sidebar with Favorites and Devices, full keyboard navigation
  • Tabbed browsing (⌘T new tab, ⌘W close tab)
  • Clickable breadcrumb path bar
  • Back / Forward / Up shortcuts (⌘[, ⌘], ⌘↑)
  • List view with vector file-type icons
  • Grid view with real image thumbnails (PNG / JPG / GIF / WebP / HEIC)
  • Sort by name / size / date
  • Toggle hidden files (⌘⇧.)
  • Move-to-Trash via NSFileManager (⌘⌫)
  • FSEvents-driven auto-refresh on directory changes
  • Persistent settings at ~/.config/safifiles/config.json

Requirements

  • macOS 13 or newer (Ventura+)
  • Xcode Command Line Tools
  • CMake 3.25+
  • Homebrew packages: libssh, libarchive

Build

# Install dependencies
brew install libssh libarchive cmake

# Configure (also fetches SDL3 + microui via FetchContent)
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

# Symlink compile_commands.json for Zed / clangd
ln -sf build/compile_commands.json compile_commands.json

# Build
cmake --build build -j$(sysctl -n hw.ncpu)

# Run
./build/SafiFiles

Keyboard shortcuts

Action Shortcut
New tab ⌘T
Close tab ⌘W
Back / Forward ⌘[ / ⌘]
Parent directory ⌘↑
Refresh ⌘R
Toggle hidden files ⌘⇧.
Toggle light/dark theme ⌘J
Move to Trash ⌘⌫
Delete permanently ⌘⇧⌫
Open file / folder ⌘↩

Tech stack

  • Pure C11 for the core (≈8000 LOC, growing)
  • Objective-C for thin macOS bridges (FSEvents, NSFileManager, NSWorkspace)
  • microui — ~1100 LOC immediate-mode UI library
  • SDL3 — windowing, input, hardware-accelerated 2D rendering
  • stb_truetype — UI font rendering
  • stb_image — image thumbnail loading
  • libssh — SSH/SFTP (linked, integration in progress)
  • libarchive — archive support (linked, integration pending)

Roadmap

See FEATURES.md for the comprehensive list of working, broken, and missing features.

Next priorities:

  1. Fix search input + right-click context menu
  2. Add multi-select, cut/copy/paste, new folder
  3. SSH/SFTP browsing with ~/.ssh/config parsing
  4. Built-in terminal emulator (local + SSH)
  5. Quick Look and the preview panel

Author

@Abdulkader-Safi

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages