microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
95.56k stars 8.31k forks source link

Has the automatic switching input method function been canceled? #17816

Closed ZhangWeinian closed 1 month ago

ZhangWeinian commented 2 months ago

The automatic switching input method function before version 1.21.2361.0 is very useful! But after the update, this feature became invalid, and I couldn't find any relevant options in the settings. May I ask if this function can be restored? This is of great convenience for those who do not speak English as their mother tongue!

zadjii-msft commented 2 months ago

Wait, just to be sure - you actually liked that it switched back to English by default?

We had pretty much universally negative feedback on that, or at least the way it was implemented.

In 1.21 we did entirely rewrite the IME code, so we probably can't just bring it back like it was before. But I can imagine we could add an opt-in setting that would bring that back...


older context:

ZhangWeinian commented 2 months ago

Yes, my friend. When the focus is on the WindowsTerminal window, automatically switch the input method to English; At the same time, when the focus leaves the WindowsTerminal window, switch back to the original input method. I think this feature is quite practical!!! My native language is Chinese, but when executing commands on a WindowsTerminal, I use English. Previously, I could search for Chinese content in a browser and execute commands in a WindowsTerminal without having to switch input method languages back and forth. But now when I first open the WindowsTerminal, I have to manually change the input method to English first🤣

lhecker commented 2 months ago

Edit: Oh, I haven't reloaded the website while writing this comment. I wrote it before either of you two had commented.

We've received a lot of complaints from our users about the automatic input method switching. It was never an intentional feature either, so we fixed this supposed issue.

But the new version ensures that the input method doesn't change when you switch between applications. When you launch Windows Terminal, it'll be in the composition mode (中), press Shift and it'll switch to English input (英). Then when you switch to another application and come back to Windows Terminal it should restore English input (英). Does this not happen for you?

ZhangWeinian commented 2 months ago

My previous description may not have been clear enough, but I would like to have this feature: When opening a new Windows terminal window, always ensure that the default input method at this time is the English input method. This feature seemed to exist in previous versions (as there was no need to manually switch input methods at the time), but after updating to version 1.21.2361.0, when opening a new Windows terminal window, it uses the Chinese input method.

My intention is to automatically switch the default input method language to English input method if the focus is on the Windows Terminal window, without the need for manual switching, just like before version 1.21.2361.0❤️

lhecker commented 2 months ago

Would your issue also be solved if we ensured the input method doesn't change when you create a new window or tab?

Generally speaking, I don't mind adding a setting that changes the method to English on start.

ZhangWeinian commented 2 months ago

Yes, it would be great if a setting could be added that allows users to decide which language input method to use when opening a WindowsTerminal window!!!

Delphier commented 2 months ago

I encountered the same problem. After upgrading, I had to switch the input method every time I opened the terminal.

I don't think it's necessary to add a setting option. Like the previous version, the default English should be a better choice. Because most of the input in the terminal is English commands, few people should use commands in other languages. When you need to input other languages, just use Shift to switch.

lhecker commented 2 months ago

I don't think it's necessary to add a setting option. Like the previous version, the default English should be a better choice.

As mentioned above, a lot of people complained about the switching, so we won't do that anymore. The IME now uses whatever language Windows picks for us.

@Delphier By the way, if you don't mind, can you explain why this change is annoying for you? I know that you can switch to English input by pressing Shift, right? So, is this more about convenience for you, or are there some bugs in Windows Terminal where it switches between Chinese and English input unexpectedly?

Delphier commented 2 months ago

@lhecker

Since Windows 11 (maybe Windows 10, I'm not sure), the problem of input method switching has been bothering me: My default input method is Chinese, but some programs are in English input state by default after opening, such as Chrome, Edge, VSCode, and the old version of Windows Terminal, but some programs are in Chinese input state after opening, such as Sublime Text, Notepad and many other programs.

I don't know much about input method development, so I'm not sure where the problem lies.

I just checked the Windows input method settings again and found that the input method I use can set the default mode (Chinese or English). It was always Chinese before. After I switched to English, I found that the new version of Windows Terminal will be in English input state by default.

image

So my previous suggestion should be inaccurate. The current Windows Terminal input method processing should be correct: keep it consistent with the Windows input method settings.

ZhangWeinian commented 2 months ago

Considering the widespread use of WindowsTerminal, I believe adding a setting for users to decide which language input method to use when opening WindowsTerminal is the most widely accepted choice. Combined with the feature in Windows that allows different input methods to be used in different windows, it should be possible to completely avoid manually switching input methods.

Ensure that the default input method when typing in WindowsTerminal is English (unless the user switches to it after opening the terminal), and that windows outside the terminal are determined by the Windows system and the user.