Handmade Network»Vjekoslav Krajačić

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


- 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

- 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

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


  • 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)

More work on Disk Voyager
New Features:
- loading icons in background (supports huge listings such as whole drive)
- inactive panel dim
- display entry full path when directory is expanded
Code Improvements:
- better thread support (thread priorities, more generic, not constrained to single work queue, using thread pools)
- switch arenas to use 64 bit virtual space (32bit support -> Recycle bin)
- using UTF8 in non-platform layer, converting to wchars in win layer
- support for direct NTFS sectors read

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

Forum reply: Dynamic arrays
Vjekoslav Krajačić
New forum thread: Dynamic arrays
Vjekoslav Krajačić
Vjekoslav Krajačić
New forum thread: Zero struct initialization
Vjekoslav Krajačić