- [Quickstart](#quickstart)
- [Usage](#usage)
- [Cmdline options](#cmdline-options)
- - [Keyboard shortcuts](#keyboard-shortcuts)
- - [Leader key](#leader-key)
+ - [Keyboard and mouse](#keyboard-and-mouse)
+ - [Leader key](#leader-key)
- [Contexts](#contexts)
- [Context-specific color](#context-specific-color)
- [Selection](#selection)
-h show help
```
-#### Keyboard shortcuts
+#### Keyboard and mouse
Press <kbd>?</kbd> in `nnn` to see the list anytime.
Note: Help & settings, file details, media info and archive listing are shown in the PAGER. Use the PAGER-specific keys in these screens.
-#### Leader key
+| Mouse click | Function |
+|:---:| --- |
+| Left single | Select context or entry |
+| Left double | Select context or open file/directory |
+| Middle single | Visit parent directory |
+
+##### Leader key
The Leader key provides a powerful multi-functional navigation mechanism. It is case-sensitive and understands contexts, bookmarks and location shortcuts.
nonl();
//intrflush(stdscr, FALSE);
keypad(stdscr, TRUE);
- mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED, NULL);
+ mousemask(BUTTON1_CLICKED | BUTTON1_DOUBLE_CLICKED | BUTTON2_CLICKED, NULL);
curs_set(FALSE); /* Hide cursor */
start_color();
use_default_colors();
presel = 0;
switch (sel) {
+ case SEL_CLICK:
+ if (getmouse(&event) != OK)
+ goto nochange; // fallthrough
case SEL_BACK:
- dir = visit_parent(path, newpath, &presel);
- if (!dir)
- goto nochange;
+ // Handle right click to go to parent
+ if ((sel == SEL_BACK)
+ || (sel == SEL_CLICK && event.bstate == BUTTON2_CLICKED)) {
+ dir = visit_parent(path, newpath, &presel);
+ if (!dir)
+ goto nochange;
- /* Save last working directory */
- xstrlcpy(lastdir, path, PATH_MAX);
+ /* Save last working directory */
+ xstrlcpy(lastdir, path, PATH_MAX);
- /* Save history */
- xstrlcpy(lastname, xbasename(path), NAME_MAX + 1);
+ /* Save history */
+ xstrlcpy(lastname, xbasename(path), NAME_MAX + 1);
- xstrlcpy(path, dir, PATH_MAX);
+ xstrlcpy(path, dir, PATH_MAX);
- setdirwatch();
- goto begin;
- case SEL_CLICK:
- if (getmouse(&event) != OK)
- goto nochange;
+ setdirwatch();
+ goto begin;
+ }
// Handle clicking on a context at the top:
if (event.y == 0) {