Skip to content
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

Windows Terminalに関する情報を追記 #2

Merged
merged 10 commits into from
Oct 6, 2020
Merged

Windows Terminalに関する情報を追記 #2

merged 10 commits into from
Oct 6, 2020

Conversation

cmplstofB
Copy link
Contributor

こんにちは。

Control functionsの記事にWindows Terminalに関する情報を追記してみました。

他人のGitHub pagesに修正ではないpull requestをすることはちょっと気がひけますが(ほんとうは個人で勝手にやるのが良いのでしょう),せっかくの集大成に少しでも貢献したかったので,こういう形にしました。
もしご迷惑ならどうか遠慮なく破棄してください。

Copy link
Owner

@akinomyoga akinomyoga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます!

他人のGitHub pagesに修正ではないpull requestをすることはちょっと気がひけますが

いえ。寧ろこういった PR こそありがたいです。「コードに対しては纏まった大きさの patch が来るけれども、ドキュメントには誤字脱字の修正程度しか patch が来ないので放置されてしまう」というのは OSS ではありがちなので…。

以下微修正確認していただけますか。よろしくお願いいたします。

escseq.html Outdated Show resolved Hide resolved
escseq.html Outdated Show resolved Hide resolved
escseq.html Outdated Show resolved Hide resolved
escseq.html Outdated Show resolved Hide resolved
escseq.html Outdated Show resolved Hide resolved
escseq.html Outdated Show resolved Hide resolved
@cmplstofB
Copy link
Contributor Author

対応ありがとうございます。reviewに対する追加の修正分をreviewしていただけますか。

@akinomyoga
Copy link
Owner

いいかなって思います。マージしますね。ありがとうございます!

@akinomyoga akinomyoga merged commit 8f85a47 into akinomyoga:gh-pages Oct 6, 2020
@cmplstofB
Copy link
Contributor Author

cmplstofB commented Oct 6, 2020

雑談になってしまうのですが,akinomyoga様はWindows TerminalがDA2応答を偽装していることについてどう思われますか。
私の感覚では,

  • たしかに,端末アプリケーションが特定の機器・バージョンに依存するのはあまり良い実装とはいえない
    • 一方で特に処理速度や安全性(例えば端末外からの文字列貼り付け)に関する新しい機能は積極的に使うべきであり,その際にDA2応答を見る必要がある
  • すでに$TERM環境変数やDA1応答では偽造が横行しているのだから,端末間の互換性はそこで担保すべきで,DA2応答まで偽造するのは得策ではない
    • そもそも「特定の機器・バージョンに依存しないこと」と「機器・バージョンを偽りなく示すこと」とは両立する概念である

といった具合なのですが……。

(本当はWindows Terminal側での当該議論で主張したいのですが,日本語でも厳しいのに,英語圏の人と既存の実装の変更を迫る議論なんでできないので……)

@akinomyoga
Copy link
Owner

あー。これはですね。最近、物凄い長大な議論が MinTTY 及び Terminal WG で行われていて収集が付かない事になっているやつです。

こういうのは一つの端末で勝手に動いても仕方がないので、様々な Terminal が議論に参加しています。Windows Terminal からも j4james (James Holderness) が議論に参加しています。しかし…「既存の TERM や DA は問題があるから新しい枠組みを作ろう」と皆が色々な案を勝手に出して漫然と互いに否定しあっているので収集がつかず、更に議論が収束しない内に痺れを切らしてそれぞれ勝手に新しく実装しだしている感じで…。最近 mintty が CSI > q に対応して xterm がそれに追随しました (仕様は最新の xterm ctlseqs の XTVERSION を参照)。今アクティブな議論は上の一番最後のもので、端末・version の判定ではなくて機能の判定にするべきだという方向です (個人的には機能ベースだと限界があると感じてはいるのですが静観している感じです)。

akinomyoga様はWindows TerminalがDA2応答を偽装していることについてどう思われますか。

個人的には、TERM を偽装するのも DA2 を偽装するのも困りものですね。ble.sh でも最近の端末の機能の有無の判定に困っています。でも、上で散々議論されている通り、端末アプリケーション側で数多ある端末とバージョン毎にどの機能が実装されているのかのリストを管理するのは辛い。これだと無名な端末は新しい機能を実装しても端末アプリケーションに使ってもらえることはない、という事になってしまいます。それで最近は機能ベースの判定方法について議論されている訳ですが、これはこれで確立した機能に対してしか機能IDが振られないので、実験的な機能に対しては結局 "端末・バージョン" を使うしかないのではないかと個人的には思っています。

(本当はWindows Terminal側での当該議論で主張したいのですが,日本語でも厳しいのに,英語圏の人と既存の実装の変更を迫る議論なんでできないので……)

多分、今 Windows Terminal の Issue で議論しても無視されるか、よくて上記の一番最後の Terminal WG の議論に誘導されるかだと思います。

@cmplstofB
Copy link
Contributor Author

無名な端末は新しい機能を実装しても端末アプリケーションに使ってもらえることはない、という事になってしまいます

それは問題ですね。そしてそれを解決する手段としての機能単位の端末応答というのは良い考えに思えます。実験的な機能は使えないかもしれませんが,そもそも実験的な機能を使うのは端末周りに長けた開発者でしょうし,その場合は「端末応答を読み取って自動的に機能を有効にする」ような仕組みはあまり必要ないのでは……とも思います。

Terminal WG

この団体,初めて知りました。Terminal WGからの自身についての説明が見当らないので確かめられないのですが,コミット履歴を見ると1年くらい前に本格的に活動を初めたようですね。
「確立した仕様」と題された空のディレクトリが虚しい……。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants