Next-gen file explorer, built from the ground up. Unleash the thrill of warp-speed file discovery!

Thumbnail (2).jpg


Design goals

  • Modern and minimal interface that puts your files in the spotlight.
  • Fast disk operations that deliver results in a split second.
  • Simple yet versatile user experience through panels & tabs, commands, GoTo window and much more.
  • Personalized with your colors, hotkeys, layouts and default actions.
  • Small & Portable program that fits on your floppy disk.

Features

  • Recursive directory listing with sorting & filtering (all multithreaded for fluid user experience)
  • Various display options
    • From thumbnails to file preview
    • File details (size, date etc)
    • Options to toggle visibility for: extensions, hidden files, system files
    • Links and shortcuts
    • Options to ignore folders, e.g. .git or .svn
  • Copy/Paste/Delete
  • Multiple selections
  • Batch renaming
  • UTF-8
  • Hot reloadable config to tweak default behavior, colors and hotkeys
  • Rich hotkey support (mods, function keys, numpad, context based hotkeys, chained hotkeys, aliases)
  • Panels & Tabs
  • Layouts and Sessions
  • Command palette
  • Goto window for recents/bookmarks/common system paths
  • Searchable right click context menu
  • Localization support
  • Refresh! ^^

Development

Disk Voyager is written in C to be as close to OS and hardware as possible and to be sustainable and stable in the long term. It also doesn't use external libraries (with exceptions to stb_image and stb_truetype which will be swapped out before release). This gives enormous flexibilty and freedom in experimenting with new features since everything can be hand tailored to specific needs of the program. It also often yields in better performance and smaller executable size because of less software bloat. In that respect, a lot of tech, codenamed Warp Engine :), has been developed alongside program itself:

  • Platform layer (window support, file API, multithreading, input...)
  • Custom OpenGL renderer
  • Custom UI framework
  • Memory primitives such as arena, pool and freelist
  • Basic containers Array & Map
  • UTF-8 Strings
  • Math library

Current version is targeted at Windows 7 64-bit and above. Early alpha release is planned for late 2023.

Recent Activity

Separating folders from files, toggling their visibility, combined with filtering. &disk-voyager

Last update video for this year featuring proper UI and DPI scaling. It works nicely when switching monitors with different DPIs. &disk-voyager

Rectangular selection with smooth mouse scrolling on an expanded Windows drive (approx. 1 million files). &disk-voyager

Switch between folders and files. &disk-voyager
Select everything, toggle folders on and off, and you'll have all your files selected.
Use two split panels, one for files and one for folders.

Thumbnails. &disk-voyager 🗄️ 🎞️ 🗃️

Hundreds of thousands of new file entries arrive, and your scroll position remains fixed on your selection while still responding seamlessly to your scroll input. All movements in the video result from mouse scrolling and keyboard arrow actions. &disk-voyager

Multiple selections + Clipboard == 🤝 in &disk-voyager

Sort by size in &disk-voyager includes directories contents, which is super handy!

I won't be showcasing huge features anymore before the alpha release, so I thought I'd share small feature I added today, "single-click to open". It mostly emulates Windows behaviour, short hover delay to select and it works nicely with multiple selections. I also integrated it into GoTo and commands window. &disk-voyager

After few months of hard work and rewriting UI system from scratch, finally something to show 🙂 &disk-voyager
https://youtu.be/yxRSu7mVn7A

Tightening UI renderer. Drop shadows for popups (left pic). Smoothed edges (right pic). &disk-voyager

As the end of the year approaches, I thought it would be nice to do a quick review of 2022 in the form of a short timelapse video. &disk-voyager
https://youtu.be/P9v0PvKqIiQ

GoTo window and Navigation pane &disk-voyager
https://youtu.be/b5nhexh-M4c

Selection Batch Renaming &disk-voyager

  • Standard text field move/extend/delete hotkeys
    • Left, right, home, end, by word
  • Uppercase / Lowercase
  • Special insertions: incremental id, current date, file create date, file modify date
  • Copy / Cut / Paste
  • Undo / Redo
  • Works on huge selections
  • Lighting fast, both edit and rename

https://www.youtube.com/watch?v=v_9Mvzn6vm4

&disk-voyager - Improving right click context menu
https://youtu.be/axzraOKueK4

&disk-voyager
- Tabs
- Create, delete, change tabs with mouse, command palette or hotkeys
- Open in new tab
- Stored in sessions and layouts
- Future support: tab rearrangement, tab into window
- Multiple selection with mouse and hotkeys
- Copy / Paste / Delete
- Results window
- Auto update stats/files across all panels
- Put to background tab
- Drag & drop mouse support
- Terminate
- Tech
- Custom HashMap (stb like with support for length base strings and arena allocation)
- Heavier use of scratch arenas
- Moved to unsigned counts/lengths
- IMGUI interactions rework

YT: https://youtu.be/VtQfgcFYnug

&disk-voyager
- Drive listing
- Works with expansion too. You can expand all drives together
- Separate goto window for recents/bookmarks/common system paths
- Support for automatic storing of current session (window size, panel layout, selection etc..)
- Support for saving/loading layouts (named sessions)
- File preview in separate panel (support for images now, planned: text, audio, video...)
- Support for ignored folders when searching (e.g. .git .svn)
- Support for multiple keybindings for same action
- Mapped basic vim movement actions (not interfering with regular keybindings)
- Open cmd & file explorer commands
- Display options for:
- Show/hide file extensions
- Show/hide hidden files
- Show/hide system files
- Miscellaneous
- Switched to length based strings struct String { char *value; int length; }
- Removed Allocator wrapper abstraction and using Arenas / Pools directly
- Moved away completely from visual studio, using remedybg + portable MSVC

&disk-voyager
- Proper redrawing on window resize
- Support for different thumbnail sizes
- Using slider, but still experimenting on how to improve Windows default UX
- Round corners everywhere ^^

  • After a few weeks of break, development on &disk-voyager continues:
    • Moved to json format for settings/keybindings
      • Option to generate default config file
      • Hot reloadable
    • Colors and other similar options defined in settings
    • Moved from hardcoded keybindings to global keybinding system controlled by settings
    • Better symbol support for keybindings
      • A-Z, 0-9
      • Function keys
      • ` - = \ ; ' , . /
      • Left, Up, Right, Down, Page up, Page down, End, Home
      • Tab, Enter, Escape, Space, Backspace, Delete
      • Numpad keys
    • Chained keybindings, e.g. ["Ctrl+W", "Ctrl+H"]
    • Support for Unicode text input (e.g. for file filtering)
    • Command window for fast access
      • Displaying command's keybinding assigned through json
      • Commands can be filtered by name and/or keybinding
      • Commands visible/hidden, enabled/disabled based on current context
    • Asynchronous sorting, interchangeable with filtering
    • Added some UI animation juice (camera, selection, scrolling, show/hide popups etc.)
      • Thanks to Ryan for discussion on formula
    • Separated all program UI strings into separate localization file
      • Embedded into executable at build time to keep it as single exe
  • This video was brought to you by amazing software (**wcap **+ handbrake)

&disk-voyager

  • multiple panels
  • vertical/horizontal split
  • prev/next, left/right/up/down navigation
  • resize support
  • support for stopping background threads (needed for fast opening/closing panels)

&disk-voyager - modern and fast file explorer. I've been working on it in my spare time. Probably gonna commit on it fully now. It's written in C and has custom OpenGL renderer. Its already blazingly fast. It expands my C drive with 200 GBs in less than 2 seconds and supports fzf filtering on the expanded content. Searching and filtering is multithreaded. There are tons of features I wanna experiment with in order to improve UX of traditional explorers (gonna share those in the future). Atm my primary focus is still on good performance.