Cygwin shell add context menu item

2

There's this question on SO:

https://stackoverflow.com/questions/9637601/open-cygwin-at-a-specific-folder

I want to do something opposite. When using terminal I want to right click and have context menu item "Open Explorer here" to open regular Windows explorer window with current location (pwd). Is there a way to add context menu item to cygwin terminal?

matt

Posted 2015-04-23T11:56:10.083

Reputation: 491

Answers

2

It turns out you can use Ctrl + click on a path in mintty to do exactly that.

matt

Posted 2015-04-23T11:56:10.083

Reputation: 491

2

Ctrl + click doesn't work with my mintty, maybe I'm doing it wrong.

Anyway, I've learned some trick from Pragmatistic Guy and made small modification to accomplish what you want more elegently. I'll copy his solution here and all credits belongs to him.

  • To ensure this script only run under cygwin, you may add platform detection commands to your ~/.bashrc:

    if [[ "$OSTYPE" == "linux-gnu" ]]; then
        echo "Linux-gnu environment detected."
    elif [[ "$OSTYPE" == "cygwin" ]]; then
        echo "Cygwin environment detected."
        if [ -f "${HOME}/.bashrc.cygwin" ]; then
            source "${HOME}/.bashrc.cygwin"
        fi
    else
        echo "Unknown Platform"
    fi
    
  • Now add following script to ~/.bashrc.cygwin:

    function xpl {
         if [ "$1" = "" ]; then
             XPATH=.   # Open current directory in default
         else
             XPATH=$1
             XPATH="$(cygpath -C ANSI -w "$XPATH")";
         fi
         explorer $XPATH
     }
    
  • You can now call xpl dir_name_or_file_name to make windows open directory/file with default program.

  • explorer.exe won't block your shell input, isn't that perfect?

Joshz

Posted 2015-04-23T11:56:10.083

Reputation: 141