{"id":16615922,"url":"https://github.com/ko1nksm/eopen-ecd","last_synced_at":"2025-10-29T19:30:40.124Z","repository":{"id":124139204,"uuid":"217061427","full_name":"ko1nksm/eopen-ecd","owner":"ko1nksm","description":"Open from WSL + Change Terminal and Explorer directory at once","archived":false,"fork":false,"pushed_at":"2020-01-13T13:22:15.000Z","size":2789,"stargazers_count":24,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-10T20:51:44.329Z","etag":null,"topics":["bash","command-prompt","powershell","wsl"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ko1nksm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ko1nksm"}},"created_at":"2019-10-23T13:15:19.000Z","updated_at":"2024-10-16T05:18:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"eaddc0a8-63c7-4c74-896b-40daab83f3c3","html_url":"https://github.com/ko1nksm/eopen-ecd","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ko1nksm%2Feopen-ecd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ko1nksm%2Feopen-ecd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ko1nksm%2Feopen-ecd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ko1nksm%2Feopen-ecd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ko1nksm","download_url":"https://codeload.github.com/ko1nksm/eopen-ecd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238874438,"owners_count":19545190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","command-prompt","powershell","wsl"],"created_at":"2024-10-12T02:11:15.472Z","updated_at":"2025-10-29T19:30:34.665Z","avatar_url":"https://github.com/ko1nksm.png","language":"C++","funding_links":["https://github.com/sponsors/ko1nksm"],"categories":[],"sub_categories":[],"readme":"# eopen-ecd\n\neopen: Open Explorer from Terminal.\u003cbr\u003e\necd: Change directory of Terminal and Explorer at once.\n\n![demo](demo.gif)\n\n## Supported Windows, Terminals\n\n### Windows\n\n  * *Windows 10 64bit 1903* or later recommended (`\\\\wsl$\\` path is supported)\n  * At least *Windows 10 64bit 1803* is required for WSL (`wslpath` required)\n  * Probably works on *Windows 7* (includes 32bit) or later\n    * Of course, *PowerShell* and *Command Prompt* only\n\n### Terminals\n\n  * `WSL` / `WSL2` recommended for the terminal\n    * Works on `bash`, `zsh`, `ksh`, `mksh`, `yash`, `tcsh`, `fish`\n  * Semi-support for *PowerShell* and *Command Prompt*\n\n## Usage\n\n### Available commands\n\n|                | eopen | eclose |  ewd  |  ecd  | epushd | epopd | elsi  |\n| -------------- | :---: | :----: | :---: | :---: | :----: | :---: | :---: |\n| WSL            |   o   |   o    |   o   |   o   |   o    |   o   |   o   |\n| PowerShell     |   -   |   -    |   o   |   o   |   o    |   o   |   o   |\n| Command Prompt |   -   |   -    |   o   |   o   |   o    |   o   |   o   |\n\n**Note** Currently, `eopen` and `eclose` are not implemented for\nPowerShell / Command Prompt. Use `explorer.exe` instead.\n\n### eopen\n\n```\nUsage: eopen [ -e | --editor ] [ -n | --new ] [ --sudo ] [ -g | --background ]\n             [ -s | --search ] [ -S | --web-search ]  [ -v | --version ] [ -h | --help ]\n```\n\n* Open the directory with Explorer from the Terminal.\n* Open the file with application from the Terminal.\n\n#### Examples\n\n```\n# Open directory with (latest used) Explorer\neopen ~/.config/\n\n# Open directory with new instance of Explorer\neopen -n ~/.config/\n\n# Opens with Windows default application\neopen image.png\n\n# Opens with Windows text editor\neopen -e ~/.bashrc\n\n# Use sudo to edit the unowned file\neopen -e --sudo /etc/hosts\n\n# Opens with Windows default browser\neopen http://google.com\n\n# Search with Windows explorer\neopen -s \"*.conf\" /etc/ \"size:\u003e1KB\"\n# Note: The query depends on the locale. e.g. 'サイズ:\u003e1KB' in Japanese.\n\n# Search with Windows default browser\neopen -S \"eopen-ecd\"\n\n# Open files and directories under Windows\neopen C:/Windows\n\n# Open files and directories under Network shared folder\neopen //server/shared\n\n# Others\neopen mailto:user@example.com   # Mail protocol\neopen calculator:               # Application\neopen shell:Personal            # Shell commands\neopen :MyComputerFolder         # Shorthand for shell:\neopen shell:::{2559a1f8-21d7-11d4-bdaf-00c04f60b9f0} # CLSID\neopen :                         # Current Explorer location\neopen :/workspace               # Relative path from current Explorer location\n```\n\n#### Environemnt variables\n\n| name              | description                             | default                              |\n| ----------------- | --------------------------------------- | ------------------------------------ |\n| `EOPEN_EDITOR`    | Execution path of editor for `eopen -e` | `notepad.exe`                        |\n| `EOPEN_SEARCH`    | URL template for web search             | `https://www.google.com/search?q=%s` |\n| `EOPEN_LAUNCH_TO` | Default location for new explorer       | Windows settings                     |\n\n**Note** Set environment variables on Windows (not in WSL).\n\n**Hint** `EOPEN_LAUNCH_TO` accepts *Shell: commands* and *CLSID* not only Windows path.\n\n### eclose\n\n`Usage: eclose`\n\nClose the (lastest used) Explorer.\n\n### ewd\n\n`Usage: ewd [ -u | --unix ] [ -w | --windows ] [ -m | --mixed ]`\n\nDisplay path of the (latest used) Explorer location.\n\n### ecd\n\n`Usage: ecd \u003cdirectory\u003e`\n\nChange the directory of Terminal and Explorer at once.\n\nIf first charactor of path is `:`, it means relative path from current\nExplorer location.\n\n#### Examples\n\n```\n# Change the directory to the '/etc'. (Both Terminal and Explorer)\necd /etc\n\n# Change the directory to the 'C:\\Windows'. (Both Terminal and Explorer)\necd c:/windows\n\n# Change the directory to the current Explorer location.\necd :\n\n# Change the directory to the 'workspace' from current Explorer location.\necd :/workspace\n\n# Change the directory to the home directory.\necd\n\n# Change the directory to the Windows home (%USERPROFILE%) directory. (WSL only)\necd ~~\n\n# Change the directory to the ~~ directory instead Windows home directory.\necd ./~~\n```\n\n### epushd / popd\n\n`Usage: epushd \u003cdirectory\u003e` \u003cbr\u003e\n`Usage: epopd`\n\nPush or pop a directory to the directory stack stack, And Change the directory\nof Terminal and Explorer at once. (Use `push` instead of `cd`.)\n\n**Note** Not available on `ksh` and `mksh`, since `push` and `pop` are not implemented.\n\n### elsi\n\n`Usage: elsi [ -u | --unix ] [ -w | --windows ] [ -m | --mixed ] [ -0 | --null]`\n\nList selected items of the Explorer.\n\n## Download\n\n**Download from [releases page](https://github.com/ko1nksm/eopen/releases)**\n\n**Note** Highly recommend using x64 binary on Windows 10 64bit edition.\nx86 binary is also work, but access to the WSL path (`\\\\wsl$\\...`) from\n32bit process is unstable. (Related? [issue 4260][4260] of microsoft/WSL)\n\n[4260]: https://github.com/microsoft/WSL/issues/4260\n\n**Note** It is also distributed for Windows 10 ARM / ARM64.\nBut I do not have those platforms. So it has not been tested at all.\n\n## Installation\n\nExtract the zip file to any directory and set to your shell's profile.\n\n**Note** Require to enable `Launch folder windows in a separete process` in\n*Explorer* -\u003e *File* -\u003e *Change folder and search options* -\u003e *View*\n-\u003e *Advanced settings*.\n\n### WSL terminal / Cygwin / MSYS2 / Git for Windows\n\nChange the following line to the appropriate path and add it to your\nshell's profile under your home directory.\n\n#### For POSIX compliant shells\n\n```sh\neval \"$(sh \"/path/to/eopen-ecd/init.sh\")\"\n```\n\n[Profile] **bash:** `.bashrc`, **zsh:** `.zshrc`, **ksh:** `.kshrc`,\n**mksh:**, `.mkshrc`, **yash:** `.yashrc`\n\n#### For tcsh\n\n```sh\neval `sh \"/path/to/eopen-ecd/init.sh\" tcsh`\n```\n\n[Profile] **tcsh:** `.tcshrc`\n\n#### For fish\n\n```sh\neval (sh \"/path/to/eopen-ecd/init.sh\" fish)\n```\n\n[Profile] **fish:** `.config/fish/config.fish`\n\n### PowerShell\n\nChange the following line to the appropriate path and add it to your\nPowerShell's profile.\n\n```powershell\n. \"/path/to/eopen-ecd/init.ps1\"\n```\n\nTo edit profile, type `notepad $PROFILE` in PowerShell.\n\n\n**Note** Require to change PowerShell execution policy.\n(Google `Set-ExecutionPolicy`).\n\n### Command prompt\n\nChange the following line to the appropriate path and add it to `profile.bat`\n(or favorite name)\n\n```batch\n@call \\path\\to\\eopen-ecd\\init.bat\n```\n\nLoad it to Command Prompt. (For example, use `cmd /k profile.bat`)\n\n## For developers\n\n### Architecture\n\nThe `ebridge.exe` is helper module that operate shell (Explorer) via\nCOM Automation. All scripts are thin frontend of the `ebridge.exe`.\n\n### How to build ebridge.exe\n\nRequire to install [Visual Studio 2019][vs2019] to build.\n(Free Community Edition is enough.)\n\n[vs2019]: https://visualstudio.microsoft.com/downloads/\n\nTo build, the following steps after installation of Visual Studio 2019\n\n1. Run `Developer Command Prompt for VS 2019` from the *start menu*\n2. Goto project root directory\n3. Run `build.bat \u003cTARGET...\u003e` (TARGET: `x86`, `x64`, `arm`, `arm64`)\n4. Generate archive files to the `dist` directory.\n\nOr double click `ebridge.sln` in the [src](src) directory to launch Visual Studio IDE.\n\n### Test\n\nNone, should be do.\n\n## History\n\nThe formerly name of this project was `ecd` that was started to port\nthe `fcd` for macOS to Windows.\n\n  * [fcd](http://www.script-factory.net/software/terminal/fcd/index.html) - Script factory\n  * [fcd](https://qiita.com/Yuhsak/items/a1f154f14e5ff871b6d2) - another one-liner version\n\nThe core module was written with PowerShell script. Early version of\n`ecd` and `eopen` were relies on the script. It was a bit slow (about 400ms-).\nSo I rewrote the core module as native by VC++.\nAnd `eopen`, which has many features, has been changed to the main.\n\n[CHANGELOG](CHANGELOG.md)\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fko1nksm%2Feopen-ecd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fko1nksm%2Feopen-ecd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fko1nksm%2Feopen-ecd/lists"}