The Keyboard-Oriented File & Folder Explorer for Efficiency, or Koffee, is a no-nonsense alternative to Windows Explorer focused on VIM-style keyboard shortcuts, speed, and simplicity. It is built on .NET WPF, written in F#.
The goal of this application is to allow users to navigate and manipulate files and folders very quickly, almost at the speed of thought -- a speed only achievable via keyboard. If you've ever experienced the productivity boost that comes from learning and using all the keyboard shortcuts in an application (or learned to use the text editor VIM), you understand what a big difference it makes.
Koffee depends on Microsoft .NET Framework 4.8.1. You probably already have it installed. If you don't, go to .NET Framework 4.8.1 to download and install it.
From Chocolatey
choco install koffee
From Scoop
Koffee is part of the "extras" bucket. If you haven't already, add this bucket with scoop bucket add extras
.
scoop install koffee
Go to the releases page. From there, you can download and run Koffee-Setup.exe, which will guide you through the installation with a wizard. Or, if you prefer to install it yourself, you can download the zip file, unzip the app wherever you want and create your own shortcuts.
You will need to have installed:
- Visual Studio or VS Build Tools 2019
- Make sure to select the components ".NET SDK", ".NET Framework 4.8 targeting pack" and "F# compiler"
Steps:
- Clone this repository
- Open a terminal to the folder and run
.\build.cmd -t install
First of all, take your hand off of the mouse because this is a keyboard tool! Once you're familiar with the hotkeys, you'll be navigating your files more quickly than you ever could with a mouse. If you're familiar with the text editor VIM which is popular among programmers, you should feel at home.
A capital letter indicates that the letter key is combined with Shift.
j
to move the cursor downk
to move the cursor uph
to go up to the parent folderl
to open the file or folder under the cursorEnter
to open selected files or item under the cursor if nothing is selectedShift + Enter
to open the "Open With" dialog for the selected fileH
to go back in navigation historyL
to go forward in navigation historygr
to go to the root directory (Drives)Tab
to switch between the main view and the path box?
to open the Settings window, which displays the hotkeys for all commands.Esc
to cancel actions, searches, path input, etc.Ctrl + w
to exit
- Scroll quickly
Ctrl + j
andCtrl + k
move the cursor by half-pages at a time.gg
(pressg
twice) jumps to the first item, andG
jumps to the last item.
- Find / Jump to item:
- Press
f
then the beginning of a file or folder name. The cursor will jump to the first matching item as you type (not case-sensitive).- Press
;
during or after a Find to jump to the next matching item. - Press
Enter
to open the selected item and close Find. - Press
Esc
to close Find.
- Press
- Press
F
to start a "multi" Find, which stays open when opening folders.
- Press
- Search:
- Press
/
to start a search. This will move your cursor to a search input at the bottom of the window where you can enter space-separated search terms. The list will be filtered to matching items as you type. - Press
Ctrl + i
to toggle whether the search is case-sensitive. - Press
Ctrl + r
to toggle regular expression mode instead of term matching. - Press
Ctrl + s
to toggle sub-folder searching. A progress bar will show while results are loaded in the background. - Press
Up
to go back through previous searches andDown
to go forward. - Press
Shift + Delete
when the previous searches are shown to delete the selected search history - Press
Enter
to close the search input and navigate the results. The current search filter will be shown at the bottom of the window. - Press
Esc
when the search input is open or when a search filter is active to cancel the search. - Press
n
to repeat the previous search when no search is active.
- Press
- Bookmarks
- Set a bookmark for the current location by pressing
m
. The existing bookmarks are shown. Enter any character to set a bookmark to that character. Upper-case letters are distinct from lower-case letters. - Go to a bookmark by pressing
'
. The bookmarks are shown. Enter a character to activate the bookmark set to that character. - When viewing bookmarks, press
Delete
then a character to delete the bookmark set to that character.
- Set a bookmark for the current location by pressing
- Saved Searches
- To save an active search (the search input must be closed), press
m
. The existing saved searches are shown. Enter any character to set a saved search to that character. Upper-case letters are distinct from lower-case letters. - Activate a saved search by pressing
`
. The saved searches are shown. Enter a character to activate the saved search set to that character. - When viewing saved searches, press
Delete
then a character to delete the saved search set to that character.
- To save an active search (the search input must be closed), press
- Sorting
- Press
sn
to sort by name, ascending then descending. - Press
sm
to sort by modified date, descending then ascending. - Press
ss
to sort by size, ascending then descending.
- Press
- Path Box Suggestions will appear when typing in the path box.
- When no slashes are in the path box, files and folders that you have opened in Koffee are searched. Items starting with the first search term are shown first, then other matches sorted by most recently visited.
- When a path is in the path box, everything after the last slash is used to search the folder before the last slash. For example, typing "C:\Windows\sy 32" would suggest "C:\Windows\System32".
- When suggestions are shown, use the up and down arrow keys to select a suggestion. When there is only one suggestion, it is selected automatically.
- Press
Tab
to fill in the path box with the selected suggestion and continue typing, or pressEnter
to open the selected suggestion. - When suggestions from history are shown, pressing
Delete
will remove it from the list and history.
- Selecting
- If there is no selection, actions apply to the item under the cursor
- Press
Space
to toggle whether the item under the cursor is selected - Press
Shift + Space
to select or unselect the range of items between the previously toggled item and the cursor, inclusive - Press
Ctrl + a
to select all items in the current location - Press
Esc
to deselect all items when there is a selection
- Create File or Folder: Press
o
to create a file orO
to create a folder. Type in the name of the new item and pressEnter
. - Rename: There are several ways to start renaming the currently selected file or folder.
- Press
i
to start with the cursor at the beginning of the name - Press
a
to start with the cursor at the end of the name, before the extension - Press
A
to start with the cursor at the end of the extension - Press
c
to start with the name (without extension) selected so that typing will replace the name - Press
C
to start with the full name selected - When you are done editing the name, press
Enter
- Press
- Move / Copy / Shortcut
- Press
d
to start a move,y
to start a copy, orY
to start a shortcut of the selected item(s). The item and operation ("yank register") will be displayed in the lower-right corner of the window. - Navigate to the destination folder and press
p
to "put" (move, copy, or create a shortcut of) the item(s) there.- A copy to the same folder will append "(copy)" to the name.
- If at least one item with the same name already exists, you will be prompted to overwrite them. If you choose to overwrite a folder, the contents will be merged (existing files in the destination with the same name will be overwritten, but the others will remain).
- You can cancel a move or copy in progress by pressing
Esc
. Performing a Redo (see below) will resume the action.
- If you decide not to perform the put and want to clear the yank register, you can do so with
Alt + y
- Press
- Clipboard:
- Press
Ctrl + x
to cut the selected items to the Clipboard. - Press
Ctrl + c
to copy the selected items to the Clipboard. - Press
Ctrl + Shift + c
to copy the paths of the selected items to the Clipboard. - Press
Ctrl + v
to paste items that were cut or copied into the Clipboard (from Koffee or another app) to move or copy them to the current folder.
- Press
- Delete
- Press
Delete
to send the currently selected item(s) to the Recycle Bin. If the item cannot be recycled, an error message will be shown instead. - Press
Shift + Delete
to delete items permanently. You will be prompted to make sure this is what you want to do; pressy
to proceed with deletion or pressn
to cancel. - You can cancel a recycle or delete in progress by pressing
Esc
.
- Press
- Undo / Redo Action
- Press
u
to undo the last file or folder action (creating, renaming, moving, copying and deleting). The status bar will report the action that was undone. Since deletions cannot be undone, the status bar will simply report the deletion that cannot be undone. - Press
U
to redo the last action that was undone or to resume a cancelled action. Note that performing any action after an undo will clear the redo list. - You can cancel an undo or redo in progress by pressing
Esc
. You can resume the undo or redo by invoking it again. - Press
gu
to display undo / redo history. Press it again orEsc
to close it.
- Press
- Repeat cursor, navigation and undo/redo commands by pressing numbers before the command. For example, pressing
4H
will go back 4 times. - Display navigation history for Back/Forward with
gh
- Display status message history with
gs
- Open the selected files and exit with
Ctrl + Enter
- Open the selected items' properties with
Alt + Enter
- Open a second window for easier file comparison or moves with
Ctrl + n
- Open the selected files with your text editor (configured in the Settings window) with
Ctrl + e
- Open the terminal (configured in the Settings window) at your current location with
Ctrl + Shift + t
- Open Windows Explorer at your current location with
Ctrl + Shift + e
- Show/hide hidden files and folders with
F9
To see the full list of commands and their key bindings, open the Settings window with ?
.
If you want to contribute to Koffee, thank you! Head to the issues page.
- Did you find a bug or issue in Koffee? Please create a new issue!
- Do you have an idea for a cool new feature? Please create an issue and detail your idea and how it would work!
- Do you want to contribute but not sure where to start? Look for issues that you might be interested in working on.
The
help wanted
tag is used for issues that are easier for newcomers to pick up. Bonus if the issue is part of the next milestone, but that's not necessary! - Still not sure? Email me and we can discuss it!
Please read the Development Guide to get started on Koffee code.
- Configurable hotkeys
- Theme selection and editor
- And more... check out the issues list and please add your own ideas and contributions!