File Manager
What is it?
The file manager is the File Explorer window for browsing drives and folders, opening files and copying, moving, renaming and deleting them. This roadmap plans a Windows 11-style File Explorer as the first program under src/apps/: tabs in the title bar, an address row, a command bar, a navigation pane, icon and details views, file operations with progress, context menus, search, drag and drop and a preview pane. Nothing is implemented yet: there is no file manager program and no src/apps/ folder.
How does it work?
Today. No window lists files. The pieces it will use exist:
- VFS.
vfs_readdir(),vfs_finddir(),vfs_stat(),vfs_create(),vfs_rename()(within one drive),vfs_unlink()andvfs_is_mounted()cover listing and the basic operations (vfs.h). There is no publicvfs_mkdir(): a folder is created withvfs_create()and the directory type. - Icons. Folder and file-type icons are in the icon store, and
icon_for_extension()picks a file icon for eight extensions (icon_store.h). The File Explorer artwork exists inresources/icons/src/file_explorer.svgbut has no icon ID yet. - Controls. The control library has buttons, labels, text boxes and scroll bars only; list views, tab strips and tree views do not exist yet (
controls.h). - Shell entry points. The Start menu lists Computer, Documents, Pictures, Music, Downloads and Control Panel in its right column, and the desktop shows a Computer icon, but clicking any of them does nothing (
desktop.c).
Planned design. The layout follows the File Explorer design.
- Core layout. A window with five bands (tabs, address row, command bar, content, status bar), a 16-entry back and forward history, and the folder listing from
vfs_readdir(). - Navigation pane. A 220 pixel pane with Home, the user folders and each mounted drive.
- Views. Large icons (48 pixel) and details with sortable name, date, type and size columns, and multi-select.
- File operations. Copy, cut and paste in chunks with a progress dialog, delete to the Recycle Bin, and inline rename.
- Context menus. Open, Open With, Cut, Copy, Delete, Rename and a Properties dialog showing owner and permissions.
- Search. A search box scoped to the current folder, using the file index.
- Drag and drop. A ghost image while dragging, with folders and drives as drop targets.
- Advanced. A preview pane, multiple tabs, a clickable breadcrumb address and a placeholder for network locations.
flowchart TB
T[Tabs in title bar] --- A[Address row: back, forward, up, breadcrumb, search]
A --- C[Command bar: New, Cut, Copy, Paste, Rename, Delete, View]
C --- M[Navigation pane | Content view]
M --- S[Status bar: item count, selection]
What are its interfaces?
| Interface | Status |
|---|---|
vfs_readdir(), vfs_stat(), vfs_rename(), vfs_unlink(), vfs_create() |
Shipped VFS calls |
icon_for_extension(), ICON_FOLDER_CLOSED and the other icons |
Shipped |
filemgr_*, filemgr_copy_file(), Properties dialog |
Planned |
CTRL_LISTVIEW, CTRL_TABSTRIP, context_menu_show() |
Planned by the widget and shell features roadmaps |
How do I use it?
It cannot be used yet. Use dir and type in the terminal to look at files.
What is not implemented yet?
- Core Layout and Sidebar
- View Modes, needing the list view in Complex Controls and Dialogs
- File Operations, with delete going to the Recycle Bin
- Context Menus, on the engine in Desktop Shell Features
- File Search, on File Search and Indexing
- Drag and Drop and Advanced Features
How does it compare with Windows 11 and Linux?
Windows 11 File Explorer has tabs, a simplified command bar, a navigation pane, several icon sizes plus list, details and tiles views, a full copy engine, context menus with shell extensions, indexed search, drag and drop with thumbnails, and preview and details panes. GNOME Files (Nautilus) and Dolphin offer toolbars, sidebars with bookmarks, icon and list views, trash and progress dialogs, indexed search through Tracker or Baloo, and preview panes and tabs. Impossible OS has no file manager yet. The plan follows the Windows 11 layout and shows the IXFS owner and permission bits in Properties.