A minimal, keyboard-driven file manager for Linux built with Qt6.
Dentry — named after the Linux kernel's directory entry cache structure — is a lightweight graphical file manager designed for tiling window managers and minimal desktop environments. It focuses on clarity, speed, and a consistent dark aesthetic without unnecessary UI chrome.
- Sidebar with quick-access places populated dynamically from home directory, toggleable hidden folders, Home always first, Root always last
- File list view with sortable columns: Name, Size, Type, Date Modified, Permissions
- Async file operations: Copy, Cut, Paste, Move, Delete, Rename, Create File, Create Folder
- Progress dialog with cancellation support for all file operations
- Right-click context menu with full operation support
- Toggle for hidden dot-files with visual indicator (black = off, white = on)
- Inline search with real-time filtering
- File preview panel for text and images
- Dark theme — black/white only, zone-based layout with border-radius, no external theme dependency
- Colored terminal logger with category filtering via
DENTRY_DEBUGenvironment variable - Full keyboard and mouse support
| Property | Value |
|---|---|
| Language | C++17 |
| UI Framework | Qt6 Widgets + Qt6 Concurrent |
| Build System | CMake 3.16+ |
| License | GPLv3 |
| Tested on | Arch Linux |
- Qt6 Base (
qt6-base) - Qt6 Concurrent (
qt6-base) - CMake 3.16 or later
- A C++17-compatible compiler (GCC 9+, Clang 10+)
yay -S dentry
# or
paru -S dentrysudo pacman -S qt6-base cmake base-develsudo apt install qt6-base-dev cmake build-essentialsudo dnf install qt6-qtbase-devel cmake gcc-c++git clone https://github.com/Hugo-Fabresse/dentry.git
cd dentry
cmake -B build
cmake --build buildThe compiled binary will be located at build/dentry.
sudo cmake --install build./build/dentryOr if installed system-wide:
dentry# Enable all logs
DENTRY_DEBUG=1 dentry
# Filter by category
DENTRY_DEBUG=1 QT_LOGGING_RULES="*.debug=true;Mime.debug=false;FileInfo.debug=false" dentry| Action | Method |
|---|---|
| Open folder | Double-click or Enter |
| Go back | Click "←" or Backspace |
| Go to Home | Click "~" |
| Jump to a place | Click an entry in the sidebar |
| Sort by column | Click a column header |
| Action | Method |
|---|---|
| Copy | Right-click → Copy |
| Cut | Right-click → Cut |
| Paste | Right-click → Paste |
| Delete | Right-click → Delete |
| Rename | Right-click → Rename |
| New file | Right-click → New File |
| New folder | Right-click → New Folder |
| Open file | Double-click (uses default app) |
Type in the search bar to filter the current directory in real time. The filter applies only to the current directory and clears on navigation.
Hidden Files
Click the "·" button in the toolbar to toggle visibility of dot-files. Black background = hidden files off. White background = hidden files visible. The sidebar updates accordingly.
dentry/
├── CMakeLists.txt
├── Doxyfile
├── LICENSE
├── README.md
├── dentry.desktop
├── doc/
└── src/
├── main.cpp
├── app/
│ ├── Application.h/.cpp
│ └── Clipboard.h/.cpp
├── fs/
│ ├── IFileOperation.h
│ ├── AFileOperation.h/.cpp
│ ├── FileInfo.h/.cpp
│ ├── MimeResolver.h/.cpp
│ └── operations/
│ ├── CopyOperation.h/.cpp
│ ├── MoveOperation.h/.cpp
│ ├── DeleteOperation.h/.cpp
│ ├── RenameOperation.h/.cpp
│ ├── CreateFileOperation.h/.cpp
│ └── CreateFolderOperation.h/.cpp
├── model/
│ ├── IFileSystemModel.h
│ ├── AFileSystemModel.h/.cpp
│ ├── FileSystemModel.h/.cpp
│ └── FileItem.h
├── ui/
│ ├── MainWindow.h/.cpp
│ ├── Sidebar.h/.cpp
│ ├── FileListView.h/.cpp
│ ├── PreviewPanel.h/.cpp
│ ├── Toolbar.h/.cpp
│ ├── StatusBar.h/.cpp
│ ├── ProgressDialog.h/.cpp
│ ├── Style.h
│ ├── style.qss
│ └── resources.qrc
└── util/
├── Logger.h/.cpp
├── SizeFormatter.h/.cpp
├── DateFormatter.h/.cpp
└── PermissionFormatter.h/.cpp
GPLv3 — see LICENSE.