aboutsummaryrefslogtreecommitdiff
path: root/sdn.1
diff options
context:
space:
mode:
Diffstat (limited to 'sdn.1')
-rw-r--r--sdn.1131
1 files changed, 131 insertions, 0 deletions
diff --git a/sdn.1 b/sdn.1
new file mode 100644
index 0000000..097a5de
--- /dev/null
+++ b/sdn.1
@@ -0,0 +1,131 @@
+\" https://mandoc.bsd.lv/man/roff.7.html#Sentence_Spacing
+.Dd October 27, 2020
+.Dt SDN 1
+.Os Linux
+.Sh NAME
+.Nm sdn
+.Nd directory navigator
+.Sh SYNOPSIS
+.Nm sdn
+.Op Ar line Ar point
+.Nm sdn
+.Cm --version
+.Sh DESCRIPTION
+.Nm
+is a simple directory navigator that you can launch while editing shell
+commands.
+Use the
+.Xr sdn-install 1
+script to integrate it with your shell, then invoke it at any time with M-o.
+.Pp
+Press F1 to get a list of active key bindings and their assigned actions,
+grouped by their contexts.
+.Pp
+Program arguments are only used by integration snippets to forward the parent
+shell's command line.
+The
+.Ar point
+is given in terms of characters.
+.Sh OPTIONS
+While some behaviour can be toggled from within the program, some can only be
+changed by modifying configuration files manually.
+.Pp
+The files follow a simple syntax derived from the Bourne shell: each option is
+on its own line, with words separated by linear whitespace.
+Comments start with a hash (#) and continue until the end of the line.
+All special characters may be quoted using either a backslash or single-quoted
+strings.
+.Pp
+The options and the default key bindings controlling them are as follows:
+.Bl -tag
+.It full-view Em bool No (t)
+If non-zero, the equivalent format to
+.Ql ls -l
+is used to display directory contents rather than simply listing the filenames.
+.It gravity Em bool
+If non-zero, all entries stick to the bottom of the screen, i.e., all empty
+space is at the top.
+.It reverse-sort Em bool No (R)
+If non-zero, the order of entries is reversed.
+.It show-hidden Em bool No (M-.)
+If non-zero, filenames beginning with a full stop are shown.
+.It ext-helpers Em bool
+If non-zero, viewers and editors are launched from the parent shell.
+This way you can suspend them and use job control features of the shell.
+However it also enforces any pending change to the shell's working directory.
+.It sort-column Em number No (< >)
+The zero-based index of the
+.Ql full-view
+column that entries are ordered by.
+.El
+.Sh ENVIRONMENT
+.Bl -tag -width 15n
+.It Ev LS_COLORS
+Used to retrieve filename colours.
+The format is described in
+.Xr dir_colors 5
+and you can use the
+.Xr dircolors 1
+utility to initialize this variable.
+.It Ev PAGER
+The viewer program to be launched by the F3 key binding as well as to show
+the internal help message.
+If none is set, it defaults to
+.Xr less 1 .
+.It Ev VISUAL , Ev EDITOR
+The editor program to be launched by the F4 key binding.
+If neither variable is set, it defaults to
+.Xr vi 1 .
+.El
+.Sh FILES
+.Bl -tag -width 25n -compact
+.It Pa ~/.config/sdn/config
+Program configuration and navigation state, initialized or overwritten on exit.
+.It Pa ~/.config/sdn/bindings
+Custom key binding overrides.
+.It Pa ~/.config/sdn/look
+Redefine terminal attributes for UI elements.
+.El
+.Sh EXAMPLES
+.Ss Pa bindings
+Key names or combinations follow the Emacs syntax for Control and Meta prefixes
+and
+.Xr terminfo 5
+names are used for special keys.
+To obtain more vifm-like controls and Windows-like quit abilities:
+.Bd -literal -offset indent
+normal h parent
+normal l choose
+normal M-f4 quit
+.Ed
+.Pp
+Midnight Commander binds the same traversal actions to sequences normally
+unknown to ncurses, due to them being missing from terminfo.
+You'll need to define them manually to match your terminal.
+For rxvt, that would be:
+.Bd -literal -offset indent
+define C-ppage ^[[5^
+define C-npage ^[[6^
+normal C-ppage parent
+normal C-npage choose
+.Ed
+.Pp
+Escape characters must be inserted verbatim, e.g., by pressing C-v ESC in vi,
+or C-q ESC in Emacs.
+.Ss Pa look
+Terminal attributes are accepted in a format similar to that of
+.Xr git-config 1 ,
+only named colours aren't supported.
+For a black-on-white terminal supporting 256 colours, a theme such as the
+following may work:
+.Bd -literal -offset indent
+cursor 231 202
+bar 16 255 ul
+cwd bold
+input
+cmdline 145
+.Ed
+.Sh REPORTING BUGS
+Use
+.Lk https://git.janouch.name/p/sdn
+to report bugs, request features, or submit pull requests.