Screenshot.jpg


Design goals

  • Modern visuals with minimalistic UI graphics and subtle animations
  • Fast startup, disk searching, copying/moving/deleting etc
  • Simple yet versatile UX, including comprehensive hotkeys, well integrated mouse support, command palette, panels & tabs, multiple selections and much more
  • Customizable behavior, layouts, colors and hotkeys
  • Small & Portable exe (under 1.44 MB), with optional installer

Current 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 2022 / early 2023.

Recent Activity

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
- 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.