Compare commits

...

1697 Commits

Author SHA1 Message Date
David Refoua
93785426a6
Bump peter-evans/create-pull-request from 6 to 7
Hopefully, there won't be breaking changes
2025-04-08 13:34:23 +03:30
David Refoua
00763846a2
Updates to 3 vendored dependencies 2025-04-08 12:47:31 +03:30
DRSDavidSoft
1737bcdeb7 ⬆️ Update dependencies (git-for-windows v2.49.0.windows.1, clink v1.7.14, clink-completions v0.6.2) 2025-04-03 13:43:06 +00:00
David Refoua
126347025f cleanup 2024-11-14 00:01:29 +03:30
David Refoua
7ceacb63dd respect PATHEXT instead of hardcoding our own value
* support other path extensions as well (e.g. `.py` commonly used)
2024-11-14 00:00:53 +03:30
David Refoua
510178852d add missing qualified dir
https://github.com/cmderdev/cmder/pull/1961
2024-11-13 23:58:11 +03:30
David Refoua
4d15730d05 cleanup 2024-11-13 23:14:49 +03:30
David Refoua
25ccfeed77 prevent warnings if the dir does not exist
https://github.com/cmderdev/cmder/issues/121#issuecomment-654171568
2024-11-13 23:08:13 +03:30
David Refoua
42315d8cec
enable /d flag in excd by default 2024-10-18 03:18:17 +03:30
David Refoua
c6dbb89129 Merge branch 'master' of https://github.com/cmderdev/cmder 2024-10-17 20:00:32 +03:30
David Refoua
1cfba25beb fix conflict 2024-10-17 20:00:21 +03:30
David Refoua
2007baef6e
Updates to 3 vendored dependencies 2024-10-17 19:52:36 +03:30
David Refoua
e220d114b2
add notes on what shim actually is 2024-10-17 19:43:14 +03:30
DRSDavidSoft
4204faa063 ⬆️ Update dependencies (git-for-windows v2.47.0.windows.1, clink v1.7.3, clink-completions v0.6.0) 2024-10-16 13:42:04 +00:00
David Refoua
540532f126 make library comments consistent and clean up code 2024-10-14 14:40:21 +03:30
dependabot[bot]
41195ad8dd
Bump peter-evans/create-pull-request from 6 to 7
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 15:58:11 +00:00
David Refoua
28f6098d48
Merge pull request #2959 from stanwest/cmd-double-quotes
In "lib_git.cmd", use single quotes inside double quotes
2024-07-27 21:04:15 +03:30
Stan West
b56a6d43cb Use single quotes inside double quotes 2024-07-26 20:24:12 -04:00
David Refoua
d2f7136ef8
modify the header to remove outdated mention 2024-06-06 13:34:55 +03:30
David Refoua
4daff054eb
Fix #2944 2024-05-31 18:36:31 +03:30
DRSDavidSoft
45fd0c2666 ⬆️ Update dependencies (git-for-windows v2.45.1.windows.1, clink v1.6.14, clink-completions v0.5.2) 2024-05-29 13:40:37 +00:00
David Refoua
5145a15139
display git improper version string as debug 2024-05-28 17:19:47 +03:30
David Refoua
92419a48fc
log the executable path for improper git 2024-05-23 21:59:16 +03:30
David Refoua
c9b77f618a
enable match.expand_envvars
This is part of the "Enhanced default settings" by Clink and a very useful feature
2024-05-20 10:57:51 +03:30
David Refoua
a2e4884ea1
Merge pull request #2926 from cmderdev/dependabot/github_actions/softprops/action-gh-release-2
Bump softprops/action-gh-release from 1 to 2
2024-04-26 17:09:24 +03:30
Dax T Games
62a46140eb
Merge pull request #2932 from loselarry/master
fix: fix some typos in comments
2024-04-10 08:01:16 -04:00
loselarry
ae518cded8 fix: fix some typos in comments
Signed-off-by: loselarry <bikangning@yeah.net>
2024-04-10 16:39:46 +08:00
dependabot[bot]
4ad76d8274
Bump softprops/action-gh-release from 1 to 2
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 15:59:16 +00:00
dependabot[bot]
8a199bf47b
Bump microsoft/setup-msbuild from 1 to 2 (#2917)
Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 1 to 2.
- [Release notes](https://github.com/microsoft/setup-msbuild/releases)
- [Changelog](https://github.com/microsoft/setup-msbuild/blob/main/building-release.md)
- [Commits](https://github.com/microsoft/setup-msbuild/compare/v1...v2)

---
updated-dependencies:
- dependency-name: microsoft/setup-msbuild
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 19:43:29 +00:00
dependabot[bot]
457d99da0b
Bump peter-evans/create-pull-request from 5 to 6 (#2918)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 19:43:13 +00:00
dependabot[bot]
52762636dc
Bump actions/upload-artifact from 3 to 4 (#2905) 2024-01-03 00:54:57 +00:00
Dax T Games
ed6c9b2bc9
Merge pull request #2907 from daxgames/development_ci
Do CI on development PRs
2024-01-02 14:14:15 -05:00
Dax T. Games
7753622897 Do CI on development PRs 2024-01-02 12:04:31 -05:00
dependabot[bot]
18950135ef
Bump github/codeql-action from 2 to 3 (#2906)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 10:31:41 +00:00
Dax T Games
b59647b570
Merge pull request #2892 from daxgames/revert_git_update
Revert Git update so not to include a release Candidate
2023-11-11 09:18:48 -08:00
Dax T. Games
2135fce19f revert git update to not include a release candidate 2023-11-11 09:12:30 -08:00
Dax T. Games
219c879582 Merge remote-tracking branch 'upstream/master' 2023-11-10 17:00:16 -08:00
Dax T. Games
289bcf03a5 Merge remote-tracking branch 'upstream/development' 2023-11-10 16:59:35 -08:00
David Refoua
50bc05fee7
Merge pull request #2891 from daxgames/rem_race
Remove Cmder.exe race condition
2023-11-09 17:11:42 +03:30
Dax T. Games
8d916a4446 remove env refresh race condition 2023-11-09 04:58:26 -08:00
daxgames
5e22496aca Merge branch 'master' into development 2023-11-05 18:55:47 +00:00
Dax T Games
8b6add75cf
Merge pull request #2882 from cmderdev/update-vendor
Updates to `2` vendored dependencies
2023-11-05 13:55:36 -05:00
DRSDavidSoft
8498447878 ⬆️ Update dependencies (git-for-windows v2.43.0-rc0.windows.1, clink v1.5.12) 2023-11-03 13:40:42 +00:00
DRSDavidSoft
0874f4be44 Merge branch 'master' into development 2023-10-25 09:02:45 +00:00
David Refoua
ffb93b1804
call init.bat with the same arguments 2023-10-25 12:32:31 +03:30
daxgames
092dc4d323 Merge branch 'master' into development 2023-10-14 18:20:25 +00:00
Dax T Games
39afad1743
Merge pull request #2879 from cmderdev/update-vendor
Updates to `2` vendored dependencies
2023-10-14 11:20:13 -07:00
DRSDavidSoft
d0cb6b5c23 ⬆️ Update dependencies (clink v1.5.9, clink-completions v0.4.11) 2023-10-10 13:40:41 +00:00
daxgames
9ee2bef7cd Merge branch 'master' into development 2023-09-25 18:41:04 +00:00
Dax T Games
a409a1cce8
Merge pull request #2867 from cmderdev/update-vendor
Updates to `2` vendored dependencies
2023-09-25 14:40:50 -04:00
Dax T. Games
3b8e87de84 Merge branch 'master' of https://github.com/cmderdev/cmder 2023-09-25 11:45:19 -04:00
DRSDavidSoft
faf66542b4 ⬆️ Update dependencies (git-for-windows v2.42.0.windows.2, clink v1.5.6) 2023-09-22 13:40:52 +00:00
DRSDavidSoft
d3497f5eb0 Merge branch 'master' into development 2023-09-21 17:28:35 +00:00
David Refoua
98a1e9621e
Bump actions/checkout from 3 to 4 2023-09-21 20:58:21 +03:30
dependabot[bot]
4f32d23c30
Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 15:47:52 +00:00
Dax T. Games
ad5c80bcd2 Merge remote-tracking branch 'upstream/master' 2023-08-11 09:31:24 -04:00
DRSDavidSoft
9a135947af Merge branch 'master' into development 2023-07-27 21:28:50 +00:00
David Refoua
1b9a1e5b6f
improve markdown (SECURITY.md)
use bullet points to render the list correctly; improve sentences
2023-07-28 00:58:39 +03:30
MartiUK
1adaab963b Merge branch 'master' into development 2023-07-27 18:32:18 +00:00
Martin Kemp
29650960aa
Create SECURITY.md (#2866) 2023-07-27 19:32:04 +01:00
DRSDavidSoft
41f0454b05 Merge branch 'master' into development 2023-07-25 13:48:37 +00:00
David Refoua
3ea9728ffd
Merge pull request #2861 from chrisant996/chrisant_fix_2859
Fix #2859; script error when cwd name contains `%`
2023-07-25 17:18:22 +03:30
DRSDavidSoft
a01fb4c444 Merge branch 'master' into development 2023-07-25 10:17:37 +00:00
David Refoua
4b0344172a
ignore github-related and markdown for tests and codeql 2023-07-25 13:47:22 +03:30
MartiUK
4104a5612f Merge branch 'master' into development 2023-07-24 14:04:30 +00:00
Martin Kemp
5e219fe34e
Update build.yml 2023-07-24 15:04:16 +01:00
MartiUK
ff7621c1da Merge branch 'master' into development 2023-07-24 13:56:12 +00:00
github-actions[bot]
9be28807cb
⬆️ Update dependencies (conemu-maximus5 v23.07.24) (#2863)
Co-authored-by: DRSDavidSoft <DRSDavidSoft@users.noreply.github.com>
2023-07-24 14:55:59 +01:00
MartiUK
5d4c45d099 Merge branch 'master' into development 2023-07-24 08:30:03 +00:00
github-actions[bot]
e2168a361c
⬆️ Update dependencies (git-for-windows v2.41.0.windows.3, clink v1.5.1, conemu-maximus5 v23.07.23, clink-completions v0.4.10) (#2850)
Co-authored-by: DRSDavidSoft <DRSDavidSoft@users.noreply.github.com>
2023-07-24 09:29:50 +01:00
MartiUK
f517494dc4 Merge branch 'master' into development 2023-07-20 12:57:05 +00:00
Martin Kemp
7542376213
Remove appveyor config (#2805)
This should be merged after #2804

Signed-off-by: Martin Kemp <me@martinke.mp>
2023-07-20 13:56:52 +01:00
Chris Antos
84ee96c64f Fix #2859; script error when cwd name contains %
The `string.gsub()` function in Lua always uses Lua patterns (which are
similar to regular expressions).  Cmder's custom prompt wants to perform
simple plain text find/replace operations on strings.  `string.gsub()`
is the right Lua function for that, but since it always uses Lua
patterns it's necessary to apply escaping to the input strings otherwise
they can get misinterpreted and cause runtime errors.

For example, if the current working directory name contains a percent
sign, such as literally "My%20Home".

This change fixes that.  It introduces a helper function `gsub_plain()`
which behaves like `string.gsub()` but applies appropriate escaping to
convert the plain text input strings into the corresponding Lua
patterns so that it can achieve plain text find/replace operations.

It also introduces separate helper functions for escaping the `find` and
`replace` parameters for `string.gsub()`, since they have different
escaping rules.
2023-07-10 18:07:53 -07:00
Dax T. Games
ad804eda44 Merge remote-tracking branch 'upstream/master' 2023-07-04 13:01:27 -04:00
DRSDavidSoft
15addb87ee Merge branch 'master' into development 2023-07-04 08:40:45 +00:00
David Refoua
e9750ab73d
avoid erroneous messages, skip clink if injection fails fatally 2023-07-04 12:10:32 +03:30
Dax T. Games
47258fbd2b Merge branch 'master' of https://github.com/cmderdev/cmder 2023-06-05 16:01:37 -04:00
DRSDavidSoft
37c41e80df Merge branch 'master' into development 2023-05-23 10:57:06 +00:00
David Refoua
59e14a1783
Remove deprecated PsGet module in favor of Install-Module 2023-05-23 14:26:50 +03:30
Martin Kemp
34f2aabb8e
Remove PSGet Entirely
Fixes #2841

Signed-off-by: Martin Kemp <me@martinke.mp>
2023-05-23 11:11:39 +01:00
DRSDavidSoft
5a90558714 Merge branch 'master' into development 2023-05-17 08:00:29 +00:00
David Refoua
845720e25a
Merge pull request #2847 from chrisant996/fix_2846
Fix 2846
2023-05-17 11:30:13 +03:30
DRSDavidSoft
c1f8dfdb27 Merge branch 'master' into development 2023-05-16 20:22:11 +00:00
David Refoua
55676399d5
Merge pull request #2849 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2023-05-16 23:51:54 +03:30
DRSDavidSoft
48e4dff882 ⬆️ Update dependencies (clink-completions v0.4.8) 2023-05-16 13:40:42 +00:00
Chris Antos
a605ec520d Clean luacheck warnings. 2023-05-15 09:18:59 -07:00
Chris Antos
5fab87f4d6 Remove unused function.
The `get_hg_status()` function has been unused since commit
35eab7a51a1ac4294df9861ff2fe5f40e94e0218 in 2018.
2023-05-15 09:18:47 -07:00
Chris Antos
c9153c96bf Fix global Lua namespace pollution.
Some variables were global when the intent was to be local variables.
2023-05-15 09:17:01 -07:00
Chris Antos
74381ecd19 Fix #2846; errors when git/svn/hg not installed.
Also fixes error when HEAD is not available in a git repo, e.g. due to a
corrupt repo.
2023-05-15 09:15:36 -07:00
DRSDavidSoft
50c3ea4ab3 Merge branch 'master' into development 2023-05-11 15:07:20 +00:00
David Refoua
8d39f79a90
Merge pull request #2844 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2023-05-11 18:37:01 +03:30
DRSDavidSoft
7b880efda4 ⬆️ Update dependencies (git-for-windows v2.40.1.windows.1) 2023-04-26 13:40:36 +00:00
DRSDavidSoft
3f53d1b927 Merge branch 'master' into development 2023-04-24 14:05:13 +00:00
David Refoua
4aefd0bb71
Merge pull request #2843 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2023-04-24 17:34:59 +03:30
DRSDavidSoft
7daeb465e8 ⬆️ Update dependencies (clink v1.4.24) 2023-04-24 13:41:39 +00:00
DRSDavidSoft
6180aa53b3 Merge branch 'master' into development 2023-04-23 20:17:40 +00:00
David Refoua
23488fcbb2
fetch all history for all branches and tags 2023-04-23 23:47:28 +03:30
David Refoua
d838f861af
checkout development 2023-04-23 23:43:26 +03:30
David Refoua
d80202c791
add task to auto push to development 2023-04-23 23:39:35 +03:30
Dax T Games
5e3b70338d
Merge pull request #12 from daxgames/update-vendor
Updates to `3` vendored dependencies
2023-04-21 16:06:26 -04:00
daxgames
a4ea326a62 ⬆️ Update dependencies (git-for-windows v2.40.0.windows.1, clink v1.4.24, clink-completions v0.4.7) 2023-04-19 13:44:11 +00:00
David Refoua
73034f9e31
Merge pull request #2833 from cmderdev/update-vendor
Updates to `2` vendored dependencies
2023-04-11 02:15:18 +03:30
David Refoua
8875f77573
Merge pull request #2840 from cmderdev/dependabot/github_actions/peter-evans/create-pull-request-5
Bump peter-evans/create-pull-request from 4 to 5
2023-04-11 02:14:22 +03:30
dependabot[bot]
1d1e815c91
Bump peter-evans/create-pull-request from 4 to 5
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 16:02:00 +00:00
DRSDavidSoft
36ad85c7b7 ⬆️ Update dependencies (git-for-windows v2.40.0.windows.1, clink v1.4.23) 2023-03-16 13:43:09 +00:00
Dax T Games
bbb50f99f8
Merge pull request #2815 from cmderdev/update-vendor
Updates to `3` vendored dependencies
2023-03-12 08:39:05 -04:00
DRSDavidSoft
4efbe0bd62 ⬆️ Update dependencies (git-for-windows v2.40.0-rc2.windows.1, clink v1.4.22, clink-completions v0.4.7) 2023-03-10 13:42:19 +00:00
Dax T Games
476fd2d324
Merge pull request #2806 from pulsovi/fix-title-at-end
fix: /task "<taskName>" no longer works since version 1.3.20
2023-03-05 14:48:55 -08:00
David Refoua
b3af7c3983
Merge pull request #2819 from daxgames/more_speed
Remove unnecessary git actions in fast init
2023-02-05 17:39:23 +03:30
Dax T. Games
d82fece61e Remove unnecessary git actions in fiast init 2023-01-23 19:16:44 -08:00
Dax T. Games
6bd2e260f0 Add time to debug output 2023-01-22 12:30:30 -08:00
David Refoua
c9d2b33792
Update Clink to v1.4.10 2023-01-16 19:16:20 +03:30
DRSDavidSoft
9e87f375f1 ⬆️ Update dependencies (clink v1.4.10) 2023-01-16 13:41:30 +00:00
David Refoua
84262c4476
Major updates to Cmder 2023-01-15 19:17:51 +03:30
DRSDavidSoft
0b01ea6f63 ⬆️ Update dependencies (clink v1.4.9, clink-completions v0.4.4) 2023-01-15 13:41:12 +00:00
David Refoua
af6472cb57 remove duplicate variable settings 2022-12-25 17:55:56 +00:00
David Refoua
fd12ece9af test github token 2022-12-25 17:49:14 +00:00
David Refoua
b5ae5eb711 display all env vars 2022-12-25 17:33:10 +00:00
David Refoua
c9e872e826 don't display the headers variable 2022-12-25 17:30:01 +00:00
David Refoua
f99480fd49 update vendor scripts 2022-12-25 17:13:44 +00:00
David Refoua
834940cddb
Merge pull request #2807 from cmderdev/update-vendor
Updates to `2` vendored dependencies
2022-12-22 17:42:15 +03:30
DRSDavidSoft
5135370ec1 ⬆️ Update dependencies (git-for-windows v2.39.0.windows.2, clink v1.4.6) 2022-12-22 13:40:52 +00:00
David GABISON
92a3c9c215 fix: /task "<taskName>" no longer works since version 1.3.20 2022-12-22 12:16:51 +01:00
David Refoua
f22943212b
Return error level 2 in Clink when fatal error, related to #2800 2022-12-22 10:25:17 +03:30
Martin Kemp
dc2bc9bda7
Draft a release on a tag being pushed (#2804)
Signed-off-by: Martin Kemp <me@martinke.mp>

Signed-off-by: Martin Kemp <me@martinke.mp>
2022-12-21 18:08:49 +00:00
DRSDavidSoft
a03ad615f1 ⬆️ Update dependencies (clink v1.4.5) 2022-12-21 13:40:56 +00:00
David Refoua
8b3f38ad21 fix misspellings 2022-12-21 02:35:11 +03:30
David Refoua
9e55c48200 fix checking for clink injection 2022-12-21 02:29:31 +03:30
David Refoua
3b6e1cbf5f
Fix error from profile.d PowerShell scripts 2022-12-21 01:56:28 +03:30
Brian Dukes
e1bf703f50
Fix error from profile.d PowerShell scripts
When there are `ps1` files in `profile.d`, the following error is logged:

>A positional parameter cannot be found that accepts argument 'Sourcing'.
2022-12-20 10:50:44 -06:00
David Refoua
2e9b512102
adjust history settings to more suitable default values 2022-12-20 10:45:09 +03:30
David Refoua
9bbc97c981
Use New-TimeSpan to calculate total elapsed time 2022-12-20 10:19:00 +03:30
Martin Kemp
4766425ad3
Create dependabot.yml 2022-12-19 10:20:34 +00:00
Martin Kemp
470808838f
TotalSecond -> TotalSeconds
Signed-off-by: Martin Kemp <me@martinke.mp>
2022-12-19 10:15:02 +00:00
Martin Kemp
328f4b3073
Use New-TimeSpan to calculate total elapsed time
Fixes #2797

Signed-off-by: Martin Kemp <me@martinke.mp>
2022-12-19 10:13:34 +00:00
Martin Kemp
691addb95c
Use CodeQL Scanning (#2795)
* Use CodeQL Scanning

* run on windows

Signed-off-by: Martin Kemp <me@martinke.mp>

* Use our build scripts

Signed-off-by: Martin Kemp <me@martinke.mp>

Signed-off-by: Martin Kemp <me@martinke.mp>
2022-12-19 09:16:06 +00:00
Martin Kemp
efa2e576d0
Update conemu to mitigate CVE-2022-46387 (#2794)
Signed-off-by: Martin Kemp <me@martinke.mp>

Signed-off-by: Martin Kemp <me@martinke.mp>
2022-12-19 08:33:35 +00:00
David Refoua
5eaf0d0396 use github token when available 2022-12-15 21:05:13 +00:00
David Refoua
0e34d925ce
⬆️ Update dependencies (clink v1.4.4) 2022-12-14 17:50:30 +03:30
DRSDavidSoft
9d2ac373c5 ⬆️ Update dependencies (clink v1.4.4) 2022-12-14 13:41:25 +00:00
David Refoua
835343f9d6
Merge pull request #2786 from cmderdev/update-vendor
Updates to `3` vendored dependencies
2022-12-13 17:46:38 +03:30
DRSDavidSoft
271fe4c822 ⬆️ Update dependencies (git-for-windows v2.39.0.windows.1, clink v1.4.3, clink-completions v0.4.2) 2022-12-13 13:41:54 +00:00
David Refoua
24ba9c3fa5
Merge pull request #2791 from chrisant996/fix_2789
Fix https://github.com/cmderdev/cmder/issues/2789
2022-12-06 01:38:22 +03:30
Chris Antos
0fdcda98cf Fix https://github.com/cmderdev/cmder/issues/2789
Holding ^C made git.exe hang while cmd.exe (Clink) updated the prompt.

The prompt script had three problems:

1.  It invoked `git config` every time a prompt was displayed, to
    figure out where to skip invoking `git status`.  But it even did
    that if the current directory wasn't part of a git repo.
2.  It invoked `git config` two times for every single prompt, to
    attempt to improve performance if the user disables `git status`
    coloring.  But two times for every single prompt is expensive, so
    it has the opposite effect in the general case, and noticeably
    degrades performance.
3.  It invoked `git config` using a blocking call, instead of using the
    async prompt support in Clink.  That significantly reduced the
    benefit of having used async prompt filtering for `git status`.

Now the `git config` invocations use async prompt filtering, which lets
the prompt display instantaneously.  It also now uses a timer to avoid
invoking `git config` repeatedly when new prompts show up in rapid
succession.

Also, the `cmderGitStatusOptIn` variable is no longer leaked into the
Lua global namespace.

These changes resolve the issue: holding ^C is very fast and no longer
causes git.exe to hang.
2022-12-05 13:52:14 -08:00
Dax T. Games
42df6cd05b fix git bash GIT_INSTALL_ROOT 2022-11-19 02:32:02 +00:00
David Refoua
a4fa8d5333
Merge pull request #2780 from cmderdev/update-vendor
Updates to `1` vendored dependencies
2022-11-07 18:16:27 +03:30
David Refoua
1ba542e915 added links to labels 2022-11-07 17:38:30 +03:30
David Refoua
2c656a9c34 added a word 2022-11-07 17:33:59 +03:30
DRSDavidSoft
0adbc47c7e ⬆️ Update dependencies (clink v1.4.0) 2022-11-07 13:54:22 +00:00
David Refoua
e0ade8f3f1
Merge pull request #2779 from cmderdev/development
Improvements to shells and general fixes
2022-11-07 00:19:57 +03:30
David Refoua
ba97011bbc changes to letter casing in variable 2022-11-06 23:19:01 +03:30
David Refoua
cfcfe6f282 fix packignore issues 2022-11-06 23:17:55 +03:30
David Refoua
048692b5b5 describe color codes in order 2022-11-06 11:50:22 +03:30
David Refoua
7c74931af8 revert a letter case 2022-11-06 11:47:23 +03:30
David Refoua
e3d9f81e25 add prompt for vanilla cmd.exe when clink not present 2022-11-06 11:37:58 +03:30
David Refoua
7c309c6a7b add link to documentation in comment 2022-11-06 11:36:03 +03:30
David Refoua
0c1ab3fbb1 powershell: fixes for first time launch 2022-11-06 11:34:27 +03:30
David Refoua
fc44def0ad make powershell scripts consistent 2022-11-06 11:32:22 +03:30
David Refoua
fbe3e17eea add check for config dir 2022-11-06 11:30:56 +03:30
David Refoua
47caafb800 update launcher manifest comments 2022-11-04 18:55:25 +03:30
David Refoua
efb3338f5c powershell formatting 2022-11-04 18:47:16 +03:30
David Refoua
3859f6ffc0 consistent indentation 2022-11-04 13:29:18 +03:30
David Refoua
4e1918dcf7 formatting 2022-11-04 12:58:24 +03:30
David Refoua
dcc06a9d70 add excd (#1051) 2022-11-02 19:15:58 +03:30
David Refoua
d3026aef5d fix links to clink completions 2022-11-02 18:52:43 +03:30
David Refoua
159937b2df
added a link to the wiki 2022-11-02 11:38:47 +03:30
github-actions[bot]
3214a6d5ea
⬆️ Update dependencies (clink v1.3.51) (#2776)
Co-authored-by: DRSDavidSoft <DRSDavidSoft@users.noreply.github.com>
2022-11-01 10:31:34 +00:00
David Refoua
02970841c3
optimize compression flags (reduce passes for more speed) 2022-10-27 13:15:44 +03:30
David Refoua
04bbea7d24
Update dependencies (clink v1.3.50) 2022-10-27 12:54:38 +03:30
DRSDavidSoft
c8d48b7f3e ⬆️ Update dependencies (clink v1.3.50) 2022-10-26 13:56:46 +00:00
David Refoua
0f6ed93d0d merge into development branch 2022-10-25 21:15:01 +03:30
David Refoua
2be652707b ignore thumbnails in all directories 2022-10-25 20:39:26 +03:30
David Refoua
96ce96c53d ignore log files and clink history 2022-10-25 20:38:10 +03:30
David Refoua
ce23189427 do not stop when using fallback method 2022-10-25 19:46:56 +03:30
David Refoua
a2a996147e adjust root path 2022-10-25 18:42:30 +03:30
David Refoua
6d46df634e added a new line 2022-10-25 11:27:11 +03:30
David Refoua
fe08df3fdc update links and some minor formatting improvements 2022-10-25 11:24:37 +03:30
David Refoua
39ac92d61c add editors to ignore files 2022-10-25 00:48:28 +03:30
David Refoua
bdbd3aab2b
fix docs for user-aliases.cmd #2397 2022-10-25 00:44:47 +03:30
David Refoua
18aea2b258 Merge branch 'master' of https://github.com/cmderdev/cmder 2022-10-25 00:22:47 +03:30
David Refoua
5cd05b056b
Improvements to Cmder prompt 2022-10-25 00:22:15 +03:30
David Refoua
c0fc10009a use colons for batch labels 2022-10-25 00:13:21 +03:30
David Refoua
cc5e4a0e60 fix a misspelling 2022-10-24 21:20:52 +03:30
David Refoua
6e0e1729d8 use a variable to keep DRY 2022-10-24 21:01:55 +03:30
David Refoua
cbb10de06d consistent spaces 2022-10-24 20:54:24 +03:30
David Refoua
0b7e47cdc2 add new alias for file listing 2022-10-24 20:38:09 +03:30
David Refoua
96ca7cea4a enhance cmder prompt 2022-10-24 19:58:46 +03:30
David Refoua
0ba0dea6a2
Update Clink to v1.3.49 2022-10-23 18:38:45 +03:30
DRSDavidSoft
e320ba8aae ⬆️ Update dependencies (clink v1.3.49) 2022-10-23 15:06:50 +00:00
David Refoua
23b80264b0 use shorter commit message 2022-10-23 18:34:36 +03:30
David Refoua
90cd1130ac add link to repo url 2022-10-23 18:09:35 +03:30
David Refoua
7f71456a41
Merge pull request #2767 from cmderdev/update-vendor
Updates to `2` vendored dependencies
2022-10-21 11:07:33 +03:30
DRSDavidSoft
c606e5c8ee Update vendored dependencies (git-for-windows v2.38.1.windows.1, clink v1.3.48) 2022-10-20 13:58:38 +00:00
David Refoua
98d28846b3
Git-bash use conemu-msys2-64 connector (#2765) 2022-10-19 22:41:19 +03:30
David Refoua
27f28e6ed7 fix double escaped percent 2022-10-19 10:21:56 +03:30
David Refoua
8b6d1d8a6f alternative where filter instead of relying on find.exe 2022-10-19 00:33:10 +03:30
eval Nya
211fbd6428
Sync Git-bash start argument from ConEmu to use conemu-msys2-64 connector
use conemu-msys2-64 connector would help to solve some display problems under Git Bash like character/cursor drifting, `tmux` display wrong, and so on. As the default profile is hardcoded and ConEmu upstream has solved it by using msys-connector, please add it.
2022-10-19 02:32:17 +08:00
David Refoua
2acb6808ed use pwsh as shell value 2022-10-18 16:54:26 +03:30
David Refoua
ee913e09ee use relative path 2022-10-18 16:51:59 +03:30
David Refoua
ede79c2199 use correct sources path 2022-10-18 16:41:38 +03:30
David Refoua
665df2a8c8 add step to initialize vendors 2022-10-18 16:26:47 +03:30
David Refoua
a0f234b9d0 check for clink existence 2022-10-18 16:22:05 +03:30
David Refoua
5cdb98abb7 add escape code color 2022-10-18 16:20:30 +03:30
David Refoua
9399cbdcd7 detect if clink initialization failed 2022-10-18 16:11:54 +03:30
David Refoua
c992215f94 Merge branch 'master' of https://github.com/cmderdev/cmder 2022-10-18 15:21:31 +03:30
David Refoua
55b90cc958 fix minor typo 2022-10-18 15:21:28 +03:30
David Refoua
971483b2b7 use consistent indentation in init.bat 2022-10-18 15:20:35 +03:30
Martin Kemp
c8d554220a
Update README.md 2022-10-18 12:37:10 +01:00
Martin Kemp
8feae5d81d
Update README.md 2022-10-18 12:36:44 +01:00
David Refoua
6d77c988db
changes to zip compression parameters 2022-10-18 14:58:16 +03:30
David Refoua
04b6ec2ac8
Update issue template labels
* update question template
* update bug-report label
* update feature-request label
2022-10-18 14:49:03 +03:30
David Refoua
b5bddc929e
Updated changelog to released 2022-10-18 14:38:53 +03:30
David Refoua
04e4446c37 add step label name 2022-10-18 12:44:59 +03:30
David Refoua
4b5e52014e Merge branch 'master' of https://github.com/cmderdev/cmder 2022-10-18 12:31:15 +03:30
David Refoua
8a71e7d51b stop steps if no new versions detected 2022-10-18 12:30:55 +03:30
David Refoua
668b9ad0fb
update questions issue template 2022-10-18 02:57:57 +03:30
David Refoua
11919ebc54
fix minor bad link 2022-10-18 02:53:49 +03:30
David Refoua
1754995aa0
re-order a section regarding docs 2022-10-18 02:52:04 +03:30
David Refoua
c333fc0c67 improvements to github form 2022-10-18 02:50:15 +03:30
David Refoua
f927fafb67 adjustments to the issues forms 2022-10-18 02:44:12 +03:30
David Refoua
942d513a2a re-order form parts for issue report 2022-10-18 02:42:10 +03:30
David Refoua
1bc35b6edd remove invalid yml property 2022-10-18 02:31:36 +03:30
David Refoua
904d552801 fix yml issue 2022-10-18 02:30:31 +03:30
David Refoua
1fa1919eaf move from issues template to github forms 2022-10-18 02:27:01 +03:30
David Refoua
2fa0130711 fixed some misspelings and grammar issues 2022-10-18 01:14:25 +03:30
David Refoua
c068c219eb
Updates to 3 vendored dependencies 2022-10-18 00:43:13 +03:30
DRSDavidSoft
85051f0cb2 Update vendored dependencies (git-for-windows v2.38.0.windows.1, clink v1.3.47, conemu-maximus5 v22.08.07) 2022-10-17 20:24:26 +00:00
David Refoua
5eacfc90af
Re-factor the build script and add auto update vendors 2022-10-17 23:52:29 +03:30
David Refoua
2ebf68393f fix small ending delimiter 2022-10-17 23:46:14 +03:30
David Refoua
856d22e9f8 write raw github env var with newlines 2022-10-17 23:43:06 +03:30
David Refoua
9151fb3469 new line GitHub env improvements 2022-10-17 23:35:29 +03:30
David Refoua
d767c9b2e9 use alternative method to escape newlines 2022-10-17 22:25:09 +03:30
David Refoua
3943ba6cc8 fix small bug 2022-10-17 22:19:37 +03:30
David Refoua
cc9699c134 resolve issues with variable name 2022-10-17 22:16:26 +03:30
David Refoua
4264158ff2 attempt to fix new lines for PR message 2022-10-17 22:14:00 +03:30
David Refoua
0559060ceb use correct escaping for new line 2022-10-17 21:58:51 +03:30
David Refoua
ae391eb576 use paranthesis to fix bug 2022-10-17 21:56:05 +03:30
David Refoua
129c2971c7 use a table for message description 2022-10-17 21:51:35 +03:30
David Refoua
3f88112d22 edit notice title 2022-10-17 21:20:32 +03:30
David Refoua
3fe76de9b5 fix github variable 2022-10-17 21:19:19 +03:30
David Refoua
e1a0d3850c improve formatting of text 2022-10-17 21:18:24 +03:30
David Refoua
1e34c885f3 fix typos 2022-10-17 21:11:37 +03:30
David Refoua
1d330e7330 remove incompatible version string matching 2022-10-17 21:09:06 +03:30
David Refoua
f468ddfe95 fix typo 2022-10-17 21:02:53 +03:30
David Refoua
e7139bd474 initial update vendors script 2022-10-17 21:00:30 +03:30
David Refoua
6b72e84940 minor letter casing update 2022-10-17 20:30:12 +03:30
David Refoua
3901fef98b minor letter casing edit 2022-10-17 20:08:37 +03:30
David Refoua
71536ddddf stop ssh agent only if building vendors 2022-10-17 19:52:15 +03:30
David Refoua
7995f34981 adjust comments 2022-10-16 17:34:57 +03:30
David Refoua
87f7ddf449 formatting and case conventions 2022-10-16 16:13:26 +03:30
David Refoua
d94fe86b2a add -noVendor flag 2022-10-16 16:10:51 +03:30
David Refoua
f58652fc28 check requirements only for specified switches 2022-10-16 16:01:15 +03:30
David Refoua
e1caeb879a Merge branch 'master' of https://github.com/DRSDavidSoft/cmder 2022-10-16 14:56:30 +03:30
David Refoua
5b46f4fec7
use default bg color instead of black for default configuration 2022-10-16 01:20:06 +03:30
David Refoua
b0f034a960
use correct background colors (SGR49) instead of black (SGR40) - fixes #2560
the default value of SGR 49 works best with both ConEmu and Windows Terminal, and both values don't take an effect on Cmder.
(ref: https://github.com/cmderdev/cmder/wiki/Seamless-Windows-Terminal-Integration)
2022-10-16 01:10:20 +03:30
David Refoua
70632a2bb8
add pwsh alias to quickly launch powershell with cmder profile 2022-10-16 00:57:47 +03:30
David Refoua
9d76f99dcf
closes #2756 2022-10-16 00:44:58 +03:30
David Refoua
50bf15dd75
update tests to use separate steps 2022-10-16 00:33:31 +03:30
David Refoua
2de6f8232a
add tests 2022-10-16 00:27:20 +03:30
David Refoua
8d4afb0570
fix problem with #2756 2022-10-16 00:02:38 +03:30
Dax T. Games
67e2bf1a73 Fix post build action if path has spaces in it. 2022-10-15 15:42:41 -04:00
David Refoua
59269aa9f1
allow manual trigger 2022-10-15 15:48:13 +03:30
David Refoua
1c4a8b3ff5
add vendor dependency check action 2022-10-15 15:39:57 +03:30
David Refoua
a49921bb1b
add github variable helpers (credit: @microsoft) 2022-10-15 15:37:39 +03:30
David Refoua
473e9566e7 use BITS for more performant downloads when possible 2022-10-15 14:53:52 +03:30
David Refoua
f9cb2d6264 echo messages for github actions 2022-10-15 13:49:02 +03:30
David Refoua
7856b3ab57 minor space corrections 2022-10-15 12:58:22 +03:30
David Refoua
4dc3dc0dac fix remaining misspellings in changelog 2022-10-15 12:56:04 +03:30
David Refoua
abbab3f8b4 trim trailing spaces 2022-10-15 12:46:13 +03:30
David Refoua
9aa26c46d0
remove additional spaces 2022-10-15 12:38:25 +03:30
David Refoua
7f682653e4
consistency with powershell conventions;
* use "PS" instead of no-width "$([char]0x200B)" character in prompt (credit @skycommand)

* fixes additional space after the lambada and before the path

* display "PS" before path to distinguish between PowerShell and CMD
2022-10-15 12:32:52 +03:30
David Refoua
23edc8036f fetch all git history 2022-10-15 04:31:56 +03:30
David Refoua
cb9d06f8a3 improve plain zip compression 2022-10-15 04:18:38 +03:30
David Refoua
cc85a32e48 use lzma2 for 7-zip compression 2022-10-15 04:14:15 +03:30
David Refoua
3b9e591ea0 improve 7-zip compression efficiency 2022-10-15 04:11:43 +03:30
David Refoua
adcef21034 make sure each edition contains the correct vendored files 2022-10-15 03:55:44 +03:30
David Refoua
2dc5463c31
don't create archive with the root folder prefix 2022-10-15 03:44:15 +03:30
David Refoua
4b8d669d01
recursively ignore files for packing 2022-10-15 03:41:07 +03:30
David Refoua
a4c5b9d098
add cmder root prefix to exclude parameters 2022-10-15 02:54:32 +03:30
David Refoua
9c4e4d27c8
Minor edits to AppVeyor build scripts 2022-10-15 02:47:36 +03:30
David Refoua
489078763d
switch to upload individual files 2022-10-15 02:30:45 +03:30
David Refoua
aa755278ec
upload the entire build directory 2022-10-15 02:08:52 +03:30
David Refoua
5c8e0f38fe
remove explicit call to vcvars 2022-10-15 01:49:20 +03:30
David Refoua
5831fa4977
resolve child path 2022-10-15 01:47:22 +03:30
David Refoua
d7d0f1320b
use correct cmer root path 2022-10-15 01:44:21 +03:30
David Refoua
9f395805e1
remove stderr progress for 7-zip 2022-10-15 01:44:07 +03:30
David Refoua
e8d34e07a1
allow custom titles for the launcher
Custom option for launcher title
2022-10-15 01:39:38 +03:30
David Refoua
77df64b61b
include version.rc2 2022-10-15 01:25:05 +03:30
David Refoua
db44218d14
comment out middle steps 2022-10-15 01:21:17 +03:30
David Refoua
1b7d804701
add 7-zip progress to output 2022-10-15 00:35:34 +03:30
David Refoua
c9ba643851
remove invalid symlink 2022-10-15 00:29:55 +03:30
David Refoua
f301968ac3
remove recurse param 2022-10-15 00:27:27 +03:30
David Refoua
f02bbfc5be
use Get-ChildItem with excluded files instead of dir 2022-10-15 00:20:58 +03:30
David Refoua
50816c6bfc
add verbose message with directory content 2022-10-14 23:42:02 +03:30
David Refoua
a0827fb4f5
formatting code 2022-10-14 23:27:22 +03:30
David Refoua
28e42104ac
create save to directory if it doesn't exist 2022-10-14 23:16:54 +03:30
David Refoua
2189fe9483
use resolve path for input parameters 2022-10-14 23:07:45 +03:30
David Refoua
813fd6d82f
more descriptive verbose comment for packing 2022-10-14 22:57:53 +03:30
David Refoua
1fbe2f7c2d
use absolute path for default cmder root dir 2022-10-14 22:28:50 +03:30
David Refoua
e1c14f6c7e
add github actions badge 2022-10-14 22:24:50 +03:30
David Refoua
4992227614
use correct order of commands to move directory 2022-10-14 22:12:59 +03:30
David Refoua
7178b978ec
adjust required string double quotes 2022-10-14 22:04:55 +03:30
David Refoua
ee01f26680
use absolute paths for moving items 2022-10-14 22:01:34 +03:30
David Refoua
eede47bfad
set the workspace path for github actions correctly 2022-10-14 21:56:19 +03:30
David Refoua
9d9519bdd4
add missing prefix for github actions 2022-10-14 21:52:54 +03:30
David Refoua
f05c77e53c
add resolve path for flatten directory function 2022-10-14 21:51:04 +03:30
David Refoua
0b163d43ab
adjustments to github actions build 2022-10-14 21:48:40 +03:30
David Refoua
d567229050
add verbose message for flatten directory 2022-10-14 21:46:00 +03:30
David Refoua
800a4a953f
changes for github actions build 2022-10-14 21:25:15 +03:30
David Refoua
be5198c74b
use github actions 2022-10-14 21:15:46 +03:30
David Refoua
91d5a25fe9
use max cpu count switch for msbuild 2022-10-14 20:02:03 +03:30
David Refoua
760566acb9 resolve conflicts 2022-09-12 22:33:52 +04:30
David Refoua
a8bc932dbd resolve conflicts 2022-09-12 22:27:41 +04:30
David Refoua
6cd7817938 resolve merge conflicts 2022-09-11 09:56:40 +04:30
Dax T Games
3d0e6b86e3
Merge pull request #2748 from DRSDavidSoft/master
Fix build system scripts (closes #2723)
2022-09-10 20:28:44 -04:00
Dax T Games
a027bdc5c2
Merge pull request #2747 from DRSDavidSoft/patch-3
Add bin\cmder_shell.cmd
2022-09-10 20:23:57 -04:00
Dax T Games
0f490fdb61
Merge pull request #2746 from DRSDavidSoft/taskdialog
Use TaskDialog instead of MessageBox (Fixes Builds)
2022-09-10 20:22:42 -04:00
David Refoua
795ab5746c Merge https://github.com/DRSDavidSoft/cmder into taskdialog 2022-09-10 01:49:31 +04:30
David Refoua
771c53c7f1 Re-target build tools & update script 2022-09-10 01:47:10 +04:30
David Refoua
805a5fc6e5
Merge pull request #3 from DRSDavidSoft/taskdialog
Merge TaskDialog
2022-09-10 01:35:04 +04:30
David Refoua
05c92f4cb0
Rename cmder_shell. to cmder_shell.cmd 2022-09-10 01:10:17 +04:30
programmer test
d2d3d38782 Merge branch 'patch-3' of https://github.com/DRSDavidSoft/cmder into taskdialog 2022-09-10 01:09:44 +04:30
David Refoua
15d66d394a
add cmder_shell.cmd 2022-09-10 00:00:24 +04:30
David Refoua
280e40f077
Merge branch 'master' into taskdialog 2022-09-09 21:31:25 +04:30
David Refoua
8ee5e36fca
update switches string 2022-09-09 21:26:11 +04:30
Dax T Games
dab1dd93f1
Merge pull request #2745 from DRSDavidSoft/patch-3
Minimal comspec detection (related to #2744)
2022-09-09 09:14:44 -04:00
Dax T. Games
e2d817a497 Add set to fix error 2022-09-09 09:11:45 -04:00
David Refoua
d1b1012741
minimal comspec detection (fixes #2744) 2022-09-09 17:24:25 +04:30
Dax T Games
5c409dabc8
Merge pull request #2739 from DRSDavidSoft/patch-4
Update Clink, Clink Completions and ConEmu dependencies
2022-09-08 22:32:21 -04:00
Dax T Games
05db3658ad
Merge pull request #2738 from DRSDavidSoft/patch-3
Related to #2654: Move space from "{git}{hg}{svn}" to individual parts
2022-09-08 22:31:55 -04:00
Dax T Games
ef0de62d82
Merge pull request #2742 from daxgames/better_bat
Better bat
2022-09-04 09:25:03 -04:00
Dax T. Games
61e7028566 CHANGELOG 2022-09-04 09:23:03 -04:00
Dax T. Games
59bbdaddc7 Cleanup 2022-09-04 09:16:39 -04:00
Dax T. Games
7a9ad78e66 Fix #2740 2022-09-01 13:00:43 +00:00
David Refoua
ec371bafff
Update Clink, Clink Completions and ConEmu dependencies 2022-08-30 22:10:12 +04:30
David Refoua
a617397aea
move space from "{git}{hg}{svn}" to individual parts 2022-08-30 21:59:09 +04:30
Martin Kemp
74060922a4 run script before compile 2022-07-18 18:21:08 +01:00
Martin Kemp
e48dec15ac VS2022 2022-07-18 18:13:38 +01:00
Martin Kemp
52389f21f0
VS 2019 2022-07-18 17:42:09 +01:00
Martin Kemp
d1e033c312
try 142 2022-07-18 17:40:54 +01:00
Martin Kemp
c89ef96347
Remove XP platform
Fixes #2723
2022-07-18 17:36:49 +01:00
Dax T Games
4846eff298
Merge pull request #2720 from daxgames/CH
Update Clink and Git
2022-07-15 10:11:59 -04:00
Dax T. Games
5f25ea58a0 update Clink and Git 2022-07-15 10:08:52 -04:00
Dax T. Games
dceccffb72 Merge branch 'master' into CH 2022-07-15 10:06:59 -04:00
Dax T. Games
0a4d3bcb77 update Clink and Git 2022-07-15 10:04:30 -04:00
Dax T Games
913f93d24a
Merge pull request #2703 from Mikaz-fr/master
Add optional clink async prompt update for svn status
2022-07-13 08:52:52 -04:00
Michael Roy
70b5822fd5
Enable asynchronous clink prompt update for svn status
If enabled in the cmder prompt config, use clink asynchronous update of the prompt for svn status (similar to git)
2022-05-25 15:34:22 +02:00
Michael Roy
f184714457
Add new cmder config value
Add new setting value prompt_overrideSvnStatusOptIn to cmder_prompt_config.lua.default to control of asynchronous svn status update should be used with clink
2022-05-25 15:28:29 +02:00
Dax T Games
7beb490048
Merge pull request #2695 from goodusername123/master
Update Git for Windows and Clink
2022-04-25 18:42:06 -04:00
goodusername123
f2d8e31e2e
Update clink URL
Updates the Clink URL in the readme to point to the newer maintained version of Clink that is used by Cmder.
2022-04-25 16:58:37 -05:00
goodusername123
6e05a9105f
Fix and Update changelog 2022-04-25 16:54:49 -05:00
goodusername123
62bfbb4501
Update Git for Windows to 2.36.0 2022-04-25 16:49:28 -05:00
goodusername123
8bf40227e8
Update Clink to 1.3.16 2022-04-25 16:47:34 -05:00
Dax T Games
cf61b81f01
Merge pull request #2691 from daxgames/clink_1.3.15
Clink 1.3.15
2022-04-16 14:02:55 -04:00
Dax T. Games
427937918e update Clink to 1.3.15 2022-04-16 13:41:01 -04:00
Dax T. Games
fe29497878 update Clink to 1.3.14 2022-04-16 13:36:24 -04:00
Dax T Games
f3fcb8be4a
Merge pull request #2689 from daxgames/fix_find_git
Fix find git
2022-04-16 11:51:37 -04:00
Dax T. Games
36e13027f6 CHANGELOG.md 2022-04-16 11:42:27 -04:00
Dax T. Games
ef51ed2be2 Merge branch 'fix_find_git' of https://github.com/daxgames/cmder into fix_find_git 2022-04-16 11:35:41 -04:00
Dax T. Games
6d313853f3 only look at \cmd\git.exe for found git 2022-04-16 11:35:19 -04:00
Dax T Games
f46e8b81d8
Merge branch 'master' into fix_find_git 2022-04-16 11:18:38 -04:00
Dax T. Games
864b85f254 CHANGELOG.md 2022-04-16 11:14:22 -04:00
Dax T. Games
ce02fb4a0e fix find latest git 2022-04-16 10:51:26 -04:00
Dax T Games
e345f187d8
Remove set term=cygwin in init.bat (#2688) 2022-04-16 15:01:17 +01:00
Dax T Games
fc00cc8be2
Merge pull request #2680 from daxgames/fix_git_worktree
Fix git worktree
2022-03-17 08:14:08 -04:00
dgames
0dd2a665e2 CHANGELOG.md 2022-03-17 08:10:18 -04:00
dgames
6189f4f0e6 fix prompt branch for git worktree 2022-03-17 07:57:48 -04:00
Dax T Games
0616ff0a82
Merge pull request #2660 from vsajip/fix-2659
Fix #2659: Use get_hg_branch() to get Mercurial branch information.
2022-02-03 17:48:26 -05:00
Dax T Games
99452c8158
Merge pull request #2661 from geekrumper/master
Fix #2654: blank space added between {cwd} and version_control variable
2022-02-03 17:46:30 -05:00
Edouard Coissy
4098265a36 Fix #2654: blank space added between {cwd} and version_control variable 2022-02-02 14:13:51 +01:00
Vinay Sajip
eab4454ac5 Fix #2659: Use get_hg_branch() to get Mercurial branch information. 2022-01-29 14:48:58 +00:00
Dax T Games
711fe2895e
Merge pull request #2648 from daxgames/fix_posh_colors
Fix posh colors
2022-01-15 16:04:17 -05:00
dgames
7cc1c77225 do not display message when alterring git path 2022-01-15 16:02:14 -05:00
dgames
f0c4e85ac8 yellow to white 2022-01-15 15:14:24 -05:00
Dax T Games
ea0145448c
Merge pull request #2647 from daxgames/spellling_fixes
Spellling fixes
2022-01-15 11:24:05 -05:00
dgames
0281ee7dda CHANGELOG.md 2022-01-15 11:22:00 -05:00
dgames
f997da60e3 CHANGELOG.md 2022-01-15 11:20:33 -05:00
Dax T Games
34df88aa76
Merge pull request #2646 from daxgames/spellling_fixes
Spellling fixes
2022-01-15 11:17:02 -05:00
dgames
c51c3c55a8 add README config/profile.d 2022-01-15 11:12:38 -05:00
dgames
0e8c556e7d Merge branch 'master' of https://github.com/cmderdev/cmder into spellling_fixes 2022-01-15 11:01:22 -05:00
dgames
357e51acd1 spelling fixes 2022-01-15 11:00:58 -05:00
Dax T Games
66f9d582ec
Merge pull request #2635 from asoluter/master
Fix a problem with an ampersand character in path
2022-01-15 10:33:35 -05:00
Dax T Games
83a95d1412
Merge pull request #2629 from eltociear/patch-1
Fix typo in README.md
2022-01-15 10:32:03 -05:00
Ihor Sofiichenko
a1417f6cf9
Fix a problem with an ampersand character in path 2021-12-08 23:49:14 +02:00
Ikko Ashimine
8ea4bbb11c
Fix typo in README.md
enviroment -> environment
2021-11-30 20:34:31 +09:00
dgames
f39aade500 Update to Git 2.34.0and Clink 1.2.46 2021-11-21 13:50:54 -05:00
dgames
004535e0bc remove -all 2021-11-21 13:40:53 -05:00
dgames
6ae2f97f52 add quotes 2021-11-21 13:32:57 -05:00
dgames
0326f2e3a8 Merge branch 'master' of https://github.com/cmderdev/cmder into conemu-up 2021-11-21 13:24:56 -05:00
Dax T Games
9f065a63e8
Ps1 git discovery (#2438)
* Fix start errors in path with ()

* Fix start errors in path with ()

* Fix start errors in path with ()

* Fix start errors in path with ()

* remove quotes from debug_output messages

* remove quotes from debug_output messages

* remove quotes from debug_output messages

* discovery newer git version

* new git path config for powershell

* xxx

* add isGitShim

* fix no git found in path

* debug

* revert not ps1 changes

* cleanup

* final

* spacing

* fixes

* cleanup

* cleanup

* timer for Powershell

* fixes

* fixes for git path settings

* grab vendor/bin/alias.cmd from master

Co-authored-by: Dax T. Games <dtgaes@kinggeek.org>
Co-authored-by: dgames <dgames@dtg.local>
2021-11-16 14:22:17 +00:00
Dax T Games
b6316eb447
Merge pull request #2624 from cmderdev/revert-2618-master
Revert "Fix a problem with an ampersand character in path"
2021-11-11 07:35:34 -05:00
Dax T Games
59dfa9c46f
Revert "Fix a problem with an ampersand character in path" 2021-11-11 07:35:04 -05:00
Dax T Games
a4cb56b083
Merge pull request #2618 from xpam-net/master
Fix a problem with an ampersand character in path
2021-11-11 07:17:33 -05:00
Dax T Games
ad6979d25f
Merge pull request #2621 from chehrlic/clink_git_speedup
Speed up git status / conflict status by calling git only once.
2021-11-10 05:55:04 -05:00
Christian Ehrlicher
addcefdd47 Speed up git status / conflict status by calling git only once. 2021-11-08 17:43:46 +01:00
dgames
0637d6b3e9 Merge branch 'master' into conemu-up 2021-11-07 17:54:54 -05:00
Dax T Games
f72c285d8b
Merge pull request #2609 from Lunchb0ne/env-fix-again
Fix no env in the prompt string
2021-11-07 14:41:53 -05:00
dgames
f24266014f update clink and git 2021-11-07 13:03:44 -05:00
dgames
c27cedc9b3 quote PATH settings 2021-11-07 10:54:33 -05:00
Andrey Luzhin
4c85e8b2f1
Fix a problem with an ampersand character in path
If the path variable contained values with an ampersand character (such as in the case of MySQL), the string splits by this character, and tries to execute what follows as a separate command. 
All occurrences of the set command containing %PATH% should be wrapped in quotation marks
2021-10-29 09:13:35 +02:00
dgames
c75c02c9ce update Clink and Conemu versions 2021-10-20 21:10:38 -04:00
Abhishek Aryan
9de284123c
Fix the env not showing
Turns out the `{env}` part was missing from the prompt constructor
2021-09-25 16:32:52 +03:00
Dax T Games
93715461e6
Merge pull request #2606 from daxgames/cmder_diag
Cmder diag - Save output to a file.
2021-09-17 12:35:24 -04:00
Dax T. Games
fc6cf025be save cmder_diag.* output to a file 2021-09-17 12:28:49 -04:00
Dax T. Games
f809af1eec save cmder_diag.* output to a file 2021-09-17 12:22:25 -04:00
Dax T Games
5b071d8d59
Merge pull request #2591 from koaleksa/fix-posh-git-1.0.0
Fix Posh-Git 1.0.0 import and console.
2021-09-10 12:28:33 -04:00
Aleksandar Kocic
6d1e2d6e8b Fix Posh-Git 1.0.0 import and console. 2021-08-31 08:40:46 +02:00
Dax T Games
2ef8c967d2
update conemu and clink (#2575)
* update conemu and clink

* update clink to 1.2.24

* update clink to 1.2.24

* update clink to 1.2.24

* Clink 1.2.26

Co-authored-by: dgames <dgames@dtg.local>
2021-08-19 16:47:47 +01:00
dgames
b885b4e235 Clink 1.2.26 2021-08-13 21:36:58 -04:00
dgames
f717f5031b update clink to 1.2.24 2021-08-07 03:30:40 -04:00
dgames
710cc3ecc3 update clink to 1.2.24 2021-08-07 03:27:13 -04:00
dgames
0fc6b6571e update clink to 1.2.24 2021-08-07 03:25:34 -04:00
dgames
48f50568b0 update conemu and clink 2021-07-23 23:09:24 -04:00
Benjamin Staneck
b8760e4d04
Merge pull request #2556 from chrisant996/clink-async-prompt 2021-07-18 09:58:41 +02:00
Rémi Benoit
ae7209f254 Update clink to 1.2.22 2021-07-18 09:57:12 +02:00
Rémi Benoit
9d4da63184 Update clink to 1.2.20 2021-07-18 09:57:12 +02:00
Dax T Games
62a6311b6d
Merge pull request #2549 from ian-craig/status-branchonly
Show branch name when cmder.status=false without expensive status ops
2021-07-17 14:10:21 -04:00
Abhishek Aryan
b40510f3a0
Merge branch 'master' into env-fix-again 2021-06-27 17:51:04 +03:00
Chris Antos
e7a6e64473 Rewrote how prompt_overrideGitStatusOptIn works.
It was less clear before, and it also accidentally took effect when
the `prompt.async` Clink setting was off.
2021-06-12 18:56:37 -07:00
Chris Antos
f6c2657b23 Allow scripts to disable part of the Cmder prompt.
The Cmder prompt normally includes version control info, which involves
running some potentially expensive commands.  The cmder-powerline-prompt
project (and maybe other projects) replaces the Cmder prompt and runs
the same potentially expensive commands -- so expensive commands get run
twice!

This change makes it possible for the user and/or other scripts to
disable the version control part of the built-in Cmder prompt.

https://github.com/chrisant996/cmder-powerline-prompt
2021-06-11 01:01:35 -07:00
Chris Antos
91aabe75af Add prompt config variable for async git prompt.
Setting `prompt_overrideGitStatusOptIn = true` will override the
`cmder.status` and `cmder.cmdstatus` git config settings and run the git
prompt status commands in the background.  But it only takes effect when
using Clink v1.2.10, since that's required in order to run prompt update
commands in the background.
2021-06-10 18:49:39 -07:00
Dax T Games
946f929eaf
Merge pull request #2559 from daxgames/docs
Docs
2021-06-10 20:25:52 -04:00
dgames
8a870c093a Merge branch 'master' into docs 2021-06-10 20:23:39 -04:00
dgames
bfe526604d revert 2021-06-10 20:21:43 -04:00
dgames
79e505acf8 Merge branch 'master' of https://github.com/cmderdev/cmder 2021-06-10 20:20:22 -04:00
dgames
9a2e22cb6d Merge branch 'master' of https://github.com/cmderdev/cmder into docs 2021-06-10 20:14:56 -04:00
dgames
b2add2b966 prompt config docs 2021-06-10 20:12:47 -04:00
Ian Craig
74202a8719
Merge pull request #1 from daxgames/status-branchonly-dax
Status branchonly dax
2021-06-05 14:26:34 -07:00
Chris Antos
5305ebd4a6 Use Clink async prompt filtering for git.
`git status` and `git diff` can be slow in large repos.  Clink v1.2.10
and higher support using Lua coroutines to do expensive parts of prompt
filtering in the background.  When the expensive parts complete, the
prompt gets refreshed.

This means even large repos can have fast prompts PLUS git status all
the time!

This change should be backward/forward compatible with both older and
newer versions of Clink (of course only newer versions will gain the
benefit).
2021-05-31 21:29:19 -07:00
Chris Antos
4e22ad93f4
Merge pull request #2 from daxgames/status-branchonly-dax
Status branchonly dax
2021-05-31 20:40:41 -07:00
Chris Antos
6730f864b1
Merge pull request #1 from ian-craig/status-branchonly
Status branchonly
2021-05-31 20:38:23 -07:00
dgames
56b04fc9ce fix unknown color and code dedup 2021-05-31 10:53:18 -04:00
dgames
55ff611095 fix default unknown color 2021-05-30 08:56:44 -04:00
dgames
aebe37bd28 fix default unknown color 2021-05-30 08:56:05 -04:00
dgames
413fb2f1ac remove xxx 2021-05-30 08:46:37 -04:00
dgames
73ad62eaa2 add xxx 2021-05-30 08:46:08 -04:00
dgames
4fab4cc6e4 make unknown color white for all shells 2021-05-30 08:41:40 -04:00
dgames
a41fad80d5 Merge branch 'status-branchonly' into status-branchonly-dax 2021-05-30 07:56:01 -04:00
dgames
c9acb13d0b Fix cmder no status prompt 2021-05-30 07:50:48 -04:00
dgames
03d0f913ea fixing branch only 2021-05-30 07:27:16 -04:00
Ian Craig
a5c98d4fe9 Add simple branch name gen for sh and ps1 2021-05-25 21:03:28 -07:00
Ian Craig
9df8f1a92a Revert to boolean, keep branch name when status=false 2021-05-25 17:53:41 -07:00
Ian Craig
c262934822 Add branchonly option to cmdstatus 2021-05-20 17:53:05 -07:00
Abhishek Aryan
f1665ddd7d
Fix no env in the prompt string
Yeah, I was surprised too..
2021-05-10 18:47:17 +03:00
Dax T Games
36f4ce0e3c
Merge pull request #2538 from daxgames/fix_configurable_prompt
Fix configurable prompt
2021-05-02 22:47:11 -04:00
Dax T. Games
59941f5dfa cleanup 2021-05-02 21:05:58 -04:00
Dax T. Games
6d79ed5eb2 Merge branch 'master' of https://github.com/cmderdev/cmder into fix_configurable_prompt 2021-05-02 21:04:23 -04:00
Dax T Games
99a7445fcb
Merge pull request #2537 from Lunchb0ne/fix-env-weirdness
Fix env symbol being repeated when using a program that sets/modifies the env
2021-05-02 21:01:37 -04:00
Dax T. Games
d6b5fe8e1d CHANGELOG 2021-05-02 20:56:17 -04:00
Dax T. Games
11fb1b3a50 do not rely on config\cmder_prompt_config.lua 2021-05-02 20:56:02 -04:00
Dax T. Games
810a3da955 upgrade to clink 1.2.5 2021-05-02 20:54:52 -04:00
Abhishek Aryan
e8df3ef247
Refactor the env substution logic
And some prompt cleanup
2021-05-02 21:53:22 +03:00
Dax T Games
8d6ce3e4ac
Merge pull request #2523 from daxgames/prompt_config
Prompt config
2021-04-15 08:27:05 -04:00
Dax T. Games
9793ca1ed9 update git for windows 2021-04-15 08:17:07 -04:00
Dax T. Games
d9b2c729f9 replace :: with rem 2021-04-15 07:54:39 -04:00
Dax T. Games
8fa351810a CHANGELG.md 2021-04-11 18:54:26 -04:00
Dax T. Games
3752b95218 CHANGELG.md 2021-04-11 18:52:59 -04:00
Dax T. Games
e0cb86d738 parametrized status colors 2021-04-11 18:42:43 -04:00
Dax T. Games
0ef76ee2d3 add configurable prompt 2021-04-11 18:28:43 -04:00
Dax T Games
8a2ace9fc2
Merge pull request #2522 from vladimir-kotikov/patch-6
Bump clink-completions version
2021-04-09 07:40:25 -04:00
Dax T Games
37c7b1dc02
Merge pull request #2520 from daxgames/git_opt_out
set global cmderGitStatusOptIn var for use in clink-completions
2021-04-09 07:40:09 -04:00
Vladimir Kotikov
ad755dc7f9
Bump clink-completions version 2021-04-09 10:46:27 +03:00
Dax T. Games
6027ac31c4 set global cmderGitStatusOptIn var for use in clink-completions 2021-04-07 22:30:53 -04:00
Dax T Games
c34eb73555
Merge pull request #2452 from daxgames/1.3.18
1.3.18
2021-03-26 05:45:35 -04:00
Dax T. Games
f7df79a2d7 CHANGELOG.md 2021-03-26 05:41:17 -04:00
dgames
0fd2d9c8a8 CHANGELOG.md 2021-03-25 19:14:18 -04:00
dgames
e918b18ca7 CHANGELOG.md 2021-03-25 19:13:03 -04:00
dgames
0a7f1623f7 fix path length check with fast_init set 2021-02-28 23:09:49 -05:00
dgames
d02be816e2 fix failure in lib_path if path is too long 2021-02-28 21:54:06 -05:00
dgames
8452f33407 changelog.md 2021-02-25 14:38:05 -05:00
Dax T Games
a66b8b3035
Merge pull request #2458 from FTOH/patch-1
Fix: Incomplete operation when closing bash.exe
2021-02-09 09:07:15 -05:00
Dax T Games
ed60c14a44
Merge pull request #2475 from simaek/patch-1
Fix some commands like 'ls' are not available
2021-02-09 09:04:45 -05:00
兮陌
cc1d459ea9
Fix some commands like ls' are not available 2021-02-08 23:23:30 +08:00
FTOH
633d673bd7 Fix escaping double quotes 2021-01-17 22:13:01 +07:00
Dax T Games
a7e45ef64a
Merge pull request #2464 from stephensolis/patch-1
Fix: "The system cannot find the file specified" if %GIT_INSTALL_ROOT%\usr\bin doesn't exist
2021-01-17 08:30:32 -05:00
Stephen Solis
10d63daf90
Fix enhance_path call if no usr\bin in %GIT_INSTALL_ROOT% 2021-01-16 23:34:22 +01:00
dgames
6c15598010 update to Clink 1.1.20 2021-01-12 09:01:39 -05:00
Anton Makarenko
3608b5bc81
Added quotes as in previous commits 2021-01-11 15:03:52 +07:00
Anton Makarenko
2d75a635de
Fix: Incomplete operation when closing bash.exe 2021-01-11 14:22:54 +07:00
dgames
9cf3ba222e remove clink defaults 2021-01-09 09:43:37 -05:00
dgames
01d300f779 cleanup 2020-12-24 18:43:23 -05:00
dgames
ba1027f6d5 cleanup 2020-12-24 18:34:27 -05:00
dgames
b5d172cd32 cleanup 2020-12-24 18:33:10 -05:00
dgames
f362ba8dba spacing 2020-12-24 17:55:56 -05:00
dgames
783cf68d10 CLink migration and clenaup 2020-12-24 17:48:00 -05:00
dgames
c4fb7e6034 Merge branch 'master' of https://github.com/cmderdev/cmder into 1.3.17_fixes 2020-12-24 12:15:08 -05:00
dgames
da0af1d96b 1.3.17 Fixes for clink settings and history 2020-12-24 12:14:46 -05:00
Dax T Games
9c9eac1875
Merge pull request #2449 from daxgames/alias_fix
Alias fix
2020-12-23 07:55:52 -05:00
dgames
ae0b7722ed CHANGELOG.md 2020-12-23 07:55:16 -05:00
dgames
bb2f89d044 CHANGELOG.md 2020-12-23 07:33:12 -05:00
dgames
24cad3ed5c fix 'alias ..=cd ..' removing 2 char aliases 2020-12-23 07:30:47 -05:00
dgames
ae7ddb7f86 Merge branch 'master' of https://github.com/cmderdev/cmder 2020-12-23 07:29:36 -05:00
Dax T Games
e0b8ebc669
Clink fork fixes (#2441)
* debug

* remove debug

* Switch to chrisant996 Clink 1.1.8

* Update to Clink 1.1 10

* CHANGELOG.md

Co-authored-by: dgames <dgames@dtg.local>
2020-12-21 21:30:30 +00:00
Vladimir Kotikov
00b22ea79a
Update clink-completions to 0.3.6 (#2440)
https://github.com/vladimir-kotikov/clink-completions/releases/tag/0.3.6
2020-12-17 10:26:59 +00:00
dgames
eb8e470fe3 Merge branch 'master' of https://github.com/cmderdev/cmder 2020-12-11 05:52:31 -05:00
Dax T Games
9088a5e2e6
Merge pull request #2430 from qfp64/faster-init
Improve init speed
2020-12-11 05:48:07 -05:00
Dax T Games
25bc575e8a
Merge pull request #2390 from daxgames/sysinfo
add systeminfo.exe output to cmder_diag.*
2020-12-11 05:42:22 -05:00
dgames
0ff3b391f1 Merge branch 'master' of https://github.com/cmderdev/cmder into master 2020-12-11 03:47:19 -05:00
Kyle McInnes
11a78a8d64 Fix errors 2020-12-10 13:35:40 +00:00
Kyle McInnes
2a9a4d2860 Speed up calls to lib_console 2020-12-07 19:41:11 +00:00
dgames
4874e78953 remove debug 2020-12-06 10:56:58 -05:00
dgames
f4988480f6 debug 2020-12-06 09:23:23 -05:00
Alex Kostyukov
44f5095047
fix docs for user-aliases.cmd #2397 (#2398) 2020-10-27 17:32:05 +00:00
Florian Schwalm
2205461943
Update git for windows to 2.29.1 (#2410) 2020-10-27 17:31:19 +00:00
Alex Kostyukov
5d05034810 fix docs for user-aliases.cmd #2397 2020-09-28 15:20:13 +03:00
Dax T. Games
467b4d4ad9 hide possible file write conflict 2020-09-13 08:27:10 -04:00
Dax T. Games
ea6e18c834 hide possible file write confilct 2020-09-13 08:02:46 -04:00
Dax T. Games
4378741aad add systeminfo.exe output 2020-09-12 06:10:41 -04:00
Dax T Games
6458199812
Merge pull request #2380 from daxgames/fix_git_not_expected
Fix `\Git\cmd\git.exe" found." was unexpected at this time.`
2020-08-31 19:11:19 -04:00
Dax T. Games
d1adf16fa8 'fixes' 2020-08-24 20:27:56 -04:00
Dax T. Games
cda883bc39 add setlocal 2020-08-23 08:47:20 -04:00
Dax T. Games
b1ef763922 add setlocal 2020-08-23 08:42:58 -04:00
Dax T Games
2cd7632720
Merge pull request #2376 from MMShep97/update-readme-links
Update readme links
2020-08-15 09:02:51 -04:00
mshepherd
92169c1295 Deletes link to non-existent repo :( 2020-08-14 17:57:50 -05:00
mshepherd
e0aba11018 Updates readme link to correct path
Fixes capitalization

Fixes opt to be bin

Updates readme link to correct path
2020-08-14 17:47:24 -05:00
Dax T Games
e8fe522a99
Merge pull request #2372 from cmderdev/revert-2371-revert-2369-fix-powershell-prompt
Revert "Revert "Update profile.ps1""
2020-08-13 12:19:36 -04:00
Dax T Games
937874f03c
Revert "Revert "Update profile.ps1"" 2020-08-13 07:29:24 -04:00
Dax T Games
9e085f5938
Merge pull request #2371 from cmderdev/revert-2369-fix-powershell-prompt
Revert "Update profile.ps1"
2020-08-13 07:09:20 -04:00
Dax T Games
829a65f552
Revert "Update profile.ps1" 2020-08-13 07:08:20 -04:00
Dax T Games
93b69798f4
Merge pull request #2369 from mcnubblet/fix-powershell-prompt
Update profile.ps1
2020-08-13 06:48:01 -04:00
mcnubblet
3f6aa3b348 Update profile.ps1
Set utf-8 BOM in profile.ps1 to fix incorrect prompt display in PowerShell
2020-08-13 14:05:49 +10:00
Dax T Games
a1785415fd
Merge pull request #2359 from daxgames/changelog
Changelog
2020-07-29 20:43:32 -04:00
Dax T. Games
794ae2ad60 changelog 2020-07-29 20:42:14 -04:00
Dax T. Games
28c416a15c changelog 2020-07-29 20:41:29 -04:00
Dax T. Games
70aa573111 changelog 2020-07-29 20:39:37 -04:00
Dax T Games
4cacd2fdc8
Merge pull request #2358 from FloSchwalm/update-to-git-2.28
Update git for windows to 2.28.0
2020-07-29 20:28:25 -04:00
Dax T Games
80f76ad956
Merge pull request #2357 from FloSchwalm/fix-git-version-comparison
Fix git version comparison
2020-07-29 20:27:23 -04:00
Dax T Games
906bb5d357
Merge pull request #2339 from daxgames/fix_global_vars_vscode_err
1.3.16-pre: 1.3.15 Fixes
2020-07-29 19:33:12 -04:00
Florian Schwalm
29d784b2b1 Update git for windows to 2.28.0 2020-07-29 22:58:30 +02:00
Florian Schwalm
fc90722faa Prepend %GIT_INSTALL_ROOT%\cmd to path instead of appending it
The default setting for path enhancing is appending,
so the provided unix tools don't overwrite windows tools we may want to keep.
For Git this is undesired behavior, though, as we just compared git versions
to decide which one we want to use. The git directory thus needs to be prepended
to the path to make sure a call to git uses the version we selected.
2020-07-29 22:48:01 +02:00
Florian Schwalm
167c49ee6d Rewrite old calls to :verbose_output to working %lib_console% verbose_output 2020-07-29 22:46:35 +02:00
Florian Schwalm
0ed10e5e89 Reorder if-else-clauses in :compare_git_versions so last else block can be reached
It is hard to spot without the brackets, but the last else block - that resets %test_dir% and
logs in verbose mode that an older user git version will be ignored - can't actually be reached.
The else block is considered to belong to the if clause "if exist "%test_dir:~0,-4%\cmd\git.exe""
that will only ever be executed if ERRORLEVEL is greather than or equal to 0, thus if the test fails,
the following else if clause "else if ERRORLEVEL 0" will always succeed and the last else block will be ignored.
Using the vendored git version may still have worked because %GIT_INSTALL_ROOT% isn't set either way,
but to enable the log message I reordered if-else-clauses and brackets in the way I think the
original author intended them to work.
2020-07-29 22:39:46 +02:00
Florian Schwalm
cd50db3a7f Use ERRORLEVEL instead of %errorlevel% to compare git versions
%errorlevel% was always 0, even if the vendored git version was more current than the installed one
Usually exiting a batch script with "exit /b exitCode" as used in :compare_versions
sets %errorlevel% to the specified exit code
However, this may not work if %errorlevel% was set before with "Set errorlevel="
I didn't find the location where this might have happened,
but I saw the consequence of %errorlevel% always being 0
Thus I decided to use ERRORLEVEL instead as this will always work regardless of environment variable

For more information check https://ss64.com/nt/errorlevel.html
2020-07-29 22:25:49 +02:00
Dax T. Games
37a223b449 fix lib_path 2020-07-25 05:11:34 -04:00
Dax T Games
334838c079
Update init.bat 2020-07-24 08:34:45 -04:00
Dax T. Games
0c3d89925e 'fix 2020-07-23 13:41:10 -04:00
Dax T. Games
020661af95 Merge branch 'fix_global_vars_vscode_err' of https://github.com/daxgames/cmder into fix_global_vars_vscode_err 2020-07-23 13:39:46 -04:00
Dax T. Games
79261d4d27 fix 2020-07-23 13:36:50 -04:00
Dax T Games
7326a3cfc5
Update init.bat 2020-07-23 13:34:13 -04:00
Dax T Games
fdcbd6df87
Delete vscode_init_args.cmd 2020-07-23 08:43:09 -04:00
Dax T Games
0c41d5f5d4
Merge pull request #2351 from famoses/patch-1
quote time measures for timer.cmd
2020-07-18 08:58:53 -04:00
famoses
40c58417b2
quote time measures for timer.cmd
The startup time duration is calculated wrongly ( at least for me, on Windows 1909, with CmderMini 1.3.15.1010 ). I got something like "Elapsed Time: 80:36:1.00 (290161.00s total)" printed into the cmder consle window. I can be solved by quoting the time measures taken in `init.bat`. 

It seems that `time.cmd` fails in recognizing two arguments. In fact it did split the first time measure into two arguments and ignored the second time measure.
Example: 
from the two time measures
λ echo %CMDER_INIT_START% %CMDER_INIT_END%
12:53:44,34 12:53:54,04
The call to `time.cmd` created following output (i added echo commands to print variables start and end right after they got assigned the arguments)
start: 12:53:44
end:   34
2020-07-18 13:32:22 +02:00
Dax T. Games
97a41ddd99 fix cmder_configured GTR 1 2020-07-14 22:31:57 -04:00
Dax T. Games
954937cf97 cleanup 2020-07-05 15:22:09 -04:00
Dax T. Games
2c620d1d67 cleanup 2020-07-05 15:13:23 -04:00
Dax T. Games
5e7a7029d1 make vscode_init.cmd smart enough to apply cmder settings if launched from inside or outside cmder 2020-07-04 14:23:16 -04:00
Dax T. Games
f1c1354c00 make vscode_init.cmd smart enough to apply cmder settings if launched from inside or outside cmder 2020-07-04 13:43:18 -04:00
Dax T Games
0f12de345b
Update init.bat 2020-07-02 07:00:25 -04:00
Dax T. Games
c332ab1a34 Fix bug introduced in 1.3.15 2020-07-01 16:24:36 -04:00
Dax T Games
4403edb110
Update init.bat 2020-07-01 08:26:44 -04:00
Dax T. Games
00bc5439fd Merge branch 'fix_git' into fix_global_vars_vscode_err 2020-06-29 07:51:31 -04:00
Dax T. Games
da5f1bc4db fix git detect 2020-06-29 07:49:22 -04:00
Dax T. Games
52f5ad62c3 changelog 2020-06-26 22:29:26 -04:00
Dax T. Games
250ae06e7a fix vscode terminal errors when setting cmder fast_init=1 outside cmder 2020-06-26 22:27:29 -04:00
Dax T Games
bc7984769c
Merge pull request #2338 from daxgames/master
CHANGELOG.md
2020-06-26 16:49:35 -04:00
Dax T. Games
130dc750be CHANGELOG.md 2020-06-26 16:45:21 -04:00
Dax T Games
c6edbc0068
Merge pull request #2311 from daxgames/fix_path_enh_recurs
Fix and enhance enhance_path_recursive
2020-06-26 16:27:42 -04:00
Dax T Games
c0eeec6608
Merge pull request #2335 from kvittokonito/custom_window_icons
Added support for setting custom icons for Cmder window
2020-06-26 16:25:34 -04:00
Gaizka P
ee25dbaab6 Removed leftover debug text in error message box. 2020-06-24 07:25:30 +02:00
Gaizka P
e3ad9c3953 Merge branch 'custom_window_titles'
# Conflicts:
#	launcher/src/CmderLauncher.cpp
2020-06-24 07:23:28 +02:00
Gaizka P
31df5c3e5e Added support for setting custom titles for Cmder window. 2020-06-24 07:17:48 +02:00
Gaizka P
e9f20aea91 Added build configurations for x64. 2020-06-24 03:01:54 +02:00
Gaizka P
29aa75e158 Added support for setting custom icons for Cmder window. 2020-06-24 03:01:22 +02:00
Dax T Games
8781779636
Update init.bat
If CMDER_CONFIGURED==1 skip to :CMDER_CONFIGURED
2020-06-09 19:41:08 -04:00
Dax T Games
31c019b7e4
Update init.bat
Move skip to user config below clink enablement in cmder_configured == 1
2020-06-08 21:18:23 -04:00
Dax T Games
4d86559841
Update init.bat
Remove cmder_configured goto
2020-06-08 21:03:41 -04:00
Dax T Games
a5dcf9c260
Merge pull request #2323 from SVijayB/Broken-links
Update README.md
2020-06-07 15:52:46 -04:00
Dax T. Games
a999d17f71 Allow setting cmder init.bat arg vars globally on windows. 2020-06-07 15:32:15 -04:00
Dax T. Games
04c784cb16 Allow setting cmder init.bat arg vars globally on windows. 2020-06-07 14:49:02 -04:00
Vijay
a2ce74f981
Update README.md 2020-05-25 00:27:53 +05:30
Dax T. Games
b91bb84f3d fix cexec.cmd 2020-05-10 10:56:12 -04:00
Dax T Games
35ace106c8
Merge pull request #2308 from wtof1996/update-git
Update git for windows to 2.26.2
2020-04-29 13:42:43 -04:00
Dax T. Games
1861983469 readme 2020-04-29 13:40:39 -04:00
Dax T. Games
1f5ea5e596 Fix and enhance enhance_path_recursive 2020-04-29 12:03:24 -04:00
wtof
2936abe2a5 Update git for windows to 2.26.2 2020-04-28 11:18:24 +08:00
Dax T Games
c9bc1f6b83
Merge pull request #2294 from daxgames/1.3.15
Fix Cmder issue #2290
2020-04-06 10:18:26 -04:00
Dax T. Games
be5ec648c4 Fix Cmder issue #2290 2020-04-06 10:15:00 -04:00
Dax T Games
ab3639540f
Merge pull request #2293 from daxgames/1.3.15
1.3.15-pre
2020-04-06 08:50:15 -04:00
Dax T Games
2517f55f15
Merge branch 'master' into 1.3.15 2020-04-06 08:48:19 -04:00
Dax T. Games
1af12666e4 move git functions to git lib 2020-04-06 08:46:46 -04:00
Dax T. Games
93f8718489 move git functions to git lib 2020-04-06 08:20:26 -04:00
Michael Roy
1071221468
Fix an issue with clink.find_files() return order not always consistent, leading to .init.lua not being run first lua path being broken (#2278) 2020-03-14 13:01:06 +00:00
Dax T Games
a92bb1947f
Merge pull request #2265 from andyburgess/master
Fixes #2247, fixes #2254
2020-03-05 21:22:08 -05:00
andyburgess
251968b4c6 Fixes #2247, fixes #2254 2020-02-21 11:52:52 -05:00
Dax T Games
638d82e989
Update CHANGELOG.md 2020-01-08 21:43:09 -05:00
Dax T Games
0e37a4c2f9
Merge pull request #2222 from daxgames/1.3.14
1.3.14
2020-01-08 21:34:19 -05:00
Dax T. Games
ca2550b70e Fix issue #2214 2020-01-06 23:03:11 -05:00
Dax T. Games
492fc284f2 Fix issue #2214 2020-01-06 22:57:29 -05:00
Dax T. Games
ec06f3e39b changelog 2020-01-06 22:50:03 -05:00
Dax T Games
850e4ec045
Merge pull request #2237 from jrappen/patch-1
Bump git-for-windows to v2.24.1.windows.2
2020-01-06 22:40:49 -05:00
Johannes Rappen
fe3d2034ef
Bump git-for-windows to v2.24.1.windows.2 2020-01-06 22:45:17 +01:00
Dax T. Games
180e72a6aa revert --no-log to fix windows 7 clink prompt 2020-01-05 13:52:23 -08:00
Dax T. Games
93cf865071 post-install fixes 2020-01-05 16:41:02 -05:00
Dax T Games
b41aac982c
Merge pull request #2223 from vladimir-kotikov/patch-6
Update clink-completions
2019-12-05 13:23:36 -05:00
Vladimir Kotikov
8df688bada
Update clink-completions
https://github.com/vladimir-kotikov/clink-completions/releases/tag/0.3.5
2019-12-05 10:53:32 +03:00
Dax T. Games
84917159ec fixes for cmd:cmder init script 2019-12-04 16:14:36 -05:00
Dax T. Games
750560851f fixes for cmd:cmder init script 2019-12-04 16:13:08 -05:00
Dax T. Games
9b29668250 fixes for cmd:cmder init script 2019-12-04 16:09:38 -05:00
Dax T. Games
a857d8419c fixes for cmd:cmder init script 2019-12-04 16:04:16 -05:00
Dax T. Games
0cf1c5e2eb fix 2019-11-23 18:13:03 -05:00
Dax T Games
ddec3e8425
Merge pull request #2212 from daxgames/goo_per_shell
dd per shell git opt out
2019-11-23 11:59:25 -05:00
Dax T. Games
2428e8529f dd per shell git opt out 2019-11-23 11:54:53 -05:00
Dax T Games
3eb82d4095
Merge pull request #2203 from daxgames/conemu191012
update conemu to 19.10.12
2019-11-19 17:21:05 -05:00
Dax T. Games
589b48d06e update conemu 2019-11-09 17:50:57 -05:00
Dax T Games
67f35bc05d
Merge pull request #2199 from daxgames/git_opt_out
Git opt out
2019-11-09 17:03:07 -05:00
Dax T. Games
9724151f06 allow git prompt status opt out for powershell and bash 2019-11-09 16:40:55 -05:00
Dax T. Games
c04cc6dc7f allow git prompt status opt out for powershell and bash 2019-11-09 16:39:57 -05:00
Dax T. Games
3ee244e4c1 allow git prompt status opt out for powershell and bash 2019-11-09 16:36:16 -05:00
Dax T. Games
44bc089ee4 move lambda to cmder prompt method for easier user change 2019-11-03 14:14:47 -05:00
Dax T. Games
6ab4599a4d separate powershell functions from profile.ps1 2019-11-03 13:07:20 -05:00
Dax T. Games
dac4b27e28 separate powershell functions from profile.ps1 2019-11-03 12:59:36 -05:00
Dax T. Games
661f59d0fb Fix #2191 profile.ps1: CheckGit does not export $gitLoaded 2019-11-03 12:36:28 -05:00
Dax T. Games
5a6f873d2b README.md 2019-11-03 11:29:18 -05:00
Dax T. Games
788d4e0caa README.md 2019-11-03 11:28:18 -05:00
Dax T. Games
f1fbd98093 README.md 2019-11-03 11:25:02 -05:00
Dax T. Games
74fcb5b62b README.md 2019-11-03 11:23:37 -05:00
Dax T. Games
60279fea04 README.md 2019-11-03 11:22:29 -05:00
Dax T. Games
7877d417f8 changelog 2019-11-03 11:13:55 -05:00
Dax T. Games
44a8bf5802 add ability to disable git 2019-11-03 11:00:27 -05:00
Dax T Games
b70a03cde0
Merge pull request #2194 from daxgames/fix_path_with!
Fix path with ! in cmder_root dir path
2019-11-01 17:19:03 -04:00
Dax T. Games
8cf51e454a CHANGELOG.md 2019-10-27 17:06:02 -04:00
Dax T. Games
f1b1ac0ec1 CHAMGELOG.md 2019-10-27 16:57:28 -04:00
Dax T. Games
06b0c0d3c2 cleanup 2019-10-27 16:43:51 -04:00
Dax T Games
f1a9721256
Update init.bat 2019-10-22 22:44:17 -04:00
Dax T Games
46c8099317
Update CHANGELOG.md 2019-10-22 22:41:44 -04:00
Dax T Games
f44c68273b
Merge pull request #2193 from glucas/fix/2192
Fix #2192: Set default prompt hooks before loading user profile
2019-10-22 21:45:32 -04:00
Greg Lucas
7f69f15637 Fix #2192: Set default prompt hooks before loading user profile 2019-10-22 11:17:13 -04:00
David Refoua
3736508b2c Update template issue (#2189)
* fix unclear guide

* m. update
2019-10-14 19:37:55 +02:00
Benjamin Staneck
4575ac3209 ⬆️ Update ConEmu to 190714
Release Notes: https://conemu.github.io/en/Whats_New.html
2019-10-12 19:45:23 +02:00
Benjamin Staneck
035f209bc4 ⬆️ Update Git to 2.23.0
Release Notes: https://github.com/git-for-windows/git/releases/tag/v2.23.0.windows.1
2019-10-12 19:43:46 +02:00
mdavis199
e4651cf7b4 Bare doubledash for conemu commands (#2174)
* Add bare doubledash command line option

The '--' parameter is a common POSIX-style option.  All command-line parameters after the double dash will be joined by a space and forwarded to conemu.

* add bare doubledash command line option

The "--" option indicates that the remaining portion of the command line is forwarded to conemu. Quotes and spacing is retained.

* move all doubledash related code together

* remove unused variable
2019-10-06 21:52:50 +01:00
Dax T Games
19a2fd11e3 Clink Completions 0.3.4 (#2177)
* update Changelog, clink-completions 0.3.4, fix ps fg color

* Update CHANGELOG.md

* Update CHANGELOG.md
2019-09-28 02:21:47 +02:00
Dax T Games
feee4eaed2
Merge pull request #2153 from mcovalt/clink_nolog
Disable clink logging
2019-09-14 09:13:04 -04:00
Matt Covalt
b310a2c47c
Disable clink logging 2019-08-29 12:48:52 -04:00
Dax Games
22afc40a08 cleanup 2019-08-22 06:27:39 -04:00
Dax Games
c499456f97 cleanup 2019-08-22 06:24:49 -04:00
Dax Games
34468ef2fd cleanup 2019-08-22 06:20:19 -04:00
Dax Games
5cb8021864 Merge branch 'fix_path_with!' of https://github.com/daxgames/cmder into fix_path_with! 2019-08-22 06:11:18 -04:00
Dax T. Games
468dba474e fixes 2019-10-13 15:47:25 -04:00
Dax T. Games
db42252ef2 cleanup 2019-10-13 10:18:04 -04:00
Dax T. Games
57b328b209 cleanup 2019-10-13 10:15:26 -04:00
Dax T. Games
05836e761e merge 2019-10-13 10:11:38 -04:00
Dax T. Games
e8b33aa45b Merge branch 'master' of https://github.com/cmderdev/cmder into fix_path_with! 2019-10-13 10:11:25 -04:00
Dax T. Games
377d97e56a fix path with ! in dir 2019-10-13 10:07:23 -04:00
Dax T. Games
3a44bc809d add ~ match to vendor/clink.lua/ 2019-09-27 18:17:24 -04:00
Dax T. Games
45e5600249 update Changelog, clink 0.3.4, fix ps fg color 2019-09-26 18:07:25 -04:00
Dax T Games
ff595e62b1
Merge pull request #2144 from daxgames/1.3.12
1.3.12 Release
2019-08-18 18:33:40 -04:00
Dax T. Games
a85a208b20 CHANGELOG.md 2019-08-18 18:26:21 -04:00
Dax T. Games
ecda3acfdf Update CHANGELOG.md 2019-08-18 17:49:56 -04:00
Dax T. Games
5477b7812d Re-arrange CHANGELOG.md. 2019-08-18 17:39:29 -04:00
Dax T. Games
81951a4a14 Merge branch 'master' of https://github.com/cmderdev/cmder 2019-08-18 16:33:43 -04:00
Dax T Games
0280593d4c
Merge pull request #2123 from daxgames/alias
CHANGELOG.md
2019-07-07 14:06:57 -04:00
Dax T. Games
f8e859f844 changelog 2019-07-07 14:05:14 -04:00
Dax T Games
af4c1fddbb
Merge pull request #2122 from daxgames/alias
restore old alias.cmd without 'create' option
2019-07-07 13:56:18 -04:00
Dax T. Games
b58b3b4547 restore old alias.cmd without 'create' option 2019-07-07 13:52:34 -04:00
Dax T. Games
9184f8e2bf Merge branch 'master' of https://github.com/cmderdev/cmder into alias 2019-07-07 13:32:47 -04:00
Dax T. Games
1e0e2193e0 Merge branch 'master' into alias 2019-07-07 13:31:13 -04:00
Dax T. Games
38fd3468fe restore old alias.cmd without 'create' option 2019-07-07 13:30:34 -04:00
Dax T Games
ebd977778b
Merge pull request #2113 from SupinePandora43/vscode
vscode.bat
2019-06-27 08:27:37 -04:00
SupinePandora43
72dd8376cd move
https://github.com/cmderdev/cmder/pull/2113#issuecomment-506044156
2019-06-27 16:00:55 +05:00
SupinePandora43
b61752f89e
vscode.bat
add that to settings.json

`"terminal.integrated.shell.windows": "cmd.exe",
"terminal.integrated.shellArgs.windows": [
    "/K",
    "%CMDER_ROOT%/vscode.bat",
]`

for using cmder inside vscode
2019-06-25 12:37:57 +04:00
Martin Kemp
8f59d529f4
Update stale comments 2019-06-20 10:12:12 +01:00
Dax T. Games
711c436f04 Merge branch 'master' of https://github.com/cmderdev/cmder 2019-06-09 16:18:38 -04:00
Dax T Games
ea531cdd44 Fix post-install.bat not running and deleting itself (#2106)
* Fix post-install.bat not running

* Changelog

* Changelog
2019-06-03 11:23:00 +01:00
Martin Kemp
73c21d1a59
Wrap labels with quotes 2019-05-24 13:54:09 +01:00
Martin Kemp
a97ce1f950
Create stale.yml 2019-05-24 13:47:01 +01:00
Dax T Games
4510abb3c8
Merge pull request #2096 from eziosella/pull-request-2094-pars-forwarding
Add `/x "CONEMU ARGS"` command line argument.
2019-05-22 08:30:18 -07:00
Dax T Games
6d132c2665
Merge pull request #2099 from warthurton/patch-1
Update README.md
2019-05-22 08:27:53 -07:00
Ezio
543c7ca6e9 Replace /FWPARS argument with /X as "daxgames" request. 2019-05-19 22:54:47 +02:00
Wayne Arthurton
efc978f6f8
Update README.md
Added /t switch for timed init mode.
2019-05-16 15:13:07 -04:00
Ezio
5def1c584a Add FWPARS cmdline argument.
This argument forwards parameters to ConEmu app.

	e.g. Cmder.exe /FWPARS "-min -tsa"

In this case Cmder will start minimized on TaskBar
2019-05-12 15:18:15 +02:00
Dax T Games
865e443fcd
Merge pull request #2068 from cmderdev/history_cmd_index_sync
Print Index in History Command Output
2019-05-05 17:28:07 -04:00
Dax T. Games
893207453d CHANGELog 2019-05-05 17:27:25 -04:00
Dax T. Games
5e5e0ece73 CHANGELog 2019-05-05 17:25:47 -04:00
Dax T. Games
834f031442 Merge branch 'master' of https://github.com/daxgames/cmder into history_cmd_index_sync 2019-05-05 17:19:49 -04:00
Dax T Games
0bd847e695
Merge pull request #2083 from JoshuaWebb/master
Close file handles in clink.lua
2019-05-05 17:13:57 -04:00
Dax T Games
efe64ee6fd
Merge pull request #2072 from daxgames/alias
Alias
2019-05-05 17:12:13 -04:00
Dax T. Games
5f9f3560c8 fix commnd line help 2019-05-05 17:11:31 -04:00
Dax T. Games
9b9bb13f6a fix commnd line help 2019-05-05 17:06:44 -04:00
Joshua Webb
52eea5fe9f Close file handles in clink.lua 2019-04-19 16:16:45 +10:00
Dax T. Games
ab3f0b76fb fixes 2019-04-01 22:17:53 -04:00
Dax T. Games
528bbea7f5 fixes 2019-04-01 22:10:21 -04:00
Dax T. Games
f20eca01ac fixes 2019-04-01 17:34:00 -04:00
Dax T. Games
26d8d58e77 Merge branch 'master' of https://github.com/cmderdev/cmder into alias 2019-04-01 17:32:57 -04:00
Dax T. Games
cf134604bb fixes 2019-04-01 17:31:46 -04:00
Dax T. Games
67b374ad37 revert alias.cmd changes 2019-04-01 17:09:05 -04:00
Dax T. Games
d592f80364 Merge branch 'master' of https://github.com/cmderdev/cmder into alias 2019-04-01 17:04:03 -04:00
Dax T. Games
3e40c80331 new alias create syntax 2019-04-01 16:58:45 -04:00
Dax T Games
ac2082d56d
Merge pull request #2060 from daxgames/ps1_prompt
Fixes and More Cmder Like Powershell
2019-04-01 15:20:37 -04:00
Dax T. Games
a813e359c5 don't delete aliases by default but provide an easy way for users to do so. 2019-04-01 09:09:32 -04:00
Dax T. Games
345562dbd0 Merge branch 'ps1_prompt' of https://github.com/daxgames/cmder into ps1_prompt 2019-03-31 16:48:10 -04:00
Dax T. Games
13de4924ca make powershell use of bash commands more bash like 2019-03-31 16:47:36 -04:00
Dax T. Games
f39b921121 fixes 2019-03-31 16:11:14 -04:00
Dax T. Games
43d5a7b833 Merge branch 'master' of https://github.com/cmderdev/cmder into history_cmd_index 2019-03-31 16:04:53 -04:00
Dax T. Games
b424012a08 make debug messages more verbose 2019-03-31 09:48:58 -04:00
Dax T. Games
192c2f4dd1 fix git detection 2019-03-31 09:47:50 -04:00
Dax T. Games
4622aa87e4 Merge branch 'master' of https://github.com/cmderdev/cmder into ps1_prompt 2019-03-23 15:05:05 -04:00
Dax T. Games
0b2c9bf005 Merge branch 'ps1_prompt' of https://github.com/daxgames/cmder into ps1_prompt 2019-03-23 15:04:06 -04:00
Dax T. Games
081624d88e cleanup 2019-03-23 15:03:44 -04:00
David Refoua
280bbfff1f update issue template (#2062) 2019-03-20 22:57:13 +01:00
Dax T Games
a93fff6798
Update init.bat 2019-03-17 15:09:02 -04:00
Dax T. Games
8abfa9d413 add back shell context menu to drives on register unregister 2019-03-16 19:15:36 -04:00
Dax T. Games
98a64b71b2 Allow full ps1 prompt customization by 'config/*.ps1' scripts 2019-03-16 13:52:47 -04:00
Dax T. Games
f2b26352b4 Merge branch 'master' of https://github.com/cmderdev/cmder 2019-03-12 21:12:42 -04:00
David Refoua
63128ed52f polished issues template (#2056)
- added version subsection
- better worded upstream technologies notice
- more clear instructions
2019-03-07 14:29:46 +01:00
Dax T. Games
036efc2fb8 Merge branch 'master' of https://github.com/cmderdev/cmder 2019-03-03 07:08:10 -05:00
Dax T. Games
2582891307 Merge branch 'master' of https://github.com/cmderdev/cmder 2019-03-01 19:54:14 -05:00
Dax T Games
ec42046297
Merge pull request #2017 from b0bh00d/master
Replaced 'hg id -ib'
2019-03-01 14:00:22 -05:00
Dax T Games
522656845f
Merge pull request #2041 from cmderdev/upate_readme
Update README.md
2019-03-01 13:58:40 -05:00
Dax T Games
6b22a5c583
Merge pull request #2055 from daxgames/git_clink_changes
Git and Clink changes
2019-03-01 13:57:32 -05:00
Dax T. Games
e75958b881 Merge branch 'master' of https://github.com/cmderdev/cmder 2019-03-01 13:47:03 -05:00
Dax T. Games
8ec252276f changelog 2019-02-28 18:13:19 -05:00
Dax T. Games
16bf572cdf Merge branch 'master' of github.com:cmderdev/cmder into git_clink_changes 2019-02-28 18:03:58 -05:00
Dax T. Games
7bd25e95e1 upgrade git to 2.21.0 2019-02-28 17:55:16 -05:00
Dax T. Games
cc12b848ac provide default settings for clink that updates the history file in real time 2019-02-28 17:44:28 -05:00
Dax T. Games
20d55c1469 all clink disable by setting CMDER_CLINK=0 befor starting task 2019-02-28 17:37:45 -05:00
Dax T Games
06e6c63b7f
Update README.md 2019-02-18 11:41:11 -05:00
b0bh00d
89499f2a60 Replaced the 'hg -id' command with the 'hg branch' and 'hg status' pair for improved response times. 2019-01-20 21:02:31 -07:00
b0bh00d
95e5169476 Merge remote-tracking branch 'upstream/master' 2019-01-20 20:50:09 -07:00
Dax T. Games
760f4e579e ignore all /d arg if running inside vscode 2019-01-06 18:09:06 -05:00
Dax T. Games
6d8f7a290a ignore all args if running inside vscode 2019-01-06 17:46:50 -05:00
Dax T. Games
2a4e9d8301 workaround vscode tasks showing cmder debug output 2019-01-06 17:27:04 -05:00
Bob Hood
961f38a399 Updated the HG prompt (#2002)
Per our email discussion, I have updated the HG prompt code to use the '-ib' option to 'hg id' so the branch name is always available, regardless of the state of the working copy.
2019-01-05 19:56:30 +01:00
b0bh00d
5a48e568a8 Updated the HG prompt code to use the '-ib' option to 'hg id' to always have the branch name available. 2019-01-01 11:17:53 -07:00
Dax T Games
524fce25ab
Merge pull request #1999 from daxgames/fix_ssh_agent_default
fix ssh-agent in user_profile.cmd.default
2018-12-22 17:13:35 -05:00
Dax T. Games
46bde1af8b fix ssh-agent in user_profile.cmd.default 2018-12-22 17:07:31 -05:00
Dax T. Games
9a47bce6ac fix ssh-agent in user_profile.cmd.default 2018-12-22 17:05:08 -05:00
Dax T Games
0a3be464be
Merge pull request #1997 from cmderdev/revert-1996-fix_ssh_agent_default
Revert "Update Changelog"
2018-12-22 16:56:42 -05:00
Dax T Games
b2723d6f6a
Merge pull request #1998 from cmderdev/revert-1995-fix_ssh_agent_default
Revert "fix sshagent call in user_profile.cmd.default"
2018-12-22 16:56:19 -05:00
Dax T Games
4f2ced57df
Revert "fix sshagent call in user_profile.cmd.default" 2018-12-22 16:55:56 -05:00
Dax T Games
88169b8721
Revert "Update Changelog" 2018-12-22 16:55:17 -05:00
Dax T Games
f6db922732
Merge pull request #1996 from daxgames/fix_ssh_agent_default
Update Changelog
2018-12-22 16:40:28 -05:00
Dax T. Games
e822d55aa5 Changelog 2018-12-22 16:38:51 -05:00
Dax T. Games
ccb6cb80e5 Changelog 2018-12-22 16:37:28 -05:00
Dax T. Games
e56ed810a0 Changelog 2018-12-22 16:34:23 -05:00
Dax T Games
7e8d67caa8
Merge pull request #1995 from daxgames/fix_ssh_agent_default
fix sshagent call in user_profile.cmd.default
2018-12-22 16:12:49 -05:00
Dax T. Games
4e4f050374 fix sshagent call in user_profile.cmd.default 2018-12-22 15:40:09 -05:00
Martin Böhm
51e75d4bb5 add percent escaping for string.gsub (#1991)
In `string.gsub()`, the `%` character has special meaning and must be escaped to be treated verbatim, otherwise the "invalid use of '%' in replacement string" warning will show up.

This adds a verbatim() function for that purpose. It fixes this warning for situations where `'%` characters are in the current path (cwd), version control branch names, or in the previous `PROMPT` set by the user.
2018-12-19 21:17:45 +01:00
Dax T Games
f4389fc552
Merge pull request #1988 from daxgames/no_prefer_nix_option_
Prefer /nix_tools option
2018-12-16 13:08:56 -05:00
Dax T Games
8101923242
Merge pull request #1987 from seeq12/default-files-user-profile
Use default files for default user profiles
2018-12-16 10:31:48 -05:00
Cody Ray Hoeft
7e1bc4297a Move ssh-agent logic to lib script 2018-12-13 21:12:18 -08:00
Dax T Games
0f30329e38
Update init.bat 2018-12-13 21:55:08 -05:00
Dax T Games
25820ae4d4
Merge pull request #1975 from patstew/git-no-unix
Add /git_no_unix switch to init.bat to prevent adding !GIT_INSTALL_ROOT!\usr\bin to PATH
2018-12-13 21:51:01 -05:00
Dax T. Games
528a69dab9 update nix_tools option to allow preferring nix tools 2018-12-13 20:54:18 -05:00
Cody Ray Hoeft
0c9e0e2f8c Use default files for default user profiles 2018-12-13 12:13:17 -08:00
Patrick Stewart
20eb7b8e81 Add /nix_tools switch to init.bat to optionally add !GIT_INSTALL_ROOT!\usr\bin to PATH 2018-12-13 16:09:52 +00:00
Dax T Games
ab02c4ce46
Merge pull request #1982 from haroldhues/master
make /register work with /single
2018-12-12 21:05:52 -05:00
Cody Ray Hoeft
f9f06a5595 make /register work with /single 2018-12-07 21:05:51 -08:00
Dax T. Games
8ac540ebb6 debug 2018-12-02 11:51:00 -05:00
Dax T. Games
fcab51da2b remove file 2018-12-02 11:46:23 -05:00
Dax T. Games
dc492c836f Merge branch 'master' of https://github.com/cmderdev/cmder into prefer_nix_option 2018-12-02 11:46:01 -05:00
Dax T. Games
1eb03dd1b8 add '/prefer_nix' switch to init.bat 2018-12-02 11:44:18 -05:00
Dax T Games
3163d6d1c3
Merge pull request #1971 from cmderdev/fix_1.3.9
fix initial launch of cmder starting with conemu default cfg
2018-11-30 15:00:35 -06:00
Dax T. Games
5c7f4943ad fix initial launch of cmder starting with conemu default cfg 2018-11-30 14:56:30 -05:00
Dax T Games
378ebff566
Merge pull request #1969 from rjvdboon/fix_1956
Improve LANG env var detection
2018-11-30 07:45:33 -06:00
Van der Boon, Robert GSNL-PTT/SPD
572a94ca3a Improve LANG env var detection 2018-11-30 12:01:21 +01:00
Dax T Games
22aa59bd83
Merge pull request #1949 from daxgames/multi-user
Use user_conemu.xml or conemu-%computername%.xml directly if '-c [path]' is used to start cmder.
2018-11-28 19:04:05 -06:00
Dax T. Games
eb6a332da2 Merge branch 'master' of https://github.com/cmderdev/cmder into multi-user 2018-11-22 16:21:24 -06:00
Dax T Games
dd614642b2
Merge pull request #1961 from DanielChesters/master
Ensure use the system find and findstr command instead find/findstr from path
2018-11-22 16:18:28 -06:00
Daniel Chesters
036cf09360
Ensure use the system find and findstr command instead find/findstr from path. Fix #1959 2018-11-22 21:14:02 +01:00
Dax T. Games
7203671fc9 fix powershell profile.d 2018-11-17 19:55:24 -05:00
Dax T. Games
787ac3773c make /register work with /c 2018-11-12 09:22:05 -05:00
Dax T. Games
b16aa7a29e better command line error handling 2018-11-12 08:30:44 -05:00
Dax T. Games
d8e8fc8adb add /m command line argument to use machine config rather than user config for conemu. 2018-11-12 07:56:55 -05:00
Dax T. Games
0efeaa91fa cleanup 2018-11-11 08:04:35 -05:00
Dax T. Games
8c0817941e added /c [path] use vendored conemu.xml as a default starting point if it exists 2018-11-11 07:55:14 -05:00
Dax T. Games
e17b04cbb9 cleanup 2018-11-10 18:49:33 -05:00
Dax T. Games
e904ebce72 use user_conemu.xml or conemu-%computername%.xml directly if '-c [path]' is used to start cmder. 2018-11-10 17:26:08 -05:00
Dax T Games
a226019d5a
Merge pull request #1948 from daxgames/fix_timer
fix timer error
2018-11-10 14:00:38 -05:00
Dax T. Games
d04cc1f04e fix timer error 2018-11-10 13:57:26 -05:00
Dax T Games
2e77513674
Merge pull request #1947 from daxgames/fix_ignore_config
Fix ignore config
2018-11-10 09:46:25 -05:00
Dax T. Games
1640e9c01d fixes' 2018-11-10 09:45:23 -05:00
Dax T. Games
ddbfd1da18 Merge branch 'fix' 2018-11-10 09:38:58 -05:00
Dax T. Games
bc7c6e97b3 Fixed move of default conemu.xml to the vendor folder 2018-11-10 09:32:44 -05:00
Dax T Games
45f05ed8fa
Merge pull request #1946 from cmderdev/revert-1945-ignore_config
Revert "Ignore `%cmder_root%\config`"
2018-11-10 09:02:00 -05:00
Dax T Games
72b676b939 Revert "Ignore %cmder_root%\config (#1945)"
This reverts commit 637b0fd3acf1554818cc5ac34bfaf006bffcffcc.
2018-11-10 06:42:27 -05:00
Dax T Games
637b0fd3ac Ignore %cmder_root%\config (#1945)
* move default comemu.xml to vendor folder

* ignore all of config folder

* cleanup
2018-11-10 02:40:16 +01:00
Dax T. Games
ce62db6d33 cleanup 2018-11-08 21:45:21 -05:00
Dax T. Games
f3ed7b6d1b ignore all of config folder 2018-11-08 21:35:23 -05:00
Dax T. Games
57e5ae1719 move default comemu.xml to vendor folder 2018-11-08 21:25:42 -05:00
Dax T Games
a5bdecca77 Add /f for fast init. (#1942)
The below enables Cmder Fast Init mode for `cmd.exe` sessions.  This is more like the Cmder 1.3.5 init process.  See issue #1821 

Cmder Fast Init mode bypasses or disables the following Cmder 1.3.6+ features:

* Git root and version detection.  Defaults to `%cmder_root%\vendor\git-for-windows` if it exists.
* Path enhance validation before path modify so `%Path%` enhancements are forced.
* Recursive path add for `"%CMDER_ROOT%\bin"`
* Recursive path add for `"%CMDER_USER_BIN%\bin"` if `/c [user_config_folder` is specified.
* `/d` switch to enable debug output.
* `/v` switch to enable debug output.

Add `/f` to Cmder task as shown below t enable fast init:

_Note 1: This setting is invalid in Cmder `Powershell` and `Bash` sessions~_

_Note 2: Add `/t` also to see init timer output_

![image](https://user-images.githubusercontent.com/7318053/47957637-052e3880-df90-11e8-93ef-91e1ab696d82.png)

Cuts ~2.4 seconds off of init time.

![image](https://user-images.githubusercontent.com/7318053/47957795-45db8100-df93-11e8-8ae0-551d12c4e2dc.png)
2018-11-04 01:36:51 +01:00
Gregory Lucas
5be25f29f8 Initialize time_init to fix init error message 2018-11-03 18:52:26 +01:00
Merlin
cb78f0486a Remove duplicate Install-Module detection
Block was inserted twice.
2018-11-03 02:15:03 +01:00
Josef Pihrt
f5ac81daa0 Fix typos, remove escaping inside inline code, replace single quote with backtick 2018-11-03 02:14:49 +01:00
Josef Pihrt
da0aea96f8 Fix typo and broken link 2018-11-03 02:14:49 +01:00
Dax T Games
3a11d45552 add diag helper scripts and adds to the path (#1918)
These scripts are to help us help our users by getting a relative picture of their environment that they can submit with an incident.
2018-11-02 14:00:40 +01:00
Benjamin Staneck
c5a6afbf5b
Merge pull request #1905 from narnaud/git_shim
Ensure the right git path is found in case of shim.
2018-10-12 22:55:48 +02:00
Nicolas Arnaud-Cormos
a607f0f2d5 Ensure the right git path is found in case of shim.
If the git found is a shim, we need to follow the path to the actual git
directory to set the GIT_INSTALL_ROOT variable.
This happens when installing git via scoop for example.
2018-10-10 07:14:50 +02:00
Benjamin Staneck
66da1716bc
Merge pull request #1758 from xiazeyu/master
lib to check init.bat's custom args
2018-09-30 18:06:42 +02:00
Retomehere
bfaa194468
Merge pull request #1 from daxgames/cexec
flag_exists.cmd to cexec
2018-09-30 23:17:23 +08:00
Benjamin Staneck
c3956e307a
Merge pull request #1889 from leochien0102/leochien0102-patch-1
Leochien0102 Fix the 'was unexpected at this time.' at start
2018-09-29 23:15:26 +02:00
Dax T Games
3344268c24
Merge pull request #1887 from gaoslin/master
Update init.bat, fix PR #1665
2018-09-29 17:06:53 -04:00
Dax T. Games
8ff459b309 fixes 2018-09-24 19:07:48 -05:00
Dax T. Games
103d0a6cea more headers 2018-09-24 18:51:55 -05:00
leochien0102
8dc9bc9ae1
fix the 'was unexpected at this time.'
Change the single quotation marks to double while path concerned
2018-09-21 16:01:52 +08:00
gaoslin
bb4ed4af51
Update init.bat 2018-09-18 17:26:11 +08:00
Benjamin Staneck
ae2fda72fd
Merge pull request #1884 from daxgames/fix_lua
Fix lua
2018-09-18 03:03:57 +02:00
Dax T. Games
bda09bc274 init.bat update for cexec 2018-09-16 16:23:22 -05:00
Dax T. Games
749ce17dbe git prompt yellow 2018-09-16 15:53:49 -05:00
Dax T. Games
8cf59d1cbf cleanup 2018-09-16 10:21:37 -05:00
Dax T. Games
1d36ba4ed4 fix user lua and git detection 2018-09-16 10:18:10 -05:00
Dax T. Games
564ef5220e allow conditionally setting environment variables 2018-09-15 16:25:31 -05:00
Dax T. Games
f84da84e15 cleanup 2018-09-15 15:12:45 -05:00
Dax T. Games
86544c9188 readme.md 2018-09-15 15:11:50 -05:00
Dax T. Games
4aec21ce19 readme.md 2018-09-15 15:10:35 -05:00
Dax T. Games
0be94725bd readme.md 2018-09-15 15:06:13 -05:00
Dax T. Games
9dce9d0f62 added exit codes 2018-09-15 13:55:54 -05:00
Dax T. Games
669e997602 flag_exists.cmd to flag_exec.cmd, also to lib as an option 2018-09-15 12:52:23 -05:00
Retomehere
0730c6e32b
Merge branch 'master' into master 2018-09-15 11:28:04 +08:00
Benjamin Staneck
0d2e16c653
Merge pull request #1871 from daxgames/user_lua
Embed 'alias' functionality into 'vendor\bin' and Load User Lua files
2018-09-13 22:41:19 +02:00
Benjamin Staneck
35eab7a51a
Merge pull request #1834 from b0bh00d/master
Refactored the Mercurial prompt code to be more efficient.
2018-09-13 18:07:07 +02:00
Benjamin Staneck
2cfa7c45fc ⬆️ ConEmu to 180626
release notes: https://conemu.github.io/en/Whats_New.html
2018-09-13 18:05:36 +02:00
Benjamin Staneck
ab0de6d157 ⬆️ Update Git to 2.19.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.19.0.windows.1
2018-09-13 17:58:39 +02:00
Dax T. Games
bd9cff2691 cleanup 2018-09-05 18:07:27 -05:00
David Refoua
9b121f1c0a switch to taskdialog 2018-09-05 04:22:42 +04:30
David Refoua
cfe22c8ef0 set encoding to UTF-8 2018-09-05 03:22:57 +04:30
David Refoua
3ef53f64d4 add strings.rc2 2018-09-05 03:18:59 +04:30
David Refoua
4a10e0b2eb
mainstram build tools 2018-09-04 00:31:59 +04:30
Dax T. Games
7b191d3caf cleanup 2018-09-03 14:54:52 -05:00
Dax T. Games
277972a7f2 fixed 2018-09-03 12:59:43 -04:00
Dax T. Games
b1aa687d4f handle start dir args with trailing \" 2018-09-03 11:07:06 -05:00
Dax T. Games
ec4c815264 cleanup 2018-09-03 06:08:44 -05:00
Dax T. Games
12b9af99c5 '.gitignore' 2018-09-03 06:05:20 -05:00
Dax T. Games
d58c6c2070 cleanup 2018-09-02 19:17:16 -05:00
Dax T. Games
06c7cc969c Merge branch 'user_lua' into tcc 2018-09-02 19:09:49 -05:00
Dax T. Games
44b4b7a195 '.gitignore' 2018-09-02 19:09:12 -05:00
Dax T. Games
9869f9a372 cleanup 2018-09-02 18:59:14 -05:00
Dax T. Games
85c4a5b4af cleanup 2018-09-02 18:56:17 -05:00
Dax T. Games
3f96336610 verbos output 2018-09-02 18:53:49 -05:00
Dax T. Games
a8cae77395 Merge branch 'user_lua' into tcc 2018-09-02 18:53:19 -05:00
Dax T. Games
823eeaf082 cmder_shell settings 2018-09-02 18:18:59 -05:00
Dax T. Games
823e6fee6e add cmder_shell method 2018-09-02 17:32:20 -05:00
Dax T. Games
34f8c43d98 replace - with _ in debug-output and verbose-output 2018-09-02 09:16:40 -05:00
Dax T. Games
352a16f84d trying to get tcc working 2018-09-02 09:04:46 -05:00
Dax T. Games
541fc16daf Trying to get tcc working 2018-09-01 22:08:00 -05:00
Dax T. Games
75e6644d2a rename 2018-09-01 18:35:02 -04:00
Dax T. Games
7d40ea4609 modify message 2018-09-01 18:32:21 -04:00
Dax T. Games
451fb46ce1 move user-aliases.cmd to user_aliases.cmd 2018-09-01 18:17:09 -04:00
Dax T. Games
70788dc1e5 gitignore 2018-09-01 17:43:53 -04:00
Dax T. Games
c25ff75187 move bin\alias.bat to vendor\bin\alias.cmd 2018-09-01 17:39:24 -04:00
Dax T. Games
059a31618b cleanup 2018-09-01 15:32:43 -04:00
Dax T. Games
e69e7f9b82 run user lua afer cmder lua 2018-09-01 14:59:40 -04:00
Dax T. Games
e93231114f Merge remote-tracking branch 'origin' into user_lua 2018-09-01 14:35:41 -04:00
Benjamin Staneck
08550751da
Merge pull request #1860 from gucong3000/lang
Add %LANG% support
2018-09-01 00:32:02 +02:00
Dax T Games
49da3745bc Fix #1806 #1675 (#1870)
## Rename user-profile.* user_profile.* to resolve #1806, #1675

* This is a backward compatible fix and will automatically and silently rename users '%cmder_root%/config/user-profile.\*' to '%cmder_root%/config/user_profile.\*' and '[user_specified_config_root]/user-profile.\*' to '[user_specified_config_root]/user_profile.\*' if the sources exist.

  * Cmder.exe does this for cmd.exe sessions.
  * The init scripts for bash and Powershell handles it for these shells
2018-09-01 00:02:56 +02:00
Benjamin Staneck
e4fb0d694b Revert "replace user-aliases with user_aliases"
This reverts commit d91438de47b47f7ceb4c3c09923cea9f20052673.
2018-08-31 18:41:06 +02:00
Benjamin Staneck
798da058cc
Merge pull request #1865 from m01ar/master
Dot-Sourcing Error: PowerShell 5.1 and Windows Software Restriction Policy compatibility
2018-08-30 15:24:38 +02:00
Benjamin Staneck
d91438de47 replace user-aliases with user_aliases 2018-08-30 15:22:33 +02:00
David Refoua
08e1244fe5 fix some spelling issues 2018-08-30 15:22:28 +02:00
Benjamin Staneck
02f4a9dfe5
Merge pull request #1866 from arionkrause/master
Fixed typo
2018-08-30 15:15:29 +02:00
Arion Roberto Krause
e80ad2356f Fixed typo 2018-08-29 22:07:26 -03:00
Dmitri S. Guskov
21b1f00981
Powershell 5.1 compatibility
Fixes Powershell 5.1 error when Windows Software Restriction Policy is enabled:

bin\vendor\profile.ps1 : Cannot dot-source this command because it was defined in a different language mode. To invoke this command without importing its contents, omit the '.'  operator.
At line:1 char:1
+ . 'bin\vendor\conemu-maximus5\..\profi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [profile.ps1], NotSupportedException
    + FullyQualifiedErrorId : DotSourceNotSupported,profile.ps1
2018-08-29 14:42:01 +03:00
Dmitri S. Guskov
34bb62409a
Update profile.ps1
Fixes Powershell 5.1 error when Windows Software Restriction Policy is enabled:

bin\vendor\profile.ps1 : Cannot dot-source this command because it was defined in a different language mode. To invoke this command without importing its contents, omit the '.'  operator.
At line:1 char:1
+ . 'bin\vendor\conemu-maximus5\..\profi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [profile.ps1], NotSupportedException
    + FullyQualifiedErrorId : DotSourceNotSupported,profile.ps1
2018-08-29 14:38:59 +03:00
刘祺
b901a4a569 add LANG support 2018-08-23 11:57:16 +08:00
xiazeyu
39f47870a3
chore: unite slash 2018-08-06 16:05:31 +08:00
xiazeyu
f4ee915678
docs: update to latest useage 2018-08-06 13:21:45 +08:00
Retomehere
192056e19b
Merge branch 'master' into master 2018-08-06 13:14:45 +08:00
xiazeyu
f6c2d9c31e
refactor: reduce global varible useage, fixed quote issue, added parameters support 2018-08-06 13:09:59 +08:00
xiazeyu
b3200efa7e
doc: fix typo 2018-08-06 11:25:27 +08:00
xiazeyu_2011
b57e146e7a
docs: migrated instructions to the wiki pages 2018-07-17 14:11:16 +08:00
Bob Hood
0f99f66b42 Refactored the Mercurial prompt code to be more efficient. 2018-07-06 14:34:48 -06:00
Benjamin Staneck
4655888690
Merge pull request #1805 from SommerEngineering/patch-1
Fixed spelling in README.md
2018-06-10 20:35:56 +02:00
Thorsten Sommer
431c6300e5
Fixed spelling 2018-06-10 12:40:37 +02:00
Benjamin Staneck
e3cdf43afc better fix for #1265 2018-06-07 18:29:48 +02:00
Benjamin Staneck
6c016788d4 Revert "sanitize dir before assigning to prompt"
This reverts commit 0b2d7bd6557c6517b3fd106a6f2434fdb55acff8.
2018-06-07 17:04:06 +02:00
Benjamin Staneck
0b2d7bd655 sanitize dir before assigning to prompt
Fixes #1265
2018-06-07 16:08:53 +02:00
Dax T Games
27f51f48a4 Profile.ps1 (#1796)
* Fix GIT_INSTALL_ROOT again

* fix profile.ps1
2018-06-03 00:15:33 +02:00
Aaron Arney
34554d6b08 Update README
Add formatting to code, path, and executable identifiers to promote readability/scanability.
2018-05-31 14:35:43 +02:00
Dax T Games
4df1d744d3 Fix lib base (#1794)
* Fix GIT_INSTALL_ROOT again

* fixed lib_base error

* fix lib help

* fix lib help
2018-05-31 14:35:02 +02:00
Benjamin Staneck
40b9ca4e28
Update CHANGELOG.md 2018-05-30 01:17:12 +02:00
Dax T. Games
19d5a87224 Fix GIT_INSTALL_ROOT again 2018-05-30 01:04:41 +02:00
Benjamin Staneck
44aadccbec ⬆️ ConEmu to 180528
release notes: https://conemu.github.io/en/Whats_New.html
2018-05-29 22:42:32 +02:00
Benjamin Staneck
83f411384c ⬆️ Update Git to 2.17.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.17.1.windows.2
2018-05-29 22:37:21 +02:00
xiazeyu_2011
861f99d64b
rename /bin/have.bat to /vendor/lib/flag_exists.cmd
Please use %flag_exists% instead of using have
2018-05-27 10:22:44 +08:00
xiazeyu_2011
6af44441fe
Merge branch 'master' of github.com:xiazeyu/cmder 2018-05-18 21:03:07 +08:00
xiazeyu_2011
0ce1db97d0
fix: bug when no argument is passed in 2018-05-18 21:02:36 +08:00
Retomehere
0c39d0a799
Merge branch 'master' into master 2018-05-18 20:37:19 +08:00
xiazeyu_2011
add82a247b
docs: update doc for have.bat 2018-05-18 20:34:10 +08:00
xiazeyu_2011
bf6dae4a24
feat: add have.bat as a wrapper 2018-05-18 20:32:05 +08:00
Benjamin Staneck
7d31eeaa5a enable unc paths by default 2018-05-17 15:50:06 +02:00
xiazeyu_2011
daa94c5462
Optimize comments of using arguments in user-profile.cmd 2018-05-04 20:14:40 +08:00
David Refoua
36403df91e Updates issue template, notes on README.me and fixes line ending (#1751)
* add integration notes, refined docs

* change img size

* verbose issue template

* move docs from README to WIKI

* increased politeness factor by 10%
2018-05-04 00:29:25 +02:00
Dax T Games
a843e85c8b Fix GitHub download failures (#1760)
* Github changed to only accept TLS 1.2 connections, this fixes the resulting failures.
2018-05-04 00:28:14 +02:00
Dax T Games
9a3a8f23d0
Little Changes 2018-05-01 08:57:02 -04:00
xiazeyu_2011
99f51b0fc0 fix conflict with init.bat build-in command parser, update user-profile.cmd 2018-05-01 13:02:21 +08:00
Benjamin Staneck
4f3fcae9d9
Merge pull request #1754 from cmderdev/daxgames-patch-2
Fix git install root
2018-05-01 02:24:26 +02:00
xiazeyu_2011
a06d4e93ec Pass arguments to user-profile.cmd 2018-04-30 20:31:01 +08:00
Dax T Games
13ea026dc9
Fix git install root
This is untested so don't merge yet.  I'll test tonight.
2018-04-26 19:06:18 -04:00
Benjamin Staneck
dc8e572ca5 ⬆️ ConEmu to 180416
release notes: https://conemu.github.io/en/Whats_New.html
2018-04-19 09:07:55 +02:00
Benjamin Staneck
b2262522c9 ⬆️ Update Git to 2.17.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.17.0.windows.1
2018-04-13 20:20:59 +02:00
Benjamin Staneck
9d0729fe42 ⬆️ ConEmu to 180411
release notes: https://conemu.github.io/en/Whats_New.html
2018-04-13 20:20:59 +02:00
Benjamin Staneck
a1e47ceaca
Merge pull request #1745 from daxgames/fix_reg_cleanup
Fixes for recent reworks
2018-04-13 18:27:11 +02:00
Dax T. Games
2a18ba084c fix spelling 2018-04-12 21:43:31 -04:00
Dax T. Games
12e3761017 fix tab 2018-04-12 21:41:42 -04:00
Dax T. Games
b8890ed297 switch to debug output 2018-04-12 21:39:52 -04:00
Dax T. Games
063f30c193 fix git missing error on cmder mini cmd shell 2018-04-12 21:32:38 -04:00
Dax T. Games
bc72f20a2d reposition echo 2018-04-12 21:06:00 -04:00
Dax T. Games
78a9711447 fix unreg cleanup 2018-04-12 21:05:38 -04:00
Benjamin Staneck
55d9b25f57 double quote more paths
fixes #1681
2018-04-06 18:08:28 +02:00
Benjamin Staneck
7294092618 fix a typo 2018-04-06 00:00:11 +02:00
Benjamin Staneck
959073ac5c
Merge pull request #1730 from DRSDavidSoft/dev-david
Generate Win32 version string based on build no, git tag or fallback to changelog
2018-04-05 23:51:06 +02:00
Benjamin Staneck
e746101ed2
Merge pull request #1739 from daxgames/fix_init
fix bash and powershell init scripts
2018-04-05 23:48:26 +02:00
Dax T. Games
65bf25f1d0 fix bash and powershell init scripts 2018-04-03 14:17:34 -04:00
David Refoua
94e7c24b72
minor typo fix 2018-03-31 00:03:39 +04:30
David Refoua
d6569192fc replace tabs to spaces 2018-03-30 23:57:21 +04:30
David Refoua
7d04ded1c2
add appveyor message 2018-03-30 23:52:32 +04:30
David Refoua
5c3f46fd88
fix git detection statement 2018-03-30 23:46:48 +04:30
David Refoua
502129d4f9 minor fix 2018-03-30 23:31:51 +04:30
David Refoua
b36b8a4cb3 new version handle logic 2018-03-30 23:23:44 +04:30
David Refoua
3965852c26
clean before build 2018-03-29 03:23:18 +04:30
David Refoua
93d2c427ad respect powershell naming convention 2018-03-29 01:18:57 +04:30
David Refoua
624deec2f0
minor edit – added a character to the verbose output 2018-03-28 22:34:28 +04:30
David Refoua
c817df2032
add build version str; fix padding 2018-03-28 22:30:09 +04:30
David Refoua
236aefe8c6
add build version string 2018-03-28 22:28:33 +04:30
David Refoua
2f3f1d474a
specified custom manifest file 2018-03-28 22:28:01 +04:30
David Refoua
cb4d95e7a3
added build number, removed duplicated manifest 2018-03-28 22:26:17 +04:30
David Refoua
1dadade661
replaces spaces to tabs 2018-03-28 22:24:26 +04:30
David Refoua
2bc17c4ff2
renamed app.manifest 2018-03-28 22:22:56 +04:30
David Refoua
ae473ecea6
add escaped quotes handling 2018-03-28 21:24:02 +04:30
David Refoua
3aeca3c972
add required block to else statement 2018-03-28 21:16:27 +04:30
David Refoua
57a28f118d
add template for version string 2018-03-28 21:14:15 +04:30
David Refoua
018bf45df4
add version string handler 2018-03-28 21:13:55 +04:30
David Refoua
f8359fc3f7
add verbose version info 2018-03-28 21:11:31 +04:30
David Refoua
249f7b9baf
add build flags; use spaces 2018-03-28 21:07:14 +04:30
David Refoua
eaf7048ed7
add automatic version creation
with this commit, the build script extracts the latest version string found in `CHANGELOG.md`, and then creates appropriate resource files for the executable compilation
2018-03-28 20:48:57 +04:30
David Refoua
f4321bbc33
add functions to get version and generate rc
these functions can be used to a) extract the version from `CHANGELOG.md` and b) create a .rc2 file from the `sample` template by replacing its content
2018-03-28 20:41:18 +04:30
David Refoua
96736feecc
added version.rc2.sample
this file controls how the version strings appears in the final compiled .exe file
2018-03-28 20:38:12 +04:30
David Refoua
dc9e385365
add cmder manifest file 2018-03-28 18:43:41 +04:30
David Refoua
a85cd81f00
added version resources and manifest. 2018-03-28 18:37:46 +04:30
David Refoua
1662678ebf
fixed line endings 2018-03-28 18:16:14 +04:30
Dax T. Games
9462315789 fix /unregister 2018-03-24 08:57:14 -05:00
Dax T. Games
864f778099 load user clink 2018-03-24 08:03:28 -05:00
Benjamin Staneck
bcf8527f74 run markdownlint and update changelog 2018-03-24 03:34:39 +01:00
Benjamin Staneck
72ab0f064f update psget to the latest version 2018-03-24 00:01:08 +01:00
Benjamin Staneck
91f5c5379a actually show the new task 2018-03-23 23:49:54 +01:00
Dax T Games
19bad7dfa9 open cmder in the current working dir as every other windows app works (#1725)
open cmder in the current working dir as every other Windows app works
2018-03-23 23:38:53 +01:00
Benjamin Staneck
afb8f52516 ignore .github dir and markdown files for packaging 2018-03-23 23:34:05 +01:00
Benjamin Staneck
6543c204b7 add default WSL bash task 2018-03-23 23:29:24 +01:00
Benjamin Staneck
0438ce5763 ⬆️ Update Git to 2.16.3
Release notes: https://github.com/git-for-windows/git/releases/v2.16.3.windows.1
2018-03-23 23:11:05 +01:00
Dax T Games
471369f73b Made all sub-routines in init.bat importable libs (#1706) 2018-03-23 15:20:07 +01:00
David Refoua
66d36fdc1c Created issue_template.md (#1723)
Purpose:
- Prevent duplicated/similar issues
- Explain the suitable repo for each issue, avoiding ConEmu issues here.
- Help users to provide a better explanation to identify the problem
2018-03-23 14:32:15 +01:00
Benjamin Staneck
17247f2065 ⬆️ ConEmu to 180318
release notes: https://conemu.github.io/en/Whats_New.html
2018-03-19 20:57:10 +01:00
Benjamin Staneck
63f3f8020f
Merge pull request #1707 from cmderdev/drop_xp
Drop Windows XP support
2018-03-14 13:26:56 +01:00
Dax T Games
b37001b591
Update CHANGELOG.md
Update Changelog Tag url after merge
2018-03-13 18:18:46 -05:00
Benjamin Staneck
60880362a9 No longer use the special _xp platform tools since we no longer support XP 2018-03-13 23:53:33 +01:00
Benjamin Staneck
91651fc98b Drop Windows XP support 2018-03-13 23:40:07 +01:00
Dax T Games
997e799138 New cmder.exe args and shared install capability (#1696)
@MartiUK: Squashing to avoid adding multiple "fixed" commits

* add args to init.bat

* adding args to cmder launcher

* reworked command line parsing and added a /C [path] arg for individual user config location

* removed unnecessary includes

* make shell init scripts work with CMDER_USER_CONFIG

* update tasks and readme.md

* fix git version check

* readme updates

* add register/unregister back in

* fixed git version again

* removed error if user defines user-aliases store file was not present an init.bat launch

* added enhance_path method to only update path if required

* added enhance_path method to only update path if required

* fixed a path prepend issue in enhance path

* init.bat with args is executed outside cmder/conemu sets cmder_root properly. Thanks @DRSDavidSoft

* fixed enhance path append issue

* implements recursive `/bin` path enhancing.

https://github.com/cmderdev/cmder/issues/1624

* added max depth

* changes command line arg to max_depth

* set max_depth default

* readme.md updates

* add back cmder /c [path] arg so it can be used with admin sessions since the env is not shared.

* readme.md updates

* fix /c setting of cmder_user_config

* changelog and readme

* remove bad arg

* fixed command line parsing and updated command line help on error

* Fixed ConEmu.xml file handling so it works again

* Added default user config root location if '/c' is specified and next arg is not another arg
2018-03-13 16:38:27 +01:00
David Refoua
ff2e09849e simplified λ prompt in lua (#1693)
* replace lambda with $

* simplified $ prompt

The $ character for the prompt is defined only once instead of twice

* fixed λ prompt
2018-03-08 12:01:48 +01:00
David Refoua
8237b1010c Detect and compare installed Git version against vendored Git (#1658)
* Replaced the git version comparison mechanism with actual version comparing
* Add notes regarding the git comparison method

Added a simple mechanism to call and compare the user installed git version against the vendored git version, rather than checking if the `git.exe` executable is located in a `/bin` directory.

This fixes false warnings by actually testing if the user installed git is older, or more recent.

Added a small note regarding how the `init.bat` works, and where to put custom `git.exe` binaries as well as where to find the Minified Cmder.
2018-02-22 19:20:08 +00:00
Benjamin Staneck
cf311fb1c2 ⬆️ Update Git to 2.16.2
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.16.2.windows.1
2018-02-20 20:20:23 +01:00
precla
78b9c97fa9 Updated Changelog.md 2018-02-19 22:55:46 +01:00
Benjamin Staneck
a49c1b3f3d ⬆️ ConEmu to 180206
release notes: https://conemu.github.io/blog/2018/02/06/Build-180206.html
2018-02-11 18:09:47 +01:00
Benjamin Staneck
fff6e4506c ⬆️ Update Git to 2.16.1(4)
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.16.1.windows.4
2018-02-11 18:07:40 +01:00
Benjamin Staneck
a71c6a50ad always close open file handles
Fixes #1619
2018-01-16 21:59:11 +01:00
Benjamin Staneck
5e703796c9 git should no longer require extra file closing after the recent changes 2018-01-09 14:52:48 +01:00
Benjamin Staneck
b88a01822f re-order git/hg/svn functions 2018-01-09 14:52:48 +01:00
Varriount
3bf07c088d Fix alias.bat handling "user-aliases.cmd" with spaces (#1531)
* Fix alias.bat handling "user-aliases.cmd" with spaces

This fixes the alias command when user-aliases.cmd is located in a path with spaces (like when Cmder is installed into the program-files directory).
I've also made the alphabetical case of the ALIASES variable consistent.

* address review comments
2018-01-09 14:52:22 +01:00
Benjamin Staneck
724930d69d cleanup on isle 5 2018-01-09 14:50:46 +01:00
David Driscoll
badb027c24 use /dir Switch instead of CMDER_START 2018-01-09 14:50:46 +01:00
Benjamin Staneck
145a1b144b Fix for the last 2018-01-06 23:52:24 +01:00
Benjamin Staneck
29c5e83975 Replace --no-lock-index with the new --no-optional-locks 2018-01-06 23:43:50 +01:00
Benjamin Staneck
1c02c55c2f ⬆️ ConEmu to 171226
release notes: https://conemu.github.io/blog/2017/12/26/Build-171226.html
2017-12-28 14:21:28 +01:00
Benjamin Staneck
74fc14eadf ⬆️ ConEmu to 171217
release notes: https://conemu.github.io/blog/2017/12/17/Build-171217.html
2017-12-22 17:23:56 +01:00
Benjamin Staneck
0729c06c20 switch back to the official version of clink 2017-12-22 17:23:56 +01:00
Dax T. Games
6da96fb7ec add config/settings to .gitignore 2017-12-16 23:38:11 +01:00
Dax T. Games
ba610f5f7b fixes 2017-12-15 22:37:08 +01:00
Dax T. Games
7930c9bfe5 Add upgrade steps to README.md 2017-12-15 22:37:08 +01:00
Benjamin Staneck
bafaf7cba4 oops, fix download url 2017-11-30 10:13:25 +01:00
Benjamin Staneck
3c14d19a27 ⬆️ Update Git to v2.15.1(2)
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.15.1.windows.2
2017-11-30 10:05:46 +01:00
Benjamin Staneck
13941a44ec ⬆️ Update Git to v2.15.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.15.1.windows.1
2017-11-29 23:54:39 +01:00
Martin Kemp
ee4f85de85
Merge pull request #1416 from gucong3000/patch-1
Compatible with Visual Studio Code (cmd)
2017-11-29 13:43:13 +01:00
Tony Lin
9d6e5c12a2 Fix startup folder issue 2017-11-13 19:33:03 +01:00
Benjamin Staneck
da27f9be9f ⬆️ ConEmu to 171109
release notes: https://conemu.github.io/blog/2017/11/09/Build-171109.html
2017-11-12 00:35:42 +01:00
Benjamin Staneck
124565f36a switch to the 64bit version of Git for Windows 2017-11-03 15:06:27 +01:00
Benjamin Staneck
46d468aea0 touch up clink.lua 2017-11-03 13:13:51 +01:00
Martin Kemp
dc27c53739
⬆️ Update git-for-windows to v2.15.0.windows.1 2017-11-01 11:32:18 +00:00
Jack
7479d620b1
Merge pull request #1417 from gucong3000/patch-2
Compatible with Visual Studio Code (PowerShell) integrated terminal.
2017-10-31 21:09:23 +00:00
Benjamin Staneck
a8d32611a9 Fix lamda color after a ConEmu change
Seems like https://github.com/Maximus5/ConEmu/issues/1288 caused this
2017-10-29 10:46:38 +01:00
mrugesh mohapatra
b6042a7ca1 Create LICENSE 2017-10-28 14:21:38 +02:00
Angly Cat
dcf22af3c8 Remove startup directory overrive switch from command in README.md 2017-10-28 14:21:12 +02:00
Angly Cat
b58ff9bb53 Make default tasks respect "Startup directory for new process"
"d" switch specified along with "-new_console" flag in default tasks
commands made them to override chosen startup directory (effectively
ignoring it), therefore it is removed. Closes #920, closes #1024,
closes #1097, closes #1303.
2017-10-28 14:21:12 +02:00
Pero Pejovic
68d9425c89 Avoid using aliases in profile.ps1
Aliases such as `ls` may have been overridden in the user's profile script and the resulting behavior may be different from `Get-ChildItem`. For example binding `ls` to GNU `ls.exe` generates an error if there are no matching files.
2017-10-28 14:18:09 +02:00
Benjamin Staneck
a95cd140ef ⬆️ Update ConEmu to 171025 (alpha)
Changelog: https://conemu.github.io/blog/2017/10/25/Build-171025.html
2017-10-28 12:30:54 +02:00
Benjamin Staneck
e90966c5c2 ⬆️ Update Git to v2.14.4
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.14.3.windows.1
2017-10-28 12:29:46 +02:00
Benjamin Staneck
e104f20c5d ⬆️ clink-completions to 0.3.3
Changelog: https://github.com/vladimir-kotikov/clink-completions/releases/tag/0.3.3
2017-10-28 12:28:31 +02:00
Benjamin Staneck
6883ba3b84 ⬆️ Update ConEmu to 170910 (alpha)
Changelog: https://conemu.github.io/blog/2017/09/10/Build-170910.html
2017-09-30 11:36:03 +02:00
Benjamin Staneck
1c1c08bb68 ⬆️ Update Git to v2.14.2
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.14.2.windows.1
2017-09-30 11:36:03 +02:00
Joseph Caudle
a5eb4d7b4f Add documentation about Program Files
cmder should not be installed in `C:\Program Files` because it would need Administrator privileges to update configuration. This commit adds documentation to the installation instructions as described in #1200.
2017-08-30 03:36:36 +02:00
Benjamin Staneck
d88f1b0a97 Point to the artifacts on the master branch 2017-08-29 03:58:30 +02:00
Benjamin Staneck
8d74184d30 ⬆️ clink to our forked version at 0.4.9
This should fix all the Windows 10 alias issues that we had.
2017-08-28 00:50:52 +02:00
Dax T Games
3ea6d51ba4 Update init.bat 2017-08-27 14:04:24 -05:00
Hugo-KTM
22d27afed5 Fix Cmder not changing to CMDER_START (#1399)
* Fix Cmder not changing to CMDER_START

Fix to allow Cmder to change to different startup directory if already on the same drive as CMDER_START
possibly relevant: HOME != USERPROFILE

* make "Cmder Here" work in more cases

integrated suggestion from comments (test for trailing backslash to prevent doubling of trailing backslash)
integrated suggestions from #1456: switching ```cd /d``` over to ```pushd``` to get support for UNC-paths

* replaced 'cd /d' with 'pushd'

replaced two more instances of 'cd /d' with 'pushd' to support network paths.
Also added double quotes to the use of '%USERPROFILE%' to prevent issues with spaces.
I also noticed that 'pushd', in contrast to 'cd /d' does not require the trailing backslash for drive roots (on Win7). Therefore I removed the trailing backslash check.

* Don't assume / is needed at end

* Update init.bat
2017-08-27 19:46:47 +02:00
Benjamin Staneck
e9a78a30d1 ⬆️ Update Git to v2.14.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.14.1.windows.1
2017-08-10 22:34:46 +02:00
Benjamin Staneck
e92f7fbb55 ⬆️ Update Git to v2.14.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.14.0.windows.1
2017-08-06 02:41:07 +02:00
刘祺
7ca2f5503a Merge branch 'master' into patch-2
# Conflicts:
#	vendor/profile.ps1
2017-08-03 18:32:44 +08:00
Dax T Games
a34e17f2bd Doc updates
For profile/alias settings scripts, what loads them, and load order.
2017-07-28 03:35:37 +02:00
Alpha
1f9e743ef2 Added pagent ssh auth support (#1391)
(and some comments on the user-profile.cmd file)

Inspired by the comments from https://github.com/cmderdev/cmder/issues/193 and my personal need to use pageant instead of OpenSSH authentication agents (which is more Window user-friendly), I have used this approach which works as expected.

Keeping the spirit of the current scripts, I left it disabled, and with some comments explaining what they all do.
2017-07-24 23:16:10 +02:00
Alpha
4243c5c222 Added pagent ssh auth support (#1391)
(and some comments on the user-profile.cmd file)

Inspired by the comments from https://github.com/cmderdev/cmder/issues/193 and my personal need to use pageant instead of OpenSSH authentication agents (which is more Window user-friendly), I have used this approach which works as expected.

Keeping the spirit of the current scripts, I left it disabled, and with some comments explaining what they all do.
2017-07-24 23:15:17 +02:00
Tian
f687281be0 Fixed quotation marks (#1360)
1. Changed " --login -i&quot;" to "&quot; --login -i" in ConEmu
2. Closed quotation in "alias.bat :p_del doskey" command of "%ALIASES%"

Suppose %CMDER_ROOT% is "C:\Program Files\cmder",
this BUG will be raised while we exec command of

"unalias xxx"
or creat terminal "{bash::bash}"
and "{bash::mintty}",

it will throws an error like:
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
2017-07-24 23:14:17 +02:00
Benjamin Staneck
4c270699a1 ⬆️ Update Git to v2.13.3
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.13.3.windows.1
2017-07-15 23:06:05 +02:00
Benjamin Staneck
b45e3adc67 Merge pull request #1407 from ZemingLiu/master
add /TASK option
2017-07-15 17:59:38 +02:00
Benjamin Staneck
8077c1a612 Merge pull request #1441 from pyranja/fix-psget-clobbering
Avoid clobbering Install-Module
2017-07-15 02:08:09 +02:00
Benjamin Staneck
d9fcf06e0f Merge pull request #1434 from cmderdev/fix_git_prompt
Fix git prompt
2017-07-14 18:23:03 +02:00
Chrs Borckholder
815b99b98b Avoid clobbering Install-Module
If the Install-Module command is available, do not include the bundled
module path containing a deprecated version of PSGet. Recent powershell
versions include PowerShellGet as standard module installer.

Resolve #1318.
2017-07-14 12:06:48 +02:00
Dax T. Games
bcb60f8f59 cmder git prompt spacing 2017-07-10 22:23:51 -05:00
Dax T. Games
0877a6d995 cmder git prompt 2017-07-10 22:21:22 -05:00
ZemingLiu
71f5b446da Merge pull request #1 from cmderdev/master
update from origin
2017-06-28 02:09:45 -05:00
Benjamin Staneck
512787f391 ⬆️ Update ConEmu to 170622 (preview)
Changelog: https://conemu.github.io/blog/2017/06/22/Build-170622.html
2017-06-27 00:56:53 +02:00
Benjamin Staneck
262d92265e ⬆️ Update Git to v2.13.2.windows.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.13.2.windows.1
2017-06-27 00:55:58 +02:00
Wild.Farmer
409b92aac2 modify -cmd command line style to /cmd 2017-06-24 22:10:15 +08:00
Benjamin Staneck
aea1a977bf ⬆️ Update Git to v2.13.1(2)
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.13.1.windows.2
2017-06-23 18:18:21 +02:00
刘祺
a7237370e3 Compatible with Visual Studio Code (PowerShell) 2017-06-23 18:39:36 +08:00
刘祺
25005930ba Compatible with Visual Studio Code 2017-06-23 17:48:03 +08:00
Wild.Farmer
74d79ea628 add /TASK option 2017-06-17 22:29:06 +08:00
Benjamin Staneck
89c014bb05 ⬆️ Update Git to v2.13.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.13.1.windows.1
2017-06-13 15:11:43 +02:00
Benjamin Staneck
c19237085d ⬆️ Update ConEmu to 170605 (preview)
Changelog: https://conemu.github.io/blog/2017/06/05/Build-170605.html
2017-06-13 15:10:55 +02:00
Benjamin Staneck
9c4e77b498 ⬆️ Update ConEmu to 170517 (preview)
Changelog: https://conemu.github.io/blog/2017/05/17/Build-170517.html
2017-05-19 23:20:31 +02:00
Benjamin Staneck
c2cf56cc48 ⬆️ Update Git to v2.13.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.13.0.windows.1
2017-05-10 22:03:36 +02:00
Benjamin Staneck
6e2d88d466 upgrade to VisualStudio 2017 2017-04-07 23:51:46 +02:00
Benjamin Staneck
cd3efdf382 ignore VisualStudio temp dir 2017-04-07 07:50:24 +02:00
Benjamin Staneck
53c7ec5886 don't package .github_changelog_generator file 2017-04-07 07:47:01 +02:00
Benjamin Staneck
e63368fe96 add file name next to hash values 2017-04-07 07:45:28 +02:00
Benjamin Staneck
aa2eaa6886 switch file hashes from MD5 to SHA256 2017-04-07 06:57:16 +02:00
Benjamin Staneck
bee82d00e8 Enable UNC paths by default
closes #1315
2017-04-07 06:25:18 +02:00
Benjamin Staneck
02366fdc7e Update README.md
fix AppVeyor badge
2017-04-07 06:14:35 +02:00
Benjamin Staneck
399999d7f7 Merge pull request #1299 from alexandr-san4ez/master
Changed the way directory is defined .git
2017-04-07 02:42:18 +02:00
Benjamin Staneck
8eea2baaa5 Merge pull request #1331 from dancread/svn-prompt
Adding svn support to prompt
2017-04-07 02:40:35 +02:00
Benjamin Staneck
4d3950174f ⬆️ Update ConEmu to 170402 (preview)
Changelog: https://conemu.github.io/blog/2017/04/02/Build-170402.html
2017-04-07 02:38:16 +02:00
Benjamin Staneck
24a110ddb7 ⬆️ Update Git to v2.12.2(2)
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.12.2.windows.2
2017-04-07 02:36:32 +02:00
Benjamin Staneck
1dd0e600ac ⬆️ Update ConEmu to 170326 (preview)
Changelog: https://conemu.github.io/blog/2017/03/26/Build-170326.html
2017-04-07 02:36:32 +02:00
Benjamin Staneck
e49b978b9a ⬆️ Update Git to v2.12.2
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.12.2.windows.1
2017-04-07 02:36:32 +02:00
Benjamin Staneck
9182c89a14 ⬆️ Update ConEmu to 170316 (preview)
Changelog: https://conemu.github.io/blog/2017/03/16/Build-170316.html
2017-04-07 02:36:32 +02:00
Benjamin Staneck
00622254a7 ⬆️ Update Git to v2.12.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.12.1.windows.1
2017-04-07 02:36:32 +02:00
dr024625
9977c0563d Adding svn support 2017-04-03 21:07:41 -05:00
Martin Kemp
b604bf0b6c Merge pull request #1317 from rmorrin/master
Update readme for config
2017-03-31 17:19:41 +01:00
Ryan Morrin
3b0a51d7b8 Update config readme:
* Change descriptions to match updated filenames
* Some minor fixes to grammar
2017-03-24 14:07:30 +00:00
Shahzeb Ihsan
d8444dae97 Set history_io=3 in default Clink settings
Currently the "history" command in Cmder prints commands without any index associated with any command, so you can copy/paste a command or use "!!" to execute a command from the history but, unlike BASH, you can't do "!<command_index>".

"cat" has a switch, "-n", which prints line numbers of the file being printed. This, in conjunction with "history_io=3" in Clink settings (to read/write history when editing a command") works just like BASH, i.e., you can use the index printed next to a command in the history to execute that command as "!<command_index>".
2017-03-17 10:59:12 +08:00
Shahzeb Ihsan
0a5d1ac156 Use cat -n for printing history to show cmd index
Currently the "history" command in Cmder prints commands without any index associated with any command, so you can copy/paste a command or use "!!" to execute a command from the history but, unlike BASH, you can't do "!<command_index>".

"cat" has a switch, "-n", which prints line numbers of the file being printed. This, in conjunction with "history_io=3" in Clink settings (to read/write history when editing a command") works just like BASH, i.e., you can use the index printed next to a command in the history to execute that command as "!<command_index>".
2017-03-17 10:26:57 +08:00
Alexandr
018cc9ceda Changed the way directory is defined .git
clink.find_dirs - do not specify the directory if there is Cyrillic in the way.
clink.is_dir - more logical and faster.
2017-03-09 19:22:13 +03:00
Jack
ad0f8fe049 Merge pull request #1280 from bdukes/patch-1
Allow profile.d/*.ps1 files to export [scriptblock]$prompt override all of cmders prompt
2017-03-08 22:06:50 +00:00
Brian Dukes
7f4a4d34d6
Allow user-profile.ps1 and profile.d/*.ps1 files to override prompt
This defines the default prompt variables ($PrePrompt, $PostPrompt,
$CmderPrompt, and $Prompt) before running the custom scripts (user-profile.ps1
and profile.d/*.ps1), and then saves those prompt values after running the
custom scripts.  This gives the custom scripts and opportunity to override the
prompt code blocks.

This now opens the possibility for profile.d/*.ps1 scripts to affect the
prompt, and also allows both user-profile.ps1 and profile.d/*.ps1 scripts to
overwrite the $Prompt script block and overwrite the prompt behavior entirely.
2017-03-08 14:14:35 -06:00
Benjamin Staneck
963a5a8be6 ⬆️ Update Git to v2.12.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.12.0.windows.1
2017-03-01 04:01:24 +01:00
Benjamin Staneck
f04a4e4846 Merge pull request #1268 from mateusmedeiros/patch-1
Fix typo in config/Readme.md
2017-02-21 19:38:34 +01:00
Mateus Medeiros
50ed66894f Fix typo in config/Readme.md
The file config/Readme.md refers to the "user-profile" files with "_" instead of "-". This commit fixes that.
2017-02-21 12:04:10 -03:00
Benjamin Staneck
2bb5ce0986 Merge pull request #1252 from glucas/issue-1245
Fix #1245: Allow alias value to contain '=' characters
2017-02-10 01:08:06 +01:00
Greg Lucas
3b7a24b20a Fix #1245: Allow alias value to contain '=' characters 2017-02-09 13:53:39 -05:00
Benjamin Staneck
81d83d4c6d ⬆️ Update Git to v2.11.0.3
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.11.0.windows.3
2017-01-16 08:53:56 +01:00
Benjamin Staneck
61849dc7fd ⬆️ Update ConEmu to 161206 (stable)
Changelog: https://conemu.github.io/blog/2016/12/06/Build-161206.html
2016-12-08 22:53:08 +01:00
Benjamin Staneck
9f2c0e4001 Merge pull request #1189 from knaos/master
Documented some undocumented tab related shorcuts
2016-12-06 13:02:01 +01:00
Atanas Kaynarov
4195b5b0ed Documented some undocumented tab related shorcuts 2016-12-06 12:39:03 +02:00
Benjamin Staneck
02f1ff12a6 update changelog 2016-12-02 00:12:37 +01:00
Benjamin Staneck
7447e00aec ⬆️ Update Git to v2.11.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.11.0.windows.1
2016-12-01 21:06:29 +01:00
Benjamin Staneck
84202729fb Merge pull request #1169 from cmderdev/development
Development
2016-11-19 23:41:54 +01:00
Benjamin Staneck
70b0666f11 ⬆️ Update Git to v2.10.2
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.10.2.windows.1
2016-11-19 23:40:05 +01:00
Benjamin Staneck
14f3361429 ⬆️ Update ConEmu to 161022 (stable)
Changelog: https://conemu.github.io/blog/2016/10/22/Build-161022.html
2016-11-19 23:39:07 +01:00
Benjamin Staneck
d7f0407300 Merge pull request #1157 from winks/winks-patch-1
Fix typo in init.bat
2016-11-10 18:13:08 +01:00
Florian Anderiasch
ba99f5b66a Fix typo in init.bat 2016-11-10 18:04:37 +01:00
Vladimir Kotikov
a0e0adae8b Bump clink-completions to 0.3.2 2016-11-07 00:56:13 +01:00
Benjamin Staneck
46d5936806 ⬆️ Update Git to v2.10.2
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.10.2.windows.1
2016-11-04 00:27:46 +01:00
Dax T Games
104033e58b Merge pull request #1109 from daxgames/user_conemu_cfg
User conemu cfg
2016-11-02 10:25:54 -05:00
Dax Games
4c522aa0c4 trigger push 2016-10-30 18:22:29 -05:00
Dax Games
d64f0e681e Merge branch 'master' of github.com:cmderdev/cmder into user_conemu_cfg 2016-10-30 18:20:07 -05:00
Martin Kemp
2b292f98de Merge pull request #1143 from panzer-planet/patch-1
Fixed 3 typos
2016-10-30 20:49:05 +00:00
Werner Roets
0b43758a34 Fixed 3 typos 2016-10-30 02:57:24 +02:00
Benjamin Staneck
e6d4609bf4 ⬆️ Update ConEmu to 161022 (stable)
Changelog: https://conemu.github.io/blog/2016/10/22/Build-161022.html
2016-10-23 22:24:07 +02:00
Benjamin Staneck
0de26571aa ⬆️ Update Git to v2.10.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.10.1.windows.1
2016-10-23 22:23:58 +02:00
Martin Kemp
5597aa6038 Merge pull request #952 from Jackbennett/custom-prompt
Custom prompt hooks protected from later overwriting
2016-10-19 14:08:09 +01:00
Benjamin Staneck
425dc854ac Merge pull request #1131 from lamarqua/master
Fix for slow startup under certain conditions (#1122)
2016-10-17 16:01:05 +02:00
Adrien Lamarque
a78186f502 Fix for slow startup under certain conditions (#1122)
Fixes #1122 by simply calling CreateProcess before the SendMessageTimeout
calls that are used to propagate environment variable changes.
2016-10-14 23:36:22 +02:00
Benjamin Staneck
60aa0cee13 Merge pull request #1127 from cmderdev/development
Development
2016-10-11 10:08:42 +02:00
Benjamin Staneck
7750216d1a Merge pull request #1126 from gucong3000/patch-1
fix error when path has a space
2016-10-11 10:08:11 +02:00
刘祺
eb73f6f772 fix error when path has a space 2016-10-11 14:41:47 +08:00
Jackbennett
db909451c9 Version Check the Posh-Git module to allow module autoloading
Posh-Git before this release does not export `Write-VcsStatus` thus
powershell's autoloading cannot find the reqired module for the function.

note that `get-module -listAvailable` can return an array of multiple
versions.
2016-10-10 12:01:55 +01:00
Jackbennett
b349b19869 Describe why PS functions are called by namespace
As the prompt function is called all the time, specifically namespace the
cmldets it uses to avoid them being hijacked in the user session.
2016-10-10 10:30:01 +01:00
Martin Kemp
e0841eacc1 Merge pull request #963 from Jackbennett/default-tab-history
Disable history switching behavior of ctrl+tab. Sequential switching.
2016-10-10 00:44:05 +01:00
Benjamin Staneck
44e0a040bd ⬆️ Update Git to v2.10.1
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.10.1.windows.1
2016-10-05 02:16:22 +02:00
Dax Games
5feccb3c7c added backup of ConEmu.xml to ./config/user-ConEmu.xml at cmder launch if it exists 2016-10-02 23:00:00 -05:00
Dax Games
abd7db99b6 added backup of ConEmu.xml to ./config folder at cmder launch if it exists 2016-10-02 22:16:22 -05:00
Dax Games
66c6d5bbb3 added ability to have a user-ConEmu.xml file in addition to the computer specific and default ConEmu.xml files 2016-10-02 21:50:56 -05:00
Dax T. Games
af586d5410 add use-ConEmu.xml 2016-10-02 18:34:40 -05:00
Alexandr
c8adf424e2 Added closing process in get_git_status (#1)
After execution command: git add * git continues to operate without closing. The process does not stop.
2016-09-27 22:59:09 +02:00
Martin Kemp
e36db3eb3d Merge pull request #1101 from alexandr-san4ez/development
Added closing process in get_git_status
2016-09-27 16:59:21 +01:00
Alexandr
27c571636d Added closing process in get_git_status (#1)
After execution command: git add * git continues to operate without closing. The process does not stop.
2016-09-27 18:48:23 +03:00
Benjamin Staneck
d144cd0fc2 ⬆️ Update ConEmu to 160914 (stable)
Changelog: https://conemu.github.io/blog/2016/09/14/Build-160914.html
2016-09-17 22:49:23 +02:00
Benjamin Staneck
bb312ad74b try --no-lock-index for Git 2016-09-17 22:48:02 +02:00
Benjamin Staneck
df7beff2ef ⬆️ Update ConEmu to 160828 (stable)
Changelog: https://conemu.github.io/blog/2016/08/28/Build-160828.html
2016-09-03 10:52:17 +02:00
Benjamin Staneck
b7bfe72303 ⬆️ Update Git to v2.10.0
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.10.0.windows.1
2016-09-03 10:50:34 +02:00
Benjamin Staneck
490fae770c ⬆️ Update Git to v2.9.3 (2)
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.9.3.windows.2
2016-08-25 21:51:17 +02:00
Benjamin Staneck
a6817faae6 Merge pull request #1082 from nverno/patch-1
Update Readme.md
2016-08-25 21:11:36 +02:00
nverno
a8450eb1d3 Update Readme.md
just minor typos
2016-08-25 03:00:31 -04:00
Benjamin Staneck
355df7a48a Merge pull request #1078 from orionlee/fix_bash_login_when_cmder_root_has_spaces
Fix bash login when $CMDER_ROOT has spaces
2016-08-21 20:23:20 +02:00
orionlee
5354b5f80f Further fix bash login when ${CMDER_ROOT} has spaces.
Inspecting the script uncovers similar problems elsewhere
not encountered in my initial testing. They are fixed accordingly.
2016-08-20 16:01:46 -07:00
orionlee
d095d6afd6 Fix bash login when ${CMDER_ROOT} has spaces.
E.g., if ${CMDER_ROOT} is /c/Users/Foo Bar/cmder,
the following errors will occur:
  bash: pushd: /c/Users/Foo: No such file or directory
  bash: [: /c/Users/Foo: binary operator expected
  bash: /c/Users/Foo: No such file or directory
2016-08-20 15:56:49 -07:00
Benjamin Staneck
832c1991e4 Merge pull request #1070 from janschulz/unicode_path_prompt
Parse the original prompt for cwd and env names
2016-08-15 16:40:35 +02:00
Benjamin Staneck
19672aafff ⬆️ Update Git to v2.9.2
Release notes: https://github.com/git-for-windows/git/tree/v2.9.3.windows.1
2016-08-14 04:59:27 +02:00
Jan Schulz
6b10771312 Parse the original prompt for cwd and env names
clink.get_cwd() is returning a string which is differently encoded than what
clink.prompt.value expects. This results in garbled path names if the path
condains non-ASCII chars. The (arguable hacky) solution is to parse the old
prompt for the current directory (which breaks if the user sets a PROMPT env var
which is incompatible to the regex used here...).

Also parse out a environment name set by systems like virtualenv or conda: this
could be done more specifically by targeting each such system and using the
usually set environment variable but this would mean that we would have to do
that for each and every such system out there and that is probably not a sane
idea...
2016-08-09 13:45:36 +02:00
Benjamin Staneck
13fd41eb82 change how we ask hg for the status
closes #1035
Thanks @raleighr3
2016-07-30 00:36:32 +02:00
Benjamin Staneck
07fb26c4a5 Merge pull request #1042 from daxgames/kill_ssh_agent
Added kill ssh-agent to build.ps1
2016-07-18 01:47:45 +02:00
Dax T. Games
13c474b768 added kill ssh-agent to build.ps1 2016-07-17 18:28:38 -05:00
Benjamin Staneck
f2641e4cd2 ⬆️ Update Git to v2.9.2 2016-07-17 01:09:06 +02:00
Benjamin Staneck
6a0ea28d22 add .github_changelog_generator to .gitignore 2016-07-14 10:51:01 +02:00
Benjamin Staneck
04c7bb7da8 update changelog 2016-07-14 09:52:27 +02:00
Benjamin Staneck
317834316a add hashes.txt to artifacts 2016-07-14 09:28:13 +02:00
Benjamin Staneck
4e90303511 ⬆️ Update ConEmu to 160710 (stable)
Changelog: https://conemu.github.io/blog/2016/07/10/Build-160710.html
2016-07-14 09:19:01 +02:00
Benjamin Staneck
0379dc1d0d Merge pull request #1037 from cmderdev/development
Development into Master
2016-07-14 07:54:42 +02:00
Benjamin Staneck
393d7d19c5 ⬆️ Update clink to 0.4.8 2016-07-14 07:53:13 +02:00
Benjamin Staneck
aa87425910 Update README.md 2016-07-04 12:34:07 +02:00
Benjamin Staneck
688c2f7721 Merge pull request #1016 from Mansuro/patch-2
Minor update in README.md
2016-07-04 12:33:03 +02:00
Mansuro
1b711f1f29 Minor update in README.md
Updated the keyboard shortcut to traverse up a directory structure has been changed
2016-07-04 12:31:28 +02:00
Benjamin Staneck
65014b1ce4 Update README.md 2016-07-03 02:57:46 +02:00
Benjamin Staneck
af1a4c9061 Update README.md 2016-07-03 02:44:40 +02:00
Benjamin Staneck
5f83cb3c64 Merge pull request #1014 from JoshuaKGoldberg/development
Added rainbow icons
2016-06-30 23:54:10 +02:00
Josh Goldberg
9a3eab9bf8 Added rainbow icons 2016-06-30 09:04:29 -07:00
Benjamin Staneck
1dddbcff05 Revert "Fix missing "\" when building dirpath to psmodules"
This reverts commit 6978bb7417293119a4769de3ffc744a71e1cb14f.
2016-06-30 11:41:17 +02:00
Benjamin Staneck
924ab12aeb we don't need a second function for that. 2016-06-30 02:53:00 +02:00
Benjamin Staneck
6a474dd624 make launcher run ConEmu64 on 64-bit Windows
It will now run ConEmu64.exe on 64-bit Windows and ConEmu.exe on 32-bit Windows.

fixes #191
2016-06-30 01:55:13 +02:00
Benjamin Staneck
14a6e5953c Merge pull request #1011 from MoFo88/git_branch_colouring
Fix git branch colouring
2016-06-28 18:37:34 +02:00
Łukasz Papierz
9c0ad9fd81 Fix git branch name colouring
Colouring fixed when there are some changes in a branch
2016-06-28 14:13:35 +02:00
Benjamin Staneck
84d44b18f2 Merge pull request #961 from janschulz/prompt-in-clink
cmd: change the prompt in lua
2016-06-21 23:10:59 +02:00
Jan Schulz
a542f4e20c cmd: change the prompt in lua
This keeps the PROMPT variable as is and changes the prompt to the cmder style
in the clink code.

This has two advantages:

* opening a cmd in a cmder session will now show the old prompt code instead of
  a ugly raw prompt without the replacements. This led to ugly output when a
  batch file echoed their content (e.g `conda build recipe/`).

* when a command rewrites the prompt (e.g. an activate in a virtualenv), these
  command sometimes simply overwrites the PROMPT so that the cmder enhancements
  were not anymore in place. Now we simply don't care and overwrite it with our
  stuff in the clink part. This might mean that a user has to install a lua
  script so that e.g. conda environments are visible on the prompt.
2016-06-21 13:33:49 +02:00
Benjamin Staneck
e5611af7be Update README.md
change badge style
2016-06-15 22:58:45 +02:00
Benjamin Staneck
999b5af29a ⬆️ Update ConEmu to 160612 (stable)
Changelog: https://conemu.github.io/blog/2016/06/12/Build-160612.html
2016-06-14 18:21:40 +02:00
Benjamin Staneck
87210ae7ca ⬆️ Git to 2.9.0
Changelog: https://github.com/git-for-windows/git/tree/v2.9.0.windows.1
2016-06-14 17:34:19 +02:00
Benjamin Staneck
75deb4f945 Merge pull request #992 from vladimir-kotikov/patch-5
Bump clink-completions to 0.3.1
2016-06-11 00:15:18 +02:00
Vladimir Kotikov
6a080a1284 Bump clink-completions to 0.3.1 2016-06-11 01:07:47 +03:00
Benjamin Staneck
d014d785b0 ⬆️ Update to Git to 2.8.4 2016-06-09 00:18:56 +02:00
Benjamin Staneck
346680b52e Merge pull request #974 from janschulz/fix_gitbranch
Fix git branch name never shown as dirty
2016-06-02 20:14:15 +02:00
Jan Schulz
c19412045c Fix git branch name never shown as dirty
The problem was that io.popen() returns a file and not the return code of the
called program.

The new code was inspired by
http://stackoverflow.com/a/14031974/1380673
2016-06-02 12:45:07 +02:00
Benjamin Staneck
2b047e8683 Update README.md
link to the appyevor project
2016-06-01 17:45:17 +02:00
Jackbennett
010049a849 Set window title to current folder unless there's git information.
Unfortunately doesn't apply to conEmu's tab name.
2016-05-27 09:47:34 +01:00
Jackbennett
91c0d310f2 Disable history switching behavior of ctrl+tab. Sequential switching. 2016-05-25 11:27:17 +01:00
Jackbennett
43af717d44 Support spaces in package names to extract 2016-05-25 10:13:47 +01:00
Jack
7a37d37a4e Merge pull request #962 from Jackbennett/PS-register
Register cmder in the context menu from powershell
2016-05-24 16:00:04 +01:00
Jackbennett
a07062d10d Remove the Registry hive after making the changes 2016-05-24 15:50:43 +01:00
Jackbennett
2d812f1d02 Quiet the function output of useless information 2016-05-24 15:49:30 +01:00
Jackbennett
49cc35bccf Add unregister function, Add 'Background' Registry keys
Adding the registry keys that match the c++ code in the cmder.exe call
/REGISTER ALL and /UNREGISTER ALL. USER is untested.
2016-05-24 15:44:54 +01:00
Jackbennett
67de97a492 Indent parameters for Path clarity 2016-05-24 15:43:25 +01:00
Jackbennett
7a0a1adc02 Use checkGit to hold the git state. Import posh-git at the last minute.
Import-Git now finds if the module isn't installed at all and alerts the
user. But only when in a git folder.
2016-05-23 14:53:34 +01:00
Jackbennett
76b2ed510d If you start doing remote work you can fire off your own start-sshAgent command. 2016-05-23 14:51:55 +01:00
Benjamin Staneck
7ca9d8e9d6 Update ConEmu to 160515 2016-05-17 23:20:16 +02:00
Jackbennett
31c8c620c7 Custom prompt hooks protected from later overwriting
Add a pre and post function hook around the Cmder prompt.
Specify the cmder prompt as a function that could be replaced by a user.
Write a friendly message when the user profile template is created.
Create the user profile with cmder prompt hooks ready to use.

It was concerning to run any function with a specific name every prompt
with no guarantee it remains what it was initally created as.

Core functions have been explicitly called from their
namespace like Microsoft.PowerShell.Utility\Write-Host to try and prevent
clobbering.

User supplied functions are passed in as script blocks, created as the
session runs the profile script. By creating them as constants these
function names cannot be declared again for the duration of the process.

Since the prompt function already exists by this time, set the readOnly
flag so to re-declare the prompt requires the use of -force.

It is hoped these changes limit what could be the risk of any script
redefining functions that are called automatically without user intent or
input.
2016-05-12 13:59:33 +01:00
Benjamin Staneck
61e795c02d Merge pull request #945 from daxgames/fix_aliases_update
Added :verbose-output subroutine, made aliases update more functional
2016-05-08 15:56:58 +02:00
Benjamin Staneck
f652d301e7 Merge pull request #946 from vladimir-kotikov/patch-4
Update clink-completions to 0.3.0
2016-05-08 02:08:13 +02:00
Vladimir Kotikov
a286e52a44 Update completions to 0.3.0 2016-05-08 02:42:48 +03:00
Dax T. Games
c49c27fb88 allow setting verbose-output variable outside init.bat 2016-05-07 18:10:44 -05:00
Dax T. Games
e212ee36a2 Added :verbose-output subroutine, made aliases update more functional 2016-05-07 14:32:33 -05:00
Benjamin Staneck
fc7f1ca3dc Merge pull request #943 from daxgames/fix_git
fixed git not working in cmder cmd session and added some comments
2016-05-07 18:41:22 +02:00
Dax T. Games
537c658eb4 fixed git not working in cmder cmd session and added some comments 2016-05-07 10:56:08 -05:00
Benjamin Staneck
4e9882eea4 Update Git to 2.8.2
Release notes: https://github.com/git-for-windows/git/releases/tag/v2.8.2.windows.1
2016-05-06 18:10:00 +02:00
Benjamin Staneck
d4339ae526 Merge pull request #941 from janschulz/init.bat
More variable quoting in init.bat
2016-05-06 15:25:10 +02:00
Jan Schulz
055a974257 More variable quoting in init.bat
There were problems when a path contained a parenthesis like `C:\temp\test (test)\`

As a precaution, quote all variables when they are used in echo or set.
2016-05-06 15:12:07 +02:00
Benjamin Staneck
05fb4368cc Merge pull request #940 from janschulz/init.bat
Add quotes around all variables
2016-05-06 00:35:02 +02:00
Jan Schulz
1bf5503bea Add quotes around all variables
This should prevent errors like
https://github.com/cmderdev/cmder/issues/935
https://github.com/cmderdev/cmder/issues/937

I've no idea why this happens, but it shouldn't hurt anyway...
2016-05-05 22:40:33 +02:00
Benjamin Staneck
b47d04f75c Merge pull request #916 from liftir/patch-1
Fix missing "\" when building dirpath to psmodules
2016-04-10 06:28:22 +02:00
liftir
6978bb7417 Fix missing "\" when building dirpath to psmodules
Join-Path won't add "\"'s without the use of a delimeter.  In this case there is no delimiter and as a result the script will fail when it tries to look up $CmderModulePath.
2016-04-08 21:21:38 -04:00
Benjamin Staneck
7eb7255741 Merge pull request #865 from janschulz/where_is_git
better git path handling
2016-04-08 18:59:58 +02:00
Jan Schulz
6c6268e968 Remove @ in new code, echo off is enough 2016-04-08 16:55:49 +02:00
Jan Schulz
1e7f15100f PS: also add cmd and bin version of git to the path
This ensures that the "normal" path entry (cmd) is first and bash is still reachable via the bin path.
2016-04-08 16:53:38 +02:00
Jan Schulz
fbccc6b790 init.bat: remove GIT\bin from path
The only reason was bash but bash.exe is also in <GIT>\usr\bin.
2016-04-08 16:53:38 +02:00
Jan Schulz
2ccc06e639 init.bat: integrate the unix commands at the end of PATH
Some unix commands shadow windows commands and therefor the unix commands should
be at the end of the PATH
2016-04-08 16:53:38 +02:00
Jan Schulz
182629d59a init.bat: check for git in path
The idea is:
* if the users points as to a specific git, use that
* test if a git is in path and if yes, use that
* last, use our vendored git

We don't make any attempt to guess a different location, if a user wants their
own git install, they have to choose "add git to path".

Also check that we have a recent enough version of git (e.g. test for
<GIT>\cmd\git.exe)
2016-04-08 16:51:53 +02:00
Benjamin Staneck
fc963b1342 Merge pull request #911 from daxgames/git_2.8.1
upgraded git to 2.8.1
2016-04-05 22:35:32 +02:00
Dax T. Games
24b1bb93c0 upgraded git to 2.8.1 2016-04-05 14:27:12 -05:00
Benjamin Staneck
528d0ce734 Merge pull request #909 from daxgames/http_proxy
Added proxy support
2016-04-05 16:48:05 +02:00
Dax T. Games
5068188059 Added proxy support 2016-04-05 09:27:53 -05:00
Benjamin Staneck
5a1f81655f ⬆️ ConEmu@160328
Changelog: https://conemu.github.io/en/Whats_New.html
2016-03-30 03:02:31 +02:00
Benjamin Staneck
07ed31c0a1 ⬆️ Git@2.8.0.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.8.0.windows.1
2016-03-30 03:00:59 +02:00
Benjamin Staneck
f9d0050c67 Merge pull request #892 from daxgames/fix_aliases
fixed - not running user-aliases.cmd if aliases variable is overridde…
2016-03-21 22:55:26 +01:00
Dax T. Games
86dd077b9d fixed - not running user-aliases.cmd if aliases variable is overridden in profile.d 2016-03-21 14:35:48 -05:00
Martin Kemp
d5a1ce628c Merge pull request #862 from daxgames/better_aliases
Enhanced alias.bat to allow file storage path
2016-03-21 08:32:26 +00:00
Dax T. Games
b86f3fbaff synced with upstream/development 2016-03-20 08:30:20 -05:00
Martin Kemp
160fbad621 Add changelog 2016-03-20 12:23:05 +00:00
Martin Kemp
68743a8742 Merge pull request #890 from cmderdev/development
Merge latest Development
2016-03-20 11:54:59 +00:00
Martin Kemp
73f9400aa8 Merge pull request #723 from cmderdev/release-1.3
Release 1.3
2016-03-20 11:54:28 +00:00
Benjamin Staneck
3ca847fc42 ⬆️ Git@2.7.4.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.4.windows.1
2016-03-18 18:20:06 +01:00
Benjamin Staneck
0de643be42 ⬆️ Git@2.7.2.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.3.windows.1
2016-03-17 03:33:09 +01:00
Martin Kemp
05c113efee Fix PSReadline clearing directory prompt.
If user has PSReadline and is using it be sure to clear 1 less line to prevent the directory prompt from being cleared.

Fixes #879
2016-03-10 10:50:37 +00:00
Martin Kemp
7d2197086e Merge pull request #866 from JanSchulz/revert_set_cmderstart
Revert "Set CMDER_START to homeprofile"
2016-03-10 10:46:04 +00:00
Benjamin Staneck
964f18c66c Merge pull request #874 from daxgames/process_profile.d_sooner
Process profile.d scripts before adding user aliases
2016-03-07 19:19:11 +01:00
Dax T. Games
01667a5bf0 Process profile.d scripts before adding user aliases 2016-03-07 08:12:50 -06:00
Dax T. Games
3085fca9e0 synced with upstream/development 2016-03-06 17:27:27 -06:00
Benjamin Staneck
06c6e5fdb6 Merge pull request #873 from daxgames/echo_off
Prefer use of first line @echo off vs. @ per line to turn off echo pe…
2016-03-07 00:07:25 +01:00
Dax T. Games
0f4292aa08 Prefer use of first line @echo off vs. @ per line to turn off echo per line. - Cleaner file, no side efects 2016-03-06 15:40:06 -06:00
Benjamin Staneck
72876f41e2 Merge pull request #872 from daxgames/fix_bash_profile.d
silenced bash profile.d when profile.d is empty
2016-03-06 22:11:48 +01:00
Dax T. Games
722f8b7745 silenced bash profile.d when profile.d is empty 2016-03-06 15:05:40 -06:00
Benjamin Staneck
df768f3c5e Merge pull request #867 from daxgames/cmd_profile.d_fix
Various fixes for profile.d support
2016-03-05 02:21:46 +01:00
Dax T. Games
8dbbb902d9 fixed vendor\profile.ps1 profile.d - added post popd 2016-03-02 18:04:25 -06:00
Dax T. Games
d6eec2f3a5 silence profile.d if profile.d is empty 2016-03-02 17:37:28 -06:00
Dax T. Games
32c1d4028a added fully qualified path to cmd profile.d section 2016-03-02 15:17:43 -06:00
Jan Schulz
c904676cf4 Revert "Set CMDER_START to homeprofile"
This reverts commit 728e83a85bea6ad7b4ddda0b960c443e3ef9f737.

The problem with *always* setting CMDER_START is that this makes the
`-new_console:d:%USERPROFILE%` in the conemu task definitions unnecessary, as
this is now always overwritten as CMDER_START is set. This also means that a
very visible conemu UI for setting the startup dir does not work anymore which
might leave the user puzzled why.
2016-03-02 18:29:34 +01:00
Dax T. Games
997bd5c24e Enhanced alias.bat to allow file storage path 2016-03-01 21:08:08 -06:00
Benjamin Staneck
a74fdd2b68 Merge pull request #860 from daxgames/fix_cmd_plugin.d
Fix cmd plugin.d
2016-03-02 04:04:30 +01:00
Dax T. Games
8a5c58e626 fixed cmd profile.d support 2016-03-01 20:35:55 -06:00
Dax T. Games
bf75f70181 added config/profile.d 2016-03-01 20:35:24 -06:00
Martin Kemp
8fa151d1db Merge pull request #740 from daxgames/cmder_exinit
Cmder exinit
2016-02-29 08:11:34 +00:00
Martin Kemp
33d6f11e87 Merge pull request #855 from daxgames/profile.d_support
Added profile.d like support for all supported shells
2016-02-29 08:11:31 +00:00
Dax T. Games
434d6f2996 Fixed profile.d table 2016-02-28 10:41:10 -06:00
Dax T. Games
59e4a1684b Merge branch 'development' of https://github.com/cmderdev/cmder into profile.d_support 2016-02-27 12:52:00 -06:00
Dax T. Games
361a8eae66 Fixed profile.d support for bash 2016-02-27 12:19:03 -06:00
Dax T. Games
727d6a6abd Added bits about MinGW integration status 2016-02-27 12:05:01 -06:00
Dax T. Games
f7a18d4b6e --amend 2016-02-27 12:00:40 -06:00
Dax T. Games
9e7f860e2d Fixed and added zsh shell capability 2016-02-27 08:43:39 -06:00
Dax T. Games
6cf62dcdc7 Added details on integrating external *nix like env 2016-02-27 07:42:22 -06:00
Dax T. Games
79f8560a24 added profile.d stuff 2016-02-27 07:40:47 -06:00
Dax T. Games
4245608e6d Merge branch 'development' of https://github.com/cmderdev/cmder into cmder_exinit 2016-02-27 06:41:11 -06:00
Benjamin Staneck
aedd078050 ⬆️ Git@2.7.2.windows.1 2016-02-27 01:39:06 +01:00
Dax T. Games
a959409c0f --amend 2016-02-25 18:22:43 -06:00
Dax T. Games
0a6b79b9ed Added profile.d like support for all supported shells 2016-02-25 08:01:16 -06:00
Martin Kemp
85ce629dde Merge pull request #852 from JanSchulz/patch-1
Typo in Readme.md
2016-02-23 16:25:23 +00:00
Jan Schulz
78ea063fb0 Typo in Readme.md 2016-02-23 16:45:07 +01:00
Dax T. Games
a99d27a7e1 Merge branch 'development' into cmder_exinit 2016-02-19 10:10:12 -06:00
Martin Kemp
289126f870 Merge pull request #837 from JanSchulz/appveyor_badge
Add appveyor batch to README
2016-02-19 09:56:55 +00:00
Martin Kemp
e1eed7a0f1 Merge pull request #831 from cmderdev/development
1.3 Pre-Release Merge
2016-02-19 09:56:47 +00:00
Benjamin Staneck
c3042909e0 Merge pull request #841 from gpakosz/clink-git-prompt
Fixed get_git_dir() to take submodules into account. Fixes #833
2016-02-16 11:31:09 +01:00
Gregory Pakosz
64d981e470 Fixed get_git_dir() to take submodules into account. Fixes #833 2016-02-16 11:15:42 +01:00
Jan Schulz
3fab0c122c Add appveyor batch to README
This is mainly to point people to newer builds of cmder and is therefore to be
merged into the master branch.
2016-02-13 18:43:46 +01:00
Martin Kemp
9ace64f6dc Merge pull request #835 from gpakosz/git-prompt-submodules
Fixed checkGit() in case of submodules
2016-02-10 15:42:40 +00:00
Gregory Pakosz
95bbb8edbb Fixed checkGit() in case of submodules
Since Git 1.7.8, submodules don't contain a .git/ folder anymore.
Instead, the submodule directory is populated with a .git text file
which contains a git-dir: /path/to/superproject/git_dir/modules/name.

See,
https://github.com/git/git/blob/master/Documentation/RelNotes/1.7.8.txt#L109-L114
2016-02-10 16:33:01 +01:00
Martin Kemp
842394300f Better defaults for window size.
Should now just be a 120x30 at the 500x500px position and saves size
and position on close.
2016-02-09 13:58:41 +00:00
Martin Kemp
26e6d80364 Build on tags
For releases.
2016-02-09 13:57:31 +00:00
Martin Kemp
728e83a85b Set CMDER_START to homeprofile
This is to set CMDER_START to home when no directory is given.

This is to ensure it is set even though it will default to the home
directory anyway.

It’ll allow users to use CMDER_START even if started without a path.
2016-02-09 13:40:32 +00:00
Martin Kemp
95f6096a45 Latest 3rd party updates. 2016-02-08 22:14:04 +00:00
Martin Kemp
fab895bd9b Undo. 2016-02-08 22:09:35 +00:00
Martin Kemp
b17db6930a Merge pull request #771 from cmderdev/development
Merge latest development
2016-02-08 19:58:54 +00:00
Martin Kemp
d97bc4ca69 Merge branch 'development' into release-1.3 2016-02-08 19:56:47 +00:00
Martin Kemp
914ddb8207 Merge pull request #804 from cmderdev/buildscriptchange
Fix build script not exiting on msbuild failure.
2016-02-08 18:41:27 +00:00
Martin Kemp
7962edac56 Merge pull request #803 from cmderdev/MartiUK-patch-1
Set tasks to always use CMDER_START
2016-02-08 18:41:09 +00:00
Martin Kemp
97cae2bdc7 Bring variable into line 2016-02-08 18:26:57 +00:00
Martin Kemp
6bb07d9b19 Revert "Set tasks to always user CMDER_START"
This reverts commit 4dc1249881f5ad3e2c5c64f685e7a9320f3840fc.
2016-02-08 18:19:58 +00:00
Benjamin Staneck
fccba9269d ⬆️ ConEmu@160202
Changelog: https://conemu.github.io/en/Whats_New.html
2016-02-03 03:15:56 +01:00
Benjamin Staneck
07b426355e ⬆️ Git@2.7.0.windows.2
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.0.windows.2
2016-02-03 03:13:43 +01:00
Martin Kemp
261b8bfce3 Merge pull request #794 from JanSchulz/793-clink-settings
Reorganize how clink settings are loaded
2016-02-01 08:45:29 +00:00
Martin Kemp
c055ce1c13 Get USER_PROFILE differently
USER_PROFILE is a known folder, so use that functionality to get it.
2016-01-31 21:35:57 +00:00
Jan Schulz
fe45b186e0 clink.lua: add header
Introduce a header like in the rest of the scripts that this file
is overwritten on updates and should not be modified.
2016-01-15 18:06:35 +01:00
Jan Schulz
788b5262b4 Reorganize how clink settings are loaded
4bfdf04d59dab80e1ce76d7125c546006273e188 moved all clink config files
to vendor/ and therefore the files in config/ were not used and .history
was also moved to vendor/.

The new arrangement uses `--script` to load our own clink.lua file which in
turn as the first thing loads the original clink.lua file. The user defined
files are again in config/. As clink regenerates these files, if they are not
present, this also means that we don't need to include the settings file
in the git repo and therefore don't overwrite it on updates.
2016-01-15 18:02:10 +01:00
Martin Kemp
73e1eb2a8b Ensure Environment Variables are propagated. 2016-01-15 13:13:16 +00:00
Martin Kemp
fabcd468a7 Use the correct type and initialise it. 2016-01-15 13:01:55 +00:00
Martin Kemp
df7a662965 Get the environment variable correctly. 2016-01-15 12:44:10 +00:00
Martin Kemp
e7243efce2 Fix build script not exiting on msbuild failure. 2016-01-15 12:28:24 +00:00
Martin Kemp
9c7a037948 Set CMDER_START to USER_PROFILE if no path given. 2016-01-15 12:10:24 +00:00
Martin Kemp
4dc1249881 Set tasks to always user CMDER_START
CMDER_START should always be set as a result of either:
1. The user passes a directory to cmder.exe using `/START $DIR`
- or -
2. Sets CMDER_START as a default environment variable.
Fixes #772
2016-01-15 11:47:54 +00:00
Martin Kemp
5b7c008202 Merge pull request #798 from JanSchulz/cmder_here
Make "cmder here" work again
2016-01-15 11:44:39 +00:00
Benjamin Staneck
724b9a25da ⬆️ Bump clink to 0.4.7 2016-01-15 00:16:18 +01:00
Jan Schulz
2c0c6ed416 Make "cmder here" work again
The new system works by setting "CMDER_START" if a cmder.exe gets a
startup path. The rest is then implemented in the profile.ps1 and init.bat.
The new system works as follows:

1.If a startup path is given, cmder.exe sets this as `CMDER_START` and the
  startup scripts change to that directory.
2.If the usere sets a `CMDER_START` environment variable and this is not
  overwritten by cmder.exe, this variable is taken as the startup
  directory by the startup scripts.
3.If not such path is give, the conemu startup dirs is the winner, as the
  startup scripts don't change anything.
2016-01-11 22:19:10 +01:00
Benjamin Staneck
c77641cf03 ⬆️ Git@2.7.0.windows1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.7.0.windows.1
2016-01-07 01:50:52 +01:00
Benjamin Staneck
378014d5d4 Merge pull request #781 from vladimir-kotikov/patch-3
Bump clink to 0.4.6
2015-12-28 22:50:28 +01:00
Vladimir Kotikov
1389fe0c4d ⬆️ Bump clink to 0.4.6 2015-12-29 00:23:30 +03:00
Dax T. Games
9eb9620966 Fixed som misc stuff and prevented multi runs 2015-12-16 12:37:40 -05:00
Benjamin Staneck
add52c0ee6 ⬆️ Git for Windows@2.6.4
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.6.4.windows.1
2015-12-16 06:13:53 +01:00
Martin Kemp
744522b97b Merge pull request #773 from glureau/development
Fix vendor/init.bat when the PATH contains spaces.
2015-12-15 19:09:58 +00:00
Gregory Lureau
6879a94c10 Fix vendor/init.bat when the PATH contains spaces. 2015-12-15 18:56:22 +01:00
Benjamin Staneck
41836e669b ⬆️ ConEmu@151210
Changelog: https://conemu.github.io/blog/2015/12/10/Build-151210.html
Skipped:
* https://conemu.github.io/blog/2015/12/08/Build-151208.html
* https://conemu.github.io/blog/2015/12/07/Build-151207.html
* https://conemu.github.io/blog/2015/12/05/Build-151205.html
* https://conemu.github.io/blog/2015/12/02/Build-151202.html
* https://conemu.github.io/blog/2015/11/29/Build-151129.html
2015-12-11 18:48:47 +01:00
Benjamin Staneck
4a4e48e04c Merge pull request #766 from vladimir-kotikov/patch-2
Bump clink-completions to 0.2.2
2015-12-10 20:56:41 +01:00
Vladimir Kotikov
5f68e4e987 ⬆️ Bump clink-completions to 0.2.2 2015-12-10 22:09:12 +03:00
Benjamin Staneck
bdd0f38d59 Merge pull request #746 from daxgames/readme_updates
README.md Updates
2015-12-10 17:54:10 +01:00
Benjamin Staneck
6280416aed Merge pull request #756 from JanSchulz/extra_line_fix
Fix: don't garble the input line for long lines in git projects
2015-12-04 20:35:04 +01:00
Jan Schulz
567889e69f Fix: don't garble the input line for long lines in git projects
If having a long line of input in histroy, which went on into the
second row and using <up> to get back to it, you got the effect
that the input was split over three lines: "text, empty, text",
but using the arrows do move to the front of the first line was
moving the cursor in the second (empty) row. You could change
the text, but you needed to do it "in the dark".  No idea why
s/os.execute/is.popen/ fixes this, but it does.

Partly adresses https://github.com/cmderdev/cmder/issues/749
2015-12-04 19:57:08 +01:00
Martin Kemp
9a1d49bfc3 Merge pull request #427 from kodybrown/development
Added code to check for the existence of a customized ini file..
2015-12-04 13:04:21 +00:00
Martin Kemp
30dbfa6144 Merge pull request #736 from JanSchulz/more_config
More config
2015-12-04 13:04:13 +00:00
Dax T. Games
73f5cbdc7b README.md Updates 2015-11-28 11:12:25 -06:00
Benjamin Staneck
d0909f27e1 ⬆️ ConEmu@151129
Changelog: http://conemu.github.io/blog/2015/11/26/Build-151126.html
Skipped http://conemu.github.io/blog/2015/11/22/Build-151122.html
2015-11-28 02:45:05 +01:00
Dax T. Games
b88ea50aef Added vendor/cmder_exinit. Allows integrating externally installed Msys/Msys2/Cygwin into Cmder 2015-11-26 09:32:10 -06:00
Dax T. Games
46bad57ef8 Added config/aliases to .gitignore to account for recent changes in dev branch 2015-11-26 09:27:32 -06:00
Martin Kemp
3595d3e7fc Merge pull request #737 from JanSchulz/user-profile
Use consistent naming: user-profile.{sh|bat|ps1}
2015-11-25 10:01:18 +00:00
Martin Kemp
05c6f1c9cc Merge pull request #738 from daxgames/packignore_updates
added config\user-* to packignore
2015-11-25 10:00:12 +00:00
Martin Kemp
182d0c15a3 Merge pull request #731 from daxgames/fix_icons
Fix icons
2015-11-25 09:59:59 +00:00
Dax T. Games
867910ac9e added config\user-* to packignore 2015-11-24 19:08:58 -06:00
Dax T. Games
630ac0c571 reverted last change, removed config/user-* from packignore 2015-11-24 19:03:46 -06:00
Jan Schulz
105e381e66 Document the files in config 2015-11-25 00:31:17 +01:00
Jan Schulz
854cadb185 Use consistent naming: user-profile.{sh|bat|ps1} 2015-11-25 00:23:04 +01:00
Jan Schulz
4bfdf04d59 Do not overwrite cmder.lua on update 2015-11-25 00:14:35 +01:00
Martin Kemp
c9550490f5 Merge pull request #735 from JanSchulz/config_aliases
Do not overwrite aliases on update
2015-11-24 22:54:49 +00:00
Martin Kemp
85804d729e Merge pull request #734 from chase-miller/development
Added check for git install path in init.bat.
2015-11-24 22:43:15 +00:00
Jan Schulz
4154cdf204 Do not overwrite aliases on update 2015-11-24 23:38:26 +01:00
Chase Miller
76e14cd268 Added check for %USERPROFILE%\AppData\Local\Programs\Git path in init.bat. Installing from https://git-scm.com/download/win seems to put git in this directory. 2015-11-24 17:26:41 -05:00
Dax T. Games
8601b0f940 added config/user-* to packignore 2015-11-24 16:06:39 -06:00
Dax T. Games
ce2a311c81 Merge branch 'development' of https://github.com/cmderdev/cmder into fix_icons 2015-11-24 14:54:40 -06:00
Dax T. Games
191316282a Get 100% supported Cmder task icons from icons\Cmder.ico so tabs have an ico if launched from the cmder.bat file 2015-11-24 14:52:13 -06:00
Dax T. Games
fd9c8a74b1 Added Git for Windows icon to mintty tasks to differentiate them from 100% supported Cmder tasks 2015-11-24 14:45:52 -06:00
Benjamin Staneck
519b9cabbb Merge pull request #729 from daxgames/fix_vim_alias
Fixed - Powershell vim/vim alias opening a new tab when editing a file
2015-11-24 18:21:03 +01:00
Dax T. Games
9b25544c05 Fixed - Powershell vim/vim alias opening a new tab when editin a file 2015-11-24 10:58:58 -06:00
Martin Kemp
a9b06459da Merge pull request #726 from daxgames/default_aliases
Added vi/vim aliases and fixed powershell startup errors
2015-11-24 09:26:02 +00:00
Dax T. Games
5eff672a4b Added lambda prompt for bash/mintty, matches cmder and powershell prompts 2015-11-23 22:13:33 -06:00
Dax T. Games
8566b6f6ca Added vi/vim aliases and fixed powershell startup errors 2015-11-23 19:10:22 -05:00
Martin Kemp
1af65edaec Merge pull request #702 from daxgames/msys_bash
Msys bash
2015-11-23 23:31:02 +00:00
Dax T. Games
e6d2394d48 Added some documentation to the README.md file 2015-11-23 18:20:15 -05:00
Martin Kemp
6d215f58c6 Merge pull request #673 from DoCode/development
Enable the '/single' switch (#577)
2015-11-20 10:50:44 +00:00
Martin Kemp
7e4912514f Merge pull request #722 from MartiUK/development
Update to conemu 151119
2015-11-20 10:50:02 +00:00
Martin Kemp
86edf3cbb0 Merge master into release-1.3
Resolved Conflicts:
	.gitignore
	README.md
2015-11-20 10:45:33 +00:00
Martin Kemp
a3e2d7546d Update to ConEmu 151119
Changelog: https://conemu.github.io/blog/2015/11/19/Build-151119.html
2015-11-20 10:29:32 +00:00
Jackbennett
b9362b0a3d For PSV2.0 compat don't use $PSScriptRoot
As the build script must be executed from the `<projectroot>/scripts`
directory anyway we can assume `util.ps1` is as the same path as
`build.ps1` and just reference the current folder.
2015-11-19 14:18:47 +00:00
Martin Kemp
1046198648 Merge pull request #720 from MartiUK/development
Disable appveyor test search
2015-11-19 14:04:46 +00:00
Martin Kemp
908773622d Disable appveyor test search
We don't have tests.
2015-11-19 13:57:12 +00:00
Martin Kemp
deb23a21a1 Merge pull request #719 from MartiUK/development
Fix gitter webhook
2015-11-18 14:16:53 +00:00
Martin Kemp
1ec507c1d0 Fix gitter webhook
Should notify gitter of build success and failures.
2015-11-18 14:10:26 +00:00
Martin Kemp
1b159df7c2 Merge pull request #718 from MartiUK/development
Publish appveyor artefacts
2015-11-18 13:15:14 +00:00
Martin Kemp
2e582b9db9 Fix after_build script.
We are already in the scripts directory after build.
This prevents the ItemNotFoundException seen here:
https://ci.appveyor.com/project/MartiUK/cmder/build/1.0.79-development#64
2015-11-18 13:08:31 +00:00
Martin Kemp
f9b2c768b8 Package and upload artefacts on appveyor
Useful for PRs and releases.
2015-11-18 13:01:57 +00:00
Martin Kemp
4ce55d1019 Merge remote-tracking branch 'refs/remotes/cmderdev/development' into development 2015-11-18 12:06:10 +00:00
Dax T. Games
7f43014b68 pulled in upstream development branch 2015-11-14 12:15:42 -06:00
Dax T. Games
cf15dcffc7 Added/enhanced bash with cmder.sh/user-cmder.sh, organized tasks menu
added personal files to .gitignore so they never get uploaded to the repo and added support for msys2 bash in the new git for windows

added autocreate of config/user-cmder.sh if iot does not exist and added it to the .gitignore

Added tasks: cmd::Cmder, cmd::Cmder as Admin, bash::bash, bash::bash as Admin, bash::mintty, bash::mintty as admin, powershell::powershell, powershell::powershell as Admin. Set default task to cmd::Cmder.  Cot rid of init.bat running before /bin/bash, fixes double exit requirement

Added running git for windows post-install.bat on first cmder launch

fixed file/path not found  errors when launching powershell as admin

fixed file/path not found errors when launching bash/mintty as admin

fixed PATH in vendor/cmder.sh

Added sourcing ~/.bashrc if it exists.

changed .gitignore to ignore anything with path of config/user-*

removed my personal files from .gitignore, left in config/user-*

Make sure $CMDER_ROOT does not have a trailing '/'

%CMDER_ROOT% does not have trailing '\'. allow user to specify a conemu.xml on the command line

Removed '\' from %CMDER_ROOT%
2015-11-14 12:07:56 -06:00
Benjamin Staneck
10d0431242 Merge pull request #698 from daxgames/fix_batch_files
Fix batch files
2015-11-14 18:35:30 +01:00
Dax Games
eb5ab51573 Removed training '\' from %CMDER_ROOT% and added config/user-* to .gitignore 2015-11-14 11:14:14 -06:00
Benjamin Staneck
87bc4178e6 fix vim path in powershell profile 2015-11-12 15:18:21 +01:00
Benjamin Staneck
85aaa09d97 Merge pull request #705 from wenzowski/patch-1
add bundled vim to path
2015-11-12 13:52:53 +01:00
Benjamin Staneck
3a2d986c36 ⬆️ Git@v2.6.3.windows.1
Changelog: https://github.com/git-for-windows/git/releases/tag/v2.6.3.windows.1
2015-11-12 13:28:34 +01:00
Benjamin Staneck
37626e7687 ⬆️ ConEmu@151109
Changelog: http://conemu.github.io/blog/2015/11/09/Build-151109.html
We skipped http://conemu.github.io/blog/2015/11/01/Build-151101.html for no reason btw.
2015-11-12 13:25:49 +01:00
Alec Wenzowski
b018f2cc50 add bundled vim to path 2015-11-11 23:28:04 -05:00
Benjamin Staneck
ffd61db30e Merge pull request #697 from vladimir-kotikov/patch-2
Speed up git prompt filtering
2015-11-07 01:06:36 +01:00
Vladimir Kotikov
53e03076da Speed up git prompt filtering
This increases performance of git prompt filter by fetching branch name directly from `.git/HEAD` file instead of spawning `git` process. Apart from increasing performance this may also solve potential problems with `git` output, as reported in https://github.com/cmderdev/cmder/issues/692
2015-11-07 02:44:43 +03:00
Kody Brown
6e3b83460c Merge remote-tracking branch 'upstream/development' into development 2015-10-31 16:29:10 -06:00
Benjamin Staneck
3657795b35 Don't package the appveyor file 2015-10-27 07:24:19 +01:00
Benjamin Staneck
df37981707 ⬆️ ConEmu@v15.10.25
Changelog: http://conemu.github.io/blog/2015/10/25/Build-151025.html
2015-10-27 07:12:21 +01:00
Benjamin Staneck
669bc8bfa6 Update Readme 2015-10-25 03:00:37 +01:00
Martin Kemp
c2823af661 Merge pull request #676 from vladimir-kotikov/patch-1
Upgrade clink-completions to 0.2.1
2015-10-22 16:28:12 +01:00
Vladimir Kotikov
66a75ce0dc ⬆️ Bump clink-completions to 0.2.1 2015-10-21 23:19:19 +03:00
Benjamin Staneck
15013369cb ⬆️ ConEmu@151015
Changelogs:
https://conemu.github.io/blog/2015/10/06/Build-151006.html
https://conemu.github.io/blog/2015/10/15/Build-151015.html
2015-10-21 21:24:42 +02:00
Benjamin Staneck
50c5742794 ⬆️ Git@2.6.2.windows.1 2015-10-21 21:21:54 +02:00
Manuel Tanzer
a57c11e171 Enable the '/single' switch by using the registry as statemachine for the current location ('CMDER_START')
Fixed issue #577
2015-10-20 16:49:08 +02:00
Jackbennett
417051f496 Fix alt text on gitter link too 2015-10-16 13:35:34 +01:00
Benjamin Staneck
0f6441a7ee Update README.md
Update Gitter badge
2015-10-16 13:34:36 +01:00
Jackbennett
5e07567a72 Pre-set tasks for the 9 number keys
Task macros ready for users who want to configure their own extra tasks
2015-10-16 13:09:58 +01:00
Martin Kemp
0f68e48a7b Merge pull request #665 from cmderdev/martiuk-dev
Build from behind proxy & appveyor
2015-10-16 11:02:33 +01:00
Martin Kemp
46fed27096 Build behind proxy and appveyor.
Fixes #79. Uses Download-File function from d654a53ec43038c42344f9cdbe0abc5b8ff9b387

Create appveyor.yml

Should send build notifications to gitter as well.

Adds appveyor build status badge.

Always compile launcher for AppVeyor

This is to catch any errors that may be caused by changes to the launcher or any outside scripts.
2015-10-16 10:54:43 +01:00
Benjamin Staneck
80bafd165f Merge pull request #667 from Pireax/posh-user-script-fix
Fixed problem with Invoke-Expression
2015-10-15 20:46:03 +02:00
Pireax
1d47a98329 lambda was encoded with UTF-8 without BOM, didn't show properly 2015-10-15 19:57:05 +02:00
Pireax
07180effac Fixed problem with Invoke-Expression 2015-10-15 19:56:38 +02:00
Benjamin Staneck
1e61b858c3 wipe the build dir clean before packing so leftovers don't end up in the release zips 2015-10-15 07:52:05 +02:00
Jack Bennett
7ebfffc9da Remove incorrect charater at start of line. 2015-10-14 19:24:54 +01:00
Jack Bennett
719d598048 Merge branch 'development' of github:cmderdev/cmder into development 2015-10-14 18:52:42 +01:00
Jack Bennett
5e56fbcf38 Merge branch 'development' of github:cmderdev/cmder into development 2015-10-14 18:50:51 +01:00
Benjamin Staneck
5a1aa7e25b add overwrite notice to posh profile, too 2015-10-14 19:50:49 +02:00
Benjamin Staneck
215ba574aa Merge pull request #666 from Pireax/posh-user-script
Add user startup file for powershell
2015-10-14 19:21:22 +02:00
Jack Bennett
45cdfc33f2 Remove the -full build switch. Add a compile example.
To get the functionality of -Full back just supply your own sources.json
with the vendors you wish.
Fix a typo and update the project url.
2015-10-14 18:19:08 +01:00
Pireax
0ab9b74013 Add user startup file for powershell 2015-10-14 18:50:52 +02:00
Benjamin Staneck
f71a1f3903 Update packignore 2015-10-14 15:45:42 +02:00
Benjamin Staneck
fedcee011d fix vim path 2015-10-14 15:35:51 +02:00
Benjamin Staneck
1526bb631f Merge pull request #663 from JanSchulz/fix-startup-file-generation
Fix init.bat generation
2015-10-14 15:19:25 +02:00
Jackbennett
27240995f4 Let developers without VS installed test build scripts
Developers can test the build process without needing to recompile a new
launcher exe. This saves some setup steps to get a new developer started.

Also warn that this build can't be release as by definition it can't be
fully tested.
2015-10-14 13:08:26 +01:00
Jan Schulz
b8f7bde353 Fix init.bat generation 2015-10-14 12:48:14 +02:00
Benjamin Staneck
0051614e4b Update packignore 2015-10-14 05:13:13 +02:00
Benjamin Staneck
d6b54eec24 Merge pull request #612 from JanSchulz/user-startup
Add a user startup file which can be modified
2015-10-13 18:12:27 +02:00
Benjamin Staneck
052ab118e2 Merge pull request #398 from mikesigs/development
Handle quoted paths
2015-10-13 17:52:12 +02:00
Mike Sigsworth
c46eb6a525 Merge remote-tracking branch 'upstream/development' into development
Conflicts:
	bin/alias.bat
2015-10-12 21:32:33 -06:00
Jan Schulz
48259b87ac Add a user startup file which can be modified
Up to now, init.bat would be overwritten when a user updated
Cmder. The new mechanism will create a new (mostly empty) file
for the user to enter commands which will then be executed on
each following startup.
2015-10-12 15:15:33 +02:00
Benjamin Staneck
2a26026749 Update README.md
Update Gitter badge
2015-10-12 14:30:04 +02:00
Benjamin Staneck
d68816bd11 Update readme 2015-10-12 13:29:47 +02:00
Benjamin Staneck
419c785db5 Merge pull request #575 from Bobo1239/enhance-path
Enhance Path in profile.ps1
2015-10-12 13:24:07 +02:00
Benjamin Staneck
c15e3f4ebd Merge pull request #585 from Stanzilla/revert_powershell
Revert "Run PowerShell as default"
2015-10-12 13:23:43 +02:00
Benjamin Staneck
1f75f85b7c Merge pull request #605 from Stanzilla/bumpgit
Converting msysgit support to git-for-windows support.
2015-10-12 13:23:06 +02:00
Benjamin Staneck
4203a8a4ea Merge pull request #653 from vladimir-kotikov/development
Upgrade clink-completions to 0.2.0
2015-10-12 13:11:44 +02:00
Benjamin Staneck
cf8a992e37 Merge pull request #601 from Stanzilla/bump_conemu
⬆️ ConEmu@150816
2015-10-12 13:10:23 +02:00
Benjamin Staneck
cec7fa3398 Merge eec3fd5578 2015-10-12 13:08:16 +02:00
Benjamin Staneck
83c685cdc7 ⬆️ ConEmu to v15.09.13 2015-10-12 13:06:50 +02:00
Benjamin Staneck
24fd027cda Update ConEmo project URL 2015-10-12 13:06:50 +02:00
Benjamin Staneck
df259195ab ⬆️ ConEmu@150816 2015-10-12 13:06:50 +02:00
Malobre
20b8b09419 Add -ExecutionPolicy Bypass to the powershell tasks
Fix issue #483
2015-10-12 13:02:43 +02:00
Thomas Chacko
7bc71010c2 Update .gitignore 2015-10-12 13:02:30 +02:00
Benjamin Staneck
e5eadc766f Merge pull request #543 from malobre/patch-1
Add  `-ExecutionPolicy Bypass` to powershell tasks
2015-10-12 12:53:36 +02:00
Benjamin Staneck
f638e93c21 Merge pull request #548 from thomgit/master
Update .gitignore
2015-10-12 12:53:12 +02:00
Benjamin Staneck
6608e16c3b Merge pull request #634 from Stanzilla/revert_cleanupgit
Revert 8b8f98c
2015-10-12 12:52:39 +02:00
Benjamin Staneck
d979140bb5 Merge pull request #569 from eeree/issue_568
Fixed: 'Enable-GitColors is Obsolete...' warning
2015-10-12 12:52:08 +02:00
Benjamin Staneck
568e2cfcdd Merge pull request #600 from Maximus5/br-xml-location
Use standard path for ConEmu.xml
2015-10-12 12:50:28 +02:00
Jack
a9ee246241 Merge pull request #606 from pyprism/patch-1
New URL to ConEmu now hosted on github.
2015-10-07 13:01:34 +01:00
Jack
d4ee65405d Merge pull request #651 from jkingsman/typos-phrasing
Fix typos and better phrasing.
2015-10-07 13:00:06 +01:00
Jack
3c1aa08313 Merge pull request #652 from jkingsman/patch-2
Make wording clearer
2015-10-07 12:58:22 +01:00
Benjamin Staneck
36291ab789 ⬆️ Git for Windows to v2.6.1.windows.1 2015-10-06 21:16:32 +02:00
Vladimir Kotikov
73c8c0c233 Upgrade clink-completions 2015-10-06 21:45:32 +03:00
Jack Kingsman
61a9b83c42 Make wording clearer 2015-10-02 19:06:18 -07:00
Jack Kingsman
5bcddd6b44 fix typos and better phrasing 2015-10-02 18:58:55 -07:00
Benjamin Staneck
32cd7dcb58 ⬆️ Git to v2.6.0.windows.1 2015-09-30 20:35:13 +02:00
Benjamin Staneck
b40b0067c0 ⬆️ Git to v2.5.3.windows.1 2015-09-23 20:51:53 +02:00
Benjamin Staneck
4edec1675a update to 2.5.2 release 2 2015-09-16 06:18:29 +02:00
Benjamin Staneck
4ed35fe110 Revert 8b8f98c
Breaks Git: #503 #521, because git <command> actually uses git-<command>.
2015-09-11 23:51:10 +02:00
Benjamin Staneck
583109b695 update to 2.5.2 2015-09-11 22:53:21 +02:00
Benjamin Staneck
f783cd8add fix readme 2015-09-05 00:04:51 +02:00
Benjamin Staneck
6952d602d2 update to 2.5.1
https://github.com/git-for-windows/git/releases/tag/v2.5.1.windows.1
2015-09-02 19:50:44 +02:00
Maximus5
eec3fd5578 Backup and restore ConEmu.xml on ./build.ps1 2015-09-01 20:09:17 +03:00
Maximus5
7c907a5174 Use standard path for ConEmu.xml 2015-09-01 20:09:17 +03:00
Martin Kemp
30f7847852 Merge pull request #619 from Stanzilla/bump_clink
Update clink to 0.4.5
2015-09-01 13:10:54 +01:00
Benjamin Staneck
801a4ac901 update readme 2015-08-31 05:05:16 +02:00
Benjamin Staneck
143e659187 ⬆️ clink to 0.4.5 2015-08-31 04:48:46 +02:00
Benjamin Staneck
7fd43b939b delete our own, now obsolete agent launcher 2015-08-31 04:40:10 +02:00
Benjamin Staneck
5ce077a74a call git's own ssh-agent script instead of our own 2015-08-28 02:53:49 +02:00
Benjamin Staneck
fc85915b2c git 2.5 packages the unix commands in <git>/usr/bin instead of <git>/binso add that to the path, too. 2015-08-28 02:47:02 +02:00
Ashutosh Das
63d35a9760 Update README.md 2015-08-24 06:38:11 +06:00
Benjamin Staneck
373a58e1e6 forgot one 2015-08-23 20:21:45 +02:00
Benjamin Staneck
3e06fcbf07 First step at converting msysgit support to git-for-windows support. 2015-08-23 20:09:06 +02:00
Martin Kemp
ea1edda966 Merge remote-tracking branch 'bliker/development' into development 2015-08-18 23:56:11 +01:00
Martin Kemp
2857e4d6bc Merge remote-tracking branch 'bliker/master' into development 2015-08-18 23:55:44 +01:00
Benjamin Staneck
ecbf7a01d1 Revert "Run PowerShell as default"
This reverts commit aaf70a4d9fe8b23797e0fdbeb81c1ebe0405e1da.
2015-08-09 14:16:24 +02:00
Martin Kemp
dc9263a11c Merge pull request #578 from Stanzilla/development
update VS to 2015 release version and switch to /MT for static linking
2015-08-04 14:55:02 +01:00
Benjamin Staneck
8659b9c6ed update VS to 2015 release version and switch to /MT for static linking 2015-08-04 15:00:32 +02:00
Boris Zhou
316a42b8f9 Enhance Path in profile.ps1 2015-08-03 16:06:41 +02:00
Kamil Szymański
676297c0d4 Fixed: 'Enable-GitColors is Obsolete...' warning 2015-07-31 21:45:32 +02:00
Thomas Chacko
3aff065210 Update .gitignore 2015-07-09 11:42:53 +05:30
Malobre
f6a0447a9a Add -ExecutionPolicy Bypass to the powershell tasks
Fix issue #483
2015-07-01 12:55:20 +02:00
Martin Kemp
70b0615b34 Merge pull request #517 from bondz/patch-1
Remove depreciated Enable-GitColors in posh-git
2015-06-05 12:02:50 +01:00
Bond
2a1a736ceb Remove depreciated Enable-GitColors
The function Enable-GitColors is depreciated in dahlbyk/posh-git@4e778e2480 and should be removed here as well.
2015-06-04 23:25:09 +01:00
Martin Kemp
40fd96b135 Remove leftover history.
This is not needed and confuses users.
2015-05-20 10:55:17 +01:00
Martin Kemp
271b3ea876 Avoid commiting the wrong dlls 2015-05-19 18:37:34 +01:00
Martin Kemp
c4873c6e58 Revert "Update to VS2015."
This reverts commit 53efab127ef0eff899910bc638cd2de074d86cfe.
2015-05-19 15:48:04 +01:00
Martin Kemp
29d1378d7a Add git to PATH (while in Cmder)
Add bundled git to PATH if we can't find git on PATH.
2015-05-19 15:47:06 +01:00
Martin Kemp
c15e29ecb3 $PSScriptRoot compatibility
$PSScriptRoot is not available on PS version 2 or below.

So we'll set it ourselves.
2015-05-19 15:44:32 +01:00
Martin Kemp
c38f6b3a89 Merge branch 'master' into development 2015-05-17 23:45:07 +01:00
Martin Kemp
99ea376713 v1.2 2015-05-17 23:44:51 +01:00
Martin Kemp
2051078cc6 Merge pull request #479 from bliker/development
Fix cleanup script.
2015-05-17 23:21:23 +01:00
Martin Kemp
6c5034164c Fix cleanup script. 2015-05-17 22:42:00 +01:00
Martin Kemp
4651201b6c Merge branch 'master' of https://github.com/bliker/cmder 2015-05-17 22:26:31 +01:00
Martin Kemp
3966ed9433 Merge branch 'development' 2015-05-17 22:25:08 +01:00
Martin Kemp
2383777418 Merge conflict 2015-05-17 22:24:38 +01:00
Martin Kemp
a18320c938 Improve warning text when posh-git is missing. 2015-05-17 22:13:23 +01:00
Martin Kemp
83a853bd52 Fix build script. 2015-05-17 22:13:04 +01:00
Martin Kemp
53efab127e Update to VS2015. 2015-05-17 22:12:49 +01:00
Martin Kemp
4de72b68dd Update ConEmu.xml for latest update. 2015-05-17 22:11:10 +01:00
Martin Kemp
f196375f53 Update to latest ConEmu. 2015-05-17 22:08:35 +01:00
Martin Kemp
696a0d7622 Merge branch 'development' of https://github.com/MartiUK/cmder into development 2015-04-30 11:49:25 +01:00
Martin Kemp
7217d5c536 Merge pull request #451 from MartiUK/development
Update sources.json
2015-04-02 13:03:22 +01:00
Martin Kemp
e549f88b00 Removed extra quotation mark 2015-04-02 12:02:34 +01:00
Martin Kemp
687fb72397 Update sources for 1.2
Updated sources.
2015-04-02 12:00:44 +01:00
Martin Kemp
a5968d3d49 Merge pull request #2 from bliker/development
Run PowerShell as default
2015-03-26 10:21:54 +00:00
Martin Kemp
aaf70a4d9f Run PowerShell as default 2015-03-25 15:11:35 +00:00
Martin Kemp
717b9f990e Write vendor version to .cmderver file
For a future feature.
2015-03-25 15:09:23 +00:00
Martin Kemp
4f0e51c6a8 Merge pull request #441 from Jackbennett/ps-register-cmder
Helper function using powershell to register the cmder context menu
2015-03-25 15:08:14 +00:00
Martin Kemp
520e7cfc0d Merge pull request #440 from Jackbennett/proper-git-check
git and Posh-git check
2015-03-25 15:07:51 +00:00
Jack Bennett
84dc9c5f0c Helper function using powershell to register the cmder context menu
Function must be run as an administrator since we're touching the
registry.

A neat by product is that users can now re-run this command and set custom
icons.

I'm not sure what the `%V` command does but it's not opening in the targeted
folder as yet.

The output is a little ugly at rpesent.
2015-03-25 14:34:25 +00:00
Jack Bennett
c466698d6b Only write VCS Status if we're in a git repo
In an effort to speed up the prompt we will only call write-vcsstatus if
there is a .git folder in the current or any parent path recursively.

As this function is called every new prompt line it needs to be as fast as
possible.
2015-03-25 12:29:10 +00:00
Jack Bennett
18fc5e37c7 Check that git can really be used as well as posh-git
Explicitly call `import posh-git` because it doesn't have a module
manifest thus powershell can't autoload it when using a cmdlet.

At present the cmder repo doesn't try to download posh-git so it might be
missing from the users session.
2015-03-25 12:22:07 +00:00
Martin Kemp
2292348f95 Merge pull request #438 from vladimir-kotikov/development
Improves performance of prompt filtering
2015-03-22 02:46:52 +00:00
Vladimir Kotikov
2855a699a1 Removes error messages when getting repo status
When `get_git_status` fails the inner `os.execute` call print error
message to console. This removes all error messages fro such cases.
2015-03-22 00:42:40 +03:00
Vladimir Kotikov
d8c9d32cb2 Improve performance of git and mercurial prompt
This implements custom logic to detect if we're inside of working tree
and skips os calls if not. This will improve performance of prompt
handling, especially for mercurial prompt.
2015-03-22 00:42:40 +03:00
Martin Kemp
522a75835f Merge pull request #434 from vladimir-kotikov/development
Preview PR for including external completions into Cmder
2015-03-20 21:38:06 +00:00
Vladimir Kotikov
b75b3239e7 Adds clink-completions as an external dependency
* Adds package to sources.json
* Merges all cmder's lua modules into one -> cmder.lua to exclude future conflicts
* Adds external modules loading logic
2015-03-20 22:29:34 +03:00
Martin Kemp
69eb956d65 Merge pull request #432 from Jackbennett/ps-revert-newline
Revert new line from commit dc834cc28f
2015-03-18 21:14:39 +00:00
Martin Kemp
6c074693a4 Merge pull request #431 from Jackbennett/ps-profile-modulePath
Leverage the Module Autoload path and save doing it ourselves.
2015-03-18 21:14:20 +00:00
Jack Bennett
dfa58acccc Revert new line from commit dc834cc28f
This matches how cmd looks in conemu for cmder and PS seems to add some
padding around command output so I really don't see what the extra new
line is doing.

Saving dat precious vertical space.
2015-03-18 15:47:01 +00:00
Jack Bennett
e811c60ab2 Leverage the Module Autoload path and save doing it ourselves.
This should be faster too as we won't automatically import all functions
to the session. Powershell now knows where to look before declaring they
don't exist.
2015-03-18 15:33:55 +00:00
Martin Kemp
004761b32f Delete all except git.exe, reducing final size
Using git-$COMMAND is no longer supported anyway.
2015-03-18 14:55:50 +00:00
Martin Kemp
8b8f98c078 Merge pull request #429 from Jackbennett/mend-build
Fix build script removing a trailing comma. Download into a temp folder.
2015-03-18 14:54:55 +00:00
Martin Kemp
58a89e779b Merge pull request #430 from Jackbennett/native-ps
Adds support for PS 4.0 native hash command to remove a dependency
2015-03-18 14:54:31 +00:00
Jack Bennett
aad729eb87 Adds support for PS 4.0 native hash command to remove a dependency
PS 4.0 requires installing WMF 4.0 on windows 7, 8, Server 2012
Native on 8.1, Server 2012r2
2015-03-18 13:50:00 +00:00
Jack Bennett
2c184f8721 Fix build script removing a traling comma. Download into a temp folder.
I made a bad patch with the parameters syntax. I'm making the temp files
go into a subfolder as if the build script stop theres a .tmp that could
be accidentially tracked by source control.
2015-03-18 13:21:43 +00:00
Martin Kemp
3c289b455b Initial git cleanup PS
It's not functional, yet.
2015-03-18 12:28:34 +00:00
Martin Kemp
66d5170514 Remove unnecessary binaries.
Just remember to add them in to the package.
2015-03-18 11:12:30 +00:00
Martin Kemp
b25e46d7a7 Merge pull request #364 from narnaud/pr-local-git
Prefer user installed git over cmder one.
2015-03-18 11:00:44 +00:00
Martin Kemp
60d3c67194 Merge pull request #324 from cgrail/patch-2
Border less window mode
2015-03-18 10:57:55 +00:00
Martin Kemp
34947c4f0f Fix the /d flag
Was deleted in last commit.
2015-03-18 10:56:25 +00:00
Martin Kemp
3b637e9866 Merge branch 'glucas-alias-show' into development 2015-03-18 10:54:44 +00:00
Martin Kemp
efe244b5fa Resolved conflict in alias.bat merge 2015-03-18 10:54:22 +00:00
Martin Kemp
aa9cb38672 Change clink matching style to default. Fixes #218
Users should change this to their preference, this is reverting it to
how it should be "out of the box".
2015-03-18 10:37:08 +00:00
Martin Kemp
7169f49fff Merge pull request #311 from sescandell/fix-adminlaunch
FIX CMDER_ROOT for admin launch
2015-03-18 10:35:15 +00:00
Martin Kemp
021263d81c Merge pull request #273 from LeoColomb/master
Fixes small Powershell' loader issues
2015-03-18 10:33:58 +00:00
Martin Kemp
5dbb84d78b Build XP Compatible Binaries
Because people still use an operating system from 2001.
2015-03-18 10:16:40 +00:00
Kody Brown
1cea2c3278 Merge remote-tracking branch 'upstream/development' into development 2015-03-17 14:42:03 -06:00
Kody Brown
187156487e Added code to check for the existence of a customized ini file named ConEmu-%COMPUTERNAME%.ini, before checking for the standard ini file ConEmu.ini. 2015-03-17 14:39:27 -06:00
Martin Kemp
c0dcce4880 Merge pull request #422 from ragekit/development
Added git shell task.
2015-03-16 12:14:23 +00:00
RageKit
4b2590bfd3 Added git shell task. 2015-03-15 14:00:46 +01:00
Martin Kemp
df4e83de43 Merge pull request #410 from Jackbennett/patch-1
Install steps clarity
2015-02-26 16:51:12 +00:00
Jack
4a681bbc60 Install steps clarity
In reference to #389 I thought I'd just clear up this instruction even more.
2015-02-26 11:01:10 +00:00
Martin Kemp
1ae1194555 Merge pull request #406 from Jackbennett/development
Use a -Full parameter to download all sources rather than the minimum
2015-02-25 16:38:15 +00:00
Martin Kemp
e566589871 Merge pull request #407 from Jackbennett/update-sources
Update Conemu <preview release>, update clink 4.4
2015-02-25 16:35:50 +00:00
Jack Bennett
a0d87e8368 Update Conemu <preview realease>, update clink
Lets move to the much newer ConEmu preview release.
Pulling the newer clink also
2015-02-25 15:14:33 +00:00
Jack Bennett
31c169a761 Use a -Full parameter to download all sources rather than the minimum
Use a full switch to indicate if we want to go and pull a copy of git
since its huge and if a developer is cloning the repo to work on and needs
to build it they already have git.
2015-02-25 13:58:11 +00:00
Martin Kemp
af30a90ef0 Merge pull request #401 from utek/hg_prompt
Adding mercuial prompt
2015-02-24 12:49:25 +00:00
Łukasz Bołdys
8a885167c3 mercurial prompt 2015-02-23 13:23:39 +01:00
Mike
0311e129ca Handle quoted paths
I was annoyed at having to use short paths all the time in my aliases. It wasn't until I found a command that actually refused to work with a shortpath (running iisexpress.exe) I was determined to find a solution. 

It appears that the reason the quoted paths weren't working was due to the ::validate alias stuff. The for command would stumble on a quoted path, arguing that /foo was unexpected...

The additions on lines 7-8 wrap the input in quotes and then strip the inner quotes. This variable is used in the for loop (instead of %*) for validating the alias. So long as the alias is valid (contains no spaces) then the existing method of appending the new alias to the aliases file works just fine because it still uses %*.
2015-02-22 23:48:33 -06:00
Martin Kemp
8275f005b2 Added 2 to 2013
We aren't living in the past.
2015-02-19 10:37:43 +00:00
Martin Kemp
b216079966 Merge pull request #390 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-02-12 10:34:13 +00:00
The Gitter Badger
c3d1ccba79 Added Gitter badge 2015-02-12 10:31:44 +00:00
Martin Kemp
7834fe0a26 Merge pull request #378 from asika32764/patch-2
Support UTF-8 file list
2015-01-28 17:46:43 +00:00
Simon Asika
64aaa96bfb Support UTF-8 file list 2015-01-29 00:57:17 +08:00
Martin Kemp
a708fff824 Merge pull request #374 from CumpsD/patch-1
Updated vendor references
2015-01-21 23:44:16 +00:00
Martin Kemp
f78e24094b Merge pull request #308 from SheGe/feature/psprompt
Lambda color in powershell was changed to DarkGray
2015-01-21 23:41:00 +00:00
Martin Kemp
d3e85417ce Update ConEmu.xml
Fixes missing 'PowerShell as Admin' Task
2015-01-21 23:40:09 +00:00
Martin Kemp
33810f993f Change PowerShell as admin macro
'PowerShell' and 'PowerShell as Admin' task were conflicting as the same
macro `Ctrl + Alt + 2` but the 'As Admin' task is set to `Ctrl + Alt +
3`
2015-01-21 23:24:10 +00:00
David Cumps
ed7a20cec2 Updated vendor references
- Upgrade to git is needed for a security issue in 1.9.4
- Upgrade of ConEmu is needed for High DPI support
2015-01-21 22:25:01 +01:00
Nicolas Arnaud-Cormos
45ff72b48b Prefer user installed git over cmder one.
Also set SVN_SSH (pointing to git ssh) so we can use git svn on
ssh svn repositories.
2015-01-12 22:17:30 +01:00
Martin Kemp
f5ce49b8b3 Merge pull request #353 from Celeo/master
Updating to msysgit 1.9.5
2015-01-08 22:09:52 +00:00
Martin Kemp
17b4525e60 Merge pull request #362 from vladimir-kotikov/clink-update
Update clink to latest (0.4.3) version
2015-01-08 22:09:20 +00:00
Martin Kemp
6c69536295 Merge pull request #358 from vladimir-kotikov/alias-rework
Rework `alias` command to not to use external tools
2015-01-08 22:08:11 +00:00
Vladimir Kotikov
b831c4569f Updates clink to latest (0.4.3) version 2015-01-09 00:29:57 +03:00
Vladimir Kotikov
dba00b9175 Adds info about command options 2015-01-08 20:43:45 +03:00
an-selm
01849c3365 Fix quotation for aliases variable 2014-12-24 22:24:54 +03:00
an-selm
30ddd53288 alias command without arguments now outputs all defined aliases 2014-12-24 22:24:47 +03:00
an-selm
0ae09e9a4a Add /d option to alias command that removes existing alias
* Remove separate unalias script and add `unalias` alias ^) for `alias /d`
2014-12-24 22:24:42 +03:00
an-selm
e224d133f3 Rework alias command to handle duplicates
* Removed unnecessary perl script
2014-12-24 22:24:35 +03:00
Matt Boulanger
503ddcb895 Updating to msysgit 1.9.5
https://github.com/blog/1938-vulnerability-announced-update-your-git-clients

Updating to msysgit 1.9.5
2014-12-19 19:41:55 -08:00
Martin Kemp
11753fdd2a Merge pull request #352 from ogrim/sshagent
Adding script to enable SSH-agent #193
2014-12-18 11:42:10 +00:00
Aleksander Skjæveland Larsen
ad4a2103ea Support %HOME% variables containing spaces 2014-12-18 10:30:14 +01:00
Aleksander Skjæveland Larsen
6106a555fe Adding info on SSH agent to README.md 2014-12-17 19:15:54 +01:00
Aleksander Skjæveland Larsen
75707f9a65 Adding script to enable SSH-agent #193
Adding agent-script to bin-folder and a commented out call in init.bat
2014-12-17 14:32:40 +01:00
Léo Colombaro
dc834cc28f Fixes Powershell loader issues
* Fix modules order required
* Add newline before prompt
* Fix color name
2014-12-01 20:40:07 +01:00
Martin Kemp
bbbda146b8 Merge pull request #326 from kohenkatz/development
changes copied from PR#256
2014-11-21 10:48:13 +00:00
Moshe Katz
e5531537ad changes copied from 0f295234cc and 18fea0ac03 2014-11-20 11:08:37 -05:00
Martin Kemp
44e6184487 Update msysgit & conemu
Updated links to latest versions of msysgit and conemu; 1.9.4-preview20140929 and 141117 respectively.
2014-11-20 11:29:03 +00:00
cgrail
57ec099e0f Border less window mode
Copy of the https://github.com/bliker/cmder/pull/320

Now for the development branch.

Disable ugly grey windows borders. Especially beautiful for the Quake mode.
2014-11-19 11:34:01 -08:00
Martin Kemp
b700016a15 Merge pull request #313 from glucas/unalias-command
Add an unalias command
2014-11-11 17:54:47 +00:00
Greg Lucas
469d299ae8 Update alias.bat to show an existing alias
When calling alias.bat with a single argument, check if that argument is
an existing alias and if so, display it.

Otherwise, proceed as before.
2014-11-11 12:13:31 -05:00
Greg Lucas
79fbae0854 Add an unalias command
Add bin/unalias.bat to perform the opposite action of alias.bat.
Removes a given alias from the current shell environment and the
aliases file.

Fixes issue #281.
2014-11-11 10:40:57 -05:00
Martin Kemp
f4bca30e11 Merge pull request #312 from bliker/revert-256-master
Revert "Add single mode support."
2014-11-06 11:48:37 +00:00
Martin Kemp
b067d48f6c Revert "Add single mode support." 2014-11-06 11:48:00 +00:00
Martin Kemp
188305426f Merge pull request #256 from TheCjw/master
Add single mode support.
2014-11-06 11:28:11 +00:00
Stéphane
ea3863bc6b FIX CMDER_ROOT for admin launch
When launching a cmd in admin mode, if %ConEmuDir%\..\.. contains any space, it breaks the scripts.
Thanks to this patch, the path is correctly defined now.
2014-11-04 12:26:25 +01:00
Szymon Sito
c8193ea368 Lambda color in powershell was changed to DarkGray 2014-10-29 21:27:30 +01:00
Martin Kemp
25991ac6a1 Merge pull request #304 from glucas/pull-alias-reload
Add option to reload aliases from file
2014-10-25 21:40:49 +01:00
Greg Lucas
717b556d7a Add option to reload aliases from file
Add a quick way to reload the aliases file in the current shell using:

    alias /reload
2014-10-24 15:39:37 -04:00
Martin Kemp
20c9ba207d Merge pull request #300 from melku/clean_aliases_script
Clean aliases script
2014-10-23 21:20:38 +01:00
Martin Kemp
d6edd152ad Merge pull request #299 from robgithub/development
Adding history alias
2014-10-23 20:35:55 +01:00
Rob
6a241b5e7c Adding history alias
simple alias that operates as history command
2014-10-23 18:59:58 +01:00
Martin Kemp
373e1ef36d Merge pull request #298 from LeoColomb/patch-1
Fixes the ambiguity about notice and parameter
2014-10-23 17:48:54 +01:00
Léo Colombaro
5b91665040 Fixes ambigius about notice and parameter 2014-10-23 18:45:54 +02:00
Martin Kemp
e95127268e Don't ignore icons when packing (Fixes #292)
Icons were being ignored and causing the `/REGISTER ALL *` command to
give the context menu option a broken image..
2014-10-23 10:38:36 +01:00
Martin Kemp
1067ca0fc6 Create the contributing file.
Something for potential contributors.
2014-10-23 10:15:43 +01:00
Martin Kemp
9c29adfe68 Merge pull request #296 from brunobatista/patch-1
Fixed small issue in README
2014-10-23 09:51:15 +01:00
Bruno Batista
312fec2550 Fixed small issue in README 2014-10-22 23:24:13 -02:00
melchior
247c65ef05 Add an error message if an alias is detected as invalid 2014-10-16 01:09:24 -04:00
melchior
45c9742ea5 remove lua version 2014-10-16 01:03:19 -04:00
melchior
5bd0c29c25 Convert the clean alias script to perl 2014-10-16 01:00:59 -04:00
melchior
1e2f954724 Add a lua script to clean the aliases file
Note that cmder doesn't ship with lua. Next step is converting this
script to perl, which ships with msysgit.
2014-10-16 00:20:36 -04:00
Léo Colombaro
f5eb662783 Delete PsGet.psd1 2014-09-17 15:02:31 +02:00
Martin Kemp
e363139b30 Merge pull request #271 from LeoColomb/master
Add custom loader for Powershell & improve its implementation
2014-09-17 12:04:40 +01:00
Martin Kemp
0e5f070347 Merge pull request #272 from bliker/master
Update Dev Branch
2014-09-17 12:03:54 +01:00
Léo Colombaro
98350e14e8 Add custom loader for Powershell, improve its implementation in Cmder
Fixes #104, fixes #53, fixes #65 (my bad), related to #136, and should
fix #139
2014-09-17 09:55:15 +02:00
TheCjw
18fea0ac03 Update prompt text 2014-09-04 23:41:39 +08:00
TheCjw
0f295234cc Adding single mode support. 2014-09-04 23:29:51 +08:00
Martin Kemp
dcc9f5e59a Merge pull request #253 from bliker/revert-243-fix-home
Revert "Start in the HOME folder."
2014-09-02 16:24:13 +01:00
Martin Kemp
73795739f0 Revert "Start in the HOME folder." 2014-09-02 16:22:44 +01:00
Martin Kemp
67b963b7ee Merge branch 'development' 2014-08-31 12:28:04 +01:00
Martin Kemp
93589b1c8d 1.1.4.1 launcher build 2014-08-31 12:27:37 +01:00
Martin Kemp
a6f35d6373 Bump version 2014-08-31 12:16:51 +01:00
Martin Kemp
bbcabfb730 Merge branch 'development' 2014-08-31 12:03:13 +01:00
Martin Kemp
75801cbdc8 Merge branch '1.1.4.1' into development 2014-08-31 12:01:51 +01:00
Martin Kemp
9822fa844e Ignore version files.
Version files don't need to be tracked.
2014-08-30 16:47:21 +01:00
Martin Kemp
a9f5d552bc Reintroduce VS2013 dlls.
Fixes #246.
2014-08-30 16:46:22 +01:00
Martin Kemp
63120b8998 Merge pull request #243 from narnaud/fix-home
Start in the HOME folder.
2014-08-28 15:02:37 +01:00
Martin Kemp
8cdce27653 Merge pull request #249 from narnaud/fix-build
Ensure-Exists is necessary for build.ps1, add it back.
2014-08-28 12:59:32 +01:00
Nicolas Arnaud-Cormos
a5691285ec Ensure-Exists is necessary for build.ps1, add it back. 2014-08-28 13:34:59 +02:00
Nicolas Arnaud-Cormos
3223a0391a Start in the HOME folder. 2014-08-28 13:09:30 +02:00
Martin Kemp
a39c632d71 Merge pull request #166 from glucas/run_as_admin
Find cmder files when running as Administrator.
2014-08-27 09:58:14 +01:00
Martin Kemp
8c6847ee0d Merge branch 'development' 2014-08-27 00:03:47 +01:00
Martin Kemp
f66f598fca Increment version 2014-08-27 00:03:06 +01:00
Martin Kemp
de8d2d22f6 Fix the build 2014-08-26 23:52:49 +01:00
Martin Kemp
72c045dc2d Merge pull request #244 from narnaud/fix-clinkversion
Fix clink version
2014-08-26 12:37:52 +01:00
Nicolas Arnaud-Cormos
5ee2fb2a8d Fix clink version 2014-08-26 13:20:38 +02:00
Martin Kemp
2ba40773b3 Merge pull request #241 from narnaud/fix-vim
The latest msysgit comes with vim 7.4.
2014-08-26 08:51:57 +01:00
Nicolas Arnaud-Cormos
662663813e The latest msysgit comes with vim 7.4. 2014-08-26 05:50:07 +02:00
Martin Kemp
2ec650557e Merge pull request #199 from Jackbennett/docs-integration
New section for user help with an integration feature of Cmder.
2014-08-18 16:09:43 +01:00
Martin Kemp
932e517c2f Merge pull request #208 from MartiUK/master
Bump versions
2014-08-04 22:13:33 +01:00
Martin Kemp
6a9d6dd37e bump versions again 2014-08-04 22:13:23 +01:00
Martin Kemp
e9707b2022 Bump versions 2014-06-19 08:27:44 +01:00
Jack Bennett
ef91a9c272 New section for user help with an integration feature of Cmder. 2014-05-16 19:37:46 +01:00
Samuel Vasko
9939b1ba7f CMDER_ROOT variable is now also in path
Now you can call cmder /whatever from cmder shell
2014-04-29 15:32:56 +02:00
Samuel Vasko
c032b5f8a0 Using verbose output 2014-04-28 13:22:22 +02:00
Samuel Vasko
9ce90d337b Using earlier version of msvcp and vcr 2014-04-28 13:22:22 +02:00
Martin Kemp
2a722ee3f3 Remove XP Launcher from TODO list. 2014-04-23 09:29:19 +01:00
Martin Kemp
3cfd032007 Merge pull request #180 from CoolOppo/patch-1
Update Clink URL
2014-04-14 08:03:47 +01:00
CoolOppo
21f0f1dbb2 Update Clink URL
The current Clink URL takes you to the old page on Google
2014-04-13 14:43:05 -04:00
Samuel Vasko
38c13a7f4b Merge branch 'master' of https://github.com/bliker/cmder 2014-04-11 14:31:44 +02:00
Martin Kemp
97980f5f34 XP compatible launcher 2014-04-11 14:31:16 +02:00
Martin Kemp
e3e1effef3 Disable click 2014-04-11 14:09:22 +02:00
Samuel Vasko
2542358965 Color scheme from upstream
Before the monokai in the Conemu was different and not matching
colors correctly. Now that was fixed so no need to keep ours.
2014-04-11 14:02:56 +02:00
Samuel Vasko
6b37074dd5 Reordered the PATH, closing #37
Now the msysgit is being loaded first, so find will invoke
the correct and better version
2014-04-11 14:02:34 +02:00
Samuel Vasko
1b7e647b4b Merge pull request #177 from Jackbennett/7zip
Try to find 7-zip if it's installed before an error.
2014-04-11 13:56:32 +02:00
Jack Bennett
e6618f21a3 Try to find 7-zip if it's installed before an error.
Create an alias to 7z.exe in the script scope.
2014-04-10 18:34:31 +01:00
Martin Kemp
56a9a2036f Disable left click cursor change by default
Fixes #109
2014-04-10 14:51:03 +02:00
Samuel Vasko
f6c3a0c390 Merge pull request #152 from bliker/scripts
New build and pack scripts
2014-04-10 14:44:39 +02:00
Samuel Vasko
46f6f677dc Silencing the noise 2014-04-10 14:42:20 +02:00
Samuel Vasko
d5d8b0944b Removed old ruby scripts 2014-04-10 13:13:20 +02:00
Samuel Vasko
8e676b3fc7 Added history files 2014-04-10 13:12:38 +02:00
Samuel Vasko
b9379b3ae2 Computing hashes 2014-04-10 13:11:41 +02:00
Samuel Vasko
db49c14422 Fixed paths 2014-04-10 13:11:25 +02:00
Samuel Vasko
46bebee94c More recent package versions 2014-04-10 12:57:45 +02:00
Martin Kemp
691000fa15 Merge pull request #159 from kohenkatz/fix-context-menu
Add registration for right-click on folder item; Add context-menu icon
2014-04-10 11:45:39 +01:00
Samuel Vasko
df064ec4be Merged 2014-04-10 12:43:34 +02:00
Samuel Vasko
e1c60104ba Updated build and pack Powershell 2014-04-10 12:41:19 +02:00
Martin Kemp
3a8daf57f7 Merge pull request #167 from schlamar/patch-1
Only cd to $HOME if started in CMDER_ROOT.
2014-03-19 19:50:14 +00:00
Marc Schlaich
fa33052096 Only cd to $HOME if started in CMDER_ROOT. 2014-03-19 12:25:41 +01:00
Martin Kemp
fe31accba4 Merge pull request #165 from glucas/use_home
Allow for existing HOME variable
2014-03-14 10:23:18 +00:00
Greg Lucas
3b053f8848 Remove extraneous quotes.
Extra quotes in previous commit caused PATH to be set incorrectly in admin
shell.
2014-03-13 12:36:07 -04:00
Greg Lucas
c76950293e Find cmder files when running as Administrator.
When starting a shell as Administrator, the CMDER_ROOT variable is
not propagated from the parent (non-Admin) environment.
Fix this by using paths relative to %ConEmuDir%.

Fixes issue #94.
2014-03-13 11:48:50 -04:00
Greg Lucas
ea22c658b7 CD to HOME by default. 2014-03-11 15:12:35 -04:00
Greg Lucas
303bfda521 Use HOME if already set. 2014-03-11 15:08:24 -04:00
Samuel Vasko
1f8b0c009a Merge pull request #162 from Jackbennett/scripts
Minor changes for #152
2014-03-05 16:48:01 +01:00
Jack Bennett
cf74dba780 merging in new additions to the pull request 2014-03-05 14:49:23 +00:00
Jack Bennett
a9bfd2d2a2 Silencing the output from 7z so I can actually see what else the script is
doing.
Adding some clearer dubugging info for cleaning up folders
2014-03-05 14:00:35 +00:00
Samuel Vasko
b0b8eaef1e Error checking for 7z extraction 2014-03-05 14:31:01 +01:00
Jack Bennett
5243d8bb8d In powershell you pretty much never want to use Write-Host, its output can't be redirected along the pipeline. You couldn't pipe this output to a logfile. 2014-03-05 13:28:18 +00:00
Jack Bennett
1225d410fa Merge branch 'scripts' of https://github.com/bliker/cmder into scripts
Conflicts:
	scripts/build.ps1
2014-03-05 12:39:33 +00:00
Samuel Vasko
c661b1f300 Removed unused function 2014-03-05 12:08:26 +00:00
Samuel Vasko
4c1f96c51d Adjusted the build script behavior
Removed some absolute path, and refactored the code so
it handles the nested folder archives
2014-03-05 12:08:24 +00:00
Samuel Vasko
f4b6d8f9a8 Refactored mail download loop, better error handling 2014-03-05 11:22:58 +01:00
Samuel Vasko
0314ee5d46 Removed unused function 2014-03-02 22:04:58 +01:00
Samuel Vasko
6a761a88c1 Adjusted the build script behavior
Removed some absolute path, and refactored the code so
it handles the nested folder archives
2014-03-02 22:00:04 +01:00
Moshe Katz
447be262f8 A better way to find string length 2014-02-27 18:44:46 -05:00
Moshe Katz
371ffbc069 Add registration for right-click on folder item; Add context-menu icon
Existing code registered right-click only for blank areas of the
Explorer window.  This change adds a menu item for right-clicking on a
folder in the file list.
Also adds the program's icon to help find it in a crowded context menu.
2014-02-27 18:34:37 -05:00
Samuel Vasko
6d0d93e0fd Merge pull request #157 from Jackbennett/scripts
Getting the build script to a working state
2014-02-26 22:29:31 +01:00
Jack Bennett
b4a264b1bc This commit amends far more than I would have liked to.
working script will;
Remove existing folders named in the sources
Download the packages listed in sources.json
Extracts the above packages
deletes the downloaded package
2014-02-26 16:46:23 +00:00
Jack Bennett
3bd0fe517f Need to use an optional package field;
incase url's that don't put the file in the url.
2014-02-26 16:42:48 +00:00
Samuel Vasko
83cd726a41 First sources.json draft 2014-02-24 17:55:34 +01:00
Samuel Vasko
b30056c4b3 First draft of new build script 2014-02-24 17:33:14 +01:00
Samuel Vasko
7688823886 Checking for git and clink 2014-02-18 15:59:44 +01:00
Samuel Vasko
878499cc0b Added bash 2014-02-02 19:08:59 +01:00
Samuel Vasko
0f118fe42d Merge pull request #125 from saaguero/patch-1
Ability to change Font Size using Ctrl+MouseWheel
2014-01-31 08:27:58 -08:00
Samuel Vasko
f719f9d51f Merge pull request #98 from jcheng31/patch-1
Update fast new tab shortcut in README.
2014-01-31 08:27:01 -08:00
Santiago Agüero
86d77b9e6b Ability to change Font Size using Ctrl+MouseWheel 2014-01-28 18:10:15 -02:00
Martin Kemp
937df38131 Todo list & bonus alias
Added todo list and added an alias.
2014-01-21 23:48:41 +00:00
Samuel Vasko
4120875e33 bump version 2014-01-02 21:23:40 +01:00
Samuel Vasko
c91f8ac461 Conditional delete 2013-12-31 16:12:12 +01:00
Samuel Vasko
c43ad3cb40 Cleanup of the cleanup file
Moved the cleanup to another branch
2013-12-31 15:51:03 +01:00
Jerome Cheng
e0540e43da Update new tab shortcut in README. 2013-12-26 16:11:11 +08:00
Samuel Vasko
cfa0bc9a26 Merge branch 'master' of https://github.com/bliker/cmder 2013-12-24 20:45:56 +01:00
Samuel Vasko
4ac8f5ad82 keep the launcher for winxp 2013-12-24 20:45:43 +01:00
Samuel Vasko
640bdba8bb Merge pull request #88 from sc0tt/master
Make cmd use Cmder icon
2013-12-24 11:42:45 -08:00
Samuel Vasko
88e17fc44a Adding .dlls to git for now 2013-12-24 14:41:36 +01:00
Samuel Vasko
67bdd93c3e Merge pull request #85 from MartiUK/gitcleanup
Git exe Cleanup + some bonuses
2013-12-24 05:38:49 -08:00
Martin Kemp
804126cf7d Merge pull request #2 from sicil1ano/dev
Git directory cleanup ruby script
2013-12-13 10:30:06 -08:00
Scott Adie
94f0ea5c1a Fix Icon
Use the Cmder icon for the application instead of the Cmd.exe icon
2013-12-13 13:27:59 -05:00
Alberto Solano
71513486ee renamed gitcleanup script 2013-12-13 19:09:25 +01:00
Alberto Solano
3aeae2871a added missing next 2013-12-13 19:05:21 +01:00
Alberto Solano
d0e383e5c0 added cleanup script for git directory 2013-12-13 00:49:15 +01:00
Alberto Solano
2c8364ce58 fixed little mistake in vendor/readme 2013-12-13 00:32:22 +01:00
Alberto Solano
fc3422e1ba fixed errors and grammar 2013-12-13 00:32:22 +01:00
Samuel Vasko
72aac17c3e Latest release 2013-12-12 19:18:04 +01:00
Martin Kemp
feec00f233 Merge pull request #1 from MartiUK/master
Remove any ruby implementations of gitcleanup
2013-12-12 04:30:06 -08:00
Martin Kemp
d9a6bb7e5f Remove any ruby implementations of gitcleanup 2013-12-12 12:29:09 +00:00
Martin Kemp
d396dd9d33 Initial commit of gitcleanup.py
Initial commit of gitcleanup.py
2013-12-12 12:24:08 +00:00
Samuel Vasko
4f5a96aec7 whops 2013-12-09 18:52:04 +01:00
Samuel Vasko
cbe2f25dcb Hi there 2013-12-09 18:48:30 +01:00
Samuel Vasko
fcea0b5b49 Real launcher added! :pops champagne: 2013-12-09 18:23:23 +01:00
Samuel Vasko
08e478f7a9 Removed the batch launcher 2013-12-09 18:22:34 +01:00
Martin Kemp
de30ed5424 Initial git cleanup creation 2013-12-09 17:21:47 +00:00
Samuel Vasko
27f0eb2c95 Quick and dirty packaging 2013-12-09 18:17:35 +01:00
Samuel Vasko
394c24eb16 Now also compiles the launcher 2013-12-09 11:24:44 +01:00
Samuel Vasko
d1d8c3ef76 Build and pack now 2013-12-09 01:00:36 +01:00
Samuel Vasko
4744fb1c61 Messages are useless, I always clear them 2013-12-09 00:56:16 +01:00
Samuel Vasko
3c979780f9 handles spaces better, also using CMDER_ROOT for everything 2013-12-09 00:55:18 +01:00
Samuel Vasko
092c046456 Tricky whitespace 2013-12-09 00:52:46 +01:00
Samuel Vasko
c1029ab245 Use windows native copy instead of cp 2013-12-07 21:56:19 +01:00
Samuel Vasko
fc19a8b328 Merge branch 'master' of https://github.com/bliker/cmder 2013-12-07 21:44:46 +01:00
Samuel Vasko
340d70a596 This somehow works in git folder 2013-12-07 21:44:33 +01:00
Samuel Vasko
fa179f6528 Lambda is now handled by clink 2013-12-07 21:04:38 +01:00
Samuel Vasko
e5e9e67ee7 Merge pull request #77 from jdsumsion/patch-1
Fixed a couple tiny typos in the readme
2013-12-07 10:52:06 -08:00
Samuel Vasko
8e0312aec4 Merge pull request #62 from austinwagner/master
Add executable launcher
2013-12-07 10:50:34 -08:00
Austin Wagner
8f6a473a40 Add Cmder Here
Add option to launcher to register and unregister Cmder Here
2013-12-07 09:17:35 -05:00
Samuel Vasko
2b12546cb0 Merge pull request #75 from brkc/term-cygwin
Change TERM from msys to cygwin.
2013-12-07 05:57:31 -08:00
John Sumsion
ed42db82f6 Fixed a couple tiny typos in the readme
Also added a shortcut I saw in the config.
2013-12-05 11:08:08 -07:00
Samuel Vasko
5c20bbb08d Merge pull request #74 from MartiUK/patch-2
Removed "C:\Users\bliker" reference in config/ConEmu.xml
2013-12-05 06:16:58 -08:00
Brandon Coffman
56613b9758 Change TERM from msys to cygwin. 2013-12-05 06:03:13 -05:00
Martin Kemp
1ef7ca682f Removed "C:\Users\bliker" reference in config/ConEmu.xml
Fixes #71
2013-12-05 08:24:34 +00:00
Samuel Vasko
9feec9e0c2 Better dirty check 2013-11-30 19:26:56 +01:00
Samuel Vasko
686e3516ed Fix for #40 2013-11-30 19:22:19 +01:00
Austin Wagner
48e4046754 Add launcher
Fixes bliker/cmder#39
Launcher replaces functionality of batch file to allow taskbar pinning
2013-11-30 09:15:42 -05:00
Samuel Vasko
d3d2b80d88 Merge pull request #60 from austinwagner/master
Remove wget dependency and verify existence of 7z.exe in build script
2013-11-29 08:59:26 -08:00
Austin Wagner
6126437762 Check for 7-zip before build 2013-11-29 11:48:32 -05:00
Austin Wagner
168958ce2b Remove wget dependency in build script 2013-11-29 11:47:08 -05:00
Samuel Vasko
ee50cc5e7c Whops, fixed the start dir 2013-11-29 16:21:07 +01:00
Samuel Vasko
f7d1dfa2b7 Added icon 2013-11-29 14:09:46 +01:00
Samuel Vasko
12d21de1c3 Changed shortcut for new console to LShift + alt + #, Closing #9 and #17 2013-11-29 12:20:59 +01:00
Samuel Vasko
a231fd9f60 Unecessary whitespace removed + pwd alias added 2013-11-29 12:15:31 +01:00
Samuel Vasko
9d5d3e1556 Allow to run cmd task from custom location. 2013-11-29 12:09:20 +01:00
Samuel Vasko
d95f25207d Merge pull request #51 from MartiUK/patch-1
Allow use of Vim from msysgit.
2013-11-28 10:40:48 -08:00
Martin Kemp
f3d93c0f99 Allow use of Vim from msysgit.
Added vim location to PATH setup in init.bat.
2013-11-28 16:32:37 +00:00
Samuel Vasko
47b725bf0f Merge pull request #34 from schlamar/gitattributes
Fix line ending handling if autocrlf is false.
2013-11-28 03:49:46 -08:00
Samuel Vasko
6ae803987b Merge pull request #32 from Shoozza/patch-4
Fix spelling in init.bat
2013-11-27 14:54:32 -08:00
Samuel Vasko
027be08286 Merge pull request #26 from Vivix/master
Added minimal validation and usage help.
2013-11-27 10:49:43 -08:00
Samuel Vasko
42bad3e509 Merge pull request #22 from Shoozza/patch-1
Fix spelling
2013-11-27 08:53:17 -08:00
Samuel Vasko
2ac148ce22 Merge pull request #18 from tonylau/patch-1
Fixed grammar
2013-11-27 08:48:11 -08:00
schlamar
55aef09412 Fix line ending handling if autocrlf is false. 2013-11-27 10:20:34 +01:00
Shoozza
0bde8b361a Fix spelling in init.bat 2013-11-27 10:11:29 +01:00
Vivix
f9c6d61ee0 Added minimal validation and usage help. 2013-11-27 04:36:48 +01:00
Shoozza
bbcbd2ece9 Fix spelling 2013-11-27 01:44:04 +01:00
Tony Lau
6f6d9f29ec Fixed grammar 2013-11-26 19:50:59 +00:00
Samuel Vasko
4d926e0836 Merge pull request #15 from jyggen/patch-1
Fixed issue when rootDir contains spaces.
2013-11-22 03:15:46 -08:00
Jonas Stendahl
75cb46392e Fixed issue when rootDir contains spaces. 2013-11-22 11:11:04 +01:00
Samuel Vasko
471e341a97 Now with icons! 2013-11-15 17:06:46 +01:00
Samuel Vasko
c2b37021d4 Now with git in prompt (fix for #13) 2013-11-15 17:06:15 +01:00
Samuel Vasko
3fefa9698e Ignore exe 2013-11-15 17:05:17 +01:00
Samuel Vasko
14799b307d Restored to batch file. Now compiled in distributed package 2013-11-15 17:04:38 +01:00
Samuel Vasko
4c4930704f Fix for #1 #11 handling of C:\Users\Samuel directory 2013-11-13 14:34:19 +01:00
Samuel Vasko
42d22f1e17 Removed home declaration 2013-11-03 18:04:36 +01:00
Samuel Vasko
2d0a7093d4 Changed to LCtrl in tab opening 2013-11-03 18:00:18 +01:00
Samuel Vasko
f8b96665a8 Added Thumbs file 2013-11-03 17:55:48 +01:00
Samuel Vasko
049e54dfe0 Merge branch 'master' of https://github.com/bliker/cmder 2013-10-12 13:25:08 +02:00
Samuel Vasko
dc0cc7350b New link from Maximus5 2013-10-12 13:24:51 +02:00
Samuel Vasko
8489977575 Merge pull request #5 from BeingTomGreen/patch-1
minor typo fix
2013-10-08 10:20:38 -07:00
Tom Green
ee898d9d28 minor typo fix 2013-10-08 11:29:35 +01:00
Samuel Vasko
a516858048 Nicer intro 2013-09-28 20:53:19 +02:00
Samuel Vasko
4dc1065399 Forgot the prefix echo with @ 2013-09-28 20:43:09 +02:00
Samuel Vasko
eaa78c6bf3 created new build script, and accomodated to new file names 2013-09-28 20:38:52 +02:00
Samuel Vasko
2521097f72 New fixed alias 2013-09-27 14:27:02 +02:00
Samuel Vasko
3704ff3e2e At a second glance, I do not like it 2013-09-25 21:08:58 +02:00
Samuel Vasko
c2c0e1c3aa wrong slash 2013-09-07 17:56:00 +02:00
Samuel Vasko
ec5f8f9808 Git initiation 2013-09-07 17:52:50 +02:00
Samuel Vasko
aefb0f2709 Ignoring the .history file 2013-09-07 17:52:20 +02:00
Samuel Vasko
2cceaaef23 Icon 2013-09-07 17:40:11 +02:00
Samuel Vasko
2c0a6d095f Changes for startup 2013-09-07 17:39:24 +02:00
Samuel Vasko
e38aded028 meh 2013-07-16 19:26:12 +02:00
111 changed files with 9057 additions and 703 deletions

7
.gitattributes vendored Normal file
View File

@ -0,0 +1,7 @@
# Auto detect text files and perform LF normalization
* text=auto
*.cmd text eol=crlf
*.bat text eol=crlf
*.ps1 text eol=crlf
*.md text eol=lf
*.sh text eol=lf

163
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@ -0,0 +1,163 @@
name: "🐞 Bug report (encountered problems/errors)"
description: Something is not working as it should
title: "[Bug] "
labels: "🐛 Type: Bug"
body:
- type: markdown
attributes:
value: |
Thank you for reporting a bug for the Cmder project!
------------------------------------------------------------------
Please make sure you read and follow the following instructions carefully before reporting bugs, and/or requesting new features.
- You can find the version of Cmder.exe and ConEmu.exe binaries using Right Click → Properties → Details menu.
- type: textarea
id: version
attributes:
label: Version Information
description: |
Please write your Cmder and ConEmu version below. If applicable, write down your Windows edition too.
**👉 See:** [How to find out which Cmder version I'm using](https://github.com/cmderdev/cmder/wiki/Cmder-troubleshooting)
placeholder: |
Cmder version:
Operating system:
value: |
Cmder version:
Operating system:
render: markdown
validations:
required: true
- type: dropdown
id: edition
attributes:
label: Cmder Edition
description: What edition of Cmder are you running?
options:
- Cmder Full (with Git)
- Cmder Mini
- N/A
validations:
required: true
- type: markdown
attributes:
value: |
Make sure that you have:
- Read both the README.md and the Wiki:
| **README.md** | **Wiki** |
| ------------- | -------- |
| 🌐 [Open Link](https://github.com/cmderdev/cmder/blob/master/README.md) | 🌐 [Open Link](https://github.com/cmderdev/cmder/wiki) |
(What you may be asking here could already be explained there!)
- Searched for existing issues (including the **closed** ones) for similar problems here:
🗃 https://github.com/cmderdev/cmder/issues?q=is:issue
- Please understand that Cmder uses ConEmu as the default underlying Terminal Emulator.
If your issue is regarding the **Terminal Emulator**, please visit the ConEmu issues page:
https://github.com/Maximus5/ConEmu/issues?q=is:issue
If there isn't an existing issue, you may open a new one there.
(We don't resolve issues regarding ConEmu here, so, please make sure you open the issue in the correct place.)
more info: https://conemu.github.io/en/ThirdPartyProblems.html
- If you are having an issue with any of the **upstream technologies** that are used by Cmder, please make sure that the issue is reproducible _only_ when used in combination with Cmder.
We may not directly address the issues related to the following tools:
- **[Clink](https://github.com/chrisant996/clink)**, the default shell in Cmder
- **[ConEmu](https://github.com/Maximus5/ConEmu)**, the terminal emulator
- **[Git/MinGW](https://github.com/git-for-windows/git)**, which also provide *NIX tools (such as `ls`, `mv`, `cp`, etc)
- **[clink-completions](https://github.com/vladimir-kotikov/clink-completions)**, which provides autocompletion for clink
We'll try our best to help you -- but we recommend creating an issue specifically at each of the corresponding repositories for the best result.
**👉 Note:** Try to reproduce the bug you're reporting, on a stand-alone edition of each tool, without using Cmder. If the bug applies when the mentioned tools are NOT used within Cmder, there's a good chance that you should open the bug at the corresponding repo instead.
- Lastly, have a look at the official documentation for Cmder over our website, and our wiki.
Read more about Cmder on ConEmu docs:
https://conemu.github.io/en/cmder.html
#### Prerequisites before submitting an issue
- We do not support any versions older than the current release series, if you are using an older Cmder please update to the latest version first.
- Verify that the issue is not already fixed and is reproducible in the **[latest official Cmder version](https://github.com/cmderdev/cmder/releases).**
- Check the **[current issues list](https://github.com/cmderdev/cmder/issues?q=is%3Aissue)** and perform a **search of the issue tracker (including closed ones)** to avoid posting a duplicate bug report.
- Make sure this is not a support request or question, both of which are better suited for either the **[discussions section](https://github.com/cmderdev/cmder/discussions)**, or the **[questions section](https://github.com/cmderdev/cmder/issues/new?template=question.yml)**.
- Verify that the **[wiki](https://github.com/cmderdev/cmder/wiki)** did not contain a suitable solution either.
Thank you for making sure you are opening a new valid issue! ♥
- type: textarea
id: description
attributes:
label: Description of the issue
description: Provide a clear and concise description of the problem here. Explain the actual behavior vs the expected behavior.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: How to reproduce
description: Please provide reliable steps to reproduce the problem.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: false
- type: textarea
id: notes
attributes:
label: Additional context
description: Add screenshots, etc. (Anything that will provide more context about the problem)
validations:
required: false
- type: checkboxes
id: checklist
attributes:
label: Checklist
description: Please check all boxes that apply
options:
- label: I have read the documentation.
required: true
- label: I have searched for similar issues and found none that describe my issue.
required: true
- label: I have reproduced the issue on the latest version of Cmder.
required: true
- label: I am certain my issues are not related to ConEmu, Clink, or other third-party tools that Cmder uses.
required: true
- type: markdown
attributes:
value: |
### Some tips on how to write a good bug report with the required information.
- Make sure the description is worded well enough to be understood, and with as much context and examples as possible.
- Post a screenshot or the command that triggered the problem, if applicable.
- Use the *Preview* tab to see how your issue will actually look like, before sending it.
⚠ If for some reason you can not see the text you just wrote, make sure you've read the instructions clearly
- Avoid using ambiguous phrases like: doesn't work, there's a problem, etc.
Help us reproduce the issue by explaining what went wrong, and what did you expect to happen.
- Please keep the ticket language to English only here.
We can't process your issue if it's written in Russian or Chinese as we can't understand them.
- You can find the version of Cmder.exe and ConEmu.exe binaries using Right Click → Properties → Details menu.
- Put an `x` into all the boxes `[ ]` relevant to your issue (correct example: `[x]` -- not like this: `[ x]` or `[x ]`).
- Any text that is between the comment tags will get ignored, e.g.: `<!-- this will NOT work -- >`
You need to write your text either outside the tags, or the line below it.
- ⚠ Read the following page to avoid posting a bad issue: https://conemu.github.io/en/BadIssue.html
Failure to follow these guidelines may result in your issue getting closed. So please follow it carefully!

9
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,9 @@
blank_issues_enabled: false
contact_links:
- name: 📄 Wiki
url: "https://github.com/cmderdev/cmder/wiki"
about: "Consult the wiki first, it might already contain the information you are looking for"
- name: 💬 Discussions
url: "https://github.com/cmderdev/cmder/discussions"
about: "Please ask questions related to usage/setup/support/non-issue development discussion in the Discussions section"

View File

@ -0,0 +1,84 @@
name: "⭐ Feature request (request for new functionality)"
description: Help make Cmder even better
title: "[Feature request] "
labels: "🛠 Type: Feature Request"
body:
- type: markdown
attributes:
value: |
Thank you for helping to improve the Cmder project!
------------------------------------------------------------------
Please make sure you read and follow the following instructions carefully before reporting bugs, and/or requesting new features.
Make sure that you have:
- Searched for existing issues (including the **closed** ones) for similar feature requests here:
🗃 https://github.com/cmderdev/cmder/issues?q=is:issue
- If you are opening the feature request regarding any of the **upstream technologies** that are used by Cmder, please open the feature request at the corresponding upstream repos instead:
- **[Clink](https://github.com/chrisant996/clink)**, the default shell in Cmder
- **[ConEmu](https://github.com/Maximus5/ConEmu)**, the terminal emulator
- **[Git/MinGW](https://github.com/git-for-windows/git)**, which also provide *NIX tools (such as `ls`, `mv`, `cp`, etc)
- **[clink-completions](https://github.com/vladimir-kotikov/clink-completions)**, which provides autocompletion for clink
- If you would like to ask for guides on how to integrate Cmder with your favorite IDE of choice, or how to perform a specific task with Cmder, make sure you visit our label section first.
You may already have an answer under the Guides or Questions section.
For a list of labels, visit **[🌐 Labels](https://github.com/cmderdev/cmder/labels)**.
(Be sure to also check “Closed” issues in the labels section!)
- If you have a request to provide auto-complete support for a new tool, please post your request here instead:
https://github.com/vladimir-kotikov/clink-completions/issues
Thank you for making the Cmder project even better! ♥
- type: textarea
id: description
attributes:
label: Suggestion
description: Describe the feature
validations:
required: true
- type: textarea
id: usecase
attributes:
label: Use case
description: Include a usage example of the feature
validations:
required: false
- type: textarea
id: notes
attributes:
label: Extra info/examples/attachments
description: Extra information, similar tools, etc. If the feature is currently possible with a workaround
validations:
required: false
- type: checkboxes
id: checklist
attributes:
label: Checklist
description: Please check all boxes that apply
options:
- label: I have read the documentation and made sure this feature doesn't already exist.
required: true
- label: I have searched for similar issues and found none that describe my feature request.
required: true
- type: markdown
attributes:
value: |
### Some tips on how to write a better feature request
- Make sure the description is worded well enough to be understood, and with as much context and examples as possible.
- Use the *Preview* tab to see how your issue will actually look like, before sending it.
⚠ If for some reason you can not see the text you just wrote, make sure you've read the instructions clearly
- Please keep the ticket language to English only here.
We can't process your issue if it's written in Russian or Chinese as we can't understand them.

45
.github/ISSUE_TEMPLATE/question.yml vendored Normal file
View File

@ -0,0 +1,45 @@
name: "❓ Question"
description: Something is unclear or needs to be discussed
title: "Question: "
labels: "❔ Type: Question"
body:
- type: markdown
attributes:
value: |
Before you ask your question, please make sure you read and follow the following instructions carefully.
- Read both the README.md and the Wiki, as well as the existing issues:
| **README.md** | **Wiki** | **Issues** |
| ------------- | -------- | ---------- |
| 🌐 [Open Link](https://github.com/cmderdev/cmder/blob/master/README.md) | 🌐 [Open Link](https://github.com/cmderdev/cmder/wiki) | 🗃 [Open Link](https://github.com/cmderdev/cmder/issues?q=is:issue) |
(What you may be asking here could already be explained there!)
- If you would like to ask for guides on how to integrate Cmder with your favorite IDE of choice, or how to perform a specific task with Cmder, make sure you visit our label section first.
You may already have an answer under the [💬 Guides](https://github.com/cmderdev/cmder/issues?q=label%3A%22%F0%9F%92%AC+Type%3A+Guide%22), [📖 Documentation](https://github.com/cmderdev/cmder/issues?q=label%3A%22%F0%9F%93%96+Documentation%22) or [❔ Questions](https://github.com/cmderdev/cmder/issues?q=is%3Aissue+label%3A%22%E2%9D%94+Type%3A+Question%22) section.
For a list of labels, visit **[Labels](https://github.com/cmderdev/cmder/labels)**.
(Be sure to also check “Closed” issues in the labels section!)
- type: textarea
id: description
attributes:
label: Question
description: What would you to ask about Cmder?
validations:
required: true
- type: checkboxes
id: checklist
attributes:
label: Checklist
description: Please check all boxes that apply
options:
- label: I have read the documentation and made sure what I'm looking for isn't present, or is unclear.
required: true
- label: I have searched for similar issues, and either this question wasn't asked before, or I didn't find any that describe my question.
required: true

11
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"

19
.github/stale.yml vendored Normal file
View File

@ -0,0 +1,19 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "📌 Pinned"
# Label to use when marking an issue as stale
staleLabel: "👀 Awaiting Response"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
any recent activity. It will be closed in a week if no further activity occurs.
Thank you for your contribution(s).
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue has been automatically closed due to it not having any
activity since it was marked as stale.
Thank you for your contribution(s).

33
.github/workflows/branches.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Update branches
# Controls when the action will run.
on:
# Triggers the workflow on push events for the development branch
push:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This job updates the development branch with the master branch
update-development:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it
- uses: actions/checkout@v4
with:
fetch-depth: 0 # fetch all history for all branches and tags
# Runs a single command using the runners shell
- name: Merge master into development
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"
git checkout development
git merge --no-ff master
git push origin development

90
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,90 @@
#---------------------------------#
# general configuration #
#---------------------------------#
name: Build Cmder
# Controls when the action will run. Triggers the workflow on push or pull request events but only for the main branch
on:
push:
branches: [ "master" ]
tags:
- "v*"
pull_request:
branches: [ "master", "development" ]
#---------------------------------#
# environment configuration #
#---------------------------------#
env:
# Path to the root of the Cmder project.
CMDER_ROOT: ${{ github.workspace }}
permissions:
contents: read
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
name: Build Project
runs-on: windows-latest
permissions:
contents: write
discussions: write
steps:
- name: Check out repository code (Action from GitHub)
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Build Cmder Launcher
shell: pwsh
working-directory: scripts
run: .\build.ps1 -Compile -verbose
- name: Pack the built files
shell: pwsh
working-directory: scripts
run: .\pack.ps1 -verbose
- name: Upload artifact (cmder.zip)
uses: actions/upload-artifact@v4
with:
path: build/cmder.zip
name: cmder.zip
if-no-files-found: error
- name: Upload artifact (cmder.7z)
uses: actions/upload-artifact@v4
with:
path: build/cmder.7z
name: cmder.7z
- name: Upload artifact (cmder_mini.zip)
uses: actions/upload-artifact@v4
with:
path: build/cmder_mini.zip
name: cmder_mini.zip
- name: Upload artifact (hashes.txt)
uses: actions/upload-artifact@v4
with:
path: build/hashes.txt
name: hashes.txt
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
build/cmder.zip
build/cmder.7z
build/cmder_mini.zip
build/hashes.txt
draft: true
generate_release_notes: true
if: startsWith(github.ref, 'refs/tags/')

73
.github/workflows/codeql.yml vendored Normal file
View File

@ -0,0 +1,73 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches: [ "master", "development" ]
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '.github/**'
- '**/.gitignore'
pull_request:
# The branches below must be a subset of the branches above
branches: [ "master", "development" ]
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '.github/**'
- '**/.gitignore'
schedule:
- cron: '30 19 * * 0'
jobs:
analyze:
name: Analyze
runs-on: windows-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Build Cmder Launcher
shell: pwsh
working-directory: scripts
run: .\build.ps1 -Compile -verbose
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

54
.github/workflows/tests.yml vendored Normal file
View File

@ -0,0 +1,54 @@
name: Run Tests
on:
push:
branches:
- master
- development
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '.github/**'
- '**/.gitignore'
pull_request:
branches:
- master
- development
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '.github/**'
- '**/.gitignore'
defaults:
run:
shell: cmd
permissions:
contents: read
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
tests:
runs-on: windows-latest
continue-on-error: false
steps:
- uses: actions/checkout@v4
- name: Initialize vendors
shell: pwsh
working-directory: scripts
run: .\build.ps1 -verbose
- name: Testing Clink Shell
run: |
cmd /c vendor\init.bat /v /d /t
- name: Testing PowerShell
run: |
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "Invoke-Expression '. ''vendor\profile.ps1'''"
- name: Testing Bash
run: |
bash vendor/cmder.sh

65
.github/workflows/vendor.yml vendored Normal file
View File

@ -0,0 +1,65 @@
name: Update Vendor
on:
workflow_dispatch:
schedule:
# At 13:37 UTC every day.
- cron: '37 13 * * *'
defaults:
run:
shell: pwsh
permissions:
contents: read
jobs:
vendor:
runs-on: windows-latest
continue-on-error: false
timeout-minutes: 15
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: make-changes
name: Checking for updates
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
$currentVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json)
. .\scripts\update.ps1 -verbose
Set-GHVariable -Name COUNT_UPDATED -Value $count
$newVersion = (Get-Content .\vendor\sources.json | ConvertFrom-Json)
$listUpdated = ""
$updateMessage = "| Name | Old Version | New Version |`n| :--- | ---- | ---- |`n"
foreach ($s in $newVersion) {
$oldVersion = ($currentVersion | Where-Object {$_.name -eq $s.name}).version
if ($s.version -ne $oldVersion) {
$repoUrl = ($repoUrl = $s.Url.Replace("/archive/", "/releases/")).Substring(0, $repoUrl.IndexOf("/releases/")) + "/releases"
$listUpdated += "$($s.name) v$($s.version), "
$updateMessage += "| **[$($s.name)]($repoUrl)** | $oldVersion | **$($s.version)** |`n"
}
}
if ($count -eq 0) { return }
Set-GHVariable -Name LIST_UPDATED -Value $listUpdated.Trim(', ')
echo "UPDATE_MESSAGE<<<EOF`n$updateMessage`n<EOF" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
- uses: peter-evans/create-pull-request@v7
if: env.COUNT_UPDATED > 0
with:
title: 'Updates to `${{ env.COUNT_UPDATED }}` vendored dependencies'
body: |
### Automatically updated `${{ env.COUNT_UPDATED }}` dependencies:
${{ env.UPDATE_MESSAGE }}
---
Please verify and then **Merge** the pull request to update.
commit-message: '⬆️ Update dependencies (${{ env.LIST_UPDATED }})'
branch: update-vendor
base: master

33
.gitignore vendored
View File

@ -1,6 +1,33 @@
## Those files should be taken from their repositary
vendor/*
!vendor/*.md
!vendor/*.bat
bin/*
!bin/Readme.md
opt/*
!opt/Readme.md
vendor/*/*
!vendor/bin/*
!vendor/lib/*
!vendor/*
!vendor/psmodules/*
vendor/git-for-windows
config/*
!config/Readme.md
!config/profile.d/README.md
config_user/*
Thumbs.db
*.exe
*.dll
build/
/Version *
*.bak
.github_changelog_generator
launcher/.vs
launcher/src/version.rc2
.vs/*
.vscode
.idea

1191
CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

38
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,38 @@
# How to contribute
Unfortunately we all can't work on Cmder every day of the year, so I have decided to write some guidelines for contributing.
If you follow them your contribution will likely be pulled in quicker.
## Getting Started
* Fork the repository on GitHub (It's that easy)
* Create a feature branch based on the `master` branch.
## Making Changes
* Make changes in your separate branch.
* Check for unnecessary whitespace with `git diff --check` before committing.
* Make sure your commit messages are easy to understand
* Squash your 'Correcting mistakes' commits if you have a lot of them. (See the 'Squashing Commits' link below)
* Make sure your changes won't affect new users or user without a customised system, try out your changes on a fresh Windows VM to see if it would affect a new user's experience.
* Sometimes a change that helps you with your cmder experience and tools doesn't always mean other people may need/want it.
## Making Trivial Changes
### Documentation
* If the documentation is about a currently available feature in cmder or correcting already created documentation, you can safely make your changes on the master branch and pull request them onto master.
## Submitting Changes
* Push your changes to the branch in your fork of the repository.
* Submit a pull request to the develop branch of the cmder repository (unless it's a change in documentation [see above]).
* Make sure you explicitly say to not complete the pull request if you are still making changes.
# Additional Resources
* [Squashing Commits](http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html)
* [General GitHub documentation](http://help.github.com/)
* [GitHub pull request documentation](http://help.github.com/articles/creating-a-pull-request/)

View File

@ -1,2 +1,20 @@
@echo off
start vendor/ConEmu/ConEmu.exe /Title Cmder /LoadCfgFile ../../config/ConEmu.xml
SET CMDER_ROOT=%~dp0
:: Remove Trailing '\'
@if "%CMDER_ROOT:~-1%" == "\" SET CMDER_ROOT=%CMDER_ROOT:~0,-1%
if not exist "%CMDER_ROOT%\config\user_ConEmu.xml" (
if not exist "%CMDER_ROOT%\config" mkdir "%CMDER_ROOT%\config" 2>nul
copy "%CMDER_ROOT%\vendor\ConEmu.xml.default" "%CMDER_ROOT%\config\user_ConEmu.xml" 1>nul
if %errorlevel% neq 0 (
echo ERROR: CMDER Initialization has Failed
exit /b 1
)
)
if exist "%~1" (
start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%~1"
) else (
start %~dp0/vendor/conemu-maximus5/ConEmu.exe /Icon "%CMDER_ROOT%\icons\cmder.ico" /Title Cmder /LoadCfgFile "%CMDER_ROOT%\config\user_ConEmu.xml"
)

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017 Samuel Vasko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

419
README.md Normal file
View File

@ -0,0 +1,419 @@
# Cmder
[![Join the chat at https://gitter.im/cmderdev/cmder](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cmderdev/cmder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://ci.appveyor.com/api/projects/status/github/cmderdev/cmder?branch=master&svg=true)](https://ci.appveyor.com/project/cmderdev/cmder) [![Build Status](https://github.com/cmderdev/cmder/actions/workflows/build.yml/badge.svg)](https://github.com/cmderdev/cmder/actions/workflows/build.yml)
Cmder is a **software package** created out of pure frustration over absence of usable console emulator on Windows. It is based on [ConEmu](https://conemu.github.io/) with *major* config overhaul, comes with a Monokai color scheme, amazing [clink](https://chrisant996.github.io/clink/) (further enhanced by [clink-completions](https://github.com/vladimir-kotikov/clink-completions)) and a custom prompt layout.
![Cmder Screenshot](http://i.imgur.com/g1nNf0I.png)
## Why use it
The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, which makes it great for **USB Sticks** or **cloud storage**. So you can carry your console, aliases and binaries (like `wget`, `curl` and `git`) with you anywhere.
The Cmder's user interface is also designed to be more eye pleasing, and you can compare the main differences between Cmder and ConEmu [here](https://conemu.github.io/en/cmder.html).
## Installation
### Single User Portable Config
1. Download the [latest release](https://github.com/cmderdev/cmder/releases/)
2. Extract the archive. *Note: This path should not be `C:\Program Files` or anywhere else that would require Administrator access for modifying configuration files*
3. (optional) Place your own executable files into the `%cmder_root%\bin` folder to be injected into your PATH.
4. Run `Cmder.exe`
### Shared Cmder install with Non-Portable Individual User Config
1. Download the [latest release](https://github.com/cmderdev/cmder/releases/)
2. Extract the archive to a shared location.
3. (optional) Place your own executable files and custom app folders into the `%cmder_root%\bin`. See: [bin/README.md](./bin/Readme.md)
- This folder to be injected into your PATH by default.
- See `/max_depth [1-5]` in 'Command Line Arguments for `init.bat`' table to add subdirectories recursively.
4. (optional) Place your own custom app folders into the `%cmder_root%\opt`. See: [opt/README.md](./opt/Readme.md)
- This folder will NOT be injected into your PATH so you have total control of what gets added.
5. Run `Cmder.exe` with `/C` command line argument. Example: `cmder.exe /C %userprofile%\cmder_config`
* This will create the following directory structure if it is missing.
```
c:\users\[username]\cmder_config
├───bin
├───config
│ └───profile.d
└───opt
```
- (optional) Place your own executable files and custom app folders into `%userprofile%\cmder_config\bin`.
- This folder to be injected into your PATH by default.
- See `/max_depth [1-5]` in 'Command Line Arguments for `init.bat`' table to add subdirectories recursively.
- (optional) Place your own custom app folders into the `%user_profile%\cmder_config\opt`.
- This folder will NOT be injected into your PATH so you have total control of what gets added.
* Both the shared install and the individual user config locations can contain a full set of init and profile.d scripts enabling shared config with user overrides. See below.
## Cmder.exe Command Line Arguments
| Argument | Description |
| ------------------------- | ----------------------------------------------------------------------- |
| `/C [user_root_path]` | Individual user Cmder root folder. Example: `%userprofile%\cmder_config` |
| `/M` | Use `conemu-%computername%.xml` for ConEmu settings storage instead of `user_conemu.xml` |
| `/REGISTER [ALL, USER]` | Register a Windows Shell Menu shortcut. |
| `/UNREGISTER [ALL, USER]` | Un-register a Windows Shell Menu shortcut. |
| `/SINGLE` | Start Cmder in single mode. |
| `/START [start_path]` | Folder path to start in. |
| `/TASK [task_name]` | Task to start after launch. |
| `/X [ConEmu extras pars]` | Forwards parameters to ConEmu |
## Context Menu Integration
So you've experimented with Cmder a little and want to give it a shot in a more permanent home;
### Shortcut to open Cmder in a chosen folder
1. Open a terminal as an Administrator
2. Navigate to the directory you have placed Cmder
3. Execute `.\cmder.exe /REGISTER ALL`
_If you get an "Access Denied" message, make sure you are executing the command in an **Administrator** prompt._
In a file explorer window right click in or on a directory to see "Cmder Here" in the context menu.
## Keyboard shortcuts
### Tab manipulation
* <kbd>Ctrl</kbd> + <kbd>T</kbd> : New tab dialog (maybe you want to open cmd as admin?)
* <kbd>Ctrl</kbd> + <kbd>W</kbd> : Close tab
* <kbd>Ctrl</kbd> + <kbd>D</kbd> : Close tab (if pressed on empty command)
* <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>#Number</kbd> : Fast new tab: <kbd>1</kbd> - CMD, <kbd>2</kbd> - PowerShell
* <kbd>Ctrl</kbd> + <kbd>Tab</kbd> : Switch to next tab
* <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Tab</kbd> : Switch to previous tab
* <kbd>Ctrl</kbd> + <kbd>#Number</kbd> : Switch to tab #Number
* <kbd>Alt</kbd> + <kbd>Enter</kbd>: Fullscreen
### Shell
* <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>U</kbd> : Traverse up in directory structure (lovely feature!)
* <kbd>End</kbd>, <kbd>Home</kbd>, <kbd>Ctrl</kbd> : Traversing text with as usual on Windows
* <kbd>Ctrl</kbd> + <kbd>R</kbd> : History search
* <kbd>Shift</kbd> + Mouse : Select and copy text from buffer
_(Some shortcuts are not yet documented, though they exist - please document them here)_
## Features
### Access to multiple shells in one window using tabs
You can open multiple tabs each containing one of the following shells:
| Task | Shell | Description |
| ---- | ----- | ----------- |
| Cmder | `cmd.exe` | Windows `cmd.exe` shell enhanced with Git, Git aware prompt, Clink (GNU Readline), and Aliases. |
| Cmder as Admin | `cmd.exe` | Administrative Windows `cmd.exe` Cmder shell. |
| PowerShell | `powershell.exe` | Windows PowerShell enhanced with Git and Git aware prompt . |
| PowerShell as Admin | `powershell.exe` | Administrative Windows `powershell.exe` Cmder shell. |
| Bash | `bash.exe` | Unix/Linux like bash shell running on Windows. |
| Bash as Admin | `bash.exe` | Administrative Unix/Linux like bash shell running on Windows. |
| Mintty | `bash.exe` | Unix/Linux like bash shell running on Windows. See below for Mintty configuration differences |
| Mintty as Admin | `bash.exe` | Administrative Unix/Linux like bash shell running on Windows. See below for Mintty configuration differences |
Cmder, PowerShell, and Bash tabs all run on top of the Windows Console API and work as you might expect in Cmder with access to use ConEmu's color schemes, key bindings and other settings defined in the ConEmu Settings dialog.
*Note:* Only the full edition of Cmder comes with a pre-installed bash, using a vendored [git-for-windows](https://gitforwindows.org/) installation. The pre-configured Bash tabs may not work on Cmder mini edition without additional configuration.
You may however, choose to use an external installation of bash, such as Microsoft's [Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (called WSL) or the [Cygwin](https://cygwin.com/) project which provides POSIX support on windows.
*Note:* Mintty tabs use a program called 'mintty' as the terminal emulator that is not based on the Windows Console API, rather it's rendered graphically by ConEmu. Mintty differs from the other tabs in that it supports xterm/xterm-256color TERM types, and does not work with ConEmu settings like color schemes and key bindings. As such, some differences in functionality are to be expected, such as Cmder not being able to apply a system-wide configuration to it.
As a result mintty specific config is done via the `[%USERPROFILE%|$HOME]/.minttyrc` file. You may read more about Mintty and its config file [here](https://github.com/mintty/mintty).
An example of setting Cmder portable terminal colors for mintty:
From a bash/mintty shell:
```
cd $CMDER_ROOT/vendor
git clone https://github.com/karlin/mintty-colors-solarized.git
cd mintty-colors-solarized/
echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user_profile.sh
```
You may find some Monokai color schemes for mintty to match Cmder [here](https://github.com/oumu/mintty-color-schemes/blob/master/base16-monokai-mod.minttyrc).
### Changing Cmder Default `cmd.exe` Prompt Config File
The default Cmder shell `cmd::Cmder` prompt is customized using `Clink` and is configured by editing a config file that exists in one of two locations:
- Single User Portable Config `%CMDER_ROOT%\config\cmder_prompt_config.lua`
- Shared Cmder install with Non-Portable Individual User Config `%CMDER_USER_CONFIG%\cmder_prompt_config.lua`
If your Cmder setup does not have this file create it from `%CMDER_ROOT%\vendor\cmder_prompt_config.lua.default`
Customizations include:
- Colors.
- Single/Multi-line.
- Full path/Folder only.
- `[user]@[host]` to the beginning of the prompt.
- `~` for home directory.
- `λ` symbol
Documentation is in the file for each setting.
### Changing Cmder Default `cmd.exe` Shell Startup Behaviour Using Task Arguments
1. Press <kbd>Win</kbd> + <kbd>Alt</kbd> + <kbd>T</kbd>
1. Click either:
* `1. {cmd::Cmder as Admin}`
* `2. {cmd::Cmder}`
1. Add command line arguments where specified below:
*Note: Pay attention to the quotes!*
```
cmd /s /k ""%ConEmuDir%\..\init.bat" [ADD ARGS HERE]"
```
##### Command Line Arguments for `init.bat`
| Argument | Description | Default |
| ----------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------- |
| `/c [user cmder root]` | Enables user bin and config folders for 'Cmder as admin' sessions due to non-shared environment. | not set |
| `/d` | Enables debug output. | not set |
| `/f` | Enables Cmder Fast Init Mode. This disables some features, see pull request [#1492](https://github.com/cmderdev/cmder/pull/1942) for more details. | not set |
| `/t` | Enables Cmder Timed Init Mode. This displays the time taken run init scripts | not set |
| `/git_install_root [file path]` | User specified Git installation root path. | `%CMDER_ROOT%\vendor\Git-for-Windows` |
| `/home [home folder]` | User specified folder path to set `%HOME%` environment variable. | `%userprofile%` |
| `/max_depth [1-5]` | Define max recurse depth when adding to the path for `%cmder_root%\bin` and `%cmder_user_bin%` | 1 |
| `/nix_tools [0-2]` | Define how `*nix` tools are added to the path. Prefer Windows Tools: 1, Prefer *nix Tools: 2, No `/usr/bin` in `%PATH%`: 0 | 1 |
| `/svn_ssh [path to ssh.exe]` | Define `%SVN_SSH%` so we can use git svn with ssh svn repositories. | `%GIT_INSTALL_ROOT%\bin\ssh.exe` |
| `/user_aliases [file path]` | File path pointing to user aliases. | `%CMDER_ROOT%\config\user_aliases.cmd` |
| `/v` | Enables verbose output. | not set |
| (custom arguments) | User defined arguments processed by `cexec`. Type `cexec /?` for more usage. | not set |
### Cmder Shell User Config
Single user portable configuration is possible using the Cmder specific shell config files. Edit the below files to add your own configuration:
| Shell | Cmder Portable User Config |
| ------------- | ----------------------------------------- |
| Cmder | `%CMDER_ROOT%\config\user_profile.cmd` |
| PowerShell | `$ENV:CMDER_ROOT\config\user_profile.ps1` |
| Bash/Mintty | `$CMDER_ROOT/config/user_profile.sh` |
**Note:** Bash and Mintty sessions will also source the `$HOME/.bashrc` file if it exists after it sources `$CMDER_ROOT/config/user_profile.sh`.
You can write `*.cmd|*.bat`, `*.ps1`, and `*.sh` scripts and just drop them in the `%CMDER_ROOT%\config\profile.d` folder to add startup config to Cmder.
| Shell | Cmder `Profile.d` Scripts |
| ------------- | -------------------------------------------------- |
| Cmder | `%CMDER_ROOT%\config\profile.d\*.bat and *.cmd` |
| PowerShell | `$ENV:CMDER_ROOT\config\profile.d\*.ps1` |
| Bash/Mintty | `$CMDER_ROOT/config/profile.d/*.sh` |
#### Git Status Opt-Out
To disable Cmder prompt git status globally add the following to `~/.gitconfig` or locally for a single repo `[repo]/.git/config` and start a new session.
*Note: This configuration is not portable*
```
[cmder]
status = false # Opt out of Git status for 'ALL' Cmder supported shells.
cmdstatus = false # Opt out of Git status for 'Cmd.exe' shells.
psstatus = false # Opt out of Git status for 'Powershell.exe and 'Pwsh.exe' shells.
shstatus = false # Opt out of Git status for 'bash.exe' shells.
```
### Aliases
#### Cmder(`Cmd.exe`) Aliases
You can define simple aliases for `cmd.exe` sessions with a command like `alias name=command`. Cmd.exe aliases support optional parameters through the `$1-9` or the `$*` special characters so the alias `vi=vim.exe $*` typed as `vi [filename]` will open `[filename]` in `vim.exe`.
Cmd.exe aliases can also be more complex. See: [DOSKEY.EXE documentation](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/doskey) for additional details on complex aliases/macros for `cmd.exe`
Aliases defined using the `alias.bat` command will automatically be saved in the `%CMDER_ROOT%\config\user_aliases.cmd` file
To make an alias and/or any other profile settings permanent add it to one of the following:
Note: These are loaded in this order by `$CMDER_ROOT/vendor/init.bat`. Anything stored in `%CMDER_ROOT%` will be a portable setting and will follow Cmder to another machine.
* `%CMDER_ROOT%\config\profile.d\*.cmd` and `\*.bat`
* `%CMDER_ROOT%\config\user_aliases.cmd`
* `%CMDER_ROOT%\config\user_profile.cmd`
#### Bash.exe|Mintty.exe Aliases
Bash shells support simple and complex aliases with optional parameters natively so they work a little different. Typing `alias name=command` will create an alias only for the current running session.
To make an alias and/or any other profile settings permanent add it to one of the following:
Note: These are loaded in this order by `$CMDER_ROOT/vendor/git-for-windows/etc/profile.d/cmder.sh`. Anything stored in `$CMDER_ROOT` will be a portable setting and will follow Cmder to another machine.
* `$CMDER_ROOT/config/profile.d/*.sh`
* `$CMDER_ROOT/config/user_profile.sh`
* `$HOME/.bashrc`
If you add bash aliases to `$CMDER_ROOT/config/user_profile.sh` they will be portable and follow your Cmder folder if you copy it to another machine. `$HOME/.bashrc` defined aliases are not portable.
#### PowerShell.exe Aliases
PowerShell has native simple alias support, for example `[new-alias | set-alias] alias command`, so complex aliases with optional parameters are not supported in PowerShell sessions. Type `get-help [new-alias|set-alias] -full` for help on PowerShell aliases.
To make an alias and/or any other profile settings permanent add it to one of the following:
Note: These are loaded in this order by `$ENV:CMDER_ROOT\vendor\user_profile.ps1`. Anything stored in `$ENV:CMDER_ROOT` will be a portable setting and will follow Cmder to another machine.
* `$ENV:CMDER_ROOT\config\profile.d\*.ps1`
* `$ENV:CMDER_ROOT\config\user_profile.ps1`
### SSH Agent
To start the vendored SSH agent simply call `start-ssh-agent`, which is in the `vendor/git-for-windows/cmd` folder.
If you want to run SSH agent on startup, include the line `@call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"` in `%CMDER_ROOT%/config/user_profile.cmd` (usually just uncomment it).
### Vendored Git
Cmder is by default shipped with a vendored Git installation. On each instance of launching Cmder, an attempt is made to locate any other user provided Git binaries. Upon finding a `git.exe` binary, Cmder further compares its version against the vendored one _by executing_ it. The vendored `git.exe` binary is _only_ used when it is more recent than the user-installed one.
You may use your favorite version of Git by including its path in the `%PATH%` environment variable. Moreover, the **Mini** edition of Cmder (found on the [downloads page](https://github.com/cmderdev/cmder/releases)) excludes any vendored Git binaries.
### Using external Cygwin/Babun, MSys2, WSL, or Git for Windows SDK with Cmder.
You may run bash (the default shell used on Linux, macOS and GNU/Hurd) externally on Cmder, using the following instructions:
1. Setup a new task by pressing <kbd>Win</kbd> +<kbd>Alt</kbd> + <kbd>T</kbd>.
1. Click the `+` button to add a task.
1. Name the new task in the top text box.
1. Provide task parameters, this is optional.
1. Add `cmd /c "[path_to_external_env]\bin\bash --login -i" -new_console` to the `Commands` text box.
**Recommended Optional Steps:**
Copy the `vendor/cmder_exinit` file to the Cygwin/Babun, MSys2, or Git for Windows SDK environments `/etc/profile.d/` folder to use portable settings in the `$CMDER_ROOT/config` folder.
Note: MinGW could work if the init scripts include `profile.d` but this has not been tested.
The destination file extension depends on the shell you use in that environment. For example:
* bash - Copy to `/etc/profile.d/cmder_exinit.sh`
* zsh - Copy to `/etc/profile.d/cmder_exinit.zsh`
Uncomment and edit the line below in the script to use Cmder config even when launched from outside Cmder.
```
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
```
### Customizing user sessions using `init.bat` custom arguments.
You can pass custom arguments to `init.bat` and use `cexec.cmd` in your `user_profile.cmd` to evaluate these
arguments then execute commands based on a particular flag being detected or not.
`init.bat` creates two shortcuts for using `cexec.cmd` in your profile scripts.
#### `%ccall%` - Evaluates flags, runs commands if found, and returns to the calling script and continues.
```
ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd
```
Example: `%ccall% /startnotepad start notepad.exe`
#### `%cexec%` - Evaluates flags, runs commands if found, and does not return to the calling script.
```
cexec=C:\Users\user\cmderdev\vendor\bin\cexec.cmd
```
Example: `%cexec% /startnotepad start notepad.exe`
It is useful when you have multiple tasks to execute `cmder` and need it to initialize
the session differently depending on the task chosen.
To conditionally start `notepad.exe` when you start a specific `cmder` task:
* Press <kbd>win</kbd>+<kbd>alt</kbd>+<kbd>t</kbd>
* Click `+` to add a new task.
* Add the below to the `Commands` block:
```batch
cmd.exe /k ""%ConEmuDir%\..\init.bat" /startnotepad"
```
* Add the below to your `%cmder_root%\config\user_profile.cmd`
```batch
%ccall% "/startNotepad" "start" "notepad.exe"`
```
To see detailed usage of `cexec`, type `cexec /?` in Cmder.
### Integrating Cmder with [Windows Terminal](https://github.com/cmderdev/cmder/wiki/Seamless-Windows-Terminal-Integration), [VS Code](https://github.com/cmderdev/cmder/wiki/Seamless-VS-Code-Integration), and your favorite IDEs
Cmder by default comes with a vendored ConEmu installation as the underlying terminal emulator, as stated [here](https://conemu.github.io/en/cmder.html).
However, Cmder can in fact run in a variety of other terminal emulators, and even integrated IDEs. Assuming you have the latest version of Cmder, follow the following instructions to get Cmder working with your own terminal emulator.
For instructions on how to integrate Cmder with your IDE, please read our [Wiki section](https://github.com/cmderdev/cmder/wiki#cmder-integration).
## Upgrading
The process of upgrading Cmder depends on the version/build you are currently running.
If you have a `[cmder_root]/config/user[-|_]conemu.xml`, you are running a newer version of Cmder, follow the below process:
1. Exit all Cmder sessions and relaunch `[cmder_root]/cmder.exe`, this backs up your existing `[cmder_root]/vendor/conemu-maximus5/conemu.xml` to `[cmder_root]/config/user[-|_]conemu.xml`.
* The `[cmder_root]/config/user[-|_]conemu.xml` contains any custom settings you have made using the 'Setup Tasks' settings dialog.
2. Exit all Cmder sessions and backup any files you have manually edited under `[cmder_root]/vendor`.
* Editing files under `[cmder_root]/vendor` is not recommended since you will need to re-apply these changes after any upgrade. All user customizations should go in `[cmder_root]/config` folder.
3. Delete the `[cmder_root]/vendor` folder.
4. Extract the new `cmder.zip` or `cmder_mini.zip` into `[cmder_root]/` overwriting all files when prompted.
If you do not have a `[cmder_root]/config/user[-|_]conemu.xml`, you are running an older version of cmder, follow the below process:
1. Exit all Cmder sessions and backup `[cmder_root]/vendor/conemu-maximus5/conemu.xml` to `[cmder_root]/config/user[-|_]conemu.xml`.
2. Backup any files you have manually edited under `[cmder_root]/vendor`.
* Editing files under `[cmder_root]/vendor` is not recommended since you will need to re-apply these changes after any upgrade. All user customizations should go in `[cmder_root]/config` folder.
3. Delete the `[cmder_root]/vendor` folder.
4. Extract the new `cmder.zip` or `cmder_mini.zip` into `[cmder_root]/` overwriting all files when prompted.
## Current development builds
You can download builds of the current development branch by going to AppVeyor via the following link:
[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/cmderdev/cmder?svg=True)](https://ci.appveyor.com/project/cmderdev/cmder/branch/master/artifacts)
The latest download builds by GitHub Actions can be downloaded from the link below:
[![Build Status](https://github.com/cmderdev/cmder/actions/workflows/build.yml/badge.svg)](https://github.com/cmderdev/cmder/actions/workflows/build.yml)
## License
All software included is bundled with own license
The MIT License (MIT)
Copyright (c) 2016 Samuel Vasko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -1,77 +0,0 @@
# Cmder
**Yes, you can [download latest release](https://github.com/bliker/cmder/releases)**
Cmder is a **software package** created out of pure frustration over absence of usable console emulator on Windows. It is based on [ConEmu](https://code.google.com/p/conemu-maximus5/) with *major* config overhaul. Monokai color scheme, amazing [clink](https://code.google.com/p/clink/) and custom prompt layout.
![Cmder Screenshot](http://i.imgur.com/g1nNf0I.png)
## Why use it
The main advantage of Cmder is portablibity. It is designed to be totally self-container. With no external dependencies. That makes is great for **USB Sticks** or **Dropbox**. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.
## Installation
1. Download the latest release
1. Extract
1. (optional) Place files into `bin` folder, it will be injected into your PATH.
1. Run cmder
*(There will be a version with installer)*
## Keyboard shortcuts
### Tab manipulation
* `Ctrl + t` : new tab dialog (maybe you want to open cmd as admin?)
* `Ctrl + w` : close tab
* `Ctrl + alt + number` : fast new tab: `1` - CMD, `2` - Powershell `*` - More to come
* `Alt + enter`: Fullscreen
### Shell
* `Shift + Up` : Traverse up in directory structure (lovely feature!)
* `End, Home, ctrl` : Traversing text with as usual on Windows
* `Ctrl + r` : History search
* `Shift + mouse` : Select and copy text from buffer
(Some shortcuts are not yet documented, thought they exist, please add them here)
## Features
### Aliases
You can define simple aliases with command `alias name=command`.
For example there is one defined for you `alias e.=explorer .`
All aliases will be saved in `/config/aliases` file
## Todo
1. Write a Todo list
## License
All software included is bundled with own license
The MIT License (MIT)
Copyright (c) 2013 Samuel Vasko
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

24
SECURITY.md Normal file
View File

@ -0,0 +1,24 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 1.3.x | :white_check_mark: |
| < 1.3 | |
## Reporting a Vulnerability
If you discover a security issue in our project, please report it to [MartiUK](https://github.com/MartiUK). We will acknowledge your email within 24 hours and provide a more detailed response within 48 hours. We will try to fix the issue as soon as possible and inform you when a new version is released.
Please include as much of the information listed below as you can to help us better understand and resolve the issue:
- The nature of the issue
- The affected source file(s) with full paths
- The location of the vulnerable code (tag/branch/commit or direct URL)
- Any special configuration needed to reproduce the issue
- Detailed steps to reproduce the issue
- Proof-of-concept or exploit code (if possible)
- The impact of the issue, including how an attacker could exploit it
Please do not disclose the vulnerability publicly until we have resolved it.

View File

@ -1,3 +1,3 @@
## Bin
Thif folder will be injected into path at runtime
This folder will be injected into the PATH environment variable at runtime.

View File

@ -1,4 +0,0 @@
@echo off
echo %* >> %~dp0..\config\aliases
doskey /macrofile=%~dp0..\config\aliases
echo Alias created

View File

@ -1 +0,0 @@

View File

@ -1,552 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<key name="Software">
<key name="ConEmu">
<key name=".Vanilla" modified="2013-07-16 16:32:45">
<value name="ColorTable00" type="dword" data="00222827"/>
<value name="ColorTable01" type="dword" data="009e5401"/>
<value name="ColorTable02" type="dword" data="0004aa74"/>
<value name="ColorTable03" type="dword" data="00a6831a"/>
<value name="ColorTable04" type="dword" data="003403a7"/>
<value name="ColorTable05" type="dword" data="009c5689"/>
<value name="ColorTable06" type="dword" data="0049b6b6"/>
<value name="ColorTable07" type="dword" data="00cacaca"/>
<value name="ColorTable08" type="dword" data="007c7c7c"/>
<value name="ColorTable09" type="dword" data="00f58303"/>
<value name="ColorTable10" type="dword" data="0006d08d"/>
<value name="ColorTable11" type="dword" data="00e5c258"/>
<value name="ColorTable12" type="dword" data="004b04f3"/>
<value name="ColorTable13" type="dword" data="00b87da8"/>
<value name="ColorTable14" type="dword" data="0081cccc"/>
<value name="ColorTable15" type="dword" data="00ffffff"/>
<value name="ColorTable16" type="dword" data="00000000"/>
<value name="ColorTable17" type="dword" data="00800000"/>
<value name="ColorTable18" type="dword" data="00008000"/>
<value name="ColorTable19" type="dword" data="00808000"/>
<value name="ColorTable20" type="dword" data="00000080"/>
<value name="ColorTable21" type="dword" data="00800080"/>
<value name="ColorTable22" type="dword" data="00008080"/>
<value name="ColorTable23" type="dword" data="00c0c0c0"/>
<value name="ColorTable24" type="dword" data="00808080"/>
<value name="ColorTable25" type="dword" data="00ff0000"/>
<value name="ColorTable26" type="dword" data="0000ff00"/>
<value name="ColorTable27" type="dword" data="00ffff00"/>
<value name="ColorTable28" type="dword" data="000000ff"/>
<value name="ColorTable29" type="dword" data="00ff00ff"/>
<value name="ColorTable30" type="dword" data="0000ffff"/>
<value name="ColorTable31" type="dword" data="00ffffff"/>
<value name="ExtendColors" type="hex" data="00"/>
<value name="ExtendColorIdx" type="hex" data="0e"/>
<value name="TextColorIdx" type="hex" data="10"/>
<value name="BackColorIdx" type="hex" data="10"/>
<value name="PopTextColorIdx" type="hex" data="10"/>
<value name="PopBackColorIdx" type="hex" data="10"/>
<value name="ExtendFonts" type="hex" data="00"/>
<value name="ExtendFontNormalIdx" type="hex" data="01"/>
<value name="ExtendFontBoldIdx" type="hex" data="0c"/>
<value name="ExtendFontItalicIdx" type="hex" data="0d"/>
<value name="CursorTypeActive" type="dword" data="000232c1"/>
<value name="CursorTypeInactive" type="dword" data="00823282"/>
<value name="ClipboardDetectLineEnd" type="hex" data="01"/>
<value name="ClipboardBashMargin" type="hex" data="00"/>
<value name="ClipboardTrimTrailing" type="hex" data="02"/>
<value name="ClipboardEOL" type="hex" data="00"/>
<value name="ClipboardArrowStart" type="hex" data="00"/>
<value name="ClipboardAllLines" type="hex" data="01"/>
<value name="ClipboardFirstLine" type="hex" data="01"/>
<value name="ClipboardClickPromptPosition" type="hex" data="02"/>
<value name="ClipboardDeleteLeftWord" type="hex" data="01"/>
<value name="TrueColorerSupport" type="hex" data="01"/>
<value name="FadeInactive" type="hex" data="01"/>
<value name="FadeInactiveLow" type="hex" data="00"/>
<value name="FadeInactiveHigh" type="hex" data="c8"/>
<value name="ConVisible" type="hex" data="00"/>
<value name="ConInMode" type="dword" data="ffffffff"/>
<value name="UseInjects" type="hex" data="01"/>
<value name="SetDefaultTerminal" type="hex" data="00"/>
<value name="SetDefaultTerminalStartup" type="hex" data="00"/>
<value name="DefaultTerminalNoInjects" type="hex" data="00"/>
<value name="DefaultTerminalConfirm" type="hex" data="01"/>
<value name="DefaultTerminalApps" type="string" data="explorer.exe"/>
<value name="ProcessAnsi" type="hex" data="01"/>
<value name="UseClink" type="hex" data="01"/>
<value name="StartType" type="hex" data="02"/>
<value name="CmdLine" type="string" data=""/>
<value name="StartTasksFile" type="string" data=""/>
<value name="StartTasksName" type="string" data="{cmd}"/>
<value name="StartFarFolders" type="hex" data="00"/>
<value name="StartFarEditors" type="hex" data="00"/>
<value name="StoreTaskbarkTasks" type="hex" data="00"/>
<value name="StoreTaskbarCommands" type="hex" data="00"/>
<value name="CmdLineHistory" type="multi"><line data=";C:\Users\bliker\Desktop\cmder\lib\ConEmu;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\"/></value>
<value name="SingleInstance" type="hex" data="00"/>
<value name="ShowHelpTooltips" type="hex" data="01"/>
<value name="Multi" type="hex" data="01"/>
<value name="Multi.ShowButtons" type="hex" data="01"/>
<value name="Multi.NumberInCaption" type="hex" data="00"/>
<value name="Multi.CloseConfirm" type="hex" data="00"/>
<value name="Multi.CloseEditViewConfirm" type="hex" data="00"/>
<value name="Multi.NewConfirm" type="hex" data="01"/>
<value name="Multi.UseArrows" type="hex" data="00"/>
<value name="Multi.UseNumbers" type="hex" data="01"/>
<value name="Multi.UseWinTab" type="hex" data="00"/>
<value name="Multi.AutoCreate" type="hex" data="00"/>
<value name="Multi.LeaveOnClose" type="hex" data="00"/>
<value name="Multi.HideOnClose" type="hex" data="00"/>
<value name="Multi.MinByEsc" type="hex" data="02"/>
<value name="MapShiftEscToEsc" type="hex" data="01"/>
<value name="Multi.Iterate" type="hex" data="01"/>
<value name="Multi.SplitWidth" type="hex" data="04"/>
<value name="Multi.SplitHeight" type="hex" data="04"/>
<value name="KeyboardHooks" type="hex" data="02"/>
<value name="FontName" type="string" data="Consolas"/>
<value name="FontName2" type="string" data="Lucida Console"/>
<value name="FontAutoSize" type="hex" data="00"/>
<value name="FontSize" type="dword" data="00000010"/>
<value name="FontSizeX" type="dword" data="00000000"/>
<value name="FontSizeX2" type="dword" data="00000000"/>
<value name="FontSizeX3" type="dword" data="00000000"/>
<value name="FontCharSet" type="hex" data="00"/>
<value name="Anti-aliasing" type="dword" data="00000006"/>
<value name="FontBold" type="hex" data="00"/>
<value name="FontItalic" type="hex" data="00"/>
<value name="Monospace" type="hex" data="01"/>
<value name="BackGround Image show" type="hex" data="00"/>
<value name="BackGround Image" type="string" data="c:\back.bmp"/>
<value name="bgImageDarker" type="hex" data="ff"/>
<value name="bgImageColors" type="dword" data="ffffffff"/>
<value name="bgOperation" type="hex" data="00"/>
<value name="bgPluginAllowed" type="hex" data="01"/>
<value name="AlphaValue" type="hex" data="f8"/>
<value name="AlphaValueSeparate" type="hex" data="01"/>
<value name="AlphaValueInactive" type="hex" data="ee"/>
<value name="UserScreenTransparent" type="hex" data="00"/>
<value name="ColorKeyTransparent" type="hex" data="00"/>
<value name="ColorKeyValue" type="dword" data="00010101"/>
<value name="UseCurrentSizePos" type="hex" data="01"/>
<value name="WindowMode" type="dword" data="0000051f"/>
<value name="ConWnd Width" type="dword" data="0000006f"/>
<value name="ConWnd Height" type="dword" data="00000026"/>
<value name="Cascaded" type="hex" data="01"/>
<value name="ConWnd X" type="dword" data="00000108"/>
<value name="ConWnd Y" type="dword" data="000000c1"/>
<value name="16bit Height" type="dword" data="00000000"/>
<value name="AutoSaveSizePos" type="hex" data="00"/>
<value name="IntegralSize" type="hex" data="00"/>
<value name="QuakeStyle" type="hex" data="00"/>
<value name="QuakeAnimation" type="dword" data="0000012c"/>
<value name="HideCaption" type="hex" data="00"/>
<value name="HideChildCaption" type="hex" data="01"/>
<value name="FocusInChildWindows" type="hex" data="01"/>
<value name="HideCaptionAlways" type="hex" data="00"/>
<value name="HideCaptionAlwaysFrame" type="hex" data="ff"/>
<value name="HideCaptionAlwaysDelay" type="dword" data="000007d0"/>
<value name="HideCaptionAlwaysDisappear" type="dword" data="000007d0"/>
<value name="DownShowHiddenMessage" type="hex" data="00"/>
<value name="ConsoleFontName" type="string" data="Lucida Console"/>
<value name="ConsoleFontWidth" type="dword" data="00000003"/>
<value name="ConsoleFontHeight" type="dword" data="00000005"/>
<value name="DefaultBufferHeight" type="dword" data="000003e8"/>
<value name="AutoBufferHeight" type="hex" data="01"/>
<value name="CmdOutputCP" type="dword" data="00000000"/>
<value name="ComSpec.Type" type="hex" data="00"/>
<value name="ComSpec.Bits" type="hex" data="00"/>
<value name="ComSpec.UpdateEnv" type="hex" data="00"/>
<value name="ComSpec.EnvAddPath" type="hex" data="01"/>
<value name="ComSpec.EnvAddExePath" type="hex" data="01"/>
<value name="ComSpec.UncPaths" type="hex" data="00"/>
<value name="ComSpec.Path" type="string" data=""/>
<value name="ConsoleTextSelection" type="hex" data="01"/>
<value name="CTS.AutoCopy" type="hex" data="01"/>
<value name="CTS.EndOnTyping" type="hex" data="00"/>
<value name="CTS.EndOnKeyPress" type="hex" data="00"/>
<value name="CTS.Freeze" type="hex" data="00"/>
<value name="CTS.SelectBlock" type="hex" data="01"/>
<value name="CTS.SelectText" type="hex" data="01"/>
<value name="CTS.ActMode" type="hex" data="02"/>
<value name="CTS.RBtnAction" type="hex" data="03"/>
<value name="CTS.MBtnAction" type="hex" data="00"/>
<value name="CTS.ColorIndex" type="hex" data="e0"/>
<value name="ClipboardConfirmEnter" type="hex" data="01"/>
<value name="ClipboardConfirmLonger" type="dword" data="000000c8"/>
<value name="FarGotoEditorOpt" type="hex" data="01"/>
<value name="FarGotoEditorPath" type="string" data="far.exe /e%1:%2 &quot;%3&quot;"/>
<value name="FixFarBorders" type="hex" data="01"/>
<value name="FixFarBordersRanges" type="string" data="2013-25C4;"/>
<value name="ExtendUCharMap" type="hex" data="01"/>
<value name="EnhanceGraphics" type="hex" data="01"/>
<value name="EnhanceButtons" type="hex" data="00"/>
<value name="PartBrush75" type="hex" data="c8"/>
<value name="PartBrush50" type="hex" data="96"/>
<value name="PartBrush25" type="hex" data="5a"/>
<value name="PartBrushBlack" type="hex" data="20"/>
<value name="RightClick opens context menu" type="hex" data="02"/>
<value name="RightClickMacro2" type="string" data=""/>
<value name="SendAltTab" type="hex" data="00"/>
<value name="SendAltEsc" type="hex" data="00"/>
<value name="SendAltPrintScrn" type="hex" data="00"/>
<value name="SendPrintScrn" type="hex" data="00"/>
<value name="SendCtrlEsc" type="hex" data="00"/>
<value name="Min2Tray" type="hex" data="00"/>
<value name="AlwaysShowTrayIcon" type="hex" data="00"/>
<value name="SafeFarClose" type="hex" data="01"/>
<value name="SafeFarCloseMacro" type="string" data=""/>
<value name="FARuseASCIIsort" type="hex" data="00"/>
<value name="ShellNoZoneCheck" type="hex" data="00"/>
<value name="FixAltOnAltTab" type="hex" data="00"/>
<value name="DisableMouse" type="hex" data="00"/>
<value name="RSelectionFix" type="hex" data="01"/>
<value name="MouseSkipActivation" type="hex" data="01"/>
<value name="MouseSkipMoving" type="hex" data="01"/>
<value name="FarHourglass" type="hex" data="01"/>
<value name="FarHourglassDelay" type="dword" data="000001f4"/>
<value name="Dnd" type="hex" data="01"/>
<value name="DndDrop" type="hex" data="01"/>
<value name="DefCopy" type="hex" data="01"/>
<value name="DropUseMenu" type="hex" data="02"/>
<value name="DragOverlay" type="hex" data="01"/>
<value name="DragShowIcons" type="hex" data="01"/>
<value name="DebugSteps" type="hex" data="01"/>
<value name="DragPanel" type="hex" data="02"/>
<value name="DragPanelBothEdges" type="hex" data="00"/>
<value name="KeyBarRClick" type="hex" data="01"/>
<value name="StatusBar.Show" type="hex" data="00"/>
<value name="StatusBar.Flags" type="dword" data="00000002"/>
<value name="StatusFontFace" type="string" data="Tahoma"/>
<value name="StatusFontCharSet" type="dword" data="00000000"/>
<value name="StatusFontHeight" type="dword" data="0000000e"/>
<value name="StatusBar.Color.Back" type="dword" data="00404040"/>
<value name="StatusBar.Color.Light" type="dword" data="00ffffff"/>
<value name="StatusBar.Color.Dark" type="dword" data="00a0a0a0"/>
<value name="StatusBar.Hide.VCon" type="hex" data="00"/>
<value name="StatusBar.Hide.CapsL" type="hex" data="00"/>
<value name="StatusBar.Hide.NumL" type="hex" data="00"/>
<value name="StatusBar.Hide.ScrL" type="hex" data="00"/>
<value name="StatusBar.Hide.Lang" type="hex" data="01"/>
<value name="StatusBar.Hide.WPos" type="hex" data="01"/>
<value name="StatusBar.Hide.WSize" type="hex" data="01"/>
<value name="StatusBar.Hide.WClient" type="hex" data="01"/>
<value name="StatusBar.Hide.WWork" type="hex" data="01"/>
<value name="StatusBar.Hide.Style" type="hex" data="01"/>
<value name="StatusBar.Hide.StyleEx" type="hex" data="01"/>
<value name="StatusBar.Hide.hFore" type="hex" data="01"/>
<value name="StatusBar.Hide.hFocus" type="hex" data="01"/>
<value name="StatusBar.Hide.ABuf" type="hex" data="00"/>
<value name="StatusBar.Hide.CPos" type="hex" data="00"/>
<value name="StatusBar.Hide.CSize" type="hex" data="00"/>
<value name="StatusBar.Hide.BSize" type="hex" data="00"/>
<value name="StatusBar.Hide.CurX" type="hex" data="00"/>
<value name="StatusBar.Hide.CurY" type="hex" data="00"/>
<value name="StatusBar.Hide.CurS" type="hex" data="00"/>
<value name="StatusBar.Hide.CurI" type="hex" data="01"/>
<value name="StatusBar.Hide.ConEmuPID" type="hex" data="01"/>
<value name="StatusBar.Hide.ConEmuHWND" type="hex" data="01"/>
<value name="StatusBar.Hide.ConEmuView" type="hex" data="01"/>
<value name="StatusBar.Hide.Srv" type="hex" data="00"/>
<value name="StatusBar.Hide.SrvHWND" type="hex" data="01"/>
<value name="StatusBar.Hide.Transparency" type="hex" data="00"/>
<value name="StatusBar.Hide.New" type="hex" data="00"/>
<value name="StatusBar.Hide.Sync" type="hex" data="00"/>
<value name="StatusBar.Hide.Proc" type="hex" data="00"/>
<value name="StatusBar.Hide.Title" type="hex" data="01"/>
<value name="StatusBar.Hide.Resize" type="hex" data="00"/>
<value name="Tabs" type="hex" data="02"/>
<value name="TabsLocation" type="hex" data="01"/>
<value name="TabSelf" type="hex" data="01"/>
<value name="TabLazy" type="hex" data="01"/>
<value name="TabRecent" type="hex" data="01"/>
<value name="TabDblClick" type="dword" data="00000001"/>
<value name="TabsOnTaskBar" type="hex" data="02"/>
<value name="TaskBarOverlay" type="hex" data="01"/>
<value name="TabCloseMacro" type="string" data=""/>
<value name="TabFontFace" type="string" data="Segoe UI"/>
<value name="TabFontCharSet" type="dword" data="00000000"/>
<value name="TabFontHeight" type="dword" data="00000010"/>
<value name="SaveAllEditors" type="string" data=""/>
<value name="ToolbarAddSpace" type="dword" data="00000000"/>
<value name="TabConsole" type="string" data=" %n "/>
<value name="TabSkipWords" type="string" data="Administrator:|Администратор:"/>
<value name="TabPanels" type="string" data="&lt;%c&gt; %s"/>
<value name="TabEditor" type="string" data="&lt;%c.%i&gt;{%s}"/>
<value name="TabEditorModified" type="string" data="&lt;%c.%i&gt;[%s] *"/>
<value name="TabViewer" type="string" data="&lt;%c.%i&gt;[%s]"/>
<value name="TabLenMax" type="dword" data="00000014"/>
<value name="AdminTitleSuffix" type="string" data=" (Admin)"/>
<value name="AdminShowShield" type="hex" data="01"/>
<value name="HideInactiveConsoleTabs" type="hex" data="00"/>
<value name="ShowFarWindows" type="hex" data="01"/>
<value name="TryToCenter" type="hex" data="01"/>
<value name="CenterConsolePad" type="dword" data="00000008"/>
<value name="ShowScrollbar" type="hex" data="02"/>
<value name="ScrollBarAppearDelay" type="dword" data="00000064"/>
<value name="ScrollBarDisappearDelay" type="dword" data="000003e8"/>
<value name="IconID" type="dword" data="00000001"/>
<value name="MainTimerElapse" type="dword" data="0000000a"/>
<value name="MainTimerInactiveElapse" type="dword" data="000003e8"/>
<value name="AffinityMask" type="dword" data="00000000"/>
<value name="SkipFocusEvents" type="hex" data="00"/>
<value name="MonitorConsoleLang" type="hex" data="03"/>
<value name="DesktopMode" type="hex" data="00"/>
<value name="SnapToDesktopEdges" type="hex" data="00"/>
<value name="AlwaysOnTop" type="hex" data="00"/>
<value name="SleepInBackground" type="hex" data="01"/>
<value name="MinimizeOnLoseFocus" type="hex" data="00"/>
<value name="DisableFarFlashing" type="hex" data="00"/>
<value name="DisableAllFlashing" type="hex" data="00"/>
<value name="FindText" type="string" data=""/>
<value name="FindMatchCase" type="hex" data="00"/>
<value name="FindMatchWholeWords" type="hex" data="00"/>
<value name="FindTransparent" type="hex" data="01"/>
<value name="PanView.BackColor" type="dword" data="30ffffff"/>
<value name="PanView.PFrame" type="dword" data="00000001"/>
<value name="PanView.PFrameColor" type="dword" data="28808080"/>
<value name="PanView.SFrame" type="dword" data="00000001"/>
<value name="PanView.SFrameColor" type="dword" data="07c0c0c0"/>
<value name="PanView.Thumbs.ImgSize" type="dword" data="00000060"/>
<value name="PanView.Thumbs.SpaceX1" type="dword" data="00000001"/>
<value name="PanView.Thumbs.SpaceY1" type="dword" data="00000001"/>
<value name="PanView.Thumbs.SpaceX2" type="dword" data="00000005"/>
<value name="PanView.Thumbs.SpaceY2" type="dword" data="00000014"/>
<value name="PanView.Thumbs.LabelSpacing" type="dword" data="00000002"/>
<value name="PanView.Thumbs.LabelPadding" type="dword" data="00000000"/>
<value name="PanView.Thumbs.FontName" type="string" data="Tahoma"/>
<value name="PanView.Thumbs.FontHeight" type="dword" data="0000000e"/>
<value name="PanView.Tiles.ImgSize" type="dword" data="00000030"/>
<value name="PanView.Tiles.SpaceX1" type="dword" data="00000004"/>
<value name="PanView.Tiles.SpaceY1" type="dword" data="00000004"/>
<value name="PanView.Tiles.SpaceX2" type="dword" data="000000ac"/>
<value name="PanView.Tiles.SpaceY2" type="dword" data="00000004"/>
<value name="PanView.Tiles.LabelSpacing" type="dword" data="00000004"/>
<value name="PanView.Tiles.LabelPadding" type="dword" data="00000001"/>
<value name="PanView.Tiles.FontName" type="string" data="Tahoma"/>
<value name="PanView.Tiles.FontHeight" type="dword" data="0000000e"/>
<value name="PanView.LoadPreviews" type="hex" data="03"/>
<value name="PanView.LoadFolders" type="hex" data="01"/>
<value name="PanView.LoadTimeout" type="dword" data="0000000f"/>
<value name="PanView.MaxZoom" type="dword" data="00000258"/>
<value name="PanView.UsePicView2" type="hex" data="01"/>
<value name="PanView.RestoreOnStartup" type="hex" data="00"/>
<value name="Update.VerLocation" type="string" data=""/>
<value name="Update.CheckOnStartup" type="hex" data="01"/>
<value name="Update.CheckHourly" type="hex" data="00"/>
<value name="Update.ConfirmDownload" type="hex" data="01"/>
<value name="Update.UseBuilds" type="hex" data="02"/>
<value name="Update.UseProxy" type="hex" data="00"/>
<value name="Update.Proxy" type="string" data=""/>
<value name="Update.ProxyUser" type="string" data=""/>
<value name="Update.ProxyPassword" type="string" data=""/>
<value name="Update.ExeCmdLine" type="string" data=""/>
<value name="Update.ArcCmdLine" type="string" data=""/>
<value name="Update.DownloadPath" type="string" data="%TEMP%\ConEmu"/>
<value name="Update.LeavePackages" type="hex" data="00"/>
<value name="Update.PostUpdateCmd" type="string" data="echo Last successful update&gt;ConEmuUpdate.info &amp;&amp; date /t&gt;&gt;ConEmuUpdate.info &amp;&amp; time /t&gt;&gt;ConEmuUpdate.info"/>
<value name="Multi.Modifier" type="dword" data="00000011"/>
<value name="Multi.ArrowsModifier" type="dword" data="0000005b"/>
<value name="KeyMacroVersion" type="hex" data="02"/>
<value name="MinimizeRestore" type="dword" data="000011c0"/>
<value name="MinimizeRestore2" type="dword" data="00000000"/>
<value name="GlobalRestore" type="dword" data="00000000"/>
<value name="ForcedFullScreen" type="dword" data="12115b0d"/>
<value name="SwitchGuiFocus" type="dword" data="00000000"/>
<value name="SetFocusGui" type="dword" data="00000000"/>
<value name="SetFocusChild" type="dword" data="00000000"/>
<value name="ChildSystemMenu" type="dword" data="00000000"/>
<value name="Multi.NewConsole" type="dword" data="80808000"/>
<value name="Multi.NewConsoleShift" type="dword" data="00001154"/>
<value name="Multi.NewConsolePopup" type="dword" data="80808000"/>
<value name="Multi.NewWindow" type="dword" data="00000000"/>
<value name="Multi.NewSplitV" type="dword" data="00001000"/>
<value name="Multi.NewSplitH" type="dword" data="80808000"/>
<value name="Multi.NewAttach" type="dword" data="00005b00"/>
<value name="Multi.Next" type="dword" data="80808000"/>
<value name="Multi.NextShift" type="dword" data="80808000"/>
<value name="Multi.Recreate" type="dword" data="00005b00"/>
<value name="Multi.AltCon" type="dword" data="80808000"/>
<value name="Multi.Scroll" type="dword" data="00005b00"/>
<value name="Multi.Close" type="dword" data="00001157"/>
<value name="CloseTabKey" type="dword" data="00125b00"/>
<value name="CloseGroupKey" type="dword" data="00000000"/>
<value name="TerminateProcessKey" type="dword" data="80808000"/>
<value name="DuplicateRootKey" type="dword" data="00000000"/>
<value name="CloseConEmuKey" type="dword" data="00001273"/>
<value name="Multi.Rename" type="dword" data="80808000"/>
<value name="Multi.MoveLeft" type="dword" data="00125b25"/>
<value name="Multi.MoveRight" type="dword" data="00125b27"/>
<value name="Multi.CmdKey" type="dword" data="80808000"/>
<value name="CTS.VkBlockStart" type="dword" data="00000000"/>
<value name="CTS.VkTextStart" type="dword" data="00000000"/>
<value name="CTS.VkCopyAll" type="dword" data="00000000"/>
<value name="Multi.ShowTabsList" type="dword" data="00000000"/>
<value name="Multi.ShowTabsList2" type="dword" data="80808000"/>
<value name="ClipboardVkAllLines" type="dword" data="0000102d"/>
<value name="ClipboardVkFirstLine" type="dword" data="00001156"/>
<value name="DeleteWordToLeft" type="dword" data="00001108"/>
<value name="FindTextKey" type="dword" data="00005d46"/>
<value name="ScreenshotKey" type="dword" data="80808000"/>
<value name="ScreenshotFullKey" type="dword" data="80808000"/>
<value name="ShowStatusBarKey" type="dword" data="80808000"/>
<value name="ShowTabBarKey" type="dword" data="80808000"/>
<value name="ShowCaptionKey" type="dword" data="80808000"/>
<value name="AlwaysOnTopKey" type="dword" data="00000000"/>
<value name="Key.TabMenu" type="dword" data="80808000"/>
<value name="Key.TabMenu2" type="dword" data="80808000"/>
<value name="Key.TabPane1" type="dword" data="80808000"/>
<value name="Key.TabPane2" type="dword" data="80808000"/>
<value name="Key.Maximize" type="dword" data="80808000"/>
<value name="Key.FullScreen" type="dword" data="0000120d"/>
<value name="Key.SysMenu" type="dword" data="80808000"/>
<value name="Key.SysMenu2" type="dword" data="00001102"/>
<value name="Key.BufUp" type="dword" data="00001126"/>
<value name="Key.BufDn" type="dword" data="00001128"/>
<value name="Key.BufPgUp" type="dword" data="00001121"/>
<value name="Key.BufPgDn" type="dword" data="00001122"/>
<value name="Key.PicViewSlide" type="dword" data="80808000"/>
<value name="Key.PicViewSlower" type="dword" data="80808000"/>
<value name="Key.PicViewFaster" type="dword" data="80808000"/>
<value name="FontLargerKey" type="dword" data="80808000"/>
<value name="FontSmallerKey" type="dword" data="80808000"/>
<value name="PasteFileKey" type="dword" data="00101146"/>
<value name="PastePathKey" type="dword" data="00101144"/>
<value name="PasteCygwinKey" type="dword" data="00005d2d"/>
<value name="Key.JumpPrevMonitor" type="dword" data="80808000"/>
<value name="Key.JumpNextMonitor" type="dword" data="80808000"/>
<value name="Key.TileToLeft" type="dword" data="80808000"/>
<value name="Key.TileToRIght" type="dword" data="80808000"/>
<value name="KeyMacro01" type="dword" data="00121131"/>
<value name="KeyMacro01.Text" type="string" data="Task(&quot;cmd&quot;)"/>
<value name="KeyMacro02" type="dword" data="00121132"/>
<value name="KeyMacro02.Text" type="string" data="Task(&quot;PowerShell&quot;)"/>
<value name="KeyMacro03" type="dword" data="00000000"/>
<value name="KeyMacro03.Text" type="string" data=""/>
<value name="KeyMacro04" type="dword" data="00000000"/>
<value name="KeyMacro04.Text" type="string" data=""/>
<value name="KeyMacro05" type="dword" data="00000000"/>
<value name="KeyMacro05.Text" type="string" data=""/>
<value name="KeyMacro06" type="dword" data="00000000"/>
<value name="KeyMacro06.Text" type="string" data=""/>
<value name="KeyMacro07" type="dword" data="00000000"/>
<value name="KeyMacro07.Text" type="string" data=""/>
<value name="KeyMacro08" type="dword" data="00000000"/>
<value name="KeyMacro08.Text" type="string" data=""/>
<value name="KeyMacro09" type="dword" data="00000000"/>
<value name="KeyMacro09.Text" type="string" data=""/>
<value name="KeyMacro10" type="dword" data="00000000"/>
<value name="KeyMacro10.Text" type="string" data=""/>
<value name="KeyMacro11" type="dword" data="00000000"/>
<value name="KeyMacro11.Text" type="string" data=""/>
<value name="KeyMacro12" type="dword" data="00000000"/>
<value name="KeyMacro12.Text" type="string" data=""/>
<value name="KeyMacro13" type="dword" data="00000000"/>
<value name="KeyMacro13.Text" type="string" data=""/>
<value name="KeyMacro14" type="dword" data="00000000"/>
<value name="KeyMacro14.Text" type="string" data=""/>
<value name="KeyMacro15" type="dword" data="00000000"/>
<value name="KeyMacro15.Text" type="string" data=""/>
<value name="KeyMacro16" type="dword" data="00000000"/>
<value name="KeyMacro16.Text" type="string" data=""/>
<value name="KeyMacro17" type="dword" data="00000000"/>
<value name="KeyMacro17.Text" type="string" data=""/>
<value name="KeyMacro18" type="dword" data="00000000"/>
<value name="KeyMacro18.Text" type="string" data=""/>
<value name="KeyMacro19" type="dword" data="00000000"/>
<value name="KeyMacro19.Text" type="string" data=""/>
<value name="KeyMacro20" type="dword" data="00000000"/>
<value name="KeyMacro20.Text" type="string" data=""/>
<value name="KeyMacro21" type="dword" data="00000000"/>
<value name="KeyMacro21.Text" type="string" data=""/>
<value name="KeyMacro22" type="dword" data="00000000"/>
<value name="KeyMacro22.Text" type="string" data=""/>
<value name="KeyMacro23" type="dword" data="00000000"/>
<value name="KeyMacro23.Text" type="string" data=""/>
<value name="KeyMacro24" type="dword" data="00000000"/>
<value name="KeyMacro24.Text" type="string" data=""/>
<value name="KeyMacro25" type="dword" data="00000000"/>
<value name="KeyMacro25.Text" type="string" data=""/>
<value name="KeyMacro26" type="dword" data="00000000"/>
<value name="KeyMacro26.Text" type="string" data=""/>
<value name="KeyMacro27" type="dword" data="00000000"/>
<value name="KeyMacro27.Text" type="string" data=""/>
<value name="KeyMacro28" type="dword" data="00000000"/>
<value name="KeyMacro28.Text" type="string" data=""/>
<value name="KeyMacro29" type="dword" data="00000000"/>
<value name="KeyMacro29.Text" type="string" data=""/>
<value name="KeyMacro30" type="dword" data="00000000"/>
<value name="KeyMacro30.Text" type="string" data=""/>
<value name="KeyMacro31" type="dword" data="00000000"/>
<value name="KeyMacro31.Text" type="string" data=""/>
<value name="KeyMacro32" type="dword" data="00000000"/>
<value name="KeyMacro32.Text" type="string" data=""/>
<value name="CTS.VkBlock" type="hex" data="a4"/>
<value name="CTS.VkText" type="hex" data="a0"/>
<value name="CTS.VkAct" type="hex" data="00"/>
<value name="CTS.VkPrompt" type="hex" data="00"/>
<value name="FarGotoEditorVk" type="hex" data="a2"/>
<value name="DndLKey" type="hex" data="00"/>
<value name="DndRKey" type="hex" data="a2"/>
<value name="WndDragKey" type="dword" data="00121101"/>
<key name="Tasks" modified="2013-07-16 16:32:45">
<value name="Count" type="dword" data="00000002"/>
<key name="Task1" modified="2013-07-16 16:32:45">
<value name="Name" type="string" data="{cmd}"/>
<value name="GuiArgs" type="string" data=" /icon &quot;cmd.exe&quot;"/>
<value name="Cmd1" type="string" data="cmd /k vendor\init.bat"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
</key>
<key name="Task2" modified="2013-07-16 16:32:45">
<value name="Name" type="string" data="{PowerShell}"/>
<value name="GuiArgs" type="string" data="/dir &quot;%userprofile%&quot;"/>
<value name="Cmd1" type="string" data="powershell"/>
<value name="Active" type="dword" data="00000000"/>
<value name="Count" type="dword" data="00000001"/>
</key>
</key>
<key name="Apps" modified="2013-07-16 16:32:45">
<value name="Count" type="dword" data="00000000"/>
</key>
<key name="Colors" modified="2013-07-16 16:32:45">
<key name="Palette1" modified="2013-07-16 16:32:45">
<value name="Name" type="string" data="Monokai"/>
<value name="ExtendColors" type="hex" data="00"/>
<value name="ExtendColorIdx" type="hex" data="0e"/>
<value name="TextColorIdx" type="hex" data="10"/>
<value name="BackColorIdx" type="hex" data="10"/>
<value name="PopTextColorIdx" type="hex" data="10"/>
<value name="PopBackColorIdx" type="hex" data="10"/>
<value name="ColorTable00" type="dword" data="00222827"/>
<value name="ColorTable01" type="dword" data="009e5401"/>
<value name="ColorTable02" type="dword" data="0004aa74"/>
<value name="ColorTable03" type="dword" data="00a6831a"/>
<value name="ColorTable04" type="dword" data="003403a7"/>
<value name="ColorTable05" type="dword" data="009c5689"/>
<value name="ColorTable06" type="dword" data="0049b6b6"/>
<value name="ColorTable07" type="dword" data="00cacaca"/>
<value name="ColorTable08" type="dword" data="007c7c7c"/>
<value name="ColorTable09" type="dword" data="00f58303"/>
<value name="ColorTable10" type="dword" data="0006d08d"/>
<value name="ColorTable11" type="dword" data="00e5c258"/>
<value name="ColorTable12" type="dword" data="004b04f3"/>
<value name="ColorTable13" type="dword" data="00b87da8"/>
<value name="ColorTable14" type="dword" data="0081cccc"/>
<value name="ColorTable15" type="dword" data="00ffffff"/>
<value name="ColorTable16" type="dword" data="00000000"/>
<value name="ColorTable17" type="dword" data="00800000"/>
<value name="ColorTable18" type="dword" data="00008000"/>
<value name="ColorTable19" type="dword" data="00808000"/>
<value name="ColorTable20" type="dword" data="00000080"/>
<value name="ColorTable21" type="dword" data="00800080"/>
<value name="ColorTable22" type="dword" data="00008080"/>
<value name="ColorTable23" type="dword" data="00c0c0c0"/>
<value name="ColorTable24" type="dword" data="00808080"/>
<value name="ColorTable25" type="dword" data="00ff0000"/>
<value name="ColorTable26" type="dword" data="0000ff00"/>
<value name="ColorTable27" type="dword" data="00ffff00"/>
<value name="ColorTable28" type="dword" data="000000ff"/>
<value name="ColorTable29" type="dword" data="00ff00ff"/>
<value name="ColorTable30" type="dword" data="0000ffff"/>
<value name="ColorTable31" type="dword" data="00ffffff"/>
</key>
<value name="Count" type="dword" data="00000001"/>
</key>
</key>
</key>
</key>

View File

@ -1,3 +1,16 @@
## Config
All config files must be in this folder, if there is no option to set the folder directly, it has to be hardlinked.
All config files must be in this folder. If there is no option to set this folder
directly, it has to be hardlinked.
* `user_aliases.cmd`: aliases in cmd; called from vendor\init.bat; autocreated from
`vendor\user_aliases.cmd.default`.
* `*.lua`: clink completions and prompt filters; autoloaded after all
prompt filter and clink completions are initialized; add your own.
* `user_profile.{sh|cmd|ps1}`: startup files for bash|cmd|powershell tasks; called from their
respective startup scripts in `vendor\`; autocreated from
`vendor\user_profile.{sh|cmd|ps1}.default` on first start of such a task.
* `.history`: the current commandline history; autoupdated on close.
* `settings`: settings for readline; overwritten on update.
* `user-ConEmu.xml`: settings from ConEmu the UI of Cmder. ;
Do not edit this file directly it is overwritten on each cmder.exe launch.

View File

@ -1,3 +0,0 @@
e.=explorer .
gl=git log --oneline --all --graph --decorate
hej=dir

View File

@ -0,0 +1,3 @@
## Profile.d Folder
* Files in this folder named `*.{sh|cmd|ps1}`: Will be executed by the appropriate shell when starting the shell.

View File

@ -1,43 +0,0 @@
# name: Ctrl-D exits
# type: bool
# Ctrl-D exits the process when it is pressed on an empty line.
ctrld_exits = 1
# name: Ctrl-C raises exception
# type: bool
# When Ctrl-C is pressed Clink will pass it thourgh to the parent by raising the
# appropriate exception.
passthrough_ctrlc = 1
# name: Esc clears line
# type: bool
# Clink clears the current line when Esc is pressed (unless Readline's Vi mode
# is enabled).
esc_clears_line = 1
# name: Match display colour
# type: int
# Colour to use when displaying matches. A value less than 0 will be the
# opposite brightness of the default colour.
match_colour = -1
# name: Executable match style
# type: enum
# Changes how Clink will match executables when there is no path separator on
# the line. 0 = PATH only, 1 = PATH and CWD, 2 = PATH, CWD, and directories. In
# all cases both executables and directories are matched when there is a path
# separator present.
exec_match_style = -1
# name: Prompt colour
# type: int
# Surrounds the prompt in ANSI escape codes to set the prompt's colour. Disabled
# when the value is less than 0.
prompt_colour = -1
# name: Auto-answer terminate prompt
# type: enum
# Automatically answers cmd.exe's 'Terminate batch job (Y/N)?' prompts. 0 =
# disabled, 1 = answer 'Y', 2 = answer 'N'.
terminate_autoanswer = 0

BIN
icons/cmder.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
icons/cmder_blue.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
icons/cmder_green.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
icons/cmder_icon.psd Normal file

Binary file not shown.

BIN
icons/cmder_orange.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
icons/cmder_purple.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
icons/cmder_red.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
icons/cmder_yellow.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
icons/icon_16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
icons/icon_16_blue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

BIN
icons/icon_16_green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

BIN
icons/icon_16_orange.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

BIN
icons/icon_16_purple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

BIN
icons/icon_16_red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

BIN
icons/icon_16_yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

BIN
icons/icon_256.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
icons/icon_256_blue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
icons/icon_256_green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
icons/icon_256_orange.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
icons/icon_256_purple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
icons/icon_256_red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
icons/icon_256_yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
icons/icon_32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
icons/icon_32_blue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

BIN
icons/icon_32_green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

BIN
icons/icon_32_orange.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

BIN
icons/icon_32_purple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

BIN
icons/icon_32_red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

BIN
icons/icon_32_yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

BIN
icons/icon_48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
icons/icon_48_blue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

BIN
icons/icon_48_green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

BIN
icons/icon_48_orange.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

BIN
icons/icon_48_purple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

BIN
icons/icon_48_red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

BIN
icons/icon_48_yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

181
launcher/.gitignore vendored Normal file
View File

@ -0,0 +1,181 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
*.filters
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
x64/
build/
bld/
[Bb]in/
[Oo]bj/
# Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
!packages/*/build/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.Publish.xml
*.azurePubxml
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
## TODO: If the tool you use requires repositories.config, also uncomment the next line
#!packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# =========================
# Windows detritus
# =========================
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/

View File

@ -0,0 +1,28 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmderLauncher", "CmderLauncher.vcxproj", "{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Debug|Win32.ActiveCfg = Debug|Win32
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Debug|Win32.Build.0 = Debug|Win32
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Release|Win32.ActiveCfg = Release|Win32
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Release|Win32.Build.0 = Release|Win32
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Debug|x64.ActiveCfg = Debug|x64
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Debug|x64.Build.0 = Debug|x64
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Release|x64.ActiveCfg = Release|x64
{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{4A8485A5-B7DD-4C44-B7F6-3E2765DD0CD3}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>CmderLauncher</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<TargetName>Cmder</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<TargetName>Cmder</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<TargetName>Cmder</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>Cmder</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<!-- <AdditionalDependencies>comctl32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> -->
</Link>
<Manifest>
<AdditionalManifestFiles>src/app.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
<ResourceCompile>
<PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MinSpace</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<!-- <AdditionalDependencies>comctl32.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies> -->
</Link>
<Manifest>
<AdditionalManifestFiles>src/app.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
<PostBuildEvent>
<Command>copy "$(TargetPath)" "$(SolutionDir)..\$(TargetFileName)"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Manifest>
<AdditionalManifestFiles>src/app.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
<ResourceCompile>
<PreprocessorDefinitions>_USING_V110_SDK71_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MinSpace</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Manifest>
<AdditionalManifestFiles>src/app.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
<PostBuildEvent>
<Command>copy $(TargetPath) $(SolutionDir)..\$(TargetFileName)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="src\resource.rc">
<FileType>RC</FileType>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\resource.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\CmderLauncher.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,783 @@
#include <windows.h>
#include <tchar.h>
#include <Shlwapi.h>
#include "resource.h"
#include <vector>
#include <shlobj.h>
#include <regex>
#include <iostream>
#pragma comment(lib, "Shlwapi.lib")
#pragma comment(lib, "comctl32.lib")
#pragma warning( disable : 4091 )
#ifndef UNICODE
#error "Must be compiled with unicode support."
#endif
#define USE_TASKBAR_API (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
#define MB_TITLE L"Cmder Launcher"
#define SHELL_MENU_REGISTRY_PATH_BACKGROUND L"Directory\\Background\\shell\\Cmder"
#define SHELL_MENU_REGISTRY_PATH_LISTITEM L"Directory\\shell\\Cmder"
#define SHELL_MENU_REGISTRY_DRIVE_PATH_BACKGROUND L"Drive\\Background\\shell\\Cmder"
#define SHELL_MENU_REGISTRY_DRIVE_PATH_LISTITEM L"Drive\\shell\\Cmder"
#define streqi(a, b) (_wcsicmp((a), (b)) == 0)
#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
#define __WFUNCTION__ WIDEN(__FUNCTION__)
#define FAIL_ON_ERROR(x) { DWORD ec; if ((ec = (x)) != ERROR_SUCCESS) { ShowErrorAndExit(ec, __WFUNCTION__, __LINE__); } }
void TaskDialogOpen( PCWSTR mainStr, PCWSTR contentStr )
{
HRESULT hr = NULL;
TASKDIALOGCONFIG tsk = {sizeof(tsk)};
HWND hOwner = NULL;
HINSTANCE hInstance = GetModuleHandle(NULL);
PCWSTR tskTitle = MAKEINTRESOURCE(IDS_TITLE);
tsk.hInstance = hInstance;
tsk.pszMainIcon = MAKEINTRESOURCE(IDI_CMDER);
tsk.pszWindowTitle = tskTitle;
tsk.pszMainInstruction = mainStr;
tsk.pszContent = contentStr;
TASKDIALOG_BUTTON btns[1] = {
{ IDOK, L"OK" }
};
tsk.dwFlags = TDF_ALLOW_DIALOG_CANCELLATION|TDF_ENABLE_HYPERLINKS;
tsk.pButtons = btns;
tsk.cButtons = _countof(btns);
tsk.hwndParent = hOwner;
int selectedButtonId = IDOK;
hr = TaskDialogIndirect( &tsk, &selectedButtonId, NULL, NULL );
}
void ShowErrorAndExit(DWORD ec, const wchar_t * func, int line)
{
wchar_t * buffer;
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, ec, 0, (LPWSTR)&buffer, 0, NULL) == 0)
{
buffer = L"Unknown error. FormatMessage failed.";
}
wchar_t message[1024];
swprintf_s(message, L"%s\nFunction: %s\nLine: %d", buffer, func, line);
LocalFree(buffer);
MessageBox(NULL, message, MB_TITLE, MB_OK | MB_ICONERROR);
exit(1);
}
typedef struct _option
{
std::wstring name;
bool hasVal;
std::wstring value;
bool set;
} option;
typedef std::pair<std::wstring, std::wstring> optpair;
bool FileExists(const wchar_t * filePath)
{
HANDLE hFile = CreateFile(filePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
CloseHandle(hFile);
return true;
}
return false;
}
void StartCmder(std::wstring path = L"", bool is_single_mode = false, std::wstring taskName = L"", std::wstring title = L"", std::wstring iconPath = L"", std::wstring cfgRoot = L"", bool use_user_cfg = true, std::wstring conemu_args = L"")
{
#if USE_TASKBAR_API
wchar_t appId[MAX_PATH] = { 0 };
#endif
wchar_t exeDir[MAX_PATH] = { 0 };
wchar_t icoPath[MAX_PATH] = { 0 };
wchar_t cfgPath[MAX_PATH] = { 0 };
wchar_t backupCfgPath[MAX_PATH] = { 0 };
wchar_t cpuCfgPath[MAX_PATH] = { 0 };
wchar_t userCfgPath[MAX_PATH] = { 0 };
wchar_t defaultCfgPath[MAX_PATH] = { 0 };
wchar_t conEmuPath[MAX_PATH] = { 0 };
wchar_t configDirPath[MAX_PATH] = { 0 };
wchar_t userConfigDirPath[MAX_PATH] = { 0 };
wchar_t userBinDirPath[MAX_PATH] = { 0 };
wchar_t userProfiledDirPath[MAX_PATH] = { 0 };
wchar_t userProfilePath[MAX_PATH] = { 0 };
wchar_t legacyUserProfilePath[MAX_PATH] = { 0 };
wchar_t userAliasesPath[MAX_PATH] = { 0 };
wchar_t legacyUserAliasesPath[MAX_PATH] = { 0 };
wchar_t args[MAX_PATH * 2 + 256] = { 0 };
wchar_t userConEmuCfgPath[MAX_PATH] = { 0 };
std::wstring cmderStart = path;
std::wstring cmderTask = taskName;
std::wstring cmderTitle = title;
std::wstring cmderConEmuArgs = conemu_args;
std::copy(cfgRoot.begin(), cfgRoot.end(), userConfigDirPath);
userConfigDirPath[cfgRoot.length()] = 0;
GetModuleFileName(NULL, exeDir, sizeof(exeDir));
#if USE_TASKBAR_API
wcscpy_s(appId, exeDir);
#endif
PathRemoveFileSpec(exeDir);
if (PathFileExists(iconPath.c_str()))
{
std::copy(iconPath.begin(), iconPath.end(), icoPath);
icoPath[iconPath.length()] = 0;
}
else
{
PathCombine(icoPath, exeDir, L"icons\\cmder.ico");
}
PathCombine(configDirPath, exeDir, L"config");
/*
Convert legacy user-profile.cmd to new name user_profile.cmd
*/
PathCombine(legacyUserProfilePath, configDirPath, L"user-profile.cmd");
if (PathFileExists(legacyUserProfilePath))
{
PathCombine(userProfilePath, configDirPath, L"user_profile.cmd");
char *lPr = (char *)malloc(MAX_PATH);
char *pR = (char *)malloc(MAX_PATH);
size_t i;
wcstombs_s(&i, lPr, (size_t)MAX_PATH,
legacyUserProfilePath, (size_t)MAX_PATH);
wcstombs_s(&i, pR, (size_t)MAX_PATH,
userProfilePath, (size_t)MAX_PATH);
rename(lPr, pR);
}
/*
Convert legacy user-aliases.cmd to new name user_aliases.cmd
*/
PathCombine(legacyUserAliasesPath, configDirPath, L"user-aliases.cmd");
if (PathFileExists(legacyUserAliasesPath))
{
PathCombine(userAliasesPath, configDirPath, L"user_aliases.cmd");
char *lPr = (char *)malloc(MAX_PATH);
char *pR = (char *)malloc(MAX_PATH);
size_t i;
wcstombs_s(&i, lPr, (size_t)MAX_PATH,
legacyUserAliasesPath, (size_t)MAX_PATH);
wcstombs_s(&i, pR, (size_t)MAX_PATH,
userAliasesPath, (size_t)MAX_PATH);
rename(lPr, pR);
}
/*
Was /c [path] specified?
*/
if (wcscmp(userConfigDirPath, L"") == 0)
{
// No - It wasn't.
PathCombine(userConfigDirPath, exeDir, L"config");
}
else
{
// Yes - It was.
PathCombine(userBinDirPath, userConfigDirPath, L"bin");
SHCreateDirectoryEx(0, userBinDirPath, 0);
PathCombine(userConfigDirPath, userConfigDirPath, L"config");
SHCreateDirectoryEx(0, userConfigDirPath, 0);
PathCombine(userProfiledDirPath, userConfigDirPath, L"profile.d");
SHCreateDirectoryEx(0, userProfiledDirPath, 0);
/*
Convert legacy user-profile.cmd to new name user_profile.cmd
*/
PathCombine(legacyUserProfilePath, userConfigDirPath, L"user-profile.cmd");
if (PathFileExists(legacyUserProfilePath))
{
PathCombine(userProfilePath, userConfigDirPath, L"user_profile.cmd");
char *lPr = (char *)malloc(MAX_PATH);
char *pR = (char *)malloc(MAX_PATH);
size_t i;
wcstombs_s(&i, lPr, (size_t)MAX_PATH,
legacyUserProfilePath, (size_t)MAX_PATH);
wcstombs_s(&i, pR, (size_t)MAX_PATH,
userProfilePath, (size_t)MAX_PATH);
rename(lPr, pR);
}
/*
Convert legacy user-aliases.cmd to new name user_aliases.cmd
*/
PathCombine(legacyUserAliasesPath, userConfigDirPath, L"user-aliases.cmd");
if (PathFileExists(legacyUserAliasesPath))
{
PathCombine(userAliasesPath, userConfigDirPath, L"user_aliases.cmd");
char *lPr = (char *)malloc(MAX_PATH);
char *pR = (char *)malloc(MAX_PATH);
size_t i;
wcstombs_s(&i, lPr, (size_t)MAX_PATH,
legacyUserAliasesPath, (size_t)MAX_PATH);
wcstombs_s(&i, pR, (size_t)MAX_PATH,
userAliasesPath, (size_t)MAX_PATH);
rename(lPr, pR);
}
}
// Set path to vendored ConEmu config file
PathCombine(cfgPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.xml");
// Set path to Cmder default ConEmu config file
PathCombine(defaultCfgPath, exeDir, L"vendor\\ConEmu.xml.default");
// Check for machine-specific then user config source file.
PathCombine(cpuCfgPath, userConfigDirPath, L"ConEmu-%COMPUTERNAME%.xml");
ExpandEnvironmentStrings(cpuCfgPath, cpuCfgPath, sizeof(cpuCfgPath) / sizeof(cpuCfgPath[0]));
// Set path to Cmder user ConEmu config file
PathCombine(userCfgPath, userConfigDirPath, L"user-ConEmu.xml");
if ( PathFileExists(cpuCfgPath) || use_user_cfg == false ) // config/ConEmu-%COMPUTERNAME%.xml file exists or /m was specified on command line, use machine specific config.
{
if (cfgRoot.length() == 0) // '/c [path]' was NOT specified
{
if (PathFileExists(cfgPath)) // vendor/conemu-maximus5/ConEmu.xml file exists, copy vendor/conemu-maximus5/ConEmu.xml to config/ConEmu-%COMPUTERNAME%.xml.
{
if (!CopyFile(cfgPath, cpuCfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/ConEmu-%COMPUTERNAME%.xml! Access Denied."
: L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/ConEmu-%COMPUTERNAME%.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
else // vendor/conemu-maximus5/ConEmu.xml config file does not exist, copy config/ConEmu-%COMPUTERNAME%.xml to vendor/conemu-maximus5/ConEmu.xml file
{
if (!CopyFile(cpuCfgPath, cfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy config/ConEmu-%COMPUTERNAME%.xml file to vendor/conemu-maximus5/ConEmu.xml! Access Denied."
: L"Failed to copy config/ConEmu-%COMPUTERNAME%.xml file to vendor/conemu-maximus5/ConEmu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
}
else // '/c [path]' was specified, don't copy anything and use existing conemu-%COMPUTERNAME%.xml to start comemu.
{
if (use_user_cfg == false && PathFileExists(cfgPath) && !PathFileExists(cpuCfgPath)) // vendor/conemu-maximus5/ConEmu.xml file exists, copy vendor/conemu-maximus5/ConEmu.xml to config/ConEmu-%COMPUTERNAME%.xml.
{
if (!CopyFile(cfgPath, cpuCfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/ConEmu-%COMPUTERNAME%.xml! Access Denied."
: L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/ConEmu-%COMPUTERNAME%.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
PathCombine(userConEmuCfgPath, userConfigDirPath, L"ConEmu-%COMPUTERNAME%.xml");
ExpandEnvironmentStrings(userConEmuCfgPath, userConEmuCfgPath, sizeof(userConEmuCfgPath) / sizeof(userConEmuCfgPath[0]));
}
}
else if (PathFileExists(userCfgPath)) // config/user_conemu.xml exists, use it.
{
if (cfgRoot.length() == 0) // '/c [path]' was NOT specified
{
if (PathFileExists(cfgPath)) // vendor/conemu-maximus5/ConEmu.xml exists, copy vendor/conemu-maximus5/ConEmu.xml to config/user_conemu.xml.
{
if (!CopyFile(cfgPath, userCfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/user-conemu.xml! Access Denied."
: L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/user-conemu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
else // vendor/conemu-maximus5/ConEmu.xml does not exist, copy config/user-conemu.xml to vendor/conemu-maximus5/ConEmu.xml
{
if (!CopyFile(userCfgPath, cfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy config/user-conemu.xml file to vendor/conemu-maximus5/ConEmu.xml! Access Denied."
: L"Failed to copy config/user-conemu.xml file to vendor/conemu-maximus5/ConEmu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
}
else // '/c [path]' was specified, don't copy anything and use existing user_conemu.xml to start comemu.
{
PathCombine(userConEmuCfgPath, userConfigDirPath, L"user-ConEmu.xml");
}
}
else if (cfgRoot.length() == 0) // '/c [path]' was NOT specified
{
if (PathFileExists(cfgPath)) // vendor/conemu-maximus5/ConEmu.xml exists, copy vendor/conemu-maximus5/ConEmu.xml to config/user_conemu.xml
{
if (!CopyFile(cfgPath, userCfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/user-conemu.xml! Access Denied."
: L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/user-conemu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
else // vendor/ConEmu.xml.default config exists, copy Cmder vendor/ConEmu.xml.default file to vendor/conemu-maximus5/ConEmu.xml.
{
if (!CopyFile(defaultCfgPath, cfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/ConEmu.xml.default file to vendor/conemu-maximus5/ConEmu.xml! Access Denied."
: L"Failed to copy vendor/ConEmu.xml.default file to vendor/conemu-maximus5/ConEmu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
}
else {
if (!CopyFile(defaultCfgPath, cfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/ConEmu.xml.default file to vendor/conemu-maximus5/ConEmu.xml! Access Denied."
: L"Failed to copy vendor/ConEmu.xml.default file to vendor/conemu-maximus5/ConEmu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
}
}
else if (PathFileExists(cfgPath)) // vendor/conemu-maximus5/ConEmu.xml exists, copy vendor/conemu-maximus5/ConEmu.xml to config/user_conemu.xml
{
if (!CopyFile(cfgPath, userCfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/user-conemu.xml! Access Denied."
: L"Failed to copy vendor/conemu-maximus5/ConEmu.xml file to config/user-conemu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
PathCombine(userConEmuCfgPath, userConfigDirPath, L"user-ConEmu.xml");
}
else // '/c [path]' was specified and 'vendor/ConEmu.xml.default' config exists, copy Cmder 'vendor/ConEmu.xml.default' file to '[user specified path]/config/user_ConEmu.xml'.
{
if ( ! CopyFile(defaultCfgPath, userCfgPath, FALSE))
{
MessageBox(NULL,
(GetLastError() == ERROR_ACCESS_DENIED)
? L"Failed to copy vendor/ConEmu.xml.default file to [user specified path]/config/user_ConEmu.xml! Access Denied."
: L"Failed to copy vendor/ConEmu.xml.default file to [user specified path]/config/user_ConEmu.xml!", MB_TITLE, MB_ICONSTOP);
exit(1);
}
PathCombine(userConEmuCfgPath, userConfigDirPath, L"user-ConEmu.xml");
}
SYSTEM_INFO sysInfo;
GetNativeSystemInfo(&sysInfo);
if (sysInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
{
PathCombine(conEmuPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu64.exe");
}
else
{
PathCombine(conEmuPath, exeDir, L"vendor\\conemu-maximus5\\ConEmu.exe");
}
swprintf_s(args, L"%s /Icon \"%s\"", args, icoPath);
if (!streqi(cmderStart.c_str(), L""))
{
swprintf_s(args, L"%s /dir \"%s\"", args, cmderStart.c_str());
}
if (is_single_mode)
{
swprintf_s(args, L"%s /single", args);
}
if (!streqi(cmderTitle.c_str(), L""))
{
swprintf_s(args, L"%s /title \"%s\"", args, cmderTitle.c_str());
}
if (cfgRoot.length() != 0)
{
swprintf_s(args, L"%s -loadcfgfile \"%s\"", args, userConEmuCfgPath);
}
if (!streqi(cmderConEmuArgs.c_str(), L""))
{
swprintf_s(args, L"%s %s", args, cmderConEmuArgs.c_str());
}
// The `/run` arg and its value MUST be the last arg of ConEmu
// see : https://conemu.github.io/en/ConEmuArgs.html
// > This must be the last used switch (excepting -new_console and -cur_console)
if (!streqi(cmderTask.c_str(), L""))
{
swprintf_s(args, L"%s /run {%s}", args, cmderTask.c_str());
}
SetEnvironmentVariable(L"CMDER_ROOT", exeDir);
if (wcscmp(userConfigDirPath, configDirPath) != 0)
{
SetEnvironmentVariable(L"CMDER_USER_CONFIG", userConfigDirPath);
SetEnvironmentVariable(L"CMDER_USER_BIN", userBinDirPath);
}
// Ensure EnvironmentVariables are propagated.
STARTUPINFO si = { 0 };
si.cb = sizeof(STARTUPINFO);
#if USE_TASKBAR_API
si.lpTitle = appId;
si.dwFlags = STARTF_TITLEISAPPID;
#endif
PROCESS_INFORMATION pi;
if (!CreateProcess(conEmuPath, args, NULL, NULL, false, 0, NULL, NULL, &si, &pi)) {
MessageBox(NULL, _T("Unable to create the ConEmu process!"), _T("Error"), MB_OK);
return;
}
}
bool IsUserOnly(std::wstring opt)
{
bool userOnly;
if (streqi(opt.c_str(), L"ALL"))
{
userOnly = false;
}
else if (streqi(opt.c_str(), L"USER"))
{
userOnly = true;
}
else
{
MessageBox(NULL, L"Unrecognized option for /REGISTER or /UNREGISTER. Must be either ALL or USER.", MB_TITLE, MB_OK);
exit(1);
}
return userOnly;
}
HKEY GetRootKey(std::wstring opt)
{
HKEY root;
if (IsUserOnly(opt))
{
FAIL_ON_ERROR(RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Classes", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &root, NULL));
}
else
{
root = HKEY_CLASSES_ROOT;
}
return root;
}
void RegisterShellMenu(std::wstring opt, wchar_t* keyBaseName, std::wstring cfgRoot, bool single)
{
wchar_t userConfigDirPath[MAX_PATH] = { 0 };
// First, get the paths we will use
wchar_t exePath[MAX_PATH] = { 0 };
wchar_t icoPath[MAX_PATH] = { 0 };
GetModuleFileName(NULL, exePath, sizeof(exePath));
wchar_t commandStr[MAX_PATH + 20] = { 0 };
wchar_t baseCommandStr[MAX_PATH + 20] = { 0 };
if (!single) {
swprintf_s(baseCommandStr, L"\"%s\"", exePath);
}
else {
swprintf_s(baseCommandStr, L"\"%s\" /single", exePath);
}
if (cfgRoot.length() == 0) // '/c [path]' was NOT specified
{
swprintf_s(commandStr, L"%s \"%%V\"", baseCommandStr);
}
else {
std::copy(cfgRoot.begin(), cfgRoot.end(), userConfigDirPath);
userConfigDirPath[cfgRoot.length()] = 0;
swprintf_s(commandStr, L"%s /c \"%s\" \"%%V\"", baseCommandStr, userConfigDirPath);
}
// Now that we have `commandStr`, it's OK to change `exePath`...
PathRemoveFileSpec(exePath);
PathCombine(icoPath, exePath, L"icons\\cmder.ico");
// Now set the registry keys
HKEY root = GetRootKey(opt);
HKEY cmderKey;
FAIL_ON_ERROR(RegCreateKeyEx(root, keyBaseName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &cmderKey, NULL));
FAIL_ON_ERROR(RegSetValue(cmderKey, L"", REG_SZ, L"Cmder Here", NULL));
FAIL_ON_ERROR(RegSetValueEx(cmderKey, L"NoWorkingDirectory", 0, REG_SZ, (BYTE *)L"", 2));
FAIL_ON_ERROR(RegSetValueEx(cmderKey, L"Icon", 0, REG_SZ, (BYTE *)icoPath, wcslen(icoPath) * sizeof(wchar_t)));
HKEY command;
FAIL_ON_ERROR(RegCreateKeyEx(cmderKey, L"command", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &command, NULL));
FAIL_ON_ERROR(RegSetValue(command, L"", REG_SZ, commandStr, NULL));
RegCloseKey(command);
RegCloseKey(cmderKey);
RegCloseKey(root);
}
void UnregisterShellMenu(std::wstring opt, wchar_t* keyBaseName)
{
HKEY root = GetRootKey(opt);
HKEY cmderKey;
FAIL_ON_ERROR(RegCreateKeyEx(root, keyBaseName, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &cmderKey, NULL));
FAIL_ON_ERROR(RegDeleteTree(cmderKey, NULL));
RegDeleteKeyEx(root, keyBaseName, KEY_ALL_ACCESS, NULL);
RegCloseKey(cmderKey);
RegCloseKey(root);
}
struct cmderOptions
{
std::wstring cmderCfgRoot = L"";
std::wstring cmderStart = L"";
std::wstring cmderTask = L"";
std::wstring cmderTitle = L"Cmder";
std::wstring cmderIcon = L"";
std::wstring cmderRegScope = L"USER";
std::wstring cmderConEmuArgs = L"";
bool cmderSingle = false;
bool cmderUserCfg = true;
bool registerApp = false;
bool unRegisterApp = false;
bool error = false;
};
cmderOptions GetOption()
{
cmderOptions cmderOptions;
LPWSTR *szArgList;
int argCount;
szArgList = CommandLineToArgvW(GetCommandLine(), &argCount);
for (int i = 1; i < argCount; i++)
{
// MessageBox(NULL, szArgList[i], L"Arglist contents", MB_OK);
if (cmderOptions.error == false) {
if (_wcsicmp(L"/c", szArgList[i]) == 0)
{
TCHAR userProfile[MAX_PATH];
const DWORD ret = GetEnvironmentVariable(L"USERPROFILE", userProfile, MAX_PATH);
wchar_t cmderCfgRoot[MAX_PATH] = { 0 };
PathCombine(cmderCfgRoot, userProfile, L"cmder_cfg");
cmderOptions.cmderCfgRoot = cmderCfgRoot;
if (szArgList[i + 1] != NULL && szArgList[i + 1][0] != '/')
{
cmderOptions.cmderCfgRoot = szArgList[i + 1];
i++;
}
}
else if (_wcsicmp(L"/start", szArgList[i]) == 0)
{
int len = wcslen(szArgList[i + 1]);
if (wcscmp(&szArgList[i + 1][len - 1], L"\"") == 0)
{
szArgList[i + 1][len - 1] = '\0';
}
if (PathFileExists(szArgList[i + 1]))
{
cmderOptions.cmderStart = szArgList[i + 1];
i++;
}
else
{
MessageBox(NULL, szArgList[i + 1], L"/START - Folder does not exist!", MB_OK);
}
}
else if (_wcsicmp(L"/task", szArgList[i]) == 0)
{
cmderOptions.cmderTask = szArgList[i + 1];
i++;
}
else if (_wcsicmp(L"/title", szArgList[i]) == 0)
{
cmderOptions.cmderTitle = szArgList[i + 1];
i++;
}
else if (_wcsicmp(L"/icon", szArgList[i]) == 0)
{
cmderOptions.cmderIcon = szArgList[i + 1];
i++;
}
else if (_wcsicmp(L"/single", szArgList[i]) == 0)
{
cmderOptions.cmderSingle = true;
}
else if (_wcsicmp(L"/m", szArgList[i]) == 0)
{
cmderOptions.cmderUserCfg = false;
}
else if (_wcsicmp(L"/register", szArgList[i]) == 0)
{
cmderOptions.registerApp = true;
cmderOptions.unRegisterApp = false;
if (szArgList[i + 1] != NULL)
{
if (_wcsicmp(L"all", szArgList[i + 1]) == 0 || _wcsicmp(L"user", szArgList[i + 1]) == 0)
{
cmderOptions.cmderRegScope = szArgList[i + 1];
i++;
}
}
}
else if (_wcsicmp(L"/unregister", szArgList[i]) == 0)
{
cmderOptions.unRegisterApp = true;
cmderOptions.registerApp = false;
if (szArgList[i + 1] != NULL)
{
if (_wcsicmp(L"all", szArgList[i + 1]) == 0 || _wcsicmp(L"user", szArgList[i + 1]) == 0)
{
cmderOptions.cmderRegScope = szArgList[i + 1];
i++;
}
}
}
/* Used for passing arguments to conemu prog */
else if (_wcsicmp(L"/x", szArgList[i]) == 0)
{
cmderOptions.cmderConEmuArgs = szArgList[i + 1];
i++;
}
/* Bare double dash, remaining commandline is for conemu */
else if (_wcsicmp(L"--", szArgList[i]) == 0)
{
std::wstring cmdline = std::wstring(GetCommandLineW());
auto doubledash = cmdline.find(L" -- ");
if (doubledash != std::string::npos)
{
cmderOptions.cmderConEmuArgs = cmdline.substr(doubledash + 4);
}
break;
}
else if (cmderOptions.cmderStart == L"")
{
int len = wcslen(szArgList[i]);
if (wcscmp(&szArgList[i][len - 1], L"\"") == 0)
{
szArgList[i][len - 1] = '\0';
}
if (PathFileExists(szArgList[i]))
{
cmderOptions.cmderStart = szArgList[i];
i++;
}
else
{
cmderOptions.error = true;
}
}
else
{
cmderOptions.error = true;
}
}
}
if (cmderOptions.error == true)
{
wchar_t validOptions[512];
HMODULE hMod = GetModuleHandle(NULL);
LoadString(hMod, IDS_SWITCHES, validOptions, 512);
// display list of valid options on unrecognized parameter
TaskDialogOpen( L"Unrecognized parameter.", validOptions );
}
LocalFree(szArgList);
return cmderOptions;
}
int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine,
_In_ int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
cmderOptions cmderOptions = GetOption();
if (cmderOptions.registerApp == true)
{
RegisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_PATH_BACKGROUND, cmderOptions.cmderCfgRoot, cmderOptions.cmderSingle);
RegisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_PATH_LISTITEM, cmderOptions.cmderCfgRoot, cmderOptions.cmderSingle);
RegisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_DRIVE_PATH_BACKGROUND, cmderOptions.cmderCfgRoot, cmderOptions.cmderSingle);
RegisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_DRIVE_PATH_LISTITEM, cmderOptions.cmderCfgRoot, cmderOptions.cmderSingle);
}
else if (cmderOptions.unRegisterApp == true)
{
UnregisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_PATH_BACKGROUND);
UnregisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_PATH_LISTITEM);
UnregisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_DRIVE_PATH_BACKGROUND);
UnregisterShellMenu(cmderOptions.cmderRegScope, SHELL_MENU_REGISTRY_DRIVE_PATH_LISTITEM);
}
else if (cmderOptions.error == true)
{
return 1;
}
else
{
StartCmder(cmderOptions.cmderStart, cmderOptions.cmderSingle, cmderOptions.cmderTask, cmderOptions.cmderTitle, cmderOptions.cmderIcon, cmderOptions.cmderCfgRoot, cmderOptions.cmderUserCfg, cmderOptions.cmderConEmuArgs);
}
return 0;
}

54
launcher/src/app.manifest Normal file
View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<!-- Project description definition -->
<description>Cmder Console Emulator</description>
<!-- Project dependency definition -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
<!-- Win32 User Account Control definition -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<!-- Required for appcompat behaviour -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
<!-- Add DPI awareness -->
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true/pm</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

18
launcher/src/resource.h Normal file
View File

@ -0,0 +1,18 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Resource.rc
//
#define IDI_CMDER 101
#define IDS_TITLE 102
#define IDS_SWITCHES 803
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

109
launcher/src/resource.rc Normal file
View File

@ -0,0 +1,109 @@
/* _
___ _ __ ___ __| | ___ _ __
/ __| '_ ` _ \ / _` |/ _ \ '__|
| (__| | | | | | (_| | __/ |
\___|_| |_| |_|\__,_|\___|_|
=============================================================================
The Cmder Console Emulator Project
*/
#include "resource.h"
#include "version.rc2"
#include "strings.rc2"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_CMDER ICON "..\\..\\icons\\cmder.ico"
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION CMDER_MAJOR_VERSION,CMDER_MINOR_VERSION,CMDER_REVISION_VERSION,CMDER_BUILD_VERSION
PRODUCTVERSION CMDER_MAJOR_VERSION,CMDER_MINOR_VERSION,CMDER_REVISION_VERSION,CMDER_BUILD_VERSION
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS (CMDER_DEBUGFLAG | CMDER_BUILDFLAGS)
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "100904b0"
BEGIN
VALUE "CompanyName", CMDER_COMPANY_NAME_STR "\0"
VALUE "FileDescription", CMDER_FILE_DESCRIPTION_STR "\0"
VALUE "FileVersion", CMDER_VERSION_STR "\0"
VALUE "InternalName", CMDER_INTERNAL_NAME_STR "\0"
VALUE "LegalCopyright", "Copyright (C) " CMDER_COPYRIGHT_YEAR_STR " " CMDER_COMPANY_NAME_STR "\0"
VALUE "OriginalFilename", CMDER_ORIGINAL_FILENAME_STR "\0"
VALUE "ProductName", CMDER_PRODUCT_NAME_STR "\0"
VALUE "ProductVersion", CMDER_VERSION_STR "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x1009, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

12
launcher/src/strings.rc2 Normal file
View File

@ -0,0 +1,12 @@
/////////////////////////////////////////////////////////////////////////////
// Corresponding ids should be defined in `resource.h` file.
STRINGTABLE
{
IDS_TITLE "Cmder Launcher"
IDS_SWITCHES L"Valid options:\n\n /c [CMDER User Root Path]\n /task [ConEmu Task Name]\n /icon [CMDER Icon Path]\n [/start [Start in Path] | [Start in Path]]\n /single\n /m\n /x [ConEmu extra arguments]\n\nor, either:\n /register [USER | ALL]\n /unregister [USER | ALL]"
}
/////////////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,26 @@
/**
* WARNING: This file should NOT be manually modified!
* The contents will be automatically generated using the `.ps1` PowerShell scripts,
* during builds by the CI.
*/
/////////////////////////////////////////////////////////////////////////////
// Define the version numbers and build information manually here:
#define CMDER_MAJOR_VERSION {Cmder-Major-Version}
#define CMDER_MINOR_VERSION {Cmder-Minor-Version}
#define CMDER_REVISION_VERSION {Cmder-Revision-Version}
#define CMDER_BUILD_VERSION {Cmder-Build-Version}
#define CMDER_VERSION_STR {Cmder-Version-Str}
#define CMDER_PRODUCT_NAME_STR "Cmder"
#define CMDER_FILE_DESCRIPTION_STR "Cmder: Lovely Console Emulator."
#define CMDER_INTERNAL_NAME_STR "Cmder"
#define CMDER_ORIGINAL_FILENAME_STR "Cmder.exe"
#define CMDER_COMPANY_NAME_STR "Samuel Vasko"
#define CMDER_COPYRIGHT_YEAR_STR "2016"
#define CMDER_DEBUGFLAG 0x0L // set to 0x1L to enable debug mode
#define CMDER_BUILDFLAGS 0x0L
/////////////////////////////////////////////////////////////////////////////

5
opt/Readme.md Normal file
View File

@ -0,0 +1,5 @@
## Bin
This folder is for optional user packages and will not be automatically injected into the PATH.
Use `%lib_path% enhance_path "%cmder_root%\[path to folder]"` in `%cmder_root%\config\user_profile.cmd` or `%cmder_root%\config\profile.d\*.cmd` to add to the path.

27
packignore Normal file
View File

@ -0,0 +1,27 @@
launcher
.gitignore
.gitattributes
.git
.github
.vs
.vscode
.idea
*.md
build
scripts
config\.history
packignore
Thumbs.db
icons\cmder_icon.psd
icons\icon_16*.png
icons\icon_32*.png
icons\icon_48*.png
icons\icon_256*.png
Cmder.bat
vendor\tmp
appveyor.yml
vendor\cmder.sh
vendor\git-prompt.sh
config\user-*
clink_history*
*.log

181
scripts/build.ps1 Normal file
View File

@ -0,0 +1,181 @@
<#
.Synopsis
Build Cmder
.DESCRIPTION
Use this script to build your own edition of Cmder
This script builds dependencies from current vendor/sources.json file and unpacks them.
You will need to make this script executable by setting your Powershell Execution Policy to Remote signed
Then unblock the script for execution with UnblockFile .\build.ps1
.EXAMPLE
.\build.ps1
Executes the default build for Cmder; ConEmu, clink. This is equivalent to the "minimum" style package in the releases
.EXAMPLE
.\build.ps1 -Compile
Recompile the launcher executable if you have the requisite build tools for C++ installed.
.EXAMPLE
.\build.ps1 -Compile -NoVendor
Skip all downloads and only build launcher.
.EXAMPLE
.\build -verbose
Execute the build and see what's going on.
.EXAMPLE
.\build.ps1 -SourcesPath '~/custom/vendors.json'
Build cmder with your own packages. See vendor/sources.json for the syntax you need to copy.
.NOTES
AUTHORS
Samuel Vasko, Jack Bennett
Part of the Cmder project.
.LINK
http://cmder.app/ - Project Home
#>
[CmdletBinding(SupportsShouldProcess = $true)]
Param(
# CmdletBinding will give us;
# -verbose switch to turn on logging and
# -whatif switch to not actually make changes
# Path to the vendor configuration source file
[string]$sourcesPath = "$PSScriptRoot\..\vendor\sources.json",
# Vendor folder location
[string]$saveTo = "$PSScriptRoot\..\vendor\",
# Launcher folder location
[string]$launcher = "$PSScriptRoot\..\launcher",
# Config folder location
[string]$config = "$PSScriptRoot\..\config",
# Using this option will skip all downloads, if you only need to build launcher
[switch]$noVendor,
# Build launcher if you have MSBuild tools installed
[switch]$Compile
)
# Get the scripts and cmder root dirs we are building in.
$cmder_root = Resolve-Path "$PSScriptRoot\.."
# Dot source util functions into this scope
. "$PSScriptRoot\utils.ps1"
$ErrorActionPreference = "Stop"
if ($Compile) {
# Check for requirements
Ensure-Executable "msbuild"
# Get the version string
$version = Get-VersionStr
Push-Location -Path $launcher
Create-RC $version ($launcher + '\src\version.rc2')
Write-Verbose "Building the launcher..."
# Reference: https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
msbuild CmderLauncher.vcxproj /t:Clean,Build /p:configuration=Release /m
if ($LastExitCode -ne 0) {
throw "MSBuild failed to build the launcher executable."
}
Pop-Location
}
if (-not $noVendor) {
# Check for requirements
Ensure-Exists $sourcesPath
Ensure-Executable "7z"
# Get the vendor sources
$sources = Get-Content $sourcesPath | Out-String | ConvertFrom-Json
Push-Location -Path $saveTo
New-Item -Type Directory -Path (Join-Path $saveTo "/tmp/") -ErrorAction SilentlyContinue >$null
$vend = $pwd
# Preserve modified (by user) ConEmu setting file
if ($config -ne "") {
$ConEmuXml = Join-Path $saveTo "conemu-maximus5\ConEmu.xml"
if (Test-Path $ConEmuXml -pathType leaf) {
$ConEmuXmlSave = Join-Path $config "ConEmu.xml"
Write-Verbose "Backup '$ConEmuXml' to '$ConEmuXmlSave'"
Copy-Item $ConEmuXml $ConEmuXmlSave
}
else { $ConEmuXml = "" }
}
else { $ConEmuXml = "" }
# Kill ssh-agent.exe if it is running from the $env:cmder_root we are building
foreach ($ssh_agent in $(Get-Process ssh-agent -ErrorAction SilentlyContinue)) {
if ([string]$($ssh_agent.path) -Match [string]$cmder_root.replace('\', '\\')) {
Write-Verbose $("Stopping " + $ssh_agent.path + "!")
Stop-Process $ssh_agent.id
}
}
foreach ($s in $sources) {
Write-Verbose "Getting vendored $($s.name) $($s.version)..."
# We do not care about the extensions/type of archive
$tempArchive = "tmp/$($s.name).tmp"
Delete-Existing $tempArchive
Delete-Existing $s.name
Download-File -Url $s.url -File $vend\$tempArchive -ErrorAction Stop
Extract-Archive $tempArchive $s.name
if ((Get-ChildItem $s.name).Count -eq 1) {
Flatten-Directory($s.name)
}
# Write current version to .cmderver file, for later.
"$($s.version)" | Out-File "$($s.name)/.cmderver"
}
# Restore ConEmu user configuration
if ($ConEmuXml -ne "") {
Write-Verbose "Restore '$ConEmuXmlSave' to '$ConEmuXml'"
Copy-Item $ConEmuXmlSave $ConEmuXml
}
# Put vendor\cmder.sh in /etc/profile.d so it runs when we start bash or mintty
if ( (Test-Path $($saveTo + "git-for-windows/etc/profile.d") ) ) {
Write-Verbose "Adding cmder.sh /etc/profile.d"
Copy-Item $($saveTo + "cmder.sh") $($saveTo + "git-for-windows/etc/profile.d/cmder.sh")
}
# Replace /etc/profile.d/git-prompt.sh with cmder lambda prompt so it runs when we start bash or mintty
if ( !(Test-Path $($saveTo + "git-for-windows/etc/profile.d/git-prompt.sh.bak") ) ) {
Write-Verbose "Replacing /etc/profile.d/git-prompt.sh with our git-prompt.sh"
Move-Item $($saveTo + "git-for-windows/etc/profile.d/git-prompt.sh") $($saveTo + "git-for-windows/etc/profile.d/git-prompt.sh.bak")
Copy-Item $($saveTo + "git-prompt.sh") $($saveTo + "git-for-windows/etc/profile.d/git-prompt.sh")
}
Pop-Location
}
if (-not $Compile -or $noVendor) {
Write-Warning "You are not building the full project, Use -Compile without -noVendor"
Write-Warning "This cannot be a release. Test build only!"
return
}
Write-Verbose "Successfully built Cmder v$version!"
if ( $Env:APPVEYOR -eq 'True' ) {
Add-AppveyorMessage -Message "Building Cmder v$version was successful." -Category Information
}
if ( $Env:GITHUB_ACTIONS -eq 'true' ) {
Write-Output "::notice title=Build Complete::Building Cmder v$version was successful."
}
Write-Host -ForegroundColor green "All good and done!"

76
scripts/pack.ps1 Normal file
View File

@ -0,0 +1,76 @@
<#
.Synopsis
Pack Cmder
.DESCRIPTION
Use this script to pack cmder into release archives
You will need to make this script executable by setting your Powershell Execution Policy to Remote signed
Then unblock the script for execution with UnblockFile .\pack.ps1
.EXAMPLE
.\pack.ps1
Creates default archives for cmder
.EXAMPLE
.\pack.ps1 -verbose
Creates default archives for cmder with plenty of information
.NOTES
AUTHORS
Samuel Vasko, Jack Bennett, Martin Kemp
Part of the Cmder project.
.LINK
https://github.com/cmderdev/cmder - Project Home
#>
[CmdletBinding(SupportsShouldProcess = $true)]
Param(
# CmdletBinding will give us;
# -verbose switch to turn on logging and
# -whatif switch to not actually make changes
# Path to the vendor configuration source file
[string]$cmderRoot = "$PSScriptRoot\..",
# Vendor folder locaton
[string]$saveTo = "$PSScriptRoot\..\build"
)
$cmderRoot = Resolve-Path $cmderRoot
. "$PSScriptRoot\utils.ps1"
$ErrorActionPreference = "Stop"
Ensure-Executable "7z"
$targets = @{
"cmder.7z" = "-t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on -myx=7 -mqs=on";
"cmder.zip" = "-mm=Deflate -mfb=128 -mpass=3";
"cmder_mini.zip" = "-xr!`"vendor\git-for-windows`"";
}
Push-Location -Path $cmderRoot
Delete-Existing "$cmderRoot\Version*"
Delete-Existing "$cmderRoot\build\*"
if (-not (Test-Path -PathType container $saveTo)) {
(New-Item -ItemType Directory -Path $saveTo) | Out-Null
}
$saveTo = Resolve-Path $saveTo
$version = Get-VersionStr
(New-Item -ItemType file "$cmderRoot\Version $version") | Out-Null
if ($PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent) {
Write-Verbose "Packing Cmder $version in $saveTo..."
$excluded = (Get-Content -Path "$cmderRoot\packignore") -Split [System.Environment]::NewLine | Where-Object { $_ }
Get-ChildItem $cmderRoot -Force -Exclude $excluded
}
foreach ($t in $targets.GetEnumerator()) {
Create-Archive "$cmderRoot" "$saveTo\$($t.Name)" $t.Value
$hash = (Digest-Hash "$saveTo\$($t.Name)")
Add-Content -path "$saveTo\hashes.txt" -value ($t.Name + ' ' + $hash)
}
Pop-Location

272
scripts/update.ps1 Normal file
View File

@ -0,0 +1,272 @@
<#
.Synopsis
Update Cmder vendored dependencies
.DESCRIPTION
This script updates dependencies to the latest version in vendor/sources.json file.
You will need to make this script executable by setting your Powershell Execution Policy to Remote signed
Then unblock the script for execution with UnblockFile .\build.ps1
.EXAMPLE
.\build.ps1
Updates the dependency sources in the default location, the vendor/sources.json file.
.EXAMPLE
.\build -verbose
Updates the dependency sources and see what's going on.
.EXAMPLE
.\build.ps1 -SourcesPath '~/custom/vendors.json'
Specify the path to update dependency sources file at.
.NOTES
AUTHORS
David Refoua <David@Refoua.me>
Part of the Cmder project.
.LINK
http://cmder.app/ - Project Home
#>
[CmdletBinding(SupportsShouldProcess = $true)]
Param(
# CmdletBinding will give us;
# -verbose switch to turn on logging and
# -whatif switch to not actually make changes
# Path to the vendor configuration source file
[string]$sourcesPath = "$PSScriptRoot\..\vendor\sources.json"
)
# Get the root directory of the cmder project.
$cmder_root = Resolve-Path "$PSScriptRoot\.."
# Dot source util functions into this scope
. "$PSScriptRoot\utils.ps1"
$ErrorActionPreference = "Stop"
# Attempts to match the current link with the new link, returning the count of matching characters.
function Match-Filenames {
param (
$url,
$downloadUrl,
$fromEnd
)
$filename = [System.IO.Path]::GetFileName($url)
$filenameDownload = [System.IO.Path]::GetFileName($downloadUrl)
$position = 0
if ([String]::IsNullOrEmpty($filename) -or [String]::IsNullOrEmpty($filenameDownload)) {
throw "Either one or both filenames are empty!"
}
if ($fromEnd) {
$arr = $filename -split ""
[array]::Reverse($arr)
$filename = $arr -join ''
$arr = $filenameDownload -split ""
[array]::Reverse($arr)
$filenameDownload = $arr -join ''
}
while ($filename.Substring($position, 1) -eq $filenameDownload.Substring($position, 1)) {
$position++
if ( ($position -ge $filename.Length) -or ($position -ge $filenameDownload.Length) ) {
break
}
}
return $position
}
# Uses the GitHub api in order to fetch the current download links for the latest releases of the repo.
function Fetch-DownloadUrl {
param (
[Parameter(Mandatory = $true)]
$urlStr
)
$url = [uri] $urlStr
if ((-not $url) -or ($null -eq $url) -or ($url -eq '')) {
throw "Failed to parse url: $urlStr"
}
if (-not ("http", "https" -contains $url.Scheme)) {
throw "unknown source scheme: $($url.Scheme)"
}
if (-not ($url.Host -ilike "*github.com")) {
throw "unknown source domain: $($url.Host)"
}
$p = $url.Segments.Split([Environment]::NewLine)
$headers = @{}
if ($env:GITHUB_TOKEN) {
$headers["Authorization"] = "token $($env:GITHUB_TOKEN)"
}
# Api server for GitHub
$urlHost = "api.github.com"
# Path for releases end-point
$urlPath = [IO.Path]::Combine('repos', $p[1], $p[2], 'releases').Trim('/')
$apiUrl = [uri] (New-Object System.UriBuilder -ArgumentList $url.Scheme, $urlHost, -1, $urlPath).Uri
$info = Invoke-RestMethod -Uri $apiUrl -Headers $headers
$downloadLinks = (New-Object System.Collections.Generic.List[System.Object])
$charCount = 0
if (-not ($info -is [array])) {
throw "The response received from API server is invalid"
}
:loop foreach ($i in $info) {
if (-not ($i.assets -is [array])) {
continue
}
foreach ($a in $i.assets) {
if ([String]::IsNullOrEmpty($a.browser_download_url)) {
continue
}
# Skip some download links as we're not interested in them
if ( $a.browser_download_url -ilike "*_symbols*" ) {
continue
}
$score = Match-Filenames $url $a.browser_download_url
# Skip links that don't match or are less similar
if ( ($score -eq 0) -or ($score -lt $charCount) ) {
continue
}
# If we reach the same download link as we have
if ( $score -eq [System.IO.Path]::GetFileName($url).Length ) {
}
$charCount = $score
$downloadLinks.Add($a.browser_download_url)
}
# If at least one download link was found, don't continue with older releases
if ( $downloadLinks.Length -gt 0 ) {
break :loop
}
}
# Special case for archive downloads of repository
if (($null -eq $downloadLinks) -or (-not $downloadLinks)) {
if ((($p | ForEach-Object { $_.Trim('/') }) -contains "archive") -and $info[0].tag_name) {
for ($i = 0; $i -lt $p.Length; $i++) {
if ($p[$i].Trim('/') -eq "archive") {
$p[$i + 1] = $info[0].tag_name + ".zip"
$downloadLinks = $url.Scheme + "://" + $url.Host + ($p -join '')
return $downloadLinks
}
}
}
return ''
}
$temp = $downloadLinks | Where-Object { (Match-Filenames $url $_) -eq $charCount }
$downloadLinks = (New-Object System.Collections.Generic.List[System.Object])
$charCount = 0
foreach ($l in $temp) {
$score = Match-Filenames $url $l true
if ( ($score -eq 0) -or ($score -lt $charCount) ) {
continue
}
$charCount = $score
}
$downloadLinks = $temp | Where-Object { (Match-Filenames $url $_ true) -eq $charCount }
if (($null -eq $downloadLinks) -or (-not $downloadLinks)) {
throw "No suitable download links matched for the url!"
}
if (-not($downloadLinks -is [String])) {
throw "Found multiple matches for the same url:`n" + $downloadLinks
}
return $downloadLinks
}
$count = 0
# Read the current sources content
$sources = Get-Content $sourcesPath | Out-String | ConvertFrom-Json
foreach ($s in $sources) {
Write-Verbose "Updating sources link for $($s.name)..."
Write-Verbose "Old Link: $($s.url)"
$downloadUrl = Fetch-DownloadUrl $s.url
if (($null -eq $downloadUrl) -or ($downloadUrl -eq '')) {
Write-Verbose "No new links were found"
continue
}
Write-Verbose "Link: $downloadUrl"
$url = [uri] $downloadUrl
$version = ''
if (($url.Segments[-3] -eq "download/") -and ($url.Segments[-2].StartsWith("v"))) {
$version = $url.Segments[-2].TrimStart('v').TrimEnd('/')
}
if (($url.Segments[-2] -eq "archive/")) {
$version = [System.IO.Path]::GetFileNameWithoutExtension($url.Segments[-1].TrimStart('v').TrimEnd('/'))
}
if ($version -eq '') {
throw "Unable to extract version from url string"
}
Write-Verbose "Version: $version"
if ( $s.version -ne $version ) {
# if ( ([System.Version] $s.version) -gt ([System.Version] $version) ) {
# throw "The current version $($s.version) is already newer than the found version $version!"
# }
$count++
}
$s.url = $downloadUrl
$s.version = $version
}
$sources | ConvertTo-Json | Set-Content $sourcesPath
if ($count -eq 0) {
Write-Host -ForegroundColor yellow "No new releases were found."
return
}
if ($Env:APPVEYOR -eq 'True') {
Add-AppveyorMessage -Message "Successfully updated $count dependencies." -Category Information
}
if ($Env:GITHUB_ACTIONS -eq 'true') {
Write-Output "::notice title=Task Complete::Successfully updated $count dependencies."
}
Write-Host -ForegroundColor green "Successfully updated $count dependencies."

251
scripts/utils.ps1 Normal file
View File

@ -0,0 +1,251 @@
function Ensure-Exists($path) {
if (-not (Test-Path $path)) {
Write-Error "Missing required $path! Ensure it is installed"
exit 1
}
return $true > $null
}
function Ensure-Executable($command) {
try { Get-Command $command -ErrorAction Stop > $null }
catch {
if( ($command -eq "7z") -and (Test-Path "$env:programfiles\7-zip\7z.exe") ){
Set-Alias -Name "7z" -Value "$env:programfiles\7-zip\7z.exe" -Scope script
}
elseif( ($command -eq "7z") -and (Test-Path "$env:programw6432\7-zip\7z.exe") ) {
Set-Alias -Name "7z" -Value "$env:programw6432\7-zip\7z.exe" -Scope script
}
else {
Write-Error "Missing $command! Ensure it is installed and on in the PATH"
exit 1
}
}
}
function Delete-Existing($path) {
if (Test-Path $path) {
Write-Verbose "Remove existing $path"
}
Remove-Item -Recurse -Force $path -ErrorAction SilentlyContinue
}
function Extract-Archive($source, $target) {
Write-Verbose $("Extracting Archive '$cmder_root\vendor\" + $source.replace('/','\') + " to '$cmder_root\vendor\$target'")
Invoke-Expression "7z x -y -o`"$($target)`" `"$source`" > `$null"
if ($LastExitCode -ne 0) {
Write-Error "Extracting of $source failed"
}
Remove-Item $source
}
function Create-Archive($source, $target, $params) {
$command = "7z a -x@`"$source\packignore`" $params `"$target`" `"*`" > `$null"
Write-Verbose "Creating Archive from '$source' in '$target' with parameters '$params'"
Push-Location $source
Invoke-Expression $command
Pop-Location
if ($LastExitCode -ne 0) {
Write-Error "Compressing $source failed"
}
}
# If directory contains only one child directory
# Flatten it instead
function Flatten-Directory($name) {
$name = Resolve-Path $name
$moving = "$($name)_moving"
Rename-Item $name -NewName $moving
Write-Verbose "Flattening the '$name' directory..."
$child = (Get-ChildItem $moving)[0] | Resolve-Path
Move-Item -Path $child -Destination $name
Remove-Item -Recurse $moving
}
function Digest-Hash($path) {
if (Get-Command Get-FileHash -ErrorAction SilentlyContinue) {
return (Get-FileHash -Algorithm SHA256 -Path $path).Hash
}
return Invoke-Expression "md5sum $path"
}
function Set-GHVariable {
param(
[Parameter(Mandatory = $true)]
[string]$Name,
[Parameter(Mandatory = $true)]
[string]$Value
)
Write-Verbose "Setting CI variable $Name to $Value" -Verbose
if ($env:GITHUB_ENV) {
Write-Output "$Name=$Value" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
}
}
function Get-GHTempPath {
$temp = [System.IO.Path]::GetTempPath()
if ($env:RUNNER_TEMP) {
$temp = $env:RUNNER_TEMP
}
Write-Verbose "Get CI Temp path: $temp" -Verbose
return $temp
}
function Get-VersionStr {
# Clear existing variable
if ($string) { Clear-Variable -name string }
# Determine if git is available
if (Get-Command "git.exe" -ErrorAction SilentlyContinue) {
# Determine if the current directory is a git repository
$GitPresent = Invoke-Expression "git rev-parse --is-inside-work-tree" -ErrorAction SilentlyContinue
if ( $GitPresent -eq 'true' ) {
$string = Invoke-Expression "git describe --abbrev=0 --tags"
}
}
# Fallback used when Git is not available
if ( -not($string) ) {
$string = Parse-Changelog ($PSScriptRoot + '\..\' + 'CHANGELOG.md')
}
# Add build number, if AppVeyor is present
if ( $Env:APPVEYOR -eq 'True' ) {
$string = $string + '.' + $Env:APPVEYOR_BUILD_NUMBER
}
elseif ( $Env:GITHUB_ACTIONS -eq 'true' ) {
$string = $string + '.' + $Env:GITHUB_RUN_NUMBER
}
# Remove starting 'v' characters
$string = $string -replace '^v+','' # normalize version string
return $string
}
function Parse-Changelog($file) {
# Define the regular expression to match the version string from changelog
[regex]$regex = '^## \[(?<version>[\w\-\.]+)\]\([^\n()]+\)\s+\([^\n()]+\)$';
# Find the first match of the version string which means the latest version
$version = Select-String -Path $file -Pattern $regex | Select-Object -First 1 | ForEach-Object { $_.Matches.Groups[1].Value }
return $version
}
function Create-RC($string, $path) {
$version = $string + '.0.0.0.0' # padding for version string
if ( !(Test-Path "$path.sample") ) {
throw "Invalid path provided for resources file."
}
$resource = Get-Content -Path "$path.sample"
$pattern = @( "Cmder-Major-Version", "Cmder-Minor-Version", "Cmder-Revision-Version", "Cmder-Build-Version" )
$index = 0
# Replace all non-numeric characters to dots and split to array
$version = $version -replace '[^0-9]+','.' -split '\.'
foreach ($fragment in $version) {
if ( !$fragment ) { break }
elseif ($index -le $pattern.length) {
$resource = $resource.Replace( "{" + $pattern[$index++] + "}", $fragment )
}
}
# Add the version string
$resource = $resource.Replace( "{Cmder-Version-Str}", '"' + $string + '"' )
# Write the results
Set-Content -Path $path -Value $resource
}
function Register-Cmder() {
[CmdletBinding()]
Param
(
# Text for the context menu item.
$MenuText = "Cmder Here"
, # Defaults to the current cmder directory when run from cmder.
$PathToExe = (Join-Path $env:CMDER_ROOT "cmder.exe")
, # Commands the context menu will execute.
$Command = "%V"
, # Defaults to the icons folder in the cmder package.
$icon = (Split-Path $PathToExe | Join-Path -ChildPath 'icons/cmder.ico')
)
Begin
{
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT > $null
}
Process
{
New-Item -Path "HKCR:\Directory\Shell\Cmder" -Force -Value $MenuText
New-ItemProperty -Path "HKCR:\Directory\Shell\Cmder" -Force -Name "Icon" -Value `"$icon`"
New-ItemProperty -Path "HKCR:\Directory\Shell\Cmder" -Force -Name "NoWorkingDirectory"
New-Item -Path "HKCR:\Directory\Shell\Cmder\Command" -Force -Value "`"$PathToExe`" `"$Command`" "
New-Item -Path "HKCR:\Directory\Background\Shell\Cmder" -Force -Value $MenuText
New-ItemProperty -Path "HKCR:\Directory\Background\Shell\Cmder" -Force -Name "Icon" -Value `"$icon`"
New-ItemProperty -Path "HKCR:\Directory\Background\Shell\Cmder" -Force -Name "NoWorkingDirectory"
New-Item -Path "HKCR:\Directory\Background\Shell\Cmder\Command" -Force -Value "`"$PathToExe`" `"$Command`" "
}
End
{
Remove-PSDrive -Name HKCR
}
}
function Unregister-Cmder {
Begin
{
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT > $null
}
Process
{
Remove-Item -Path "HKCR:\Directory\Shell\Cmder" -Recurse
Remove-Item -Path "HKCR:\Directory\Background\Shell\Cmder" -Recurse
}
End
{
Remove-PSDrive -Name HKCR
}
}
function Download-File {
param (
$Url,
$File
)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$useBitTransfer = $null -ne (Get-Module -Name BitsTransfer -ListAvailable) -and ($PSVersionTable.PSVersion.Major -le 5)
$File = $File -replace "/", "\"
try {
if ($useBitTransfer) {
Start-BitsTransfer -Source $Url -Destination $File -DisplayName "Downloading '$Url' to $File"
return
}
}
catch {
Write-Error "Failed to download file using BITS, reason: $_`nUsing fallback method instead...`n" -ErrorAction:Continue
}
Write-Verbose "Downloading from $Url to $File`n"
$wc = New-Object System.Net.WebClient
if ($env:https_proxy) {
$wc.proxy = (New-Object System.Net.WebProxy($env:https_proxy))
}
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;
$wc.DownloadFile($Url, $File)
}

907
vendor/ConEmu.xml.default vendored Normal file
View File

@ -0,0 +1,907 @@
<?xml version="1.0" encoding="utf-8"?>
<key name="Software">
<key name="ConEmu">
<key name=".Vanilla" modified="2018-02-22 06:02:11" build="171109">
<value name="ColorTable00" type="dword" data="00222827"/>
<value name="ColorTable01" type="dword" data="009e5401"/>
<value name="ColorTable02" type="dword" data="0004aa74"/>
<value name="ColorTable03" type="dword" data="00a6831a"/>
<value name="ColorTable04" type="dword" data="003403a7"/>
<value name="ColorTable05" type="dword" data="009c5689"/>
<value name="ColorTable06" type="dword" data="0049b6b6"/>
<value name="ColorTable07" type="dword" data="00cacaca"/>
<value name="ColorTable08" type="dword" data="007c7c7c"/>
<value name="ColorTable09" type="dword" data="00f58303"/>
<value name="ColorTable10" type="dword" data="0006d08d"/>
<value name="ColorTable11" type="dword" data="00e5c258"/>
<value name="ColorTable12" type="dword" data="004b04f3"/>
<value name="ColorTable13" type="dword" data="00b87da8"/>
<value name="ColorTable14" type="dword" data="0081cccc"/>
<value name="ColorTable15" type="dword" data="00ffffff"/>
<value name="ColorTable16" type="dword" data="00222827"/>
<value name="ColorTable17" type="dword" data="009e5401"/>
<value name="ColorTable18" type="dword" data="0004aa74"/>
<value name="ColorTable19" type="dword" data="00a6831a"/>
<value name="ColorTable20" type="dword" data="003403a7"/>
<value name="ColorTable21" type="dword" data="009c5689"/>
<value name="ColorTable22" type="dword" data="0049b6b6"/>
<value name="ColorTable23" type="dword" data="00cacaca"/>
<value name="ColorTable24" type="dword" data="007c7c7c"/>
<value name="ColorTable25" type="dword" data="00f58303"/>
<value name="ColorTable26" type="dword" data="0006d08d"/>
<value name="ColorTable27" type="dword" data="00e5c258"/>
<value name="ColorTable28" type="dword" data="004b04f3"/>
<value name="ColorTable29" type="dword" data="00b87da8"/>
<value name="ColorTable30" type="dword" data="0081cccc"/>
<value name="ColorTable31" type="dword" data="00ffffff"/>
<value name="ExtendColors" type="hex" data="00"/>
<value name="ExtendColorIdx" type="hex" data="0e"/>
<value name="TextColorIdx" type="hex" data="10"/>
<value name="BackColorIdx" type="hex" data="10"/>
<value name="PopTextColorIdx" type="hex" data="10"/>
<value name="PopBackColorIdx" type="hex" data="10"/>
<value name="ExtendFonts" type="hex" data="00"/>
<value name="ExtendFontNormalIdx" type="hex" data="01"/>
<value name="ExtendFontBoldIdx" type="hex" data="0c"/>
<value name="ExtendFontItalicIdx" type="hex" data="0d"/>
<value name="CursorTypeActive" type="dword" data="000232c1"/>
<value name="CursorTypeInactive" type="dword" data="00823282"/>
<value name="ClipboardDetectLineEnd" type="hex" data="01"/>
<value name="ClipboardBashMargin" type="hex" data="00"/>
<value name="ClipboardTrimTrailing" type="hex" data="02"/>
<value name="ClipboardEOL" type="hex" data="00"/>
<value name="ClipboardArrowStart" type="hex" data="00"/>
<value name="ClipboardAllLines" type="hex" data="01"/>
<value name="ClipboardFirstLine" type="hex" data="01"/>
<value name="ClipboardClickPromptPosition" type="hex" data="00"/>
<value name="ClipboardDeleteLeftWord" type="hex" data="01"/>
<value name="TrueColorerSupport" type="hex" data="01"/>
<value name="FadeInactive" type="hex" data="01"/>
<value name="FadeInactiveLow" type="hex" data="00"/>
<value name="FadeInactiveHigh" type="hex" data="c8"/>
<value name="ComSpec.UncPaths" type="hex" data="01"/>
<value name="ConVisible" type="hex" data="00"/>
<value name="ConInMode" type="dword" data="ffffffff"/>
<value name="UseInjects" type="hex" data="01"/>
<value name="SetDefaultTerminal" type="hex" data="00"/>
<value name="SetDefaultTerminalStartup" type="hex" data="00"/>
<value name="DefaultTerminalNoInjects" type="hex" data="00"/>
<value name="DefaultTerminalConfirm" type="hex" data="01"/>
<value name="DefaultTerminalApps" type="string" data="explorer.exe"/>
<value name="ProcessAnsi" type="hex" data="01"/>
<value name="UseClink" type="hex" data="01"/>
<value name="StartType" type="hex" data="02"/>
<value name="CmdLine" type="string" data=""/>
<value name="StartTasksFile" type="string" data=""/>
<value name="StartTasksName" type="string" data="{cmd::Cmder}"/>
<value name="StartFarFolders" type="hex" data="00"/>
<value name="StartFarEditors" type="hex" data="00"/>
<value name="StoreTaskbarkTasks" type="hex" data="00"/>
<value name="StoreTaskbarCommands" type="hex" data="00"/>
<value name="CmdLineHistory" type="multi"></value>
<value name="SingleInstance" type="hex" data="00"/>
<value name="ShowHelpTooltips" type="hex" data="01"/>
<value name="Multi" type="hex" data="01"/>
<value name="Multi.ShowButtons" type="hex" data="01"/>
<value name="Multi.NumberInCaption" type="hex" data="00"/>
<value name="Multi.CloseConfirm" type="hex" data="00"/>
<value name="Multi.CloseEditViewConfirm" type="hex" data="00"/>
<value name="Multi.NewConfirm" type="hex" data="01"/>
<value name="Multi.UseArrows" type="hex" data="00"/>
<value name="Multi.UseNumbers" type="hex" data="01"/>
<value name="Multi.UseWinTab" type="hex" data="00"/>
<value name="Multi.AutoCreate" type="hex" data="00"/>
<value name="Multi.LeaveOnClose" type="hex" data="00"/>
<value name="Multi.HideOnClose" type="hex" data="00"/>
<value name="Multi.MinByEsc" type="hex" data="02"/>
<value name="MapShiftEscToEsc" type="hex" data="01"/>
<value name="Multi.Iterate" type="hex" data="01"/>
<value name="Multi.SplitWidth" type="hex" data="04"/>
<value name="Multi.SplitHeight" type="hex" data="04"/>
<value name="KeyboardHooks" type="hex" data="02"/>
<value name="FontName" type="string" data="Consolas"/>
<value name="FontName2" type="string" data="Lucida Console"/>
<value name="FontAutoSize" type="hex" data="00"/>
<value name="FontSize" type="ulong" data="16"/>
<value name="FontSizeX" type="ulong" data="0"/>
<value name="FontSizeX2" type="ulong" data="0"/>
<value name="FontSizeX3" type="ulong" data="0"/>
<value name="FontCharSet" type="hex" data="00"/>
<value name="Anti-aliasing" type="ulong" data="6"/>
<value name="FontBold" type="hex" data="00"/>
<value name="FontItalic" type="hex" data="00"/>
<value name="Monospace" type="hex" data="01"/>
<value name="BackGround Image show" type="hex" data="00"/>
<value name="BackGround Image" type="string" data="c:\back.bmp"/>
<value name="bgImageDarker" type="hex" data="ff"/>
<value name="bgImageColors" type="dword" data="ffffffff"/>
<value name="bgOperation" type="hex" data="00"/>
<value name="bgPluginAllowed" type="hex" data="01"/>
<value name="AlphaValue" type="hex" data="f8"/>
<value name="AlphaValueSeparate" type="hex" data="01"/>
<value name="AlphaValueInactive" type="hex" data="ee"/>
<value name="UserScreenTransparent" type="hex" data="00"/>
<value name="ColorKeyTransparent" type="hex" data="00"/>
<value name="ColorKeyValue" type="dword" data="00010101"/>
<value name="UseCurrentSizePos" type="hex" data="01"/>
<value name="WindowMode" type="dword" data="00000520"/>
<value name="ConWnd Width" type="dword" data="00000078"/>
<value name="ConWnd Height" type="dword" data="0000001e"/>
<value name="Cascaded" type="hex" data="01"/>
<value name="ConWnd X" type="long" data="500"/>
<value name="ConWnd Y" type="long" data="500"/>
<value name="16bit Height" type="ulong" data="0"/>
<value name="AutoSaveSizePos" type="hex" data="01"/>
<value name="IntegralSize" type="hex" data="00"/>
<value name="QuakeStyle" type="hex" data="00"/>
<value name="QuakeAnimation" type="ulong" data="300"/>
<value name="HideCaption" type="hex" data="00"/>
<value name="HideChildCaption" type="hex" data="01"/>
<value name="FocusInChildWindows" type="hex" data="01"/>
<value name="HideCaptionAlways" type="hex" data="00"/>
<value name="HideCaptionAlwaysFrame" type="hex" data="00"/>
<value name="HideCaptionAlwaysDelay" type="ulong" data="2000"/>
<value name="HideCaptionAlwaysDisappear" type="ulong" data="2000"/>
<value name="DownShowHiddenMessage" type="hex" data="00"/>
<value name="ConsoleFontName" type="string" data="Lucida Console"/>
<value name="ConsoleFontWidth" type="long" data="3"/>
<value name="ConsoleFontHeight" type="long" data="5"/>
<value name="DefaultBufferHeight" type="long" data="1000"/>
<value name="AutoBufferHeight" type="hex" data="01"/>
<value name="CmdOutputCP" type="dword" data="00000000"/>
<value name="ComSpec.Type" type="hex" data="00"/>
<value name="ComSpec.Bits" type="hex" data="00"/>
<value name="ComSpec.UpdateEnv" type="hex" data="00"/>
<value name="ComSpec.EnvAddPath" type="hex" data="01"/>
<value name="ComSpec.EnvAddExePath" type="hex" data="01"/>
<value name="ComSpec.UncPaths" type="hex" data="01"/>
<value name="ComSpec.Path" type="string" data=""/>
<value name="ConsoleTextSelection" type="hex" data="01"/>
<value name="CTS.AutoCopy" type="hex" data="01"/>
<value name="CTS.EndOnTyping" type="hex" data="00"/>
<value name="CTS.EndOnKeyPress" type="hex" data="00"/>
<value name="CTS.Freeze" type="hex" data="00"/>
<value name="CTS.SelectBlock" type="hex" data="01"/>
<value name="CTS.SelectText" type="hex" data="01"/>
<value name="CTS.ActMode" type="hex" data="02"/>
<value name="CTS.RBtnAction" type="hex" data="03"/>
<value name="CTS.MBtnAction" type="hex" data="00"/>
<value name="CTS.ColorIndex" type="hex" data="e0"/>
<value name="ClipboardConfirmEnter" type="hex" data="01"/>
<value name="ClipboardConfirmLonger" type="ulong" data="200"/>
<value name="FarGotoEditorOpt" type="hex" data="01"/>
<value name="FarGotoEditorPath" type="string" data="far.exe /e%1:%2 &quot;%3&quot;"/>
<value name="FixFarBorders" type="hex" data="01"/>
<value name="FixFarBordersRanges" type="string" data="2013-25C4;"/>
<value name="ExtendUCharMap" type="hex" data="01"/>
<value name="EnhanceGraphics" type="hex" data="01"/>
<value name="EnhanceButtons" type="hex" data="00"/>
<value name="PartBrush75" type="hex" data="c8"/>
<value name="PartBrush50" type="hex" data="96"/>
<value name="PartBrush25" type="hex" data="5a"/>
<value name="PartBrushBlack" type="hex" data="20"/>
<value name="RightClick opens context menu" type="hex" data="02"/>
<value name="RightClickMacro2" type="string" data=""/>
<value name="SendAltTab" type="hex" data="00"/>
<value name="SendAltEsc" type="hex" data="00"/>
<value name="SendAltPrintScrn" type="hex" data="00"/>
<value name="SendPrintScrn" type="hex" data="00"/>
<value name="SendCtrlEsc" type="hex" data="00"/>
<value name="Min2Tray" type="hex" data="00"/>
<value name="AlwaysShowTrayIcon" type="hex" data="00"/>
<value name="SafeFarClose" type="hex" data="01"/>
<value name="SafeFarCloseMacro" type="string" data=""/>
<value name="FARuseASCIIsort" type="hex" data="00"/>
<value name="ShellNoZoneCheck" type="hex" data="00"/>
<value name="FixAltOnAltTab" type="hex" data="00"/>
<value name="DisableMouse" type="hex" data="01"/>
<value name="RSelectionFix" type="hex" data="01"/>
<value name="MouseSkipActivation" type="hex" data="01"/>
<value name="MouseSkipMoving" type="hex" data="01"/>
<value name="FarHourglass" type="hex" data="01"/>
<value name="FarHourglassDelay" type="ulong" data="500"/>
<value name="Dnd" type="hex" data="01"/>
<value name="DndDrop" type="hex" data="01"/>
<value name="DefCopy" type="hex" data="01"/>
<value name="DropUseMenu" type="hex" data="02"/>
<value name="DragOverlay" type="hex" data="01"/>
<value name="DragShowIcons" type="hex" data="01"/>
<value name="DebugSteps" type="hex" data="01"/>
<value name="DragPanel" type="hex" data="02"/>
<value name="DragPanelBothEdges" type="hex" data="00"/>
<value name="KeyBarRClick" type="hex" data="01"/>
<value name="StatusBar.Show" type="hex" data="00"/>
<value name="StatusBar.Flags" type="dword" data="00000002"/>
<value name="StatusFontFace" type="string" data="Tahoma"/>
<value name="StatusFontCharSet" type="ulong" data="0"/>
<value name="StatusFontHeight" type="long" data="14"/>
<value name="StatusBar.Color.Back" type="dword" data="00404040"/>
<value name="StatusBar.Color.Light" type="dword" data="00ffffff"/>
<value name="StatusBar.Color.Dark" type="dword" data="00a0a0a0"/>
<value name="StatusBar.Hide.VCon" type="hex" data="00"/>
<value name="StatusBar.Hide.CapsL" type="hex" data="00"/>
<value name="StatusBar.Hide.NumL" type="hex" data="00"/>
<value name="StatusBar.Hide.ScrL" type="hex" data="00"/>
<value name="StatusBar.Hide.Lang" type="hex" data="01"/>
<value name="StatusBar.Hide.WPos" type="hex" data="01"/>
<value name="StatusBar.Hide.WSize" type="hex" data="01"/>
<value name="StatusBar.Hide.WClient" type="hex" data="01"/>
<value name="StatusBar.Hide.WWork" type="hex" data="01"/>
<value name="StatusBar.Hide.Style" type="hex" data="01"/>
<value name="StatusBar.Hide.StyleEx" type="hex" data="01"/>
<value name="StatusBar.Hide.hFore" type="hex" data="01"/>
<value name="StatusBar.Hide.hFocus" type="hex" data="01"/>
<value name="StatusBar.Hide.ABuf" type="hex" data="00"/>
<value name="StatusBar.Hide.CPos" type="hex" data="00"/>
<value name="StatusBar.Hide.CSize" type="hex" data="00"/>
<value name="StatusBar.Hide.BSize" type="hex" data="00"/>
<value name="StatusBar.Hide.CurX" type="hex" data="00"/>
<value name="StatusBar.Hide.CurY" type="hex" data="00"/>
<value name="StatusBar.Hide.CurS" type="hex" data="00"/>
<value name="StatusBar.Hide.CurI" type="hex" data="01"/>
<value name="StatusBar.Hide.ConEmuPID" type="hex" data="01"/>
<value name="StatusBar.Hide.ConEmuHWND" type="hex" data="01"/>
<value name="StatusBar.Hide.ConEmuView" type="hex" data="01"/>
<value name="StatusBar.Hide.Srv" type="hex" data="00"/>
<value name="StatusBar.Hide.SrvHWND" type="hex" data="01"/>
<value name="StatusBar.Hide.Transparency" type="hex" data="00"/>
<value name="StatusBar.Hide.New" type="hex" data="00"/>
<value name="StatusBar.Hide.Sync" type="hex" data="00"/>
<value name="StatusBar.Hide.Proc" type="hex" data="00"/>
<value name="StatusBar.Hide.Title" type="hex" data="01"/>
<value name="StatusBar.Hide.Resize" type="hex" data="00"/>
<value name="Tabs" type="hex" data="01"/>
<value name="TabsLocation" type="hex" data="01"/>
<value name="TabSelf" type="hex" data="01"/>
<value name="TabLazy" type="hex" data="01"/>
<value name="TabRecent" type="hex" data="00"/>
<value name="TabDblClick" type="ulong" data="1"/>
<value name="TabsOnTaskBar" type="hex" data="02"/>
<value name="TaskBarOverlay" type="hex" data="01"/>
<value name="TabCloseMacro" type="string" data=""/>
<value name="TabFontFace" type="string" data="Segoe UI"/>
<value name="TabFontCharSet" type="ulong" data="0"/>
<value name="TabFontHeight" type="long" data="16"/>
<value name="SaveAllEditors" type="string" data=""/>
<value name="ToolbarAddSpace" type="long" data="0"/>
<value name="TabConsole" type="string" data=" %n "/>
<value name="TabSkipWords" type="string" data="Administrator:|Администратор:"/>
<value name="TabPanels" type="string" data="&lt;%c&gt; %s"/>
<value name="TabEditor" type="string" data="&lt;%c.%i&gt;{%s}"/>
<value name="TabEditorModified" type="string" data="&lt;%c.%i&gt;[%s] *"/>
<value name="TabViewer" type="string" data="&lt;%c.%i&gt;[%s]"/>
<value name="TabLenMax" type="ulong" data="20"/>
<value name="AdminTitleSuffix" type="string" data=" (Admin)"/>
<value name="AdminShowShield" type="hex" data="01"/>
<value name="HideInactiveConsoleTabs" type="hex" data="00"/>
<value name="ShowFarWindows" type="hex" data="01"/>
<value name="TryToCenter" type="hex" data="01"/>
<value name="CenterConsolePad" type="ulong" data="8"/>
<value name="ShowScrollbar" type="hex" data="02"/>
<value name="ScrollBarAppearDelay" type="ulong" data="100"/>
<value name="ScrollBarDisappearDelay" type="ulong" data="1000"/>
<value name="IconID" type="ulong" data="1"/>
<value name="MainTimerElapse" type="ulong" data="10"/>
<value name="MainTimerInactiveElapse" type="ulong" data="1000"/>
<value name="AffinityMask" type="dword" data="00000000"/>
<value name="SkipFocusEvents" type="hex" data="00"/>
<value name="MonitorConsoleLang" type="hex" data="03"/>
<value name="DesktopMode" type="hex" data="00"/>
<value name="SnapToDesktopEdges" type="hex" data="00"/>
<value name="AlwaysOnTop" type="hex" data="00"/>
<value name="SleepInBackground" type="hex" data="01"/>
<value name="MinimizeOnLoseFocus" type="hex" data="00"/>
<value name="DisableFarFlashing" type="hex" data="00"/>
<value name="DisableAllFlashing" type="hex" data="00"/>
<value name="FindText" type="string" data=""/>
<value name="FindMatchCase" type="hex" data="00"/>
<value name="FindMatchWholeWords" type="hex" data="00"/>
<value name="FindTransparent" type="hex" data="01"/>
<value name="PanView.BackColor" type="dword" data="30ffffff"/>
<value name="PanView.PFrame" type="long" data="1"/>
<value name="PanView.PFrameColor" type="dword" data="28808080"/>
<value name="PanView.SFrame" type="long" data="1"/>
<value name="PanView.SFrameColor" type="dword" data="07c0c0c0"/>
<value name="PanView.Thumbs.ImgSize" type="long" data="96"/>
<value name="PanView.Thumbs.SpaceX1" type="long" data="1"/>
<value name="PanView.Thumbs.SpaceY1" type="long" data="1"/>
<value name="PanView.Thumbs.SpaceX2" type="long" data="5"/>
<value name="PanView.Thumbs.SpaceY2" type="long" data="20"/>
<value name="PanView.Thumbs.LabelSpacing" type="long" data="2"/>
<value name="PanView.Thumbs.LabelPadding" type="long" data="0"/>
<value name="PanView.Thumbs.FontName" type="string" data="Tahoma"/>
<value name="PanView.Thumbs.FontHeight" type="long" data="14"/>
<value name="PanView.Tiles.ImgSize" type="long" data="48"/>
<value name="PanView.Tiles.SpaceX1" type="long" data="4"/>
<value name="PanView.Tiles.SpaceY1" type="long" data="4"/>
<value name="PanView.Tiles.SpaceX2" type="long" data="172"/>
<value name="PanView.Tiles.SpaceY2" type="long" data="4"/>
<value name="PanView.Tiles.LabelSpacing" type="long" data="4"/>
<value name="PanView.Tiles.LabelPadding" type="long" data="1"/>
<value name="PanView.Tiles.FontName" type="string" data="Tahoma"/>
<value name="PanView.Tiles.FontHeight" type="long" data="14"/>
<value name="PanView.LoadPreviews" type="hex" data="03"/>
<value name="PanView.LoadFolders" type="hex" data="01"/>
<value name="PanView.LoadTimeout" type="ulong" data="15"/>
<value name="PanView.MaxZoom" type="ulong" data="600"/>
<value name="PanView.UsePicView2" type="hex" data="01"/>
<value name="PanView.RestoreOnStartup" type="hex" data="00"/>
<value name="Update.VerLocation" type="string" data=""/>
<value name="Update.CheckOnStartup" type="hex" data="01"/>
<value name="Update.CheckHourly" type="hex" data="00"/>
<value name="Update.ConfirmDownload" type="hex" data="01"/>
<value name="Update.UseBuilds" type="hex" data="01"/>
<value name="Update.UseProxy" type="hex" data="00"/>
<value name="Update.Proxy" type="string" data=""/>
<value name="Update.ProxyUser" type="string" data=""/>
<value name="Update.ProxyPassword" type="string" data=""/>
<value name="Update.ExeCmdLine" type="string" data=""/>
<value name="Update.ArcCmdLine" type="string" data=""/>
<value name="Update.DownloadPath" type="string" data="%TEMP%\ConEmu"/>
<value name="Update.LeavePackages" type="hex" data="00"/>
<value name="Update.PostUpdateCmd" type="string" data="echo Last successful update&gt;ConEmuUpdate.info &amp;&amp; date /t&gt;&gt;ConEmuUpdate.info &amp;&amp; time /t&gt;&gt;ConEmuUpdate.info"/>
<value name="Multi.Modifier" type="dword" data="00000011"/>
<value name="Multi.ArrowsModifier" type="dword" data="0000005b"/>
<value name="KeyMacroVersion" type="hex" data="02"/>
<value name="MinimizeRestore" type="dword" data="000011c0"/>
<value name="MinimizeRestore2" type="dword" data="00000000"/>
<value name="GlobalRestore" type="dword" data="00000000"/>
<value name="ForcedFullScreen" type="dword" data="12115b0d"/>
<value name="SwitchGuiFocus" type="dword" data="00000000"/>
<value name="SetFocusGui" type="dword" data="00000000"/>
<value name="SetFocusChild" type="dword" data="00000000"/>
<value name="ChildSystemMenu" type="dword" data="ffffffff"/>
<value name="Multi.NewConsole" type="dword" data="80808000"/>
<value name="Multi.NewConsoleShift" type="dword" data="00001154"/>
<value name="Multi.NewConsolePopup" type="dword" data="80808000"/>
<value name="Multi.NewWindow" type="dword" data="00000000"/>
<value name="Multi.NewSplitV" type="dword" data="00001000"/>
<value name="Multi.NewSplitH" type="dword" data="80808000"/>
<value name="Multi.NewAttach" type="dword" data="00005b00"/>
<value name="Multi.Next" type="dword" data="80808000"/>
<value name="Multi.NextShift" type="dword" data="80808000"/>
<value name="Multi.Recreate" type="dword" data="00005b00"/>
<value name="Multi.AltCon" type="dword" data="80808000"/>
<value name="Multi.Scroll" type="dword" data="00005b00"/>
<value name="Multi.Close" type="dword" data="00001157"/>
<value name="CloseTabKey" type="dword" data="00125b00"/>
<value name="CloseGroupKey" type="dword" data="00000000"/>
<value name="TerminateProcessKey" type="dword" data="80808000"/>
<value name="DuplicateRootKey" type="dword" data="00000000"/>
<value name="CloseConEmuKey" type="dword" data="00001273"/>
<value name="Multi.Rename" type="dword" data="80808000"/>
<value name="Multi.MoveLeft" type="dword" data="00125b25"/>
<value name="Multi.MoveRight" type="dword" data="00125b27"/>
<value name="Multi.CmdKey" type="dword" data="80808000"/>
<value name="CTS.VkBlockStart" type="dword" data="00000000"/>
<value name="CTS.VkTextStart" type="dword" data="00000000"/>
<value name="CTS.VkCopyAll" type="dword" data="00000000"/>
<value name="Multi.ShowTabsList" type="dword" data="00000000"/>
<value name="Multi.ShowTabsList2" type="dword" data="80808000"/>
<value name="ClipboardVkAllLines" type="dword" data="0000102d"/>
<value name="ClipboardVkFirstLine" type="dword" data="00001156"/>
<value name="DeleteWordToLeft" type="dword" data="00001108"/>
<value name="FindTextKey" type="dword" data="00005d46"/>
<value name="ScreenshotKey" type="dword" data="80808000"/>
<value name="ScreenshotFullKey" type="dword" data="80808000"/>
<value name="ShowStatusBarKey" type="dword" data="80808000"/>
<value name="ShowTabBarKey" type="dword" data="80808000"/>
<value name="ShowCaptionKey" type="dword" data="80808000"/>
<value name="AlwaysOnTopKey" type="dword" data="00000000"/>
<value name="Key.TabMenu" type="dword" data="80808000"/>
<value name="Key.TabMenu2" type="dword" data="80808000"/>
<value name="Key.TabPane1" type="dword" data="80808000"/>
<value name="Key.TabPane2" type="dword" data="80808000"/>
<value name="Key.Maximize" type="dword" data="80808000"/>
<value name="Key.FullScreen" type="dword" data="0000120d"/>
<value name="Key.SysMenu" type="dword" data="80808000"/>
<value name="Key.SysMenu2" type="dword" data="00001102"/>
<value name="Key.BufUp" type="dword" data="00001126"/>
<value name="Key.BufDn" type="dword" data="00001128"/>
<value name="Key.BufPgUp" type="dword" data="00001121"/>
<value name="Key.BufPgDn" type="dword" data="00001122"/>
<value name="Key.PicViewSlide" type="dword" data="80808000"/>
<value name="Key.PicViewSlower" type="dword" data="80808000"/>
<value name="Key.PicViewFaster" type="dword" data="80808000"/>
<value name="FontLargerKey" type="dword" data="80808000"/>
<value name="FontSmallerKey" type="dword" data="80808000"/>
<value name="PasteFileKey" type="dword" data="00101146"/>
<value name="PastePathKey" type="dword" data="00101144"/>
<value name="PasteCygwinKey" type="dword" data="00005d2d"/>
<value name="Key.JumpPrevMonitor" type="dword" data="80808000"/>
<value name="Key.JumpNextMonitor" type="dword" data="80808000"/>
<value name="Key.TileToLeft" type="dword" data="80808000"/>
<value name="Key.TileToRIght" type="dword" data="80808000"/>
<value name="KeyMacro01" type="dword" data="0012a031"/>
<value name="KeyMacro01.Text" type="string" data="Task(&quot;cmd&quot;)"/>
<value name="KeyMacro02" type="dword" data="0012a032"/>
<value name="KeyMacro02.Text" type="string" data="Task(&quot;PowerShell&quot;)"/>
<value name="KeyMacro03" type="dword" data="000011d0"/>
<value name="KeyMacro03.Text" type="string" data="FontSetSize(1,2)"/>
<value name="KeyMacro04" type="dword" data="000011d1"/>
<value name="KeyMacro04.Text" type="string" data="FontSetSize(1,-2)"/>
<value name="KeyMacro05" type="dword" data="0012a033"/>
<value name="KeyMacro05.Text" type="string" data="Task(&quot;PowerShell as Admin&quot;)"/>
<value name="KeyMacro06" type="dword" data="00000000"/>
<value name="KeyMacro06.Text" type="string" data=""/>
<value name="KeyMacro07" type="dword" data="00000000"/>
<value name="KeyMacro07.Text" type="string" data=""/>
<value name="KeyMacro08" type="dword" data="00000000"/>
<value name="KeyMacro08.Text" type="string" data=""/>
<value name="KeyMacro09" type="dword" data="00000000"/>
<value name="KeyMacro09.Text" type="string" data=""/>
<value name="KeyMacro10" type="dword" data="00000000"/>
<value name="KeyMacro10.Text" type="string" data=""/>
<value name="KeyMacro11" type="dword" data="00000000"/>
<value name="KeyMacro11.Text" type="string" data=""/>
<value name="KeyMacro12" type="dword" data="00000000"/>
<value name="KeyMacro12.Text" type="string" data=""/>
<value name="KeyMacro13" type="dword" data="00000000"/>
<value name="KeyMacro13.Text" type="string" data=""/>
<value name="KeyMacro14" type="dword" data="00000000"/>
<value name="KeyMacro14.Text" type="string" data=""/>
<value name="KeyMacro15" type="dword" data="00000000"/>
<value name="KeyMacro15.Text" type="string" data=""/>
<value name="KeyMacro16" type="dword" data="00000000"/>
<value name="KeyMacro16.Text" type="string" data=""/>
<value name="KeyMacro17" type="dword" data="00000000"/>
<value name="KeyMacro17.Text" type="string" data=""/>
<value name="KeyMacro18" type="dword" data="00000000"/>
<value name="KeyMacro18.Text" type="string" data=""/>
<value name="KeyMacro19" type="dword" data="00000000"/>
<value name="KeyMacro19.Text" type="string" data=""/>
<value name="KeyMacro20" type="dword" data="00000000"/>
<value name="KeyMacro20.Text" type="string" data=""/>
<value name="KeyMacro21" type="dword" data="00000000"/>
<value name="KeyMacro21.Text" type="string" data=""/>
<value name="KeyMacro22" type="dword" data="00000000"/>
<value name="KeyMacro22.Text" type="string" data=""/>
<value name="KeyMacro23" type="dword" data="00000000"/>
<value name="KeyMacro23.Text" type="string" data=""/>
<value name="KeyMacro24" type="dword" data="00000000"/>
<value name="KeyMacro24.Text" type="string" data=""/>
<value name="KeyMacro25" type="dword" data="00000000"/>
<value name="KeyMacro25.Text" type="string" data=""/>
<value name="KeyMacro26" type="dword" data="00000000"/>
<value name="KeyMacro26.Text" type="string" data=""/>
<value name="KeyMacro27" type="dword" data="00000000"/>
<value name="KeyMacro27.Text" type="string" data=""/>
<value name="KeyMacro28" type="dword" data="00000000"/>
<value name="KeyMacro28.Text" type="string" data=""/>
<value name="KeyMacro29" type="dword" data="00000000"/>
<value name="KeyMacro29.Text" type="string" data=""/>
<value name="KeyMacro30" type="dword" data="00000000"/>
<value name="KeyMacro30.Text" type="string" data=""/>
<value name="KeyMacro31" type="dword" data="00000000"/>
<value name="KeyMacro31.Text" type="string" data=""/>
<value name="KeyMacro32" type="dword" data="00000000"/>
<value name="KeyMacro32.Text" type="string" data=""/>
<value name="CTS.VkBlock" type="hex" data="a4"/>
<value name="CTS.VkText" type="hex" data="a0"/>
<value name="CTS.VkAct" type="hex" data="00"/>
<value name="CTS.VkPrompt" type="hex" data="00"/>
<value name="FarGotoEditorVk" type="hex" data="a2"/>
<value name="DndLKey" type="hex" data="00"/>
<value name="DndRKey" type="hex" data="a2"/>
<value name="WndDragKey" type="dword" data="00121101"/>
<key name="Tasks" modified="2018-02-22 06:02:12" build="171109">
<value name="Count" type="long" data="9"/>
<key name="Task1" modified="2018-02-22 06:02:12" build="171109">
<value name="Name" type="string" data="{cmd::Cmder as Admin}"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="*cmd /k &quot;&quot;%ConEmuDir%\..\init.bat&quot; &quot;"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task2" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{cmd::Cmder}"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="cmd /k &quot;&quot;%ConEmuDir%\..\init.bat&quot; &quot;"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task3" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{PowerShell::PowerShell as Admin}"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="*PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command &quot;Invoke-Expression 'Import-Module ''%ConEmuDir%\..\profile.ps1'''&quot;"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task4" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{PowerShell::PowerShell}"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command &quot;Invoke-Expression 'Import-Module ''%ConEmuDir%\..\profile.ps1'''&quot;"/>
<value name="Cmd2" type="string" data="&quot;%CMDER_ROOT%\vendor\git-for-windows\git-bash.exe&quot;"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
<value name="Flags" type="dword" data="00000000"/>
</key>
<key name="Task5" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{bash::mintty as Admin}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data="/icon &quot;%ConEmuDir%\..\git-for-windows\usr\share\git\git-for-windows.ico&quot;"/>
<value name="Cmd1" type="string" data="*&quot;%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe&quot; /bin/bash -l"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
</key>
<key name="Task6" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{bash::mintty}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data="/icon &quot;%ConEmuDir%\..\git-for-windows\usr\share\git\git-for-windows.ico&quot;"/>
<value name="Cmd1" type="string" data="&quot;%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe&quot; /bin/bash -l"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
<value name="Cmd2" type="string" data="&quot;%CMDER_ROOT%vendor\git-for-windows\usr\bin\mintty.exe&quot; /bin/bash -l"/>
</key>
<key name="Task7" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{bash::bash as Admin}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
<value name="Cmd1" type="string" data="*set &quot;PATH=%ConEmuDir%\..\git-for-windows\usr\bin;%PATH%&quot; &amp; %ConEmuDir%\..\git-for-windows\git-cmd.exe --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe &quot;%ConEmuDir%\..\git-for-windows\usr\bin\bash.exe&quot; --login -i"/>
</key>
<key name="Task8" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="{bash::bash}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data=" /icon &quot;%CMDER_ROOT%\icons\cmder.ico&quot;"/>
<value name="Cmd1" type="string" data="set &quot;PATH=%ConEmuDir%\..\git-for-windows\usr\bin;%PATH%&quot; &amp; %ConEmuDir%\..\git-for-windows\git-cmd.exe --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe &quot;%ConEmuDir%\..\git-for-windows\usr\bin\bash.exe&quot; --login -i"/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
</key>
<key name="Task9" modified="2018-03-23 23:26:53" build="180318">
<value name="Name" type="string" data="{WSL::bash}"/>
<value name="Flags" type="dword" data="00000000"/>
<value name="Hotkey" type="dword" data="00000000"/>
<value name="GuiArgs" type="string" data='-icon "%USERPROFILE%\AppData\Local\lxss\bash.ico"'/>
<value name="Cmd1" type="string" data='set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" &amp; %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt'/>
<value name="Active" type="long" data="0"/>
<value name="Count" type="long" data="1"/>
</key>
</key>
<key name="Apps" modified="2018-02-22 06:05:13" build="171109">
<value name="Count" type="long" data="0"/>
</key>
<key name="Colors" modified="2018-02-22 06:05:13" build="171109">
<key name="Palette1" modified="2018-02-22 06:05:13" build="171109">
<value name="Name" type="string" data="Monokai"/>
<value name="ExtendColors" type="hex" data="00"/>
<value name="ExtendColorIdx" type="hex" data="0e"/>
<value name="TextColorIdx" type="hex" data="10"/>
<value name="BackColorIdx" type="hex" data="10"/>
<value name="PopTextColorIdx" type="hex" data="10"/>
<value name="PopBackColorIdx" type="hex" data="10"/>
<value name="ColorTable00" type="dword" data="00222827"/>
<value name="ColorTable01" type="dword" data="009e5401"/>
<value name="ColorTable02" type="dword" data="0004aa74"/>
<value name="ColorTable03" type="dword" data="00a6831a"/>
<value name="ColorTable04" type="dword" data="003403a7"/>
<value name="ColorTable05" type="dword" data="009c5689"/>
<value name="ColorTable06" type="dword" data="0049b6b6"/>
<value name="ColorTable07" type="dword" data="00cacaca"/>
<value name="ColorTable08" type="dword" data="007c7c7c"/>
<value name="ColorTable09" type="dword" data="00f58303"/>
<value name="ColorTable10" type="dword" data="0006d08d"/>
<value name="ColorTable11" type="dword" data="00e5c258"/>
<value name="ColorTable12" type="dword" data="004b04f3"/>
<value name="ColorTable13" type="dword" data="00b87da8"/>
<value name="ColorTable14" type="dword" data="0081cccc"/>
<value name="ColorTable15" type="dword" data="00ffffff"/>
<value name="ColorTable16" type="dword" data="00000000"/>
<value name="ColorTable17" type="dword" data="00800000"/>
<value name="ColorTable18" type="dword" data="00008000"/>
<value name="ColorTable19" type="dword" data="00808000"/>
<value name="ColorTable20" type="dword" data="00000080"/>
<value name="ColorTable21" type="dword" data="00800080"/>
<value name="ColorTable22" type="dword" data="00008080"/>
<value name="ColorTable23" type="dword" data="00c0c0c0"/>
<value name="ColorTable24" type="dword" data="00808080"/>
<value name="ColorTable25" type="dword" data="00ff0000"/>
<value name="ColorTable26" type="dword" data="0000ff00"/>
<value name="ColorTable27" type="dword" data="00ffff00"/>
<value name="ColorTable28" type="dword" data="000000ff"/>
<value name="ColorTable29" type="dword" data="00ff00ff"/>
<value name="ColorTable30" type="dword" data="0000ffff"/>
<value name="ColorTable31" type="dword" data="00ffffff"/>
</key>
<value name="Count" type="long" data="1"/>
</key>
<value name="OneTabPerGroup" type="hex" data="00"/>
<value name="ActivateSplitMouseOver" type="hex" data="01"/>
<value name="TabBtnDblClick" type="ulong" data="0"/>
<value name="ConsoleExceptionHandler" type="hex" data="00"/>
<value name="SaveCmdHistory" type="hex" data="00"/>
<value name="CTS.IBeam" type="hex" data="01"/>
<value name="Multi.SplitSizeVU" type="dword" data="00105d26"/>
<value name="Multi.SplitSizeVD" type="dword" data="00105d28"/>
<value name="Multi.SplitSizeHL" type="dword" data="00105d25"/>
<value name="Multi.SplitSizeHR" type="dword" data="00105d27"/>
<value name="Multi.SplitFocusU" type="dword" data="00005d26"/>
<value name="Multi.SplitFocusD" type="dword" data="00005d28"/>
<value name="Multi.SplitFocusL" type="dword" data="00005d25"/>
<value name="Multi.SplitFocusR" type="dword" data="00005d27"/>
<value name="CloseGroupPrcKey" type="dword" data="00000000"/>
<value name="SetDefaultTerminalStartupTSA" type="hex" data="01"/>
<value name="CTS.HtmlFormat" type="hex" data="00"/>
<value name="TabIcons" type="hex" data="01"/>
<value name="Multi.NewConsolePopup2" type="dword" data="00000000"/>
<value name="CloseAllConKey" type="dword" data="00000000"/>
<value name="CloseExceptConKey" type="dword" data="00000000"/>
<value name="CTS.VkCopyFmt0" type="dword" data="00001143"/>
<value name="CTS.VkCopyFmt1" type="dword" data="00101143"/>
<value name="CTS.VkCopyFmt2" type="dword" data="00000000"/>
<value name="ProcessNewConArg" type="hex" data="01"/>
<value name="HighlightMouseRow" type="hex" data="00"/>
<value name="HighlightMouseCol" type="hex" data="00"/>
<value name="HighlightMouseSwitch" type="dword" data="00005d4c"/>
<value name="TransparencyInc" type="dword" data="00000000"/>
<value name="TransparencyDec" type="dword" data="00000000"/>
<value name="Key.MaximizeWidth" type="dword" data="00000000"/>
<value name="Key.MaximizeHeight" type="dword" data="00000000"/>
<value name="DefaultTerminalAgressive" type="hex" data="01"/>
<value name="DefaultTerminalNewWindow" type="hex" data="00"/>
<value name="AnsiLog" type="hex" data="00"/>
<value name="AnsiLogPath" type="string" data="%ConEmuDir%\Logs\"/>
<value name="Multi.DupConfirm" type="hex" data="01"/>
<value name="Multi.DetachConfirm" type="hex" data="01"/>
<value name="CTS.Intelligent" type="hex" data="01"/>
<value name="CTS.IntelligentExceptions" type="string" data="far|vim.exe"/>
<value name="StatusBar.Hide.Time" type="hex" data="01"/>
<value name="TaskbarProgress" type="hex" data="01"/>
<value name="RetardInactivePanes" type="hex" data="00"/>
<value name="ProcessCmdStart" type="hex" data="01"/>
<value name="Multi.ShowSearch" type="hex" data="01"/>
<value name="Multi.CloseConfirmFlags" type="hex" data="04"/>
<value name="FontUseDpi" type="hex" data="01"/>
<value name="FontUseUnits" type="hex" data="00"/>
<value name="UseScrollLock" type="hex" data="01"/>
<value name="CTS.ForceLocale" type="dword" data="00000000"/>
<value name="StatusBar.Hide.VisL" type="hex" data="01"/>
<value name="StatusBar.Hide.KeyHooks" type="hex" data="01"/>
<value name="StatusBar.Hide.WVBack" type="hex" data="01"/>
<value name="StatusBar.Hide.WVDC" type="hex" data="01"/>
<value name="StatusBar.Hide.Zoom" type="hex" data="01"/>
<value name="StatusBar.Hide.Dpi" type="hex" data="01"/>
<value name="TabFlashChanged" type="long" data="8"/>
<value name="TabModifiedSuffix" type="string" data="[*]"/>
<key name="HotKeys" modified="2018-02-22 06:02:12" build="171109">
<value name="KeyMacroVersion" type="hex" data="02"/>
<value name="Multi.Modifier" type="dword" data="00000011"/>
<value name="Multi.ArrowsModifier" type="dword" data="0000005b"/>
<value name="MinimizeRestore" type="dword" data="000011c0"/>
<value name="MinimizeRestore2" type="dword" data="00000000"/>
<value name="GlobalRestore" type="dword" data="00000000"/>
<value name="CdExplorerPath" type="dword" data="00000000"/>
<value name="ForcedFullScreen" type="dword" data="12115b0d"/>
<value name="SwitchGuiFocus" type="dword" data="00000000"/>
<value name="SetFocusGui" type="dword" data="00000000"/>
<value name="SetFocusChild" type="dword" data="00000000"/>
<value name="ChildSystemMenu" type="dword" data="000011ff"/>
<value name="Multi.NewConsole" type="dword" data="00000000"/>
<value name="Multi.NewConsoleShift" type="dword" data="00001154"/>
<value name="Multi.CmdKey" type="dword" data="00000000"/>
<value name="Multi.NewWindow" type="dword" data="00000000"/>
<value name="Multi.NewConsolePopup" type="dword" data="00000000"/>
<value name="Multi.NewConsolePopup2" type="dword" data="00000000"/>
<value name="Multi.NewAttach" type="dword" data="00000000"/>
<value name="Multi.NewSplitV" type="dword" data="00000000"/>
<value name="Multi.NewSplitH" type="dword" data="00000000"/>
<value name="Multi.SplitMaximize" type="dword" data="00005d0d"/>
<value name="Multi.SplitSizeVU" type="dword" data="00105d26"/>
<value name="Multi.SplitSizeVD" type="dword" data="00105d28"/>
<value name="Multi.SplitSizeHL" type="dword" data="00105d25"/>
<value name="Multi.SplitSizeHR" type="dword" data="00105d27"/>
<value name="Key.TabPane1" type="dword" data="00000000"/>
<value name="Key.TabPane2" type="dword" data="00000000"/>
<value name="Multi.SplitFocusU" type="dword" data="00005d26"/>
<value name="Multi.SplitFocusD" type="dword" data="00005d28"/>
<value name="Multi.SplitFocusL" type="dword" data="00005d25"/>
<value name="Multi.SplitFocusR" type="dword" data="00005d27"/>
<value name="Multi.Next" type="dword" data="00000000"/>
<value name="Multi.NextShift" type="dword" data="00000000"/>
<value name="Multi.Recreate" type="dword" data="00000000"/>
<value name="Multi.AltCon" type="dword" data="00000000"/>
<value name="Multi.Pause" type="dword" data="80808013"/>
<value name="Multi.Scroll" type="dword" data="00000000"/>
<value name="Multi.GroupInput" type="dword" data="00005d47"/>
<value name="Multi.Detach" type="dword" data="00000000"/>
<value name="Multi.Close" type="dword" data="00001157"/>
<value name="CloseTabKey" type="dword" data="00000000"/>
<value name="CloseGroupKey" type="dword" data="00000000"/>
<value name="CloseGroupPrcKey" type="dword" data="00000000"/>
<value name="CloseAllConKey" type="dword" data="00000000"/>
<value name="CloseZombiesKey" type="dword" data="00000000"/>
<value name="CloseExceptConKey" type="dword" data="00000000"/>
<value name="KillProcessKey" type="dword" data="00000000"/>
<value name="KillAllButShellKey" type="dword" data="00105b2e"/>
<value name="DuplicateRootKey" type="dword" data="00000000"/>
<value name="CloseConEmuKey" type="dword" data="00001273"/>
<value name="Multi.Rename" type="dword" data="00000000"/>
<value name="AffinityPriorityKey" type="dword" data="00005d41"/>
<value name="Multi.MoveLeft" type="dword" data="00125b25"/>
<value name="Multi.MoveRight" type="dword" data="00125b27"/>
<value name="CTS.VkBlockStart" type="dword" data="00000000"/>
<value name="CTS.VkTextStart" type="dword" data="00000000"/>
<value name="CTS.VkCopyFmt0" type="dword" data="00001143"/>
<value name="CTS.VkCopyFmt1" type="dword" data="00101143"/>
<value name="CTS.VkCopyFmt2" type="dword" data="00000000"/>
<value name="CTS.VkCopyAll" type="dword" data="00000000"/>
<value name="HighlightMouseSwitch" type="dword" data="00005d4c"/>
<value name="HighlightMouseSwitchX" type="dword" data="00005d58"/>
<value name="Multi.ShowTabsList" type="dword" data="00000000"/>
<value name="Multi.ShowTabsList2" type="dword" data="00000000"/>
<value name="ClipboardVkAllLines" type="dword" data="0000102d"/>
<value name="ClipboardVkFirstLine" type="dword" data="00001156"/>
<value name="DeleteWordToLeft" type="dword" data="00001108"/>
<value name="FindTextKey" type="dword" data="00005d46"/>
<value name="ScreenshotKey" type="dword" data="00000000"/>
<value name="ScreenshotFullKey" type="dword" data="00000000"/>
<value name="ShowStatusBarKey" type="dword" data="00000000"/>
<value name="ShowTabBarKey" type="dword" data="00000000"/>
<value name="ShowCaptionKey" type="dword" data="00000000"/>
<value name="AlwaysOnTopKey" type="dword" data="00000000"/>
<value name="TransparencyInc" type="dword" data="00000000"/>
<value name="TransparencyDec" type="dword" data="00000000"/>
<value name="Key.TabMenu" type="dword" data="00000000"/>
<value name="Key.TabMenu2" type="dword" data="00000000"/>
<value name="Key.Maximize" type="dword" data="00000000"/>
<value name="Key.MaximizeWidth" type="dword" data="00000000"/>
<value name="Key.MaximizeHeight" type="dword" data="00000000"/>
<value name="Key.TileToLeft" type="dword" data="00000000"/>
<value name="Key.TileToRight" type="dword" data="00000000"/>
<value name="Key.JumpPrevMonitor" type="dword" data="00000000"/>
<value name="Key.JumpNextMonitor" type="dword" data="00000000"/>
<value name="Key.FullScreen" type="dword" data="0000120d"/>
<value name="Key.SysMenu" type="dword" data="00000000"/>
<value name="Key.SysMenu2" type="dword" data="00001102"/>
<value name="Key.BufUp" type="dword" data="00001126"/>
<value name="Key.BufDn" type="dword" data="00001128"/>
<value name="Key.BufPgUp" type="dword" data="00001121"/>
<value name="Key.BufPgDn" type="dword" data="00001122"/>
<value name="Key.BufHfPgUp" type="dword" data="00005d21"/>
<value name="Key.BufHfPgDn" type="dword" data="00005d22"/>
<value name="Key.BufTop" type="dword" data="00005d24"/>
<value name="Key.BufBottom" type="dword" data="00005d23"/>
<value name="Key.BufCursor" type="dword" data="00005d08"/>
<value name="FontLargerKey" type="dword" data="00000000"/>
<value name="FontSmallerKey" type="dword" data="00000000"/>
<value name="FontOriginalKey" type="dword" data="00001104"/>
<value name="PasteFileKey" type="dword" data="00101146"/>
<value name="PastePathKey" type="dword" data="00101144"/>
<value name="PasteCygwinKey" type="dword" data="00005d2d"/>
<value name="KeyMacro01" type="dword" data="00a01231"/>
<value name="KeyMacro01.Text" type="string" data="Task(1)"/>
<value name="KeyMacro02" type="dword" data="00a01232"/>
<value name="KeyMacro02.Text" type="string" data="Task(2)"/>
<value name="KeyMacro03" type="dword" data="000011d0"/>
<value name="KeyMacro03.Text" type="string" data="FontSetSize(1,2)"/>
<value name="KeyMacro04" type="dword" data="000011d1"/>
<value name="KeyMacro04.Text" type="string" data="FontSetSize(1,-2)"/>
<value name="KeyMacro05" type="dword" data="00a01233"/>
<value name="KeyMacro05.Text" type="string" data="Task(3)"/>
<value name="KeyMacro06" type="dword" data="00a01234"/>
<value name="KeyMacro06.Text" type="string" data="Task(4)"/>
<value name="KeyMacro07" type="dword" data="00a01235"/>
<value name="KeyMacro07.Text" type="string" data="Task(5)"/>
<value name="KeyMacro08" type="dword" data="00a01236"/>
<value name="KeyMacro08.Text" type="string" data="Task(6)"/>
<value name="KeyMacro09" type="dword" data="00a01237"/>
<value name="KeyMacro09.Text" type="string" data="Task(7)"/>
<value name="KeyMacro10" type="dword" data="00a01238"/>
<value name="KeyMacro10.Text" type="string" data="Task(8)"/>
<value name="KeyMacro11" type="dword" data="00a01239"/>
<value name="KeyMacro11.Text" type="string" data="Task(9)"/>
<value name="KeyMacro12" type="dword" data="00000000"/>
<value name="KeyMacro12.Text" type="string" data=""/>
<value name="KeyMacro13" type="dword" data="00000000"/>
<value name="KeyMacro13.Text" type="string" data=""/>
<value name="KeyMacro14" type="dword" data="00000000"/>
<value name="KeyMacro14.Text" type="string" data=""/>
<value name="KeyMacro15" type="dword" data="00000000"/>
<value name="KeyMacro15.Text" type="string" data=""/>
<value name="KeyMacro16" type="dword" data="00000000"/>
<value name="KeyMacro16.Text" type="string" data=""/>
<value name="KeyMacro17" type="dword" data="00000000"/>
<value name="KeyMacro17.Text" type="string" data=""/>
<value name="KeyMacro18" type="dword" data="00000000"/>
<value name="KeyMacro18.Text" type="string" data=""/>
<value name="KeyMacro19" type="dword" data="00000000"/>
<value name="KeyMacro19.Text" type="string" data=""/>
<value name="KeyMacro20" type="dword" data="00000000"/>
<value name="KeyMacro20.Text" type="string" data=""/>
<value name="KeyMacro21" type="dword" data="00000000"/>
<value name="KeyMacro21.Text" type="string" data=""/>
<value name="KeyMacro22" type="dword" data="00000000"/>
<value name="KeyMacro22.Text" type="string" data=""/>
<value name="KeyMacro23" type="dword" data="00000000"/>
<value name="KeyMacro23.Text" type="string" data=""/>
<value name="KeyMacro24" type="dword" data="00000000"/>
<value name="KeyMacro24.Text" type="string" data=""/>
<value name="KeyMacro25" type="dword" data="00000000"/>
<value name="KeyMacro25.Text" type="string" data=""/>
<value name="KeyMacro26" type="dword" data="00000000"/>
<value name="KeyMacro26.Text" type="string" data=""/>
<value name="KeyMacro27" type="dword" data="00000000"/>
<value name="KeyMacro27.Text" type="string" data=""/>
<value name="KeyMacro28" type="dword" data="00000000"/>
<value name="KeyMacro28.Text" type="string" data=""/>
<value name="KeyMacro29" type="dword" data="00000000"/>
<value name="KeyMacro29.Text" type="string" data=""/>
<value name="KeyMacro30" type="dword" data="00000000"/>
<value name="KeyMacro30.Text" type="string" data=""/>
<value name="KeyMacro31" type="dword" data="00000000"/>
<value name="KeyMacro31.Text" type="string" data=""/>
<value name="KeyMacro32" type="dword" data="00000000"/>
<value name="KeyMacro32.Text" type="string" data=""/>
<value name="CTS.VkBlock" type="hex" data="a4"/>
<value name="CTS.VkText" type="hex" data="a0"/>
<value name="CTS.VkAct" type="hex" data="00"/>
<value name="CTS.VkPrompt" type="hex" data="00"/>
<value name="FarGotoEditorVk" type="hex" data="a2"/>
<value name="DndLKey" type="hex" data="00"/>
<value name="DndRKey" type="hex" data="a2"/>
<value name="WndDragKey" type="dword" data="00121101"/>
<value name="Multi.Unfasten" type="dword" data="00000000"/>
<value name="Key.DebugProcess" type="dword" data="00105b44"/>
<value name="Key.DumpProcess" type="dword" data="00000000"/>
<value name="Key.DumpTree" type="dword" data="00000000"/>
<value name="Multi.SplitSwap" type="dword" data="00125d58"/>
<value name="Multi.SplitSwapU" type="dword" data="00125d26"/>
<value name="Multi.SplitSwapD" type="dword" data="00125d28"/>
<value name="Multi.SplitSwapL" type="dword" data="00125d25"/>
<value name="Multi.SplitSwapR" type="dword" data="00125d27"/>
<value name="Multi.GroupInputAll" type="dword" data="00105d47"/>
<value name="Multi.GroupInputKey" type="dword" data="00125d47"/>
<value name="Key.AltNumpad" type="dword" data="00000000"/>
<value name="Key.JumpActiveMonitor" type="dword" data="00000000"/>
<value name="Key.BufPrUp" type="dword" data="00121121"/>
<value name="Key.BufPrDn" type="dword" data="00121122"/>
<value name="Key.ResetTerm" type="dword" data="00000000"/>
</key>
<value name="StartCreateDelay" type="ulong" data="100"/>
<value name="DefaultTerminalDebugLog" type="hex" data="00"/>
<value name="LastMonitor" type="string" data="0,0,1440,1050"/>
<value name="Restore2ActiveMon" type="hex" data="00"/>
<value name="DownShowExOnTopMessage" type="hex" data="00"/>
<value name="EnvironmentSet" type="multi">
<line data="set PATH=%ConEmuBaseDir%\Scripts;%PATH%"/>
</value>
<value name="Update.InetTool" type="hex" data="00"/>
<value name="Update.InetToolCmd" type="string" data=""/>
<value name="SuppressBells" type="hex" data="01"/>
<value name="ClipboardAllLinesPosix" type="hex" data="00"/>
<value name="ClipboardFirstLinePosix" type="hex" data="00"/>
<value name="VividColors" type="hex" data="01"/>
<value name="AnsiExecution" type="hex" data="01"/>
<value name="AnsiAllowedCommands" type="multi">
<line data="cmd -cur_console:R /cGitShowBranch.cmd"/>
</value>
<value name="KillSshAgent" type="hex" data="01"/>
<value name="ProcessCtrlZ" type="hex" data="00"/>
<value name="JumpListAutoUpdate" type="hex" data="01"/>
<value name="CompressLongStrings" type="hex" data="01"/>
<value name="DynamicBufferHeight" type="hex" data="01"/>
<value name="CTS.ResetOnRelease" type="hex" data="00"/>
<value name="CTS.EraseBeforeReset" type="hex" data="01"/>
<value name="Anti-aliasing2" type="hex" data="00"/>
<value name="UseAltGrayPlus" type="hex" data="01"/>
<value name="MouseDragWindow" type="hex" data="01"/>
<value name="DebugLog" type="hex" data="00"/>
<value name="StatusBar.Hide.TMode" type="hex" data="01"/>
<value name="StatusBar.Hide.RMode" type="hex" data="01"/>
<value name="StatusBar.Hide.CellI" type="hex" data="01"/>
</key>
</key>
</key>

2
vendor/Readme.md vendored
View File

@ -1,3 +1,3 @@
## Vendor
Softwere from third parties + init sctipt
Third parties software & init script.

149
vendor/bin/alias.cmd vendored Normal file
View File

@ -0,0 +1,149 @@
@echo off
if "%ALIASES%" == "" (
set ALIASES="%CMDER_ROOT%\config\user_aliases.cmd"
)
setlocal enabledelayedexpansion
if "%~1" == "" echo Use /? for help & echo. & goto :p_show
:: check command usage
rem #region parseargument
goto parseargument
:do_shift
shift
:parseargument
set currentarg=%~1
if /i "%currentarg%" equ "/f" (
set ALIASES=%~2
set _f=%~2
shift
goto :do_shift
) else if /i "%currentarg%" == "/reload" (
goto :p_reload
) else if "%currentarg%" equ "/H" (
goto :p_help
) else if "%currentarg%" equ "/h" (
goto :p_help
) else if "%currentarg%" equ "/?" (
goto :p_help
) else if /i "%currentarg%" equ "/d" (
if "%~2" neq "" (
if "%~3" equ "" (
:: /d flag for delete existing alias
call :p_del %~2
shift
goto :eof
)
)
) else if "%currentarg%" neq "" (
if "%~2" equ "" (
:: Show the specified alias
doskey /macros | %WINDIR%\System32\findstr /b %currentarg%= && exit /b
echo insufficient parameters.
goto :p_help
) else (
:: handle quotes within command definition, e.g. quoted long file names
set _x=%*
)
)
rem #endregion parseargument
if "%ALIASES%" neq "%CMDER_ROOT%\config\user_aliases.cmd" (
set _x=!_x:/f "%ALIASES%" =!
if not exist "%ALIASES%" (
echo ;= @echo off>"%ALIASES%"
echo ;= rem Call DOSKEY and use this file as the macrofile>>"%ALIASES%"
echo ;= %%SystemRoot%%\system32\doskey /listsize=1000 /macrofile=%%0%%>>"%ALIASES%"
echo ;= rem In batch mode, jump to the end of the file>>"%ALIASES%"
echo ;= goto:eof>>"%ALIASES%"
echo ;= Add aliases below here>>"%ALIASES%"
)
)
:: validate alias
for /f "delims== tokens=1,* usebackq" %%G in (`echo "!_x!"`) do (
set alias_name=%%G
set alias_value=%%H
)
:: leading quotes added while validating
set alias_name=!alias_name:~1!
:: trailing quotes added while validating
set alias_value=!alias_value:~0,-1!
::remove spaces
set _temp=%alias_name: =%
if not ["%_temp%"] == ["%alias_name%"] (
echo Your alias name can not contain a space
endlocal
exit /b
)
:: replace already defined alias
%WINDIR%\System32\findstr /b /l /v /i "%alias_name%=" "%ALIASES%" >> "%ALIASES%.tmp"
echo %alias_name%=%alias_value% >> "%ALIASES%.tmp" && type "%ALIASES%.tmp" > "%ALIASES%" & @del /f /q "%ALIASES%.tmp"
doskey /macrofile="%ALIASES%"
endlocal
exit /b
:p_del
set del_alias=%~1
%WINDIR%\System32\findstr /b /l /v /i "%del_alias%=" "%ALIASES%" >> "%ALIASES%.tmp"
type "%ALIASES%".tmp > "%ALIASES%" & @del /f /q "%ALIASES%.tmp"
doskey %del_alias%=
doskey /macrofile="%ALIASES%"
goto:eof
:p_reload
doskey /macrofile="%ALIASES%"
echo Aliases reloaded
exit /b
:p_show
doskey /macros|%WINDIR%\System32\findstr /v /r "^;=" | sort
exit /b
:p_help
echo.Usage:
echo.
echo. alias [options] [alias=alias command]
echo.
echo.Options:
echo.
echo. Note: Options MUST precede the alias definition.
echo.
echo. /d [alias] Delete an [alias].
echo. /f [macrofile] Path to the [macrofile] you want to store the new alias in.
echo. Default: %cmder_root%\config\user_aliases.cmd
echo. /reload Reload the aliases file. Can be used with /f argument.
echo. Default: %cmder_root%\config\user_aliases.cmd
echo.
echo. If alias is called with no parameters, it will display the list of existing
echo. aliases.
echo.
echo. In the alias command, you can use the following notations:
echo.
echo. ^^^^^^^^%% - %% signs in env vars must be escaped if preserving the variable
echo. in he alias is desired. Variables in aliases surrounded by double
echo. quotes only require '^^%%' vs '^^^^^^^^%%'
echo. $* - allows the alias to assume all the parameters of the supplied
echo. command.
echo. $1-$9 - Allows you to separate parameter by number, much like %%1 in
echo. batch.
echo. $T - Command separator, allowing you to string several commands
echo. together into one alias.
echo.
echo. For more information, read DOSKEY /?
exit /b

133
vendor/bin/cexec.cmd vendored Normal file
View File

@ -0,0 +1,133 @@
@echo off
if "%~1" equ "" goto :wrongSyntax
if not defined CMDER_USER_FLAGS (
:: in case nothing was passed to %CMDER_USER_FLAGS%
set "CMDER_USER_FLAGS= "
)
set "feNot=false"
goto :parseArgument
:doShift
shift
:parseArgument
set "currenArgu=%~1"
if /i "%currenArgu%" equ "/setPath" (
set ccall=call "%~dp0cexec.cmd"
set cexec="%~dp0cexec.cmd"
) else if /i "%currenArgu%" == "/?" (
goto :help
) else if /i "%currenArgu%" equ "/help" (
goto :help
) else if /i "%currenArgu%" equ "/h" (
goto :help
) else if /i "%currenArgu%" equ "NOT" (
set "feNot=true"
goto :doShift
) else (
if "%~1" equ "" goto :wrongSyntax
if "%~2" equ "" goto :wrongSyntax
set "feFlagName=%~1"
set "feCommand=%~2"
if not "%~3" equ "" (
set "feParam=%~3"
)
goto :detect
)
:detect
:: to avoid erroneous deteciton like "/do" "/doNOT", which both have a "/do"
:: we added a space after the flag name, like "/do ", which won't match "/doN"
set "feFlagName=%feFlagName% "
:: echo.
:: echo %CMDER_USER_FLAGS%
:: echo %feNOT%
:: echo %feFlagName%
:: echo %feCommand%
:: echo %feParam%
:: echo.
echo %CMDER_USER_FLAGS% | %WINDIR%\System32\find /i "%feFlagName%">nul
if "%ERRORLEVEL%" == "0" (
if "%feNOT%" == "false" (
endlocal && call %feCommand% %feParam%
exit /b 0
)
) else (
if "%feNOT%" == "true" (
endlocal && call %feCommand% %feParam%
exit /b 0
)
)
endlocal
exit /b 1
:wrongSyntax
echo The syntax of the command is incorrect.
echo.
echo use /? for help
echo.
endlocal
exit /b
:help
echo.
echo CExec - Conditional Exec
echo.
echo Handles with custom arguments for cmder's init.bat.
echo written by xiazeyu, inspired DRSDavidSoft.
echo.
echo Usage:
echo.
echo cexec /setPath [NOT] flagName command/program [parameters]
echo.
echo /setPath Generate a global variables %%ccall%% and %%cexec%% for
echo quicker use. Following arguments will be ignored.
echo.
echo NOT Specifies that cexec should carry out
echo the command only if the flag is missing.
echo.
echo /[flagName] Specifies which flag name is to detect. It's recommended
echo to use a pair of double quotation marks to wrap
echo your flag name to avoid exceed expectation.
echo.
echo command/program Specifies the command to carry out if the
echo argument name is detected. It's recommended to
echo use a pair of double quotation marks to
echo wrap your command to avoid exceed expectation.
echo.
echo parameters These are the parameters passed to the command/program.
echo It's recommended to use a pair of double quotation marks
echo to wrap your flag name to avoid exceed expectation.
echo.
echo Examples:
echo.
echo These examples are expected to be written in %cmder_root%/config/user-profile.cmd
echo CExec evaluates the environment variable "CMDER_USER_FLAGS" and conditionally
echo caries out actions based on flags that are passed.
echo.
echo Case 1:
echo.
echo The following command in `user_profile.cmd` would execute "notepad.exe" and continue running the `user_profile.cmd`
echo.
echo "%ccall%" "/startNotepad" "start" "notepad.exe"
echo.
echo If you pass parameter to init.bat like:
echo.
echo init.bat /startNotepad
echo.
echo Case 2:
echo.
echo The following command in `user_profile.cmd` would execute "notepad.exe" and stop running the `user_profile.cmd`
echo.
echo "%cexec%" NOT "/dontStartNotepad" "start" "notepad.exe"
echo.
echo UNLESS you pass parameter to init.bat like:
echo.
echo init.bat /dontStartNotepad
echo.
endlocal
exit /b

61
vendor/bin/cmder_diag.cmd vendored Normal file
View File

@ -0,0 +1,61 @@
@echo off
(echo.
echo ------------------------------------
echo set
echo ------------------------------------
set
echo.
echo ------------------------------------
echo where git
echo ------------------------------------
where git
echo.
echo ------------------------------------
echo where clink
echo ------------------------------------
where clink
echo.
echo ------------------------------------
echo systeminfo
echo ------------------------------------
systeminfo
echo ------------------------------------
echo dir "%cmder_root%"
echo ------------------------------------
dir "%cmder_root%"
echo.
echo ------------------------------------
echo dir "%cmder_root%\vendor"
echo ------------------------------------
dir "%cmder_root%\vendor"
echo.
echo ------------------------------------
echo dir /s "%cmder_root%\bin"
echo ------------------------------------
dir /s "%cmder_root%\bin"
echo.
echo ------------------------------------
echo dir /s "%cmder_root%\config"
echo ------------------------------------
dir /s "%cmder_root%\config"
echo.
echo ------------------------------------
echo Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team!
echo ------------------------------------
) > "%temp%\cmder_diag_cmd.log"
type "%temp%\cmder_diag_cmd.log"
echo.
echo Above output was saved in "%temp%\cmder_diag_cmd.log"

64
vendor/bin/cmder_diag.ps1 vendored Normal file
View File

@ -0,0 +1,64 @@
if (test-path $env:temp\cmder_diag_ps.log) {
remove-item $env:temp\cmder_diag_ps.log
}
$cmder_diag = {
""
"------------------------------------"
"get-childitem env:"
"------------------------------------"
get-childitem env: | ft -autosize -wrap 2>&1
""
"------------------------------------"
"get-command git -all -ErrorAction SilentlyContinue"
"------------------------------------"
get-command git -all -ErrorAction SilentlyContinue
""
"------------------------------------"
"get-command clink -all -ErrorAction SilentlyContinue"
"------------------------------------"
get-command clink -all -ErrorAction SilentlyContinue
""
"------------------------------------"
"systeminfo"
"------------------------------------"
systeminfo 2>&1
"------------------------------------"
"get-childitem '$env:CMDER_ROOT'"
"------------------------------------"
get-childitem "$env:CMDER_ROOT" |ft LastWriteTime,mode,length,FullName
""
"------------------------------------"
"get-childitem '$env:CMDER_ROOT/vendor'"
"------------------------------------"
get-childitem "$env:CMDER_ROOT/vendor" |ft LastWriteTime,mode,length,FullName
""
"------------------------------------"
"get-childitem -s '$env:CMDER_ROOT/bin'"
"------------------------------------"
get-childitem -s "$env:CMDER_ROOT/bin" |ft LastWriteTime,mode,length,FullName
""
"------------------------------------"
"get-childitem -s '$env:CMDER_ROOT/config'"
"------------------------------------"
get-childitem -s "$env:CMDER_ROOT/config" |ft LastWriteTime,mode,length,FullName
""
"------------------------------------"
"Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team!"
"------------------------------------"
}
& $cmder_diag | out-file -filePath $env:temp\cmder_diag_ps.log
get-content "$env:temp\cmder_diag_ps.log"
write-host ""
write-host Above output was saved in "$env:temp\cmder_diag_ps.log"

61
vendor/bin/cmder_diag.sh vendored Normal file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env bash
[[ -f "$TEMP/cmder_diag_sh.log" ]] && rm -f "$TEMP/cmder_diag_sh.log"
(echo ''
echo ------------------------------------
echo env
echo ------------------------------------
env 2>&1
echo ''
echo ------------------------------------
echo which git
echo ------------------------------------
which git 2>&1
echo ''
echo ------------------------------------
echo which clink
echo ------------------------------------
which clink 2>&1
echo ''
echo ------------------------------------
echo systeminfo
echo ------------------------------------
systeminfo 2>&1
echo ------------------------------------
echo ls -la "$CMDER_ROOT"
echo ------------------------------------
ls -la "$CMDER_ROOT" 2>&1
echo ''
echo ------------------------------------
echo ls -la "$CMDER_ROOT/vendor"
echo ------------------------------------
ls -la "$CMDER_ROOT/vendor" 2>&1
echo ''
echo ------------------------------------
echo ls -la /s "$CMDER_ROOT/bin"
echo ------------------------------------
ls -laR /s "$CMDER_ROOT/bin" 2>&1
echo ''
echo ------------------------------------
echo ls -la /s "$CMDER_ROOT/config"
echo ------------------------------------
ls -laR /s "$CMDER_ROOT/config" 2>&1
echo ''
echo ------------------------------------
echo Make sure you sanitize this output of private data prior to posting it online for review by the CMDER Team!
echo ------------------------------------
) > "$TEMP/cmder_diag_sh.log"
cat "$TEMP/cmder_diag_sh.log"
echo ''
echo Above output was saved in "$TEMP/cmder_diag_sh.log"

13
vendor/bin/cmder_shell.cmd vendored Normal file
View File

@ -0,0 +1,13 @@
@echo off
set CMDER_ROOT=%~dp0..\..\
if "%cmder_init%" == "1" (
"%CMDER_ROOT%\vendor\clink\clink.bat" inject -q --profile "%CMDER_ROOT%\config" --scripts "%CMDER_ROOT%\vendor"
) else (
set cmder_init=1
)
pushd "%CMDER_ROOT%"
call "%CMDER_ROOT%\vendor\init.bat" /f %*
popd

8
vendor/bin/excd.cmd vendored Normal file
View File

@ -0,0 +1,8 @@
@echo off
set excd=%*
set excd=%excd:"=%
set excd_param=/d
if /i "%excd:~0,2%"=="/d" set "excd=%excd:~2%"
if "%excd:~0,1%"=="~" (set excd=%userprofile%\%excd:~1%)
if "%excd:~0,1%"=="/" (set excd_param=)
cd %excd_param% %excd%

22
vendor/bin/timer.cmd vendored Normal file
View File

@ -0,0 +1,22 @@
@echo off
set start=%~1
set end=%~2
set options="tokens=1-4 delims=:.,"
for /f %options% %%a in ("%start%") do set start_h=%%a&set /a start_m=100%%b %% 100&set /a start_s=100%%c %% 100&set /a start_ms=100%%d %% 100
for /f %options% %%a in ("%end%") do set end_h=%%a&set /a end_m=100%%b %% 100&set /a end_s=100%%c %% 100&set /a end_ms=100%%d %% 100
set /a hours=%end_h%-%start_h%
set /a mins=%end_m%-%start_m%
set /a secs=%end_s%-%start_s%
set /a ms=%end_ms%-%start_ms%
if %ms% lss 0 set /a secs = %secs% - 1 & set /a ms = 100%ms%
if %secs% lss 0 set /a mins = %mins% - 1 & set /a secs = 60%secs%
if %mins% lss 0 set /a hours = %hours% - 1 & set /a mins = 60%mins%
if %hours% lss 0 set /a hours = 24%hours%
if 1%ms% lss 100 set ms=0%ms%
:: Mission accomplished
set /a totalsecs = %hours%*3600 + %mins%*60 + %secs%
echo Elapsed Time: %hours%:%mins%:%secs%.%ms% (%totalsecs%.%ms%s total)

31
vendor/bin/vscode_init.cmd vendored Normal file
View File

@ -0,0 +1,31 @@
@echo off
rem Find root dir
if not defined CMDER_ROOT (
for /f "delims=" %%i in ("%~dp0\..\..") do (
set "cmder_root=%%~fi"
)
)
if defined cmder_user_bin (
set CMDER_VSCODE_INIT_ARGS=%cmder_user_bin%\vscode_init_args.cmd
) else (
set CMDER_VSCODE_INIT_ARGS=%CMDER_ROOT%\bin\vscode_init_args.cmd
)
if not exist "%CMDER_VSCODE_INIT_ARGS%" (
echo Creating initial "%CMDER_VSCODE_INIT_ARGS%"...
copy "%CMDER_ROOT%\vendor\bin\vscode_init_args.cmd.default" "%CMDER_VSCODE_INIT_ARGS%"
) else (
call "%CMDER_VSCODE_INIT_ARGS%"
)
IF [%1] == [] (
REM -- manually opened console (Ctrl + Shift + `) --
CALL "%~dp0..\init.bat"
) ELSE (
REM -- task --
CALL cmd %*
exit
)

58
vendor/bin/vscode_init_args.cmd.default vendored Normal file
View File

@ -0,0 +1,58 @@
@echo off
rem Below are the default Cmder session settings:
rem
rem See "%CMDER_ROOT%\README.md" for details on these settings.
rem
rem `Cmder.exe` Arguments:
rem ----------------------
rem
rem `/c [cmder_user_cfg_root]
rem set cmder_user_bin=[cmder_user_cfg_root]\bin
rem set cmder_user_config=[cmder_user_cfg_root]\config
rem
rem `init.bat` Arguments
rem --------------------
rem
rem `/d`
rem debug_output=0
rem
rem `/v`
rem verbose_output=0
rem
rem `/f`
rem fast_init=0
rem
rem `/nix_tools`
rem nix_tools=1
rem
rem `/t`
rem time_init=0
rem
rem `/max_depth`
rem max_depth=1
rem
rem `/user_aliases`
rem user_aliases=
rem
rem `/git_install_root`
rem GIT_INSTALL_ROOT=
rem
rem `/home`
rem HOME=
rem
rem `/svn_ssh`
rem SVN_SSH=
echo Applying Cmder VSCode settings from '%~0'...
if defined CMDER_CONFIGURED (
rem Set Cmder settings here for when VSCode is launched inside Cmder.
set verbose_output=1
) else (
rem Set Cmder settings here for when VSCode is launched from outside Cmder.
set verbose_output=1
)
rem Set all required Cmder VSCode terminal environment settings above this line.
echo Applying Cmder VSCode settings is complete!

703
vendor/clink.lua vendored Normal file
View File

@ -0,0 +1,703 @@
-- default script for clink, called by init.bat when injecting clink
-- !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
-- !!! Use "%CMDER_ROOT%\config\<whatever>.lua" to add your lua startup scripts
-- luacheck: globals CMDER_SESSION
-- luacheck: globals uah_color cwd_color lamb_color clean_color dirty_color conflict_color unknown_color
-- luacheck: globals prompt_homeSymbol prompt_lambSymbol prompt_type prompt_useHomeSymbol prompt_useUserAtHost
-- luacheck: globals prompt_singleLine prompt_includeVersionControl
-- luacheck: globals prompt_overrideGitStatusOptIn prompt_overrideSvnStatusOptIn
-- luacheck: globals clink io.popenyield os.isdir settings.get
-- At first, load the original clink.lua file
-- this is needed as we set the script path to this dir and therefore the original
-- clink.lua is not loaded.
local clink_lua_file = clink.get_env('CMDER_ROOT')..'\\vendor\\clink\\clink.lua'
dofile(clink_lua_file)
-- now add our own things...
local function get_uah_color()
return uah_color or "\x1b[1;33;49m" -- Green = uah = [user]@[hostname]
end
local function get_cwd_color()
return cwd_color or "\x1b[1;32;49m" -- Yellow cwd = Current Working Directory
end
local function get_lamb_color()
return lamb_color or "\x1b[1;30;49m" -- Light Grey = Lambda Color
end
local function get_clean_color()
return clean_color or "\x1b[37;1m" -- White, Bold
end
local function get_dirty_color()
return dirty_color or "\x1b[33;3m" -- Yellow, Italic
end
local function get_conflict_color()
return conflict_color or "\x1b[31;1m" -- Red, Bold
end
local function get_unknown_color()
return unknown_color or "\x1b[37;1m" -- White, Bold
end
---
-- Escapes special characters in a string.gsub `find` parameter, so that it
-- can be matched as a literal plain text string, i.e. disable Lua pattern
-- matching. See "Patterns" (https://www.lua.org/manual/5.2/manual.html#6.4.1).
-- @param {string} text Text to escape
-- @returns {string} Escaped text
---
local function escape_gsub_find_arg(text)
return text and text:gsub("([-+*?.%%()%[%]$^])", "%%%1") or ""
end
---
-- Escapes special characters in a string.gsub `replace` parameter, so that it
-- can be replaced as a literal plain text string, i.e. disable Lua pattern
-- matching. See "Patterns" (https://www.lua.org/manual/5.2/manual.html#6.4.1).
-- @param {string} text Text to escape
-- @returns {string} Escaped text
---
local function escape_gsub_replace_arg(text)
return text and text:gsub("%%", "%%%%") or ""
end
---
-- Perform string.sub, but disable Lua pattern matching and just treat both
-- the `find` and `replace` parameters as a literal plain text replacement.
-- @param {string} str Text in which to perform find and replace
-- @param {string} find Text to find (plain text; not a Lua pattern)
-- @param {string} replace Replacement text (plain text; not a Lua pattern)
-- @returns {string} Copy of the input `str` with `find` replaced by `replace`
---
local function gsub_plain(str, find, replace)
return string.gsub(str, escape_gsub_find_arg(find), escape_gsub_replace_arg(replace))
end
-- Extracts only the folder name from the input Path
-- Ex: Input C:\Windows\System32 returns System32
---
local function get_folder_name(path)
local reversePath = string.reverse(path)
local slashIndex = string.find(reversePath, "\\")
return string.sub(path, string.len(path) - slashIndex + 2)
end
---
-- Forward/backward compatibility for Clink asynchronous prompt filtering.
-- With Clink v1.2.10 and higher this lets git status run in the background and
-- refresh the prompt when it finishes, to eliminate waits in large git repos.
---
local io_popenyield
local clink_promptcoroutine
local cached_info = {}
if clink.promptcoroutine and io.popenyield then
io_popenyield = io.popenyield
clink_promptcoroutine = clink.promptcoroutine
else
io_popenyield = io.popen
clink_promptcoroutine = function (func)
return func(false)
end
end
---
-- Global variable so other Lua scripts can detect whether they're in a Cmder
-- shell session.
---
CMDER_SESSION = true
---
-- Setting the prompt in clink means that commands which rewrite the prompt do
-- not destroy our own prompt. It also means that started cmds (or batch files
-- which echo) don't get the ugly '{lamb}' shown.
---
local function set_prompt_filter()
-- get_cwd() is differently encoded than the clink.prompt.value, so everything other than
-- pure ASCII will get garbled. So try to parse the current directory from the original prompt
-- and only if that doesn't work, use get_cwd() directly.
-- The matching relies on the default prompt which ends in X:\PATH\PATH>
-- (no network path possible here!)
local old_prompt = clink.prompt.value
local cwd = old_prompt:match('.*(.:[^>]*)>')
if cwd == nil then cwd = clink.get_cwd() end
-- environment systems like pythons virtualenv change the PROMPT and usually
-- set some variable. But the variables are differently named and we would never
-- get them all, so try to parse the env name out of the PROMPT.
-- envs are usually put in round or square parentheses and before the old prompt
local env = old_prompt:match('.*%(([^%)]+)%).+:')
-- also check for square brackets
if env == nil then env = old_prompt:match('.*%[([^%]]+)%].+:') end
-- Much of the below was 'borrowed' from https://github.com/AmrEldib/cmder-powerline-prompt
-- Symbol displayed for the home dir in the prompt.
if not prompt_homeSymbol then
prompt_homeSymbol = "~"
end
-- Symbol displayed in the new line below the prompt.
if not prompt_lambSymbol then
prompt_lambSymbol = "λ"
end
if not prompt_type then
prompt_type = "full"
end
if prompt_useHomeSymbol == nil then
prompt_useHomeSymbol = false
end
if prompt_useUserAtHost == nil then
prompt_useUserAtHost = false
end
if prompt_singleLine == nil then
prompt_singleLine = false
end
if prompt_includeVersionControl == nil then
prompt_includeVersionControl = true
end
if prompt_type == 'folder' then
cwd = get_folder_name(cwd)
end
if prompt_useHomeSymbol and string.find(cwd, clink.get_env("HOME")) then
cwd = gsub_plain(cwd, clink.get_env("HOME"), prompt_homeSymbol)
end
local uah = ''
if prompt_useUserAtHost then
uah = clink.get_env("USERNAME") .. "@" .. clink.get_env("COMPUTERNAME") .. ' '
end
local cr = "\n"
if prompt_singleLine then
cr = ' '
end
cr = "\x1b[0m" .. cr
if env ~= nil then env = "("..env..") " else env = "" end
if uah ~= '' then uah = get_uah_color() .. uah end
if cwd ~= '' then cwd = get_cwd_color() .. cwd end
local version_control = prompt_includeVersionControl and "{git}{hg}{svn}" or ""
local prompt = "{uah}{cwd}" .. version_control .. cr .. get_lamb_color() .. "{env}{lamb}\x1b[0m "
prompt = gsub_plain(prompt, "{uah}", uah)
prompt = gsub_plain(prompt, "{cwd}", cwd)
prompt = gsub_plain(prompt, "{env}", env)
clink.prompt.value = gsub_plain(prompt, "{lamb}", prompt_lambSymbol)
end
local function percent_prompt_filter()
clink.prompt.value = gsub_plain(clink.prompt.value, "{percent}", "%")
end
---
-- Resolves closest directory location for specified directory.
-- Navigates subsequently up one level and tries to find specified directory
-- @param {string} path Path to directory will be checked. If not provided
-- current directory will be used
-- @param {string} dirname Directory name to search for
-- @return {string} Path to specified directory or nil if such dir not found
local function get_dir_contains(path, dirname)
-- return parent path for specified entry (either file or directory)
local function pathname(path) -- luacheck: ignore 432
local prefix = ""
local i = path:find("[\\/:][^\\/:]*$")
if i then
prefix = path:sub(1, i-1)
end
return prefix
end
-- Navigates up one level
local function up_one_level(path) -- luacheck: ignore 432
if path == nil then path = '.' end
if path == '.' then path = clink.get_cwd() end
return pathname(path)
end
-- Checks if provided directory contains git directory
local function has_specified_dir(path, specified_dir) -- luacheck: ignore 432
if path == nil then path = '.' end
local found_dirs = clink.find_dirs(path..'/'..specified_dir)
if #found_dirs > 0 then return true end
return false
end
-- Set default path to current directory
if path == nil then path = '.' end
-- If we're already have .git directory here, then return current path
if has_specified_dir(path, dirname) then
return path..'/'..dirname
else
-- Otherwise go up one level and make a recursive call
local parent_path = up_one_level(path)
if parent_path == path then
return nil
else
return get_dir_contains(parent_path, dirname)
end
end
end
-- adapted from from clink-completions' git.lua
local function get_git_dir(path)
-- return parent path for specified entry (either file or directory)
local function pathname(path) -- luacheck: ignore 432
local prefix = ""
local i = path:find("[\\/:][^\\/:]*$")
if i then
prefix = path:sub(1, i-1)
end
return prefix
end
-- Checks if provided directory contains git directory
local function has_git_dir(dir)
return clink.is_dir(dir..'/.git') and dir..'/.git'
end
local function has_git_file(dir)
local gitfile = io.open(dir..'/.git')
if not gitfile then return false end
local line = gitfile:read() or ''
local git_dir = line:match('gitdir: (.*)')
gitfile:close()
if os.isdir then -- only available in Clink v1.0.0 and higher
if git_dir and os.isdir(git_dir) then
return git_dir
end
end
return git_dir and dir..'/'..git_dir
end
-- Set default path to current directory
if not path or path == '.' then path = clink.get_cwd() end
-- Calculate parent path now otherwise we won't be
-- able to do that inside of logical operator
local parent_path = pathname(path)
return has_git_dir(path)
or has_git_file(path)
-- Otherwise go up one level and make a recursive call
or (parent_path ~= path and get_git_dir(parent_path) or nil)
end
local function get_hg_dir(path)
return get_dir_contains(path, '.hg')
end
local function get_svn_dir(path)
return get_dir_contains(path, '.svn')
end
---
-- Find out current branch
-- @return {nil|git branch name}
---
local function get_git_branch(git_dir)
git_dir = git_dir or get_git_dir()
-- If git directory not found then we're probably outside of repo
-- or something went wrong. The same is when head_file is nil
local head_file = git_dir and io.open(git_dir..'/HEAD')
if not head_file then return end
local HEAD = head_file:read()
head_file:close()
-- If HEAD is missing, something is wrong.
if not HEAD then return end
-- if HEAD matches branch expression, then we're on named branch
-- otherwise it is a detached commit
local branch_name = HEAD:match('ref: refs/heads/(.+)')
return branch_name or 'HEAD detached at '..HEAD:sub(1, 7)
end
---
-- Find out current branch information
-- @return {false|mercurial branch information}
---
local function get_hg_branch()
-- Return the branch information. The default is to get just the
-- branch name, but you could e.g. use the "hg-prompt" extension to
-- get more information, such as any applied mq patches. Here's an
-- example of that:
-- local cmd = "hg prompt \"{branch}{status}{|{patch}}{update}\""
local cmd = "hg branch 2>nul"
local file = io.popen(cmd)
if not file then
return false
end
for line in file:lines() do
local m = line:match("(.+)$")
if m then
file:close()
return m
end
end
file:close()
return false
end
---
-- Find out current branch
-- @return {false|svn branch name}
---
local function get_svn_branch()
local file = io_popenyield("svn info 2>nul")
if not file then
return false
end
for line in file:lines() do
local m = line:match("^Relative URL:")
if m then
file:close()
return line:sub(line:find("/")+1,line:len())
end
end
file:close()
return false
end
---
-- Get the status and conflict status of working dir
-- @return {bool <status>, bool <is_conflict>}
---
local function get_git_status()
local file = io_popenyield("git --no-optional-locks status --porcelain 2>nul")
if not file then
return {}
end
local conflict_found = false
local is_status = true
for line in file:lines() do
local code = line:sub(1, 2)
-- print (string.format("code: %s, line: %s", code, line))
if code == "DD" or code == "AU" or code == "UD" or code == "UA" or code == "DU" or code == "AA" or code == "UU" then -- luacheck: no max line length
is_status = false
conflict_found = true
break
-- unversioned files are ignored, comment out 'code ~= "!!"' to unignore them
elseif code ~= "!!" and code ~= "??" then
is_status = false
end
end
file:close()
return { status = is_status, conflict = conflict_found }
end
---
-- Get the status of working dir
-- @return {bool}
---
local function get_svn_status()
local file = io_popenyield("svn status -q")
if not file then
return { error = true }
end
for line in file:lines() do -- luacheck: ignore 512, no unused
file:close()
return { clean = false }
end
file:close()
return { clean = true }
end
---
-- Get the status of working dir
-- @return {bool}
---
local last_git_status_time = nil
local last_git_status_setting = true
local function get_git_status_setting()
local time = os.clock()
local last_time = last_git_status_time
last_git_status_time = time
if last_time and time >= 0 and time - last_time < 10 then
return last_git_status_setting
end
-- When async prompt filtering is available, check the
-- prompt_overrideGitStatusOptIn config setting for whether to ignore the
-- cmder.status and cmder.cmdstatus git config opt-in settings.
if clink.promptcoroutine and io.popenyield and settings.get("prompt.async") then
if prompt_overrideGitStatusOptIn then
last_git_status_setting = true
return true
end
end
local gitStatusConfig = io_popenyield("git --no-pager config cmder.status 2>nul")
if gitStatusConfig then
for line in gitStatusConfig:lines() do
if string.match(line, 'false') then
gitStatusConfig:close()
last_git_status_setting = false
return false
end
end
gitStatusConfig:close()
end
local gitCmdStatusConfig = io_popenyield("git --no-pager config cmder.cmdstatus 2>nul")
if gitCmdStatusConfig then
for line in gitCmdStatusConfig:lines() do
if string.match(line, 'false') then
gitCmdStatusConfig:close()
last_git_status_setting = false
return false
end
end
gitCmdStatusConfig:close()
end
last_git_status_setting = true
return true
end
---
-- Use a prompt coroutine to get git status in the background.
-- Cache the info so we can reuse it next time to reduce flicker.
---
local function get_git_info_table()
local info = clink_promptcoroutine(function ()
-- Use git status if allowed.
local cmderGitStatusOptIn = get_git_status_setting()
return cmderGitStatusOptIn and get_git_status() or {}
end)
if not info then
info = cached_info.git_info or {}
else
cached_info.git_info = info
end
return info
end
local function git_prompt_filter()
-- Don't do any git processing if the prompt doesn't want to show git info.
if not clink.prompt.value:find("{git}") then
return false
end
-- Colors for git status
local colors = {
clean = get_clean_color(),
dirty = get_dirty_color(),
conflict = get_conflict_color(),
nostatus = get_unknown_color()
}
local git_dir = get_git_dir()
local color
if git_dir then
local branch = get_git_branch(git_dir)
if branch then
-- If in a different repo or branch than last time, discard cached info.
if cached_info.git_dir ~= git_dir or cached_info.git_branch ~= branch then
cached_info.git_info = nil
cached_info.git_dir = git_dir
cached_info.git_branch = branch
end
-- If we're inside of git repo then try to detect current branch
-- Has branch => therefore it is a git folder, now figure out status
local gitInfo = get_git_info_table()
local gitStatus = gitInfo.status
local gitConflict = gitInfo.conflict
if gitStatus == nil then
color = colors.nostatus
elseif gitStatus then
color = colors.clean
else
color = colors.dirty
end
if gitConflict then
color = colors.conflict
end
clink.prompt.value = gsub_plain(clink.prompt.value, "{git}", " "..color.."("..branch..")")
return false
end
end
-- No git present or not in git file
clink.prompt.value = gsub_plain(clink.prompt.value, "{git}", "")
return false
end
local function hg_prompt_filter()
-- Don't do any hg processing if the prompt doesn't want to show hg info.
if not clink.prompt.value:find("{hg}") then
return false
end
local hg_dir = get_hg_dir()
if hg_dir then
-- Colors for mercurial status
local colors = {
clean = get_clean_color(),
dirty = get_dirty_color(),
nostatus = get_unknown_color()
}
local output = get_hg_branch()
-- strip the trailing newline from the branch name
local n = #output
while n > 0 and output:find("^%s", n) do n = n - 1 end
local branch = output:sub(1, n)
if branch ~= nil and
string.sub(branch,1,7) ~= "abort: " and -- not an HG working copy
(not string.find(branch, "is not recognized")) then -- 'hg' not in path
local color = colors.clean
local pipe = io.popen("hg status -amrd 2>&1")
if pipe then
output = pipe:read('*all')
pipe:close()
if output ~= nil and output ~= "" then color = colors.dirty end
end
local result = color .. "(" .. branch .. ")"
clink.prompt.value = gsub_plain(clink.prompt.value, "{hg}", " "..result)
return false
end
end
-- No hg present or not in hg repo
clink.prompt.value = gsub_plain(clink.prompt.value, "{hg}", "")
end
local function svn_prompt_filter()
-- Don't do any svn processing if the prompt doesn't want to show svn info.
if not clink.prompt.value:find("{svn}") then
return false
end
-- Colors for svn status
local colors = {
clean = get_clean_color(),
dirty = get_dirty_color(),
nostatus = get_unknown_color()
}
local svn_dir = get_svn_dir()
if svn_dir then
-- if we're inside of svn repo then try to detect current branch
local branch = get_svn_branch()
if branch then
-- If in a different repo or branch than last time, discard cached info
if cached_info.svn_dir ~= svn_dir or cached_info.svn_branch ~= branch then
cached_info.svn_info = nil
cached_info.svn_dir = svn_dir
cached_info.svn_branch = branch
end
-- Get the svn status using coroutine if available and option is enabled. Otherwise use a blocking call
local svnStatus
if clink.promptcoroutine and io.popenyield and settings.get("prompt.async") and prompt_overrideSvnStatusOptIn then -- luacheck: no max line length
svnStatus = clink_promptcoroutine(function ()
return get_svn_status()
end)
-- If the status result is pending, use the cached version instead, otherwise store it to the cache
if svnStatus == nil then
svnStatus = cached_info.svn_info
else
cached_info.svn_info = svnStatus
end
else
svnStatus = get_svn_status()
end
local color
if not svnStatus or svnStatus.error then
color = colors.nostatus
elseif svnStatus.clean then
color = colors.clean
else
color = colors.dirty
end
clink.prompt.value = gsub_plain(clink.prompt.value, "{svn}", " "..color.."("..branch..")")
return false
end
end
-- No svn present or not in svn file
clink.prompt.value = gsub_plain(clink.prompt.value, "{svn}", "")
return false
end
-- insert the set_prompt at the very beginning so that it runs first
clink.prompt.register_filter(set_prompt_filter, 1)
clink.prompt.register_filter(hg_prompt_filter, 50)
clink.prompt.register_filter(git_prompt_filter, 50)
clink.prompt.register_filter(svn_prompt_filter, 50)
clink.prompt.register_filter(percent_prompt_filter, 51)
local completions_dir = clink.get_env('CMDER_ROOT')..'/vendor/clink-completions/'
-- Execute '.init.lua' first to ensure package.path is set properly
dofile(completions_dir..'.init.lua')
for _,lua_module in ipairs(clink.find_files(completions_dir..'*.lua')) do
-- Skip files that starts with _. This could be useful if some files should be ignored
if not string.match(lua_module, '^_.*') then
local filename = completions_dir..lua_module
-- use dofile instead of require because require caches loaded modules
-- so config reloading using Alt-Q won't reload updated modules.
dofile(filename)
end
end
if clink.get_env('CMDER_USER_CONFIG') then
local cmder_config_dir = clink.get_env('CMDER_ROOT')..'/config/'
for _,lua_module in ipairs(clink.find_files(cmder_config_dir..'*.lua')) do
local filename = cmder_config_dir..lua_module
-- use dofile instead of require because require caches loaded modules
-- so config reloading using Alt-Q won't reload updated modules.
dofile(filename)
end
end

32
vendor/clink_settings.default vendored Normal file
View File

@ -0,0 +1,32 @@
# For explanation of these and other settings see:
# https://chrisant996.github.io/clink/clink.html
# name: Expand envvars when completing
# type: boolean
match.expand_envvars = True
# name: Sets how command history expansion is applied
# type: enum
# options: off,on,not_squoted,not_dquoted,not_quoted
history.expand_mode = not_dquoted
# name: Skip adding lines prefixed with whitespace
# type: boolean
history.ignore_space = True
# name: The number of history lines to save
# type: integer
history.max_lines = 25000
# name: Share history between instances
# type: boolean
history.shared = False
# name: Auto-answer terminate prompt
# type: enum
# options: off,answer_yes,answer_no
cmd.auto_answer = answer_yes
# name: Doskey completions
# type: color
color.doskey = yellow

99
vendor/cmder.sh vendored Normal file
View File

@ -0,0 +1,99 @@
# DO NOT EDIT THIS FILE IT WILL BE OVERWRITTEN ON UPDATE
#
# Add portable user customizations ${CMDER_ROOT}/config/user_profile.sh,
# these customizations will follow Cmder if $CMDER_ROOT is copied
# to another machine.
#
# Add system specific users customizations to $HOME/.bashrc, these
# customizations will not follow Cmder to another machine.
function runProfiled {
unset profile_d_scripts
pushd "${1}" >/dev/null
profile_d_scripts=$(ls *.sh 2>/dev/null)
if [ ! "x${profile_d_scripts}" = "x" ] ; then
for x in ${profile_d_scripts} ; do
# echo Sourcing "${1}/${x}"...
. "${1}/${x}"
done
fi
popd >/dev/null
}
# We do this for bash as admin sessions since $CMDER_ROOT is not being set
if [ "$CMDER_ROOT" == "" ] ; then
case "$ConEmuDir" in *\\*) CMDER_ROOT=$( cd "$(cygpath -u "$ConEmuDir")/../.." ; pwd );; esac
else
case "$CMDER_ROOT" in *\\*) CMDER_ROOT="$(cygpath -u "$CMDER_ROOT")";; esac
fi
# Remove any trailing '/'
CMDER_ROOT=$(echo $CMDER_ROOT | sed 's:/*$::')
export CMDER_ROOT
if [ -f "/c/Program Files/Git/cmd/git.exe" ] ; then
GIT_INSTALL_ROOT="/c/Program Files/Git"
elif [ -f "/c/Program Files(x86)/Git/cmd/git.exe" ] ; then
GIT_INSTALL_ROOT="/c/Program Files(x86)/Git"
elif [ -f "${CMDER_ROOT}/vendor/git-for-windows/cmd/git.exe" ] ; then
GIT_INSTALL_ROOT=${CMDER_ROOT}/vendor/git-for-windows
fi
if [[ ! "$PATH" =~ "${GIT_INSTALL_ROOT}/bin:" ]] ; then
PATH="${GIT_INSTALL_ROOT}/bin:$PATH"
fi
PATH="${CMDER_ROOT}/bin:${CMDER_ROOT}/vendor/bin:$PATH:${CMDER_ROOT}"
export PATH
# Drop *.sh or *.zsh files into "${CMDER_ROOT}\config\profile.d"
# to source them at startup.
if [ ! -d "${CMDER_ROOT}/config/profile.d" ] ; then
mkdir -p "${CMDER_ROOT}/config/profile.d"
fi
if [ -d "${CMDER_ROOT}/config/profile.d" ] ; then
runProfiled "${CMDER_ROOT}/config/profile.d"
fi
if [ -d "${CMDER_USER_CONFIG}/profile.d" ] ; then
runProfiled "${CMDER_USER_CONFIG}/profile.d"
fi
# Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency.
if [ -f "$CMDER_ROOT/config/user-profile.sh" ] ; then
mv "$CMDER_ROOT/config/user-profile.sh" "$CMDER_ROOT/config/user_profile.sh"
fi
CmderUserProfilePath="${CMDER_ROOT}/config/user_profile.sh"
if [ -f "${CMDER_ROOT}/config/user_profile.sh" ] ; then
. "${CMDER_ROOT}/config/user_profile.sh"
fi
if [ "${CMDER_USER_CONFIG}" != "" ] ; then
# Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency.
if [ -f "$CMDER_USER_CONFIG/user-profile.sh" ] ; then
mv "$CMDER_USER_CONFIG/user-profile.sh" "$CMDER_USER_CONFIG/user_profile.sh"
fi
export PATH="${CMDER_USER_CONFIG}/bin:$PATH"
CmderUserProfilePath="${CMDER_USER_CONFIG}/user_profile.sh"
if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ] ; then
. "${CMDER_USER_CONFIG}/user_profile.sh"
fi
fi
if [ ! -f "${CmderUserProfilePath}" ] ; then
echo Creating user startup file: "${CmderUserProfilePath}"
cp "${CMDER_ROOT}/vendor/user_profile.sh.default" "${CmderUserProfilePath}"
fi
# Source the users .bashrc file if it exists
if [ -f "${HOME}/.bashrc" ] ; then
. "${HOME}/.bashrc"
fi

113
vendor/cmder_exinit vendored Normal file
View File

@ -0,0 +1,113 @@
# Copy this file to your non integrated *nix-like environment,
# Cygwin/MSys2/Git for Windows SDK, installs '/etc/profile.d/'
# folder to integrate the externally installed Unix like environment
# into Cmder so it has access to settings stored in Cmder/config
# folder when launched.
#
# The destination file extension depends on the shell you use. For example:
#
# bash - Copy to /etc/profile.d/cmder_exinit.sh
# zsh - Copy to /etc/profile.d/cmder_exinit.zsh
# Add portable user customizations ${CMDER_ROOT}/config/user-profile.sh or
# add whole config scripts to ${CMDER_ROOT}/config/profile.d both will be sourced
# from this file and be applied to the environment at startup.
#
# These customizations will follow Cmder if $CMDER_ROOT is copied
# to another machine.
#
# Add system specific users customizations to $HOME/.bashrc, these
# customizations will not follow Cmder to another machine.
# # Uncomment and edit the CMDER_ROOT line to use Cmder/config even when launched
# # from outside Cmder.
# CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder.
function runProfiled {
unset profile_d_scripts
pushd "${1}" >/dev/null
if [ ! "x${ZSH_VERSION}" = "x" ]; then
profile_d_scripts=$(ls *.zsh 2>/dev/null)
elif [ ! "x${BASH_VERSION}" = "x" ]; then
profile_d_scripts=$(ls *.sh 2>/dev/null)
fi
if [ ! "x${profile_d_scripts}" = "x" ] ; then
for x in ${profile_d_scripts} ; do
echo Sourcing "${1}/${x}"...
. "${1}/${x}"
done
fi
popd >/dev/null
}
# Check that we haven't already been sourced.
[[ -z ${CMDER_EXINIT} ]] && CMDER_EXINIT="1" || return
# We do this for bash as admin sessions since $CMDER_ROOT is not being set
if [ "$CMDER_ROOT" = "" -a "$ConEmuDir" != "" ] ; then
if [ -d "${ConEmuDir}../../vendor" ] ; then
case "$ConEmuDir" in *\\*) CMDER_ROOT=$( cd "$(cygpath -u "$ConEmuDir")/../.." ; pwd );; esac
else
echo "Running in ConEmu without Cmder, skipping Cmder integration."
fi
elif [ "$CMDER_ROOT" != "" ] ; then
case "$CMDER_ROOT" in *\\*) CMDER_ROOT="$(cygpath -u "$CMDER_ROOT")";; esac
fi
if [ ! "$CMDER_ROOT" = "" ] ; then
# Remove any trailing '/'
CMDER_ROOT=$(echo $CMDER_ROOT | sed 's:/*$::')
echo "Using \"CMDER_ROOT\" at \"${CMDER_ROOT}\"."
export CMDER_ROOT
PATH=${CMDER_ROOT}/bin:${CMDER_ROOT}/vendor/bin:$PATH:${CMDER_ROOT}
export PATH
# Drop *.sh or *.zsh files into "${CMDER_ROOT}\config\profile.d"
# to source them at startup.
if [ ! -d "${CMDER_ROOT}/config/profile.d" ] ; then
mkdir -p "${CMDER_ROOT}/config/profile.d"
fi
if [ -d "${CMDER_ROOT}/config/profile.d" ] ; then
runProfiled "${CMDER_ROOT}/config/profile.d"
fi
if [ -d "${CMDER_USER_CONFIG}/profile.d" ] ; then
runProfiled "${CMDER_USER_CONFIG}/profile.d"
fi
# Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency.
if [ -f "$CMDER_ROOT/config/user-profile.sh" ] ; then
mv "$CMDER_ROOT/config/user-profile.sh" "$CMDER_ROOT/config/user_profile.sh"
fi
CmderUserProfilePath="${CMDER_ROOT}/config/user_profile.sh"
if [ -f "${CMDER_ROOT}/config/user_profile.sh" ] ; then
. "${CMDER_ROOT}/config/user_profile.sh"
fi
if [ "${CMDER_USER_CONFIG}" != "" ] ; then
# Renaming to "config\user_profile.sh" to "user_profile.sh" for consistency.
if [ -f "$CMDER_USER_CONFIG/user-profile.sh" ] ; then
mv "$CMDER_USER_CONFIG/user-profile.sh" "$CMDER_USER_CONFIG/user_profile.sh"
fi
export PATH=${CMDER_USER_CONFIG}/bin:$PATH
CmderUserProfilePath="${CMDER_USER_CONFIG}/user_profile.sh"
if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ] ; then
. "${CMDER_USER_CONFIG}/user_profile.sh"
fi
fi
if [ ! -f "${CmderUserProfilePath}" ] ; then
echo Creating user startup file: "${CmderUserProfilePath}"
cp "${CMDER_ROOT}/vendor/user_profile.sh.default" "${CmderUserProfilePath}"
fi
fi

62
vendor/cmder_prompt_config.lua.default vendored Normal file
View File

@ -0,0 +1,62 @@
-- All of the below was 'borrowed' from https://github.com/AmrEldib/cmder-powerline-prompt
--- REQUIRED. config_prompt_type is whether the displayed prompt is the full path or only the folder name
-- Use:
-- "full" for full path like C:\Windows\System32
-- "folder" for folder name only like System32
-- default is full
prompt_type = "full"
--- REQUIRED. config_prompt_useHomeSymbol is whether to show ~ instead of the full path to the user's home folder
-- Use true or false
-- default is false
prompt_useHomeSymbol = false
-- Symbols
-- REQUIRED. Prompt displayed instead of user's home folder e.g. C:\Users\username
-- default is '~'
prompt_homeSymbol = "~"
-- REQUIRED. Symbol displayed in the new line below the prompt.
-- default is 'λ'
prompt_lambSymbol = "λ"
-- REQUIRED. Adds [user]@[host] to the beginning of the prompt like bash
-- default is false
prompt_useUserAtHost = false
-- REQUIRED. If true prompt is a single line instead of default two line prompt.
-- default is false
prompt_singleLine = false
-- OPTIONAL. If true then Cmder includes git, mercurial, and subversion status in the prompt.
-- default is true
prompt_includeVersionControl = true
-- OPTIONAL. If true then always ignore the cmder.status and cmder.cmdstatus git config settings and run the git prompt commands in the background.
-- default is false
-- NOTE: This only takes effect if using Clink v1.2.10 or higher.
prompt_overrideGitStatusOptIn = false
-- OPTIONAL. If true then always ignore the cmder.status and cmder.cmdstatus svn config settings and run the svn prompt commands in the background.
-- default is false
-- NOTE: This only takes effect if using Clink v1.2.10 or higher.
prompt_overrideSvnStatusOptIn = false
-- Prompt Attributes
--
-- Colors: https://github.com/cmderdev/cmder/wiki/Customization#list-of-colors
-- Effects: https://github.com/cmderdev/cmder/wiki/Customization#list-of-effects
--
-- Green: "\x1b[1;33;49m"
-- Yellow: "\x1b[1;32;49m"
-- Light Grey: "\x1b[1;30;49m"
-- Prompt Element Colors
uah_color = "\x1b[1;33;49m" -- Green = uah = [user]@[hostname]
cwd_color = "\x1b[1;32;49m" -- Yellow cwd = Current Working Directory
lamb_color = "\x1b[1;30;49m" -- Light Grey = Lambda Color
clean_color = "\x1b[37;1m"
dirty_color = "\x1b[33;3m" -- Yellow, Italic
conflict_color = "\x1b[31;1m" -- Red, Bold
unknown_color = "\x1b[37;1m" -- White = No VCS Status Branch Color

74
vendor/git-prompt.sh vendored Normal file
View File

@ -0,0 +1,74 @@
function getGitStatusSetting() {
gitStatusSetting=$(git --no-pager config -l 2>/dev/null)
if [[ -n ${gitStatusSetting} ]] && [[ ${gitStatusSetting} =~ cmder.status=false ]] || [[ ${gitStatusSetting} =~ cmder.shstatus=false ]]
then
echo false
else
echo true
fi
}
function getSimpleGitBranch() {
gitDir=$(git rev-parse --git-dir 2>/dev/null)
if [ -z "$gitDir" ]; then
return 0
fi
headContent=$(< "$gitDir/HEAD")
if [[ "$headContent" == "ref: refs/heads/"* ]]
then
echo " (${headContent:16})"
else
echo " (HEAD detached at ${headContent:0:7})"
fi
}
if test -f /etc/profile.d/git-sdk.sh
then
TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
TITLEPREFIX=$MSYSTEM
fi
if test -f ~/.config/git/git-prompt.sh
then
if [[ $(getGitStatusSetting) == true ]]
then
. ~/.config/git/git-prompt.sh
fi
else
PS1='\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]' # set window title
# PS1="$PS1"'\n' # new line
PS1="$PS1"'\[\033[32m\]' # change to green
PS1="$PS1"'\u@\h ' # user@host<space>
# PS1="$PS1"'\[\033[35m\]' # change to purple
# PS1="$PS1"'$MSYSTEM ' # show MSYSTEM
PS1="$PS1"'\[\033[33m\]' # change to brownish yellow
PS1="$PS1"'\w' # current working directory
if test -z "$WINELOADERNOEXEC"
then
GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
if test -f "$COMPLETION_PATH/git-prompt.sh"
then
. "$COMPLETION_PATH/git-completion.bash"
if [[ $(getGitStatusSetting) == true ]]
then
. "$COMPLETION_PATH/git-prompt.sh"
PS1="$PS1"'\[\033[36m\]' # change color to cyan
PS1="$PS1"'`__git_ps1`' # bash function
else
PS1="$PS1"'\[\033[37;1m\]' # change color to white
PS1="$PS1"'`getSimpleGitBranch`'
fi
fi
fi
PS1="$PS1"'\[\033[0m\]' # change color
PS1="$PS1"'\n' # new line
PS1="$PS1"'λ ' # prompt: always λ
fi
MSYS2_PS1="$PS1" # for detection by MSYS2 SDK's bash.basrc

505
vendor/init.bat vendored
View File

@ -1,25 +1,498 @@
@echo off
:: Set prompt style
prompt $E[1;32;40m$P $_$E[1;30;40m$$ $E[0m
set CMDER_INIT_START=%time%
:: Pick right version of clink
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
set architecture=86
) else (
set architecture=64
:: Init Script for cmd.exe shell
:: Created as part of cmder project
:: !!! THIS FILE IS OVERWRITTEN WHEN CMDER IS UPDATED
:: !!! Use "%CMDER_ROOT%\config\user_profile.cmd" to add your own startup commands
:: Use /v command line arg or set to > 0 for verbose output to aid in debugging.
if not defined verbose_output set verbose_output=0
:: Use /d command line arg or set to 1 for debug output to aid in debugging.
if not defined debug_output set debug_output=0
:: Use /t command line arg or set to 1 to display init time.
if not defined time_init set time_init=0
:: Use /f command line arg to speed up init at the expense of some functionality.
if not defined fast_init set fast_init=0
:: Use /max_depth 1-5 to set max recurse depth for calls to `enhance_path_recursive`
if not defined max_depth set max_depth=1
:: Add *nix tools to end of path. 0 turns off *nix tools, 2 adds *nix tools to the front of the path.
if not defined nix_tools set nix_tools=1
set "CMDER_USER_FLAGS= "
:: Find root dir
if not defined CMDER_ROOT (
if defined ConEmuDir (
for /f "delims=" %%i in ("%ConEmuDir%\..\..") do (
set "CMDER_ROOT=%%~fi"
)
) else (
for /f "delims=" %%i in ("%~dp0\..") do (
set "CMDER_ROOT=%%~fi"
)
)
)
:: Run clink
vendor\clink\clink_x%architecture%.exe inject --quiet --profile config
:: Remove trailing '\' from %CMDER_ROOT%
if "%CMDER_ROOT:~-1%" == "\" SET "CMDER_ROOT=%CMDER_ROOT:~0,-1%"
set rootDir=%CD%
:: Include Cmder libraries
call "%cmder_root%\vendor\bin\cexec.cmd" /setpath
call "%cmder_root%\vendor\lib\lib_console"
call "%cmder_root%\vendor\lib\lib_base"
call "%cmder_root%\vendor\lib\lib_path"
call "%cmder_root%\vendor\lib\lib_git"
call "%cmder_root%\vendor\lib\lib_profile"
:: Enhance Path
PATH=%PATH%;%rootDir%\bin
:var_loop
if "%~1" == "" (
goto :start
) else if /i "%1" == "/f" (
set fast_init=1
) else if /i "%1" == "/t" (
set time_init=1
) else if /i "%1" == "/v" (
set verbose_output=1
) else if /i "%1" == "/d" (
set debug_output=1
) else if /i "%1" == "/max_depth" (
if "%~2" geq "1" if "%~2" leq "5" (
set "max_depth=%~2"
shift
) else (
%print_error% "'/max_depth' requires a number between 1 and 5!"
exit /b
)
) else if /i "%1" == "/c" (
if exist "%~2" (
if not exist "%~2\bin" mkdir "%~2\bin"
set "cmder_user_bin=%~2\bin"
if not exist "%~2\config\profile.d" mkdir "%~2\config\profile.d"
set "cmder_user_config=%~2\config"
shift
)
) else if /i "%1" == "/user_aliases" (
if exist "%~2" (
set "user_aliases=%~2"
shift
)
) else if /i "%1" == "/git_install_root" (
if exist "%~2" (
set "GIT_INSTALL_ROOT=%~2"
shift
) else (
%print_error% "The Git install root folder "%~2" that you specified does not exist!"
exit /b
)
) else if /i "%1" == "/nix_tools" (
if "%2" equ "0" (
REM Do not add *nix tools to path
set nix_tools=0
shift
) else if "%2" equ "1" (
REM Add *nix tools to end of path
set nix_tools=1
shift
) else if "%2" equ "2" (
REM Add *nix tools to front of path
set nix_tools=2
shift
)
) else if /i "%1" == "/home" (
if exist "%~2" (
set "HOME=%~2"
shift
) else (
%print_error% The home folder "%2" that you specified does not exist!
exit /b
)
) else if /i "%1" == "/svn_ssh" (
set SVN_SSH=%2
shift
) else (
set "CMDER_USER_FLAGS=%1 %CMDER_USER_FLAGS%"
)
shift
goto :var_loop
:: Add aliases
doskey /macrofile=%rootDir%\config\aliases
:start
:: Enable console related methods if verbose/debug is turned on
if %debug_output% gtr 0 (set print_debug=%lib_console% debug_output)
if %verbose_output% gtr 0 (
set print_verbose=%lib_console% verbose_output
set print_warning=%lib_console% show_warning
)
:: cd into users homedir
cd /d "%userprofile%"
:: Sets CMDER_SHELL, CMDER_CLINK, CMDER_ALIASES variables
%lib_base% cmder_shell
%print_debug% init.bat "Env Var - CMDER_ROOT=%CMDER_ROOT%"
%print_debug% init.bat "Env Var - debug_output=%debug_output%"
:: Set the Cmder directory paths
set CMDER_CONFIG_DIR=%CMDER_ROOT%\config
:: Check if we're using Cmder individual user profile
if defined CMDER_USER_CONFIG (
%print_debug% init.bat "CMDER IS ALSO USING INDIVIDUAL USER CONFIG FROM '%CMDER_USER_CONFIG%'!"
if not exist "%CMDER_USER_CONFIG%\..\opt" md "%CMDER_USER_CONFIG%\..\opt"
set CMDER_CONFIG_DIR=%CMDER_USER_CONFIG%
)
if not "%CMDER_SHELL%" == "cmd" (
%print_warning% "Incompatible 'ComSpec/Shell' Detected: %CMDER_SHELL%"
set CMDER_CLINK=0
set CMDER_ALIASES=0
)
:: Pick the right version of Clink
:: TODO: Support for ARM
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
set clink_architecture=x86
set architecture_bits=32
) else if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
set clink_architecture=x64
set architecture_bits=64
) else (
%print_warning% "Incompatible Processor Detected: %PROCESSOR_ARCHITECTURE%"
set CMDER_CLINK=0
)
if "%CMDER_CLINK%" == "1" (
REM TODO: Detect if clink is already injected, if so goto :CLINK_FINISH
goto :INJECT_CLINK
)
goto :SKIP_CLINK
:INJECT_CLINK
%print_verbose% "Injecting Clink!"
:: Check if Clink is not present
if not exist "%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" (
%print_error% "Clink executable is not present in 'vendor\clink\clink_%clink_architecture%.exe'"
goto :SKIP_CLINK
)
:: Run Clink
if not exist "%CMDER_CONFIG_DIR%\settings" if not exist "%CMDER_CONFIG_DIR%\clink_settings" (
echo Generating Clink initial settings in "%CMDER_CONFIG_DIR%\clink_settings"
copy "%CMDER_ROOT%\vendor\clink_settings.default" "%CMDER_CONFIG_DIR%\clink_settings"
echo Additional *.lua files in "%CMDER_CONFIG_DIR%" are loaded on startup.
)
if not exist "%CMDER_CONFIG_DIR%\cmder_prompt_config.lua" (
echo Creating Cmder prompt config file: "%CMDER_CONFIG_DIR%\cmder_prompt_config.lua"
copy "%CMDER_ROOT%\vendor\cmder_prompt_config.lua.default" "%CMDER_CONFIG_DIR%\cmder_prompt_config.lua"
)
:: Cleanup legacy Clink Settings file
if exist "%CMDER_CONFIG_DIR%\settings" if exist "%CMDER_CONFIG_DIR%\clink_settings" (
del "%CMDER_CONFIG_DIR%\settings"
)
:: Cleanup legacy Clink history file
if exist "%CMDER_CONFIG_DIR%\.history" if exist "%CMDER_CONFIG_DIR%\clink_history" (
del "%CMDER_CONFIG_DIR%\.history"
)
"%CMDER_ROOT%\vendor\clink\clink_%clink_architecture%.exe" inject --quiet --profile "%CMDER_CONFIG_DIR%" --scripts "%CMDER_ROOT%\vendor"
:: Check if a fatal error occurred when trying to inject Clink
if errorlevel 2 (
REM %print_error% "Clink injection has failed with error code: %errorlevel%"
goto :SKIP_CLINK
)
goto :CLINK_FINISH
:SKIP_CLINK
%print_warning% "Skipping Clink Injection!"
for /f "tokens=2 delims=:." %%x in ('chcp') do set cp=%%x
chcp 65001>nul
:: Revert back to plain cmd.exe prompt without clink
prompt $E[1;32;49m$P$S$_$E[1;30;49mλ$S$E[0m
chcp %cp%>nul
:CLINK_FINISH
if "%CMDER_CONFIGURED%" GTR "1" (
%print_verbose% "Cmder is already configured, skipping Cmder Init!"
goto :USER_ALIASES
) else if "%CMDER_CONFIGURED%" == "1" (
%print_verbose% "Cmder is already configured, skipping to Cmder User Init!"
goto :USER_CONFIG_START
)
:: Prepare for git-for-windows
:: Detect which git.exe version to use
:: * if the user points to a specific git, use that
:: * test if git is in path and if yes, use that
:: * last, use our vendored git
:: also check that we have a recent enough version of git by examining the version string
if defined GIT_INSTALL_ROOT (
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" goto :SPECIFIED_GIT
set GIT_INSTALL_ROOT=
) else if "%fast_init%" == "1" (
if exist "%CMDER_ROOT%\vendor\git-for-windows\cmd\git.exe" (
%print_debug% init.bat "Skipping Git Auto-Detect!"
goto :VENDORED_GIT
)
%print_debug% init.bat "Fast init is enabled, vendored Git does not exist"
for /F "delims=" %%F in ('where git.exe 2^>nul') do (
set "EXT_GIT_EXE=%%~fF"
%print_debug% init.bat "Found User installed Git at '%%~fF'. Skipping Git Auto-Detect!"
goto :SET_ENV
)
)
%print_debug% init.bat "Looking for Git install root..."
:: Get the version information for vendored git binary
%lib_git% read_version VENDORED "%CMDER_ROOT%\vendor\git-for-windows\cmd" 2>nul
%lib_git% validate_version VENDORED %GIT_VERSION_VENDORED%
:: Check if git is in path
for /F "delims=" %%F in ('where git.exe 2^>nul') do call :check_git "%%~fF"
if defined GIT_INSTALL_ROOT (
goto :FOUND_GIT
) else (
goto :VENDORED_GIT
)
:check_git
set full_path="%~f1"
if not defined GIT_INSTALL_ROOT (
if not [\%full_path:\cmd\git.exe=:%]==[\%full_path%] (
:: Get the absolute path to the user provided git binary
%lib_git% is_git_shim "%~dp1"
%lib_git% get_user_git_version
%lib_git% compare_git_versions
)
)
exit /b
:: Our last hope: use vendored git
:VENDORED_GIT
if exist "%CMDER_ROOT%\vendor\git-for-windows" (
set "GIT_INSTALL_ROOT=%CMDER_ROOT%\vendor\git-for-windows"
%print_debug% init.bat "Using vendored Git '%GIT_VERSION_VENDORED%'..."
goto :CONFIGURE_GIT
) else (
goto :NO_GIT
)
:SPECIFIED_GIT
%print_debug% init.bat "Using /GIT_INSTALL_ROOT..."
goto :CONFIGURE_GIT
:FOUND_GIT
%print_debug% init.bat "Using found Git '%GIT_VERSION_USER%' from '%GIT_INSTALL_ROOT%..."
goto :CONFIGURE_GIT
:CONFIGURE_GIT
%print_debug% init.bat "Using Git from '%GIT_INSTALL_ROOT%..."
:: Add git to the path
if exist "%GIT_INSTALL_ROOT%\cmd\git.exe" %lib_path% enhance_path "%GIT_INSTALL_ROOT%\cmd" ""
:: Add the unix commands at the end to not shadow windows commands like `more` and `find`
if %nix_tools% equ 1 (
%print_verbose% "Preferring Windows commands"
set "path_position=append"
) else (
%print_verbose% "Preferring *nix commands"
set "path_position="
)
if %nix_tools% geq 1 (
if exist "%GIT_INSTALL_ROOT%\mingw32" (
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\mingw32\bin" %path_position%
) else if exist "%GIT_INSTALL_ROOT%\mingw64" (
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\mingw64\bin" %path_position%
)
if exist "%GIT_INSTALL_ROOT%\usr\bin" (
%lib_path% enhance_path "%GIT_INSTALL_ROOT%\usr\bin" %path_position%
)
)
:SET_ENV
:: Plink (PuTTY Link) is a command-line connection tool similar to ssh, setting its protocol to ssh
set PLINK_PROTOCOL=ssh
:: Define SVN_SSH so we can use git svn with ssh svn repositories
if not defined SVN_SSH set "SVN_SSH=%GIT_INSTALL_ROOT:\=\\%\\bin\\ssh.exe"
:: Find locale.exe: From the git install root, from the path, using the git installed env, or fallback using the env from the path.
setlocal enabledelayedexpansion
if not defined git_locale if defined EXT_GIT_EXE (
set "GIT_INSTALL_ROOT=!EXT_GIT_EXE:\cmd\git.exe=!"
)
endlocal && set GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%
if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\locale.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\locale.exe"
if not defined git_locale for /F "tokens=* delims=" %%F in ('where locale.exe 2^>nul') do ( if not defined git_locale set git_locale="%%F" )
if not defined git_locale if exist "%GIT_INSTALL_ROOT%\usr\bin\env.exe" set git_locale="%GIT_INSTALL_ROOT%\usr\bin\env.exe" /usr/bin/locale
if not defined git_locale for /F "tokens=* delims=" %%F in ('where env.exe 2^>nul') do ( if not defined git_locale set git_locale="%%F" /usr/bin/locale )
setlocal enabledelayedexpansion
if defined git_locale (
REM %print_debug% init.bat "Env Var - git_locale=!git_locale!"
if not defined LANG (
for /F "delims=" %%F in ('!git_locale! -uU 2') do (
set "LANG=%%F"
)
)
)
endlocal && set LANG=%LANG%
%print_debug% init.bat "Env Var - GIT_INSTALL_ROOT=%GIT_INSTALL_ROOT%"
%print_debug% init.bat "Found Git in: '%GIT_INSTALL_ROOT%'"
goto :PATH_ENHANCE
:NO_GIT
:: Skip this if GIT WAS FOUND else we did 'endlocal' above!
endlocal
:PATH_ENHANCE
%lib_path% enhance_path "%CMDER_ROOT%\vendor\bin"
:USER_CONFIG_START
%lib_path% enhance_path_recursive "%CMDER_ROOT%\bin" 0 %max_depth%
if defined CMDER_USER_BIN (
%lib_path% enhance_path_recursive "%CMDER_USER_BIN%" 0 %max_depth%
)
%lib_path% enhance_path "%CMDER_ROOT%" append
:: Drop *.bat and *.cmd files into "%CMDER_ROOT%\config\profile.d"
:: to run them at startup.
%lib_profile% run_profile_d "%CMDER_ROOT%\config\profile.d"
if defined CMDER_USER_CONFIG (
%lib_profile% run_profile_d "%CMDER_USER_CONFIG%\profile.d"
)
:USER_ALIASES
:: Allows user to override default aliases store using profile.d
:: scripts run above by setting the 'aliases' env variable.
::
:: Note: If overriding default aliases store file the aliases
:: must also be self executing, see '.\user_aliases.cmd.default',
:: and be in profile.d folder.
if not defined user_aliases (
set "user_aliases=%CMDER_CONFIG_DIR%\user_aliases.cmd"
)
if "%CMDER_ALIASES%" == "1" (
REM The aliases environment variable is used by alias.bat to id
REM the default file to store new aliases in.
if not defined aliases (
set "aliases=%user_aliases%"
)
REM Make sure we have a self-extracting user_aliases.cmd file
if not exist "%user_aliases%" (
echo Creating initial user_aliases store in "%user_aliases%"...
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
) else (
%lib_base% update_legacy_aliases
)
:: Update old 'user_aliases' to new self executing 'user_aliases.cmd'
if exist "%CMDER_ROOT%\config\aliases" (
echo Updating old "%CMDER_ROOT%\config\aliases" to new format...
type "%CMDER_ROOT%\config\aliases" >> "%user_aliases%"
del "%CMDER_ROOT%\config\aliases"
) else if exist "%user_aliases%.old_format" (
echo Updating old "%user_aliases%" to new format...
type "%user_aliases%.old_format" >> "%user_aliases%"
del "%user_aliases%.old_format"
)
)
:: Add aliases to the environment
type "%user_aliases%" | %WINDIR%\System32\findstr /b /l /i "history=cat " >nul
if "%ERRORLEVEL%" == "0" (
echo Migrating alias 'history' to new Clink 1.x.x...
call "%CMDER_ROOT%\vendor\bin\alias.cmd" /d history
echo Restart the session to activate changes!
)
call "%user_aliases%"
if "%CMDER_CONFIGURED%" gtr "1" goto :CMDER_CONFIGURED
:: See vendor\git-for-windows\README.portable for why we do this
:: Basically we need to execute this post-install.bat because we are
:: manually extracting the archive rather than executing the 7z sfx
if exist "%GIT_INSTALL_ROOT%\post-install.bat" (
echo Running Git for Windows one time Post Install....
pushd "%GIT_INSTALL_ROOT%\"
"%GIT_INSTALL_ROOT%\git-cmd.exe" --no-needs-console --no-cd --command=post-install.bat
popd
)
:: Set home path
if not defined HOME set "HOME=%USERPROFILE%"
%print_debug% init.bat "Env Var - HOME=%HOME%"
set "initialConfig=%CMDER_ROOT%\config\user_profile.cmd"
if exist "%CMDER_ROOT%\config\user_profile.cmd" (
REM Create this file and place your own command in there
%print_debug% init.bat "Calling - %CMDER_ROOT%\config\user_profile.cmd"
call "%CMDER_ROOT%\config\user_profile.cmd"
)
if defined CMDER_USER_CONFIG (
set "initialConfig=%CMDER_USER_CONFIG%\user_profile.cmd"
if exist "%CMDER_USER_CONFIG%\user_profile.cmd" (
REM Create this file and place your own command in there
%print_debug% init.bat "Calling - %CMDER_USER_CONFIG%\user_profile.cmd"
call "%CMDER_USER_CONFIG%\user_profile.cmd"
)
)
if not exist "%initialConfig%" (
echo Creating user startup file: "%initialConfig%"
copy "%CMDER_ROOT%\vendor\user_profile.cmd.default" "%initialConfig%"
)
if "%CMDER_ALIASES%" == "1" if exist "%CMDER_ROOT%\bin\alias.bat" if exist "%CMDER_ROOT%\vendor\bin\alias.cmd" (
echo Cmder's 'alias' command has been moved into "%CMDER_ROOT%\vendor\bin\alias.cmd"
echo to get rid of this message either:
echo.
echo Delete the file "%CMDER_ROOT%\bin\alias.bat"
echo.
echo or
echo.
echo If you have customized it and want to continue using it instead of the included version
echo * Rename "%CMDER_ROOT%\bin\alias.bat" to "%CMDER_ROOT%\bin\alias.cmd".
echo * Search for 'user-aliases' and replace it with 'user_aliases'.
)
set initialConfig=
:CMDER_CONFIGURED
if not defined CMDER_CONFIGURED set CMDER_CONFIGURED=1
set CMDER_INIT_END=%time%
if %time_init% gtr 0 (
"%cmder_root%\vendor\bin\timer.cmd" "%CMDER_INIT_START%" "%CMDER_INIT_END%"
)
exit /b

127
vendor/lib/lib_base.cmd vendored Normal file
View File

@ -0,0 +1,127 @@
@echo off
set lib_base=call "%~dp0lib_base.cmd"
if "%~1" == "/h" (
%lib_base% help "%~0"
) else if "%1" neq "" (
call :%*
)
exit /b
:::===============================================================================
:::help - shows all sub routines in a .bat/.cmd file with documentation
:::.
:::include:
:::.
::: call "lib_base.cmd"
:::.
:::usage:
:::.
::: %lib_base% help "file"
:::.
:::options:
:::.
::: file <in> full path to file containing lib_routines to display
:::-------------------------------------------------------------------------------
:help
for /f "tokens=* delims=:" %%a in ('%WINDIR%\System32\findstr /i /r "^:::" "%~1"') do (
if "%%a"=="." (
echo.
) else if /i "%%a" == "usage" (
echo %%a:
) else if /i "%%a" == "options" (
echo %%a:
) else if not "%%a" == "" (
echo %%a
)
)
pause
exit /b
:::===============================================================================
:::cmder_shell - Initializes the Cmder shell environment variables
:::.
:::description:
:::.
::: This routine sets up the Cmder shell environment by detecting the
::: command shell and initializing related variables.
:::.
:::include:
:::.
::: call "lib_base.cmd"
:::.
:::usage:
:::.
::: %lib_base% cmder_shell
:::-------------------------------------------------------------------------------
:cmder_shell
call :detect_comspec %ComSpec%
exit /b
:::===============================================================================
:::detect_comspec - Detects the command shell being used:::
:::.
:::description:
:::.
::: This function sets the CMDER_SHELL variable to the name of the
::: detected command shell. It also initializes the CMDER_CLINK and
::: CMDER_ALIASES variables if they are not already defined.
:::.
:::include:
:::.
::: call "lib_base.cmd"
:::.
:::usage:
:::.
::: %lib_base% detect_comspec %ComSpec%
:::-------------------------------------------------------------------------------
:detect_comspec
set CMDER_SHELL=%~n1
if not defined CMDER_CLINK (
set CMDER_CLINK=1
)
if not defined CMDER_ALIASES (
set CMDER_ALIASES=1
)
exit /b
:::===============================================================================
:::update_legacy_aliases - Updates the legacy alias definitions in the user_aliases file
:::.
:::description:
:::.
::: This function checks if the user_aliases file contains the marker
::: ";= Add aliases below here". If the marker is not found, it creates
::: an initial user_aliases store by copying the default user_aliases file
::: from the CMDER_ROOT directory. If the CMDER_USER_CONFIG environment
::: variable is defined, it creates a backup of the existing user_aliases
::: file before copying the default file.
:::.
:::include:
:::.
::: call "lib_base.cmd"
:::.
:::usage:
:::.
::: %lib_base% update_legacy_aliases
:::-------------------------------------------------------------------------------
:update_legacy_aliases
type "%user_aliases%" | %WINDIR%\System32\findstr /i ";= Add aliases below here" >nul
if "%errorlevel%" == "1" (
echo Creating initial user_aliases store in "%user_aliases%"...
if defined CMDER_USER_CONFIG (
copy "%user_aliases%" "%user_aliases%.old_format"
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
) else (
copy "%user_aliases%" "%user_aliases%.old_format"
copy "%CMDER_ROOT%\vendor\user_aliases.cmd.default" "%user_aliases%"
)
)
exit /b

107
vendor/lib/lib_console.cmd vendored Normal file
View File

@ -0,0 +1,107 @@
@echo off
call "%~dp0lib_base.cmd"
set lib_console=call "%~dp0lib_console.cmd"
set ESC=
:: Much faster than using "%lib_console% debug_output ..." etc.
set print_debug=if %debug_output% gtr 0 %lib_console% debug_output
set print_verbose=if %verbose_output% gtr 0 %lib_console% verbose_output
set print_warning=if %verbose_output% gtr 0 %lib_console% show_warning
set print_error=%lib_console% show_error
if %fast_init% gtr %verbose_output% if %fast_init% gtr %debug_output% exit /b
if "%~1" == "/h" (
%lib_base% help "%~0"
) else if "%1" neq "" (
call :%*
)
exit /b
:debug_output
:::===============================================================================
:::debug_output - Output a debug message to the console.
:::.
:::include:
:::.
::: call "lib_console.cmd"
:::.
:::usage:
:::.
::: %lib_console% debug_output [caller] [message]
:::.
:::required:
:::.
::: [caller] <in> Script/sub routine name calling debug_output
:::.
::: [message] <in> Message text to display.
:::.
:::-------------------------------------------------------------------------------
if %debug_output% gtr 0 echo %time% DEBUG(%~1): %~2 & echo.
exit /b
:verbose_output
:::===============================================================================
:::verbose_output - Output a debug message to the console.
:::.
:::include:
:::.
::: call "$0"
:::.
:::usage:
:::.
::: %lib_console% verbose_output "[message]"
:::.
:::required:
:::.
::: [message] <in> Message text to display.
:::.
:::-------------------------------------------------------------------------------
if %verbose_output% gtr 0 echo %~1
exit /b
:show_error
:::===============================================================================
:::show_error - Output an error message to the console.
:::.
:::include:
:::.
::: call "$0"
:::.
:::usage:
:::.
::: %lib_console% show_error "[message]"
:::.
:::required:
:::.
::: [message] <in> Message text to display.
:::.
:::-------------------------------------------------------------------------------
echo %ESC%[91;1mERROR:%ESC%[0m %~1
exit /b
:show_warning
:::===============================================================================
:::show_warning - Output a warning message to the console.
:::.
:::include:
:::.
::: call "$0"
:::.
:::usage:
:::.
::: %lib_console% show_warning "[message]"
:::.
:::required:
:::.
::: [message] <in> Message text to display.
:::.
:::-------------------------------------------------------------------------------
echo %ESC%[93;1mWARNING:%ESC%[0m %~1
exit /b

Some files were not shown because too many files have changed in this diff Show More