sdn === :compact-option: 'sdn' is a simple directory navigator that you can invoke while editing shell commands. It enables you to: * take a quick peek at directory contents without running `ls` * browse the filesystem without all the mess that Midnight Commander does: there's no need to create a subshell in a new pty. The current command line can be simply forwarded if it is to be edited. What's more, it will always be obvious whether the navigator is running. Development has just started and the only supported platform is Linux. I wanted to try a different, simpler approach here. Building -------- Build dependencies: CMake and/or make, a C++14 compiler, pkg-config + Runtime dependencies: ncursesw $ git clone https://github.com/pjanouch/sdn.git $ mkdir sdn/build $ cd sdn/build $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug $ make To install the application, you can do either the usual: # make install Or you can try telling CMake to make a package for you. For Debian it is: $ cpack -G DEB # dpkg -i sdn-*.deb There is also a Makefile you can use to quickly build a binary to be copied into the PATH of any machine you want to have 'sdn' on. zsh --- To start using this navigator, put the following in your .zshrc: .... sdn-navigate () { # ... possibly zle-line-init eval `sdn` [ -z "$cd" ] || cd "$cd" [ -z "$insert" ] || LBUFFER="$LBUFFER$insert " zle reset-prompt # ... possibly zle-line-finish } zle -N sdn-navigate bindkey '\eo' sdn-navigate .... bash ---- Here we can't reset the prompt from within a `bind -x` handler but there is an acceptable workaround: .... sdn-navigate () { SDN_L=$READLINE_LINE SDN_P=$READLINE_POINT READLINE_LINE= eval `sdn` [[ -z "$cd" ]] || cd "$cd" [[ -z "$insert" ]] || { SDN_L="${SDN_L:0:$SDN_P}$insert ${SDN_L:$SDN_P}" ((SDN_P=SDN_P+${#insert}+1)) } } sdn-restore () { READLINE_LINE=$SDN_L READLINE_POINT=$SDN_P unset SDN_L SDN_P } bind -x '"\200": sdn-navigate' bind -x '"\201": sdn-restore' bind '"\eo":"\200\C-m\201"' .... Colors ------ Here is an example of a '~/.config/sdn/look' file; the format is similar to that of git, only named colors aren't supported: .... cursor 231 202 bar 16 255 ul cwd bold input .... Contributing and Support ------------------------ Use this project's GitHub to report any bugs, request features, or submit pull requests. If you want to discuss this project, or maybe just hang out with the developer, feel free to join me at irc://irc.janouch.name, channel #dev. Bitcoin donations: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9 License ------- This software is released under the terms of the 0BSD license, the text of which is included within the package along with the list of authors.