New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Console Improvements #279

Closed
GuerrillaCoder opened this Issue Apr 27, 2016 · 34 comments

Comments

Projects
None yet
@GuerrillaCoder

I remember seeing in the original release video some mention of improving the console window but mine looks pretty much the same it always has.

Is there any way to improve it so it is more like working in putty/xterm? By this I mean things like easy copy/paste and mapping mouse clicks to the terminal.

I was using cygwin before and that had a nicer console window. Can I use that safely with win bash?

@dimasdanz

This comment has been minimized.

Show comment
Hide comment
@dimasdanz

dimasdanz Apr 27, 2016

Try to use ConEmu and use the following as startup
%windir%\system32\bash.exe ~ -cur_console:p
The -cur_console:p is important as stated on this issue

Try to use ConEmu and use the following as startup
%windir%\system32\bash.exe ~ -cur_console:p
The -cur_console:p is important as stated on this issue

@russalex russalex added the console label Apr 27, 2016

@bitcrazed bitcrazed changed the title from Console Improvemens to Console Improvements Apr 28, 2016

@bitcrazed

This comment has been minimized.

Show comment
Hide comment
@bitcrazed

bitcrazed Apr 28, 2016

Collaborator

Mouse support is already on our backlog for considering in a future version.

Regarding copy/paste, in Bash, we pass the keystrokes straight through to /bin/bash or whatever app is currently running. How Bash and *NIX tools handle modern keyboard commands, including CTRL + V is a topic of much conversation. We'll consider in the future.

Collaborator

bitcrazed commented Apr 28, 2016

Mouse support is already on our backlog for considering in a future version.

Regarding copy/paste, in Bash, we pass the keystrokes straight through to /bin/bash or whatever app is currently running. How Bash and *NIX tools handle modern keyboard commands, including CTRL + V is a topic of much conversation. We'll consider in the future.

@GuerrillaCoder

This comment has been minimized.

Show comment
Hide comment
@GuerrillaCoder

GuerrillaCoder Apr 28, 2016

Thanks. Will give ConEmu a go.

@bitcrazed I meant the actual console window. In putty you can select text and it automatically copies. In console you need to select "Mark" and then select and then hit enter which is a little awkward. Also to paste you need to right click and go "paste" whereas putty is just a right click.

Thanks. Will give ConEmu a go.

@bitcrazed I meant the actual console window. In putty you can select text and it automatically copies. In console you need to select "Mark" and then select and then hit enter which is a little awkward. Also to paste you need to right click and go "paste" whereas putty is just a right click.

@benhillis

This comment has been minimized.

Show comment
Hide comment
@benhillis

benhillis Apr 28, 2016

Member

@GuerrillaCoder Have you tried quick edit mode in cmd?

Member

benhillis commented Apr 28, 2016

@GuerrillaCoder Have you tried quick edit mode in cmd?

@GuerrillaCoder

This comment has been minimized.

Show comment
Hide comment
@GuerrillaCoder

GuerrillaCoder Apr 28, 2016

@benhillis I didn't know about that one, thanks! Enabling it now.

@benhillis I didn't know about that one, thanks! Enabling it now.

@bitcrazed

This comment has been minimized.

Show comment
Hide comment
@bitcrazed

bitcrazed Apr 28, 2016

Collaborator

@GuerrillaCoder Did quick-edit mode work for you?

Collaborator

bitcrazed commented Apr 28, 2016

@GuerrillaCoder Did quick-edit mode work for you?

@navidR

This comment has been minimized.

Show comment
Hide comment
@navidR

navidR May 3, 2016

Instead of conemu which does have quite childish/ridiculous design I prefer to see this two features/options in command line window(which overall does have simple and good design):

  1. Hide scroll bar (which is quite waste of space,because in all cases command line users tend to use keyboard)
  2. Unlimited buffer (which I prefer to have natively in command line window instead of piping output to less)

Both gnome-terminal, KDE's konsole dos have these.and I think both is one-day job to implement.

navidR commented May 3, 2016

Instead of conemu which does have quite childish/ridiculous design I prefer to see this two features/options in command line window(which overall does have simple and good design):

  1. Hide scroll bar (which is quite waste of space,because in all cases command line users tend to use keyboard)
  2. Unlimited buffer (which I prefer to have natively in command line window instead of piping output to less)

Both gnome-terminal, KDE's konsole dos have these.and I think both is one-day job to implement.

@mintty

This comment has been minimized.

Show comment
Hide comment
@mintty

mintty May 4, 2016

How about a real terminal application which provides a rich xterm-like feature set?

To make mintty interoperable with Bash on Windows, I see a few issues missing.
From a cygwin-based mintty, I can run cmd.exe but bash won't run from there, probably because of pty handling incompatibility.
Likely, mintty should be compiled natively in Ubuntu on Windows for that purpose, but as it uses a combination of native Windows and POSIX APIs, that would need to be supported in UoW.

[edit]

Mintty as a terminal for WSL is now available with an installer: https://github.com/mintty/wsltty

mintty commented May 4, 2016

How about a real terminal application which provides a rich xterm-like feature set?

To make mintty interoperable with Bash on Windows, I see a few issues missing.
From a cygwin-based mintty, I can run cmd.exe but bash won't run from there, probably because of pty handling incompatibility.
Likely, mintty should be compiled natively in Ubuntu on Windows for that purpose, but as it uses a combination of native Windows and POSIX APIs, that would need to be supported in UoW.

[edit]

Mintty as a terminal for WSL is now available with an installer: https://github.com/mintty/wsltty

@bitcrazed

This comment has been minimized.

Show comment
Hide comment
@bitcrazed

bitcrazed May 6, 2016

Collaborator

We'll be publishing a blog post highlighting the many improvements we've made to the Windows Console once some of the latest fixes bubble up into the insider releases.

We hear you regarding improvements to the console's VT-100/ANSI/XTerm support and for additional console app features and will talk more about our plans to address many of your suggestions and requests in the future.

In the meantime, if you have console-specific feature requests, please be sure to upvote/add to our Console UserVoice: https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo

Collaborator

bitcrazed commented May 6, 2016

We'll be publishing a blog post highlighting the many improvements we've made to the Windows Console once some of the latest fixes bubble up into the insider releases.

We hear you regarding improvements to the console's VT-100/ANSI/XTerm support and for additional console app features and will talk more about our plans to address many of your suggestions and requests in the future.

In the meantime, if you have console-specific feature requests, please be sure to upvote/add to our Console UserVoice: https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo

@bitcrazed bitcrazed added the feature label May 6, 2016

@bitcrazed bitcrazed added this to the Backlog milestone May 6, 2016

@DanielGGordon

This comment has been minimized.

Show comment
Hide comment
@DanielGGordon

DanielGGordon May 11, 2016

@mintty So it's not possible to run this in Mintty? I was hoping to install Zsh with Powerline and get some nice prompt colors, but it doesn't seem like that's possible - unless I'm missing something.

I don't think Windows should underestimate the power of a pretty prompt. Imagine if the next blog post had a picture of the Windows command line looking like this or something. That would really catch people's attention.

DanielGGordon commented May 11, 2016

@mintty So it's not possible to run this in Mintty? I was hoping to install Zsh with Powerline and get some nice prompt colors, but it doesn't seem like that's possible - unless I'm missing something.

I don't think Windows should underestimate the power of a pretty prompt. Imagine if the next blog post had a picture of the Windows command line looking like this or something. That would really catch people's attention.

@yantis

This comment has been minimized.

Show comment
Hide comment
@yantis

yantis May 12, 2016

@DanielGGordon You might want to try ConsoleZ https://github.com/cbucher/console
ZSH with Powerline works great with build 14342

Here is a screenshot of it runing on Windows 10 Build 14342
consolez

yantis commented May 12, 2016

@DanielGGordon You might want to try ConsoleZ https://github.com/cbucher/console
ZSH with Powerline works great with build 14342

Here is a screenshot of it runing on Windows 10 Build 14342
consolez

@midurad

This comment has been minimized.

Show comment
Hide comment
@midurad

midurad Aug 10, 2016

Unfortunately neither ConEmu, Console2 nor ConsoleZ seem to work fully with Bash on Windows (or Cygwin for that matter). Ctrl+/ and other key bindings are not passed to bash when running under these. For me, when running Windows 10 Bash under ConsoleZ, the arrow keys don't work either. ConEmu had the same problem (although in that case the problem was solvable). Windows terminal isn't any better in that respect either.

The lack of a unified terminal emulator under Windows, especially with Windows 10 Bash being out is a real bummer. Microsoft has done a great work thus far with bringing Linux to Windows and improving the existing terminal but as @DanielGGordon has already pointed out, the power of a familiar, modern terminal cannot be underestimated.

Also, a question to the Microsoft team. How about Clink? It makes interaction with cmd so much more bearable. It is open source. Why not make integrate it into cmd?

midurad commented Aug 10, 2016

Unfortunately neither ConEmu, Console2 nor ConsoleZ seem to work fully with Bash on Windows (or Cygwin for that matter). Ctrl+/ and other key bindings are not passed to bash when running under these. For me, when running Windows 10 Bash under ConsoleZ, the arrow keys don't work either. ConEmu had the same problem (although in that case the problem was solvable). Windows terminal isn't any better in that respect either.

The lack of a unified terminal emulator under Windows, especially with Windows 10 Bash being out is a real bummer. Microsoft has done a great work thus far with bringing Linux to Windows and improving the existing terminal but as @DanielGGordon has already pointed out, the power of a familiar, modern terminal cannot be underestimated.

Also, a question to the Microsoft team. How about Clink? It makes interaction with cmd so much more bearable. It is open source. Why not make integrate it into cmd?

@aseering

This comment has been minimized.

Show comment
Hide comment
@aseering

aseering Aug 10, 2016

Contributor

@midurad -- you mentioned gnome-terminal, etc; have you considered running one of them directly? I know that's one of @fpqc 's favorite topics :-)

This seems to be a common discussion topic; there are a bunch of tickets about it. I suspect that, as far as bug-tracking purposes go, the WSL team gets the point :-) For us users figuring out what to do, maybe it's worth starting a forum thread?

Contributor

aseering commented Aug 10, 2016

@midurad -- you mentioned gnome-terminal, etc; have you considered running one of them directly? I know that's one of @fpqc 's favorite topics :-)

This seems to be a common discussion topic; there are a bunch of tickets about it. I suspect that, as far as bug-tracking purposes go, the WSL team gets the point :-) For us users figuring out what to do, maybe it's worth starting a forum thread?

@fpqc

This comment has been minimized.

Show comment
Hide comment
@fpqc

fpqc Aug 10, 2016

@aseering lol sniped.

@midurad I have like 5000 posts on this github where I tell someone how to set up rxvt-unicode-256color with vcXsrv

fpqc commented Aug 10, 2016

@aseering lol sniped.

@midurad I have like 5000 posts on this github where I tell someone how to set up rxvt-unicode-256color with vcXsrv

@Perlence

This comment has been minimized.

Show comment
Hide comment
@Perlence

Perlence Aug 10, 2016

I've managed to run st on my WSL, turned out to be very nice! Thanks @aseering for the cue.

st on Windows 10

Perlence commented Aug 10, 2016

I've managed to run st on my WSL, turned out to be very nice! Thanks @aseering for the cue.

st on Windows 10

@fpqc

This comment has been minimized.

Show comment
Hide comment
@fpqc

fpqc Aug 10, 2016

@Perlence wow, cute! gonna try st now!

fpqc commented Aug 10, 2016

@Perlence wow, cute! gonna try st now!

@aseering

This comment has been minimized.

Show comment
Hide comment
@aseering

aseering Aug 11, 2016

Contributor

Thanks @Perlence ! I'll have to give that a try

Contributor

aseering commented Aug 11, 2016

Thanks @Perlence ! I'll have to give that a try

@fpqc

This comment has been minimized.

Show comment
Hide comment
@fpqc

fpqc Aug 11, 2016

@aseering to set the default geometry in st (which will dictate the size it launches), it's at the verrrrry bottom of st.c, hardcoded at the top of int main (here's my edit):

  main(int argc, char *argv[])
{
        uint cols = 140, rows = 22;

[...]} 

I did make a request to the sucksless developers to move that to config.h, and it looks like maybe they might do it =)

fpqc commented Aug 11, 2016

@aseering to set the default geometry in st (which will dictate the size it launches), it's at the verrrrry bottom of st.c, hardcoded at the top of int main (here's my edit):

  main(int argc, char *argv[])
{
        uint cols = 140, rows = 22;

[...]} 

I did make a request to the sucksless developers to move that to config.h, and it looks like maybe they might do it =)

@Perlence

This comment has been minimized.

Show comment
Hide comment
@Perlence

Perlence Aug 12, 2016

@aseering @fpqc You can also set geometry via -g command-line option.

@aseering @fpqc You can also set geometry via -g command-line option.

@fpqc

This comment has been minimized.

Show comment
Hide comment
@fpqc

fpqc Aug 12, 2016

@Perlence yeah I saw that, but it's nice to set defaults too.

fpqc commented Aug 12, 2016

@Perlence yeah I saw that, but it's nice to set defaults too.

@dswartzen

This comment has been minimized.

Show comment
Hide comment
@dswartzen

dswartzen Aug 18, 2016

It would be nice if the PGUP and PGDN keys worked for paging up and down in the terminal with bash, like they do in the powershell or in an Xterm.

Right now the only way to scroll (that I've found) is to use the mouse and the scrollbar, or right click and enter "scroll" mode and then the page keys work. That's too tedious. The idea is to scroll without taking your hands off the keyboard. CTRL-B, CTRL-F like in vim would also be acceptable.

The cut and paste with the mouse is clunky but works well enough for now.

It would be nice if the PGUP and PGDN keys worked for paging up and down in the terminal with bash, like they do in the powershell or in an Xterm.

Right now the only way to scroll (that I've found) is to use the mouse and the scrollbar, or right click and enter "scroll" mode and then the page keys work. That's too tedious. The idea is to scroll without taking your hands off the keyboard. CTRL-B, CTRL-F like in vim would also be acceptable.

The cut and paste with the mouse is clunky but works well enough for now.

@fpqc

This comment has been minimized.

Show comment
Hide comment
@fpqc

fpqc Aug 19, 2016

@dswartzen you can manually change your TERM= variable to one that is more correct (since the Windows console does not implement lots of xterm's features). I think someone on this github repo has found a good terminfo setting that is included in the terminfo database and represents the true functionset of the Win10 console.

Ideally, someone could throw a proper terminfo for bash.exe and the Windows console (both the wrapper and the Windows console impose their own limitations (for example, stripping of color codes and mouse escape sequences is done at the wrapper level, not the console level).

fpqc commented Aug 19, 2016

@dswartzen you can manually change your TERM= variable to one that is more correct (since the Windows console does not implement lots of xterm's features). I think someone on this github repo has found a good terminfo setting that is included in the terminfo database and represents the true functionset of the Win10 console.

Ideally, someone could throw a proper terminfo for bash.exe and the Windows console (both the wrapper and the Windows console impose their own limitations (for example, stripping of color codes and mouse escape sequences is done at the wrapper level, not the console level).

@dswartzen

This comment has been minimized.

Show comment
Hide comment
@dswartzen

dswartzen Aug 19, 2016

@fpqc I've tried most of the TERM variants in /lib/terminfo to try to get one where the page keys work, but I'm not having any luck. Please post in here if you find out which TERM is the best to use in the windows console.

The only way I could get a full size block cursor in vim was to do a set term=ansi in .vimrc

@fpqc I've tried most of the TERM variants in /lib/terminfo to try to get one where the page keys work, but I'm not having any luck. Please post in here if you find out which TERM is the best to use in the windows console.

The only way I could get a full size block cursor in vim was to do a set term=ansi in .vimrc

@mintty

This comment has been minimized.

Show comment
Hide comment
@mintty

mintty Sep 16, 2016

Mintty as a terminal for WSL is now available with an installer: https://github.com/mintty/wsltty

mintty commented Sep 16, 2016

Mintty as a terminal for WSL is now available with an installer: https://github.com/mintty/wsltty

@be5invis

This comment has been minimized.

Show comment
Hide comment
@be5invis

be5invis Oct 26, 2016

Member

Please, implement the pty api in win32, so that we will no longer need to hook the programs.

Member

be5invis commented Oct 26, 2016

Please, implement the pty api in win32, so that we will no longer need to hook the programs.

@fpqc

This comment has been minimized.

Show comment
Hide comment
@fpqc

fpqc Oct 26, 2016

@be5invis this may be coming. Read all of #111

fpqc commented Oct 26, 2016

@be5invis this may be coming. Read all of #111

@wolf99

This comment has been minimized.

Show comment
Hide comment
@wolf99

wolf99 Feb 17, 2017

Would be cool if there was some way of scrolling within the console without having to resort to the mouse. Ubuntu bash uses Shift+PageUp/Down AFAIK.

wolf99 commented Feb 17, 2017

Would be cool if there was some way of scrolling within the console without having to resort to the mouse. Ubuntu bash uses Shift+PageUp/Down AFAIK.

@shaunuk

This comment has been minimized.

Show comment
Hide comment
@shaunuk

shaunuk Mar 8, 2017

Found a work around :)

run cmd first then type bash....

shaunuk commented Mar 8, 2017

Found a work around :)

run cmd first then type bash....

@bonki

This comment has been minimized.

Show comment
Hide comment
@bonki

bonki Apr 10, 2017

@Perlence Can you give a hint on how to get st (/X) running?

bonki commented Apr 10, 2017

@Perlence Can you give a hint on how to get st (/X) running?

@Perlence

This comment has been minimized.

Show comment
Hide comment
@Perlence

Perlence Apr 11, 2017

@bonki I built st from source, then I installed VcXsrv and set DISPLAY environment variable in WSL to that of VcXsrv. Everything worked pretty smooth, I didn't have to do any workarounds.

@bonki I built st from source, then I installed VcXsrv and set DISPLAY environment variable in WSL to that of VcXsrv. Everything worked pretty smooth, I didn't have to do any workarounds.

@bonki

This comment has been minimized.

Show comment
Hide comment
@bonki

bonki Apr 11, 2017

@Perlence Thanks for the fast reply, works perfectly! I think I'll stick to wsltty though for the time being until I need X anyway.

bonki commented Apr 11, 2017

@Perlence Thanks for the fast reply, works perfectly! I think I'll stick to wsltty though for the time being until I need X anyway.

@dman777

This comment has been minimized.

Show comment
Hide comment
@dman777

dman777 Feb 8, 2018

Is there a way to enable quick edit mode?

dman777 commented Feb 8, 2018

Is there a way to enable quick edit mode?

@lqueryvg

This comment has been minimized.

Show comment
Hide comment
@lqueryvg

lqueryvg Apr 21, 2018

Mouse selection has always broken IMO on windows terminals. For some reason this bad behaviour has been "ported" through to all the relatives (ConEmu, Cmder etc) rather than being properly fixed. I really don't understand why.

For example, double left-click a word (on this page) then on the second click keep the left mouse button down and drag over other words. The selection will be extended to included entire words.

Triple-click should do similar for whole lines.

This works in all GUI applications on Mac, Linux & Windows and is an accepted and expected idiom. But not in a Windows command prompt !

If Microsoft really want to embrace unix, I suggest they take a look at the rich set of mouse selection features available in Putty (where you can even choose your own character selection classes) and use that as their benchmark. Also take look at iTerm2 on Mac.

Mouse selection has always broken IMO on windows terminals. For some reason this bad behaviour has been "ported" through to all the relatives (ConEmu, Cmder etc) rather than being properly fixed. I really don't understand why.

For example, double left-click a word (on this page) then on the second click keep the left mouse button down and drag over other words. The selection will be extended to included entire words.

Triple-click should do similar for whole lines.

This works in all GUI applications on Mac, Linux & Windows and is an accepted and expected idiom. But not in a Windows command prompt !

If Microsoft really want to embrace unix, I suggest they take a look at the rich set of mouse selection features available in Putty (where you can even choose your own character selection classes) and use that as their benchmark. Also take look at iTerm2 on Mac.

@bitcrazed

This comment has been minimized.

Show comment
Hide comment
@bitcrazed

bitcrazed May 22, 2018

Collaborator

Closing this issue since:

  1. We've delivered most of these asks over the last few Win10 releases, including 24-bit color support, improved Console color palette, mouse and Copy & Paste support in Linux Console instances, etc.
  2. This is the WSL issues repo, but this is an issue in Console which has its own Console GitHub Repo
  3. GitHub doesn't allow issues to be moved between repos, preserving posters' identity :(

If you have further asks/issues, please file new issues on our Console GitHub Repo.

Collaborator

bitcrazed commented May 22, 2018

Closing this issue since:

  1. We've delivered most of these asks over the last few Win10 releases, including 24-bit color support, improved Console color palette, mouse and Copy & Paste support in Linux Console instances, etc.
  2. This is the WSL issues repo, but this is an issue in Console which has its own Console GitHub Repo
  3. GitHub doesn't allow issues to be moved between repos, preserving posters' identity :(

If you have further asks/issues, please file new issues on our Console GitHub Repo.

@bitcrazed bitcrazed closed this May 22, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment