Skip to content

Win7: Cyrillic input with shift partially does not work #798

Description

@MVKozlov

Environment data

PS version: 5.1.14409.1012
PSReadline version: 2.0.0-beta3
os: 6.1.7601.17514 (win7sp1_rtm.101119-1850)
PS file version: 10.0.14409.1005 (rs1_srvoob.161208-1155)

Steps to reproduce or exception report

Installed latest PSReadline under PSv5.1 / Win7

switch keyboard to russian input, type:

  • without shift - йцукенгшщзхъ
  • should be (without shift but with caps) - ЙЦУКЕНГШЩЗХЪ
  • with shift only - ЦУШЩХЪ
  • with caps + shift - цукшщхъ

and many other symbols got eaten too

Activity

  1. changed the title [-]Win7: Cyrillic input with shift partially dows not work[/-] [+]Win7: Cyrillic input with shift partially does not work[/+] on Nov 7, 2018
  2. MVKozlov commented on Nov 7, 2018

    @MVKozlov
    ContributorAuthor
    PS version: 6.1.0
    PSReadline version: 2.0.0-beta3
    os: Linux gorets 4.4.0-135-generic #161-Ubuntu SMP Mon Aug 27 10:45:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    PS file version:

    ok

  3. MVKozlov commented on Nov 7, 2018

    @MVKozlov
    ContributorAuthor

    Something breaks between beta1 and beta2

  4. lzybkr commented on Nov 7, 2018

    @lzybkr
    Contributor

    Are you changing the layout after starting PowerShell? If so, this might be hard to fix, the api I rely on the determine if Shift is necessary does not honor keyboard layout changes.

  5. MVKozlov commented on Nov 7, 2018

    @MVKozlov
    ContributorAuthor

    Yes, I start PS and press shortcut to change layout. The same version (Beta3) works ok on Linux but does not work on Windows (both 7 and 10)

    Moreover, if I change default layout to Russian, (I start PSs with RUS layout) I can't get any russian upper case symbols with shift (at least qwerty line) and even when I switch to English I can't type any English symbols with shift as well!

    Seems there should be another PlatformWindows.cs override

  6. ForNeVeR commented on Dec 1, 2018

    @ForNeVeR
    Contributor

    The impact of this issue is very high, because multi-layout users switch their layouts literally all the time. I have some file names and content I want to enter into my PowerShell session in my native layout, and so I need to change my layout from time to time without restarting the whole PowerShell session, that's a disaster.

    Jason Shirk (@lzybkr), how could we help you with the issue? Could you please share any thoughts on that or show where I could find the code of that problematic API and PSReadLine's usage of that API? I'll be glad to help with the fix.

  7. added a commit that references this issue on Dec 2, 2018
    910f48b
  8. ForNeVeR commented on Dec 2, 2018

    @ForNeVeR
    Contributor

    Just wanted to report that it became worse on the latest nightly build at that point: no matter which layout is active when I start PowerShell 6.1 with PSReadLine, I cannot enter any Cyrillic letters at all: some of the keys result in ? being added to the input and some of them don't work at all.

    Will check the build from #822 after it's finished on CI though!

  9. lzybkr commented on Dec 2, 2018

    @lzybkr
    Contributor

    #822 fixes just the problem initially reported here.

    The rendering of ? (and it's just a rendering problem, the characters are correct if executed) was introduced by #771, the workaround for now is to run:

    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8

    There is one additional problem if you start PowerShell with the Cyrillic keyboard - PSReadLine will fail to load, and the only workaround right now is to start PowerShell with a different keyboard.

  10. ForNeVeR commented on Dec 2, 2018

    @ForNeVeR
    Contributor

    There is one additional problem if you start PowerShell with the Cyrillic keyboard - PSReadLine will fail to load, and the only workaround right now is to start PowerShell with a different keyboard.

    Well, honestly I cannot reproduce that on the latest build (e.g. if I install build from #822). I was able to reproduce that on beta3 though.

    Thanks for the tip about [Console]::OutputEncoding, it helped!

  11. added a commit that references this issue on Dec 3, 2018
    3d246d9
  12. mahoune commented on Jan 21, 2019

    @mahoune

    We also face this issue on Windows 10 (1809) Version: 10.0.17763 Build 17763.

    Preinstalled powershell module PSReadLine verison is 2.0.0

    PS U:\> Get-Module | ? {$_.Name -eq "PSReadline"} | Select Name, Version
    
    Name       Version
    ----       -------
    PSReadline 2.0.0
    

    Here's a link to discussion on technet:
    https://social.technet.microsoft.com/Forums/ru-RU/8ccdf213-56ca-461e-8ce1-0cc82391dddb/windows-10-1809-10551088108610731083107710841099-1089

    The problem exist with EN-US keyboard layout selected on powershell console start.
    With Cyrillic keyboard layout (RU-RU) select problem doesn't reproduced, `cause module PSReadLine probably doesn't load properly.

  13. iSazonov commented on Feb 5, 2019

    @iSazonov

    Steve Lee (@SteveL-MSFT) These is very annoying. Can you share information when fixes is expected for Windows?

  14. SteveL-MSFT commented on Feb 5, 2019

    @SteveL-MSFT
    Member

    Ilya (@iSazonov) the fix for PSReadLine not starting on non-en-US keyboard layouts is already checked into latest Win10 and should be flighting on latest Insider builds

  15. iSazonov commented on Feb 5, 2019

    @iSazonov

    Steve Lee (@SteveL-MSFT) Thanks! Will we get this on WindowsUpdate? For 1809 and Windows 10 Ent 2019 at February or March?

  16. SteveL-MSFT commented on Feb 21, 2019

    @SteveL-MSFT
    Member

    Ilya (@iSazonov) for older builds, I think we just need to get another release of PSReadLine to PSGallery

  17. iSazonov commented on Feb 22, 2019

    @iSazonov

    Steve Lee (@SteveL-MSFT) But it is enterprise LTS versions.

  18. megapro17 commented on May 22, 2020

    @megapro17

    I'm on 2004 build and still not fixed, PSReadLine version is still 2.0.0
    I had to update it manually, and bug is gone
    Run this line in PowerShell from administrator:
    Install-Module PSReadLine -force

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions