Skip to content

viperh/NaviX

Repository files navigation

NaviX

A modern, cross-platform file manager built with Wails — combining a Go backend with a React + TypeScript frontend for a fast, native desktop experience.

NaviX Preview


Features

  • File & Folder Navigation — Browse your filesystem with a familiar explorer-style interface, including breadcrumb path navigation and history (back/forward).
  • File Operations — Copy, move, delete, rename, and create files and folders with concurrent processing for maximum speed.
  • Drag & Drop — Move and copy items naturally using drag-and-drop.
  • Search & Filter — Quickly find files and folders within the current directory.
  • Quick Access Sidebar — One-click access to Desktop, Documents, Downloads, Pictures, Music, Videos, and Home.
  • Drive List — View and navigate to all available drives and mount points.
  • File Properties — Inspect detailed metadata including size, permissions, modification date, and item counts for folders.
  • Open in Terminal — Launch a terminal session directly at any directory.
  • Open with Default App — Double-click any file to open it with the system default application.
  • Context Menus — Right-click for quick actions on files and folders.
  • Inline Renaming — Press F2 to rename items in place.
  • Hidden Files — Platform-aware hidden file detection and toggle visibility.
  • Sorting — Sort by name, size, extension, or modification date.
  • Dark Theme — Sleek dark interface designed for comfortable extended use.
  • OneDrive Support — Automatic detection and resolution of OneDrive-redirected special folders.
  • Cross-Platform — Runs natively on Windows, macOS, and Linux.

Keyboard Shortcuts

Shortcut Action
Ctrl+C Copy selected items
Ctrl+X Cut selected items
Ctrl+V Paste items
F2 Rename selected item
F5 Refresh current directory
Delete Delete selected items
Backspace Navigate to parent directory
Alt+Left Go back
Alt+Right Go forward

Tech Stack

Backend

  • Go 1.23
  • Wails v2 — bridges Go and the web frontend into a single native binary

Frontend

  • React 18 with TypeScript
  • Vite — lightning-fast development and bundling
  • Tailwind CSS — utility-first styling
  • Radix UI — accessible, unstyled component primitives (context menus, dialogs, tooltips)
  • Lucide React — icon library

Prerequisites

Before building NaviX, make sure you have the following installed:

To install the Wails CLI:

go install github.com/wailsapp/wails/v2/cmd/wails@latest

Verify installation:

wails doctor

Getting Started

Clone the repository

git clone https://github.com/qviperh/NaviX.git
cd NaviX

Development

Run the application in live development mode with hot reload:

wails dev

This starts a Vite dev server for the frontend with hot module replacement. Changes to Go code will trigger a rebuild automatically.

Build

Create a production-ready, distributable binary:

wails build

The compiled binary will be available in the build/bin/ directory.

Project Structure

NaviX/
├── main.go                  # Application entry point & Wails configuration
├── app.go                   # Core application logic (file operations, navigation)
├── fileops.go               # File copy/move utilities with concurrency
├── platform_windows.go      # Windows-specific: drive detection, hidden files
├── platform_unix.go         # Unix/macOS/Linux-specific implementations
├── go.mod                   # Go module dependencies
├── wails.json               # Wails project configuration
├── assets/                  # Static assets (screenshots, etc.)
├── build/                   # Build configuration
│   ├── windows/             # Windows manifest & installer config
│   └── darwin/              # macOS plist configuration
└── frontend/                # React + TypeScript frontend
    ├── src/
    │   ├── main.tsx         # React entry point
    │   ├── App.tsx          # Root application component
    │   ├── index.css        # Global styles (Tailwind)
    │   ├── types/           # TypeScript type definitions
    │   ├── context/         # React context for global state management
    │   ├── components/      # UI components
    │   │   ├── NavBar.tsx          # Navigation bar (path, back/forward, search)
    │   │   ├── SideBar.tsx         # Quick Access & Drives sidebar
    │   │   ├── Content.tsx         # Main file listing view
    │   │   ├── Footer.tsx          # Status bar
    │   │   └── PropertiesDialog.tsx # File properties modal
    │   └── lib/
    │       └── utils.ts     # Utility helpers (formatting, classnames)
    ├── package.json         # Node.js dependencies
    ├── tsconfig.json        # TypeScript configuration
    ├── vite.config.ts       # Vite build configuration
    └── tailwind.config.js   # Tailwind CSS configuration

Architecture

NaviX follows a clean separation between the Go backend and the React frontend, connected seamlessly through Wails' binding system:

  • Go Backend — Handles all filesystem interactions (reading directories, copying, moving, deleting), platform-specific operations, and process management. File operations are performed concurrently using goroutine worker pools sized to the number of available CPU cores.
  • React Frontend — Manages the entire UI, user interactions, and state through React Context. Components communicate with Go through auto-generated TypeScript bindings provided by Wails.
  • Platform Abstraction — Build-tagged Go files (platform_windows.go, platform_unix.go) provide OS-specific behavior for drive detection and hidden file handling without conditional runtime logic.

License

This project is open source. See the repository for license details.

Author

qviperhqviperh.dev@proton.me

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors