GithubHelp home page GithubHelp logo

vanjac / chromafiler Goto Github PK

View Code? Open in Web Editor NEW
52.0 1.0 2.0 854 KB

Column-based file manager for Windows

Home Page: https://chroma.zone/chromafiler/

License: GNU General Public License v3.0

C++ 92.77% C 1.78% NSIS 5.46%
file-manager windows win32 taskbar file-explorer windows-11 notepad columns

chromafiler's Introduction

ChromaFiler

ChromaFiler is a file manager utility with a unique interface, borrowing ideas from Spatial file managers and Miller Column browsers and taking inspiration from the classic Mac OS Finder.

An animation demonstrating folder navigation using ChromaFiler

It functions similar to a column-view browser, but each column can be broken off into its own window by dragging and dropping. You can use it as a popup menu docked to your taskbar for quickly locating a file, or as a complete replacement for Windows File Explorer (and Notepad). More about the design.

ChromaFiler works on Windows 7 through 11.

Sequence of ChromaFiler windows for each version of Windows

Download

Check the Releases page for the latest beta release. See installation instructions for additional information.

ChromaFiler is still in development, so be sure to turn on the auto update check feature so you'll be notified of new releases.

Tutorial

See the wiki for an introduction to the app.

Building

Building requires MSVC and the Windows 10 SDK (install through the Visual Studio Installer; I'm using VC++ 2017 and SDK 10.0.17763.0), as well as Visual Studio Code for running build scripts. The installer is built using NSIS. (You will need to clone all submodules.)

VS Code must be launched from the "x64 Native Tools Command Prompt" (or equivalent for your platform) to access the correct MSVC build tools, which can be found by searching the Start menu. Type code in this prompt to launch VS Code. Open the ChromaFiler directory, then open src/main.cpp and press Ctrl+Shift+B to build the app in the Debug configuration.

Suggested pairings

Donate

If you find ChromaFiler useful, please consider donating to support development.

Contact me

For questions / feedback / bug reports please email me

chromafiler's People

Contributors

vanjac avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

aequis nafoiw1410

chromafiler's Issues

Duplicate command, unsaved items

Depends on #8. Add a "Duplicate" command to proxy menu. Like MacOS, creates a duplicate in RAM (or maybe temp storage). If the user attempts to close without moving to a real location, ask if they want to delete the file.

Proxy icons

Like MacOS.

Support:

  • Right click context menu (icon or title)
  • Tooltip
  • Drag and drop (icon only), including modifier keys
  • Drop target (folders, executables)
  • Double click (icon or title; close window)
  • Click to rename (with delay; must be already focused)

https://devblogs.microsoft.com/oldnewthing/20040920-00/?p=37823
https://groups.google.com/g/microsoft.public.win32.programmer.ui/c/PhXQcfhYPHQ
https://devblogs.microsoft.com/oldnewthing/20041206-00/?p=37133
https://devblogs.microsoft.com/oldnewthing/20210512-00/?p=105208

File dialog extension

Similar to FlashFolder, add some utilities to Windows open/save dialogs.

  • Drop target to navigate to a folder/file
  • Draggable proxy icon to save

Preserve child window size

Selecting an item should restore the size of the previous child window, even if the selection was cleared in between. This shouldn't apply to folders (see #9).

This setting should be stored in the folder property bag.

Detach window shortcut

Maybe Ctrl+/. Move window to align with the root parent window. Make sure to keep window onscreen.

Autoplay sound files

Autoplay toggle for audio preview. Could this be done with the Windows Media Player preview handler, or is a new preview handler needed?

Built-in text editor

Should be basic and Notepad-like (old Notepad) except with a couple enhancements:

  • Multiple undo levels
  • Auto indent, indent selection

Should support autosave!

Missing features:

Right-click menu (based on Notepad):

  • Undo / Redo
  • Cut / Copy / Paste / Delete
  • Select All

Status bar:

  • Unsaved changes
  • Encoding

Settings:

  • File extensions
  • Word wrap
  • #156
  • Font
  • Auto indent

Opening preview can cause window to lose focus

Similar to #18. If another application window is in front, a currently open preview is focused, and then a new item is selected, sometimes the window is sent back behind the other application again.

Multithreading

IShellImageFactory, IExplorerBrowser, and IPreviewHandler should be accessed in separate threads. Currently selecting items can hang the app as they load, and a long copy operation can freeze everything.

Should each chain have its own thread?

One window per item

This would have to work between multiple instances!

If an item is selected and it's already open, temporarily make it a child. If it's deselected before being activated for the first time, restore its original position/parent instead of closing. (Remember items can have multiple parents if accessed through a shortcut.)

If the parent button is clicked and the parent is already open... ?

Should be an optional feature.

Support "Open path" when made default browser

With #13 implemented this is a File Explorer feature that ChromaFiler doesn't support: opening a folder with a particular item selected. Eg. "Open folder location" for shortcuts, "Open path" in Search Everything, or "Reveal in File Explorer" in VS Code.

Preview handler editor

Create an enhanced and friendlier version of Preview Handler Association Editor. Or find an existing tool and document how to use it.

Features:

  • List all preview handlers, including PowerToys (these are missing from PreviewHandlerEditor)
  • List/edit all file types associated with a handler, or all handlers associated with a file type
  • Allow selecting a default handler that's different than the default app for opening
    • This works if you add an extension instead of a class name!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.