basyura's blog

あしたになったらほんきだす。

ChatGPT : Ctrl+Enter で送信する

ChatGPT で Enter を押したら意図せず送信されたりされなかったりで挙動が一致しないのと、Enter で改行、Ctrl+Enter で送信とした方が分かりやすいのでやってみた。

※ Shift+Enter で改行のようだが、端末(win10 と win11 のOS 違い?)によっては Enter で改行になるのでよく分からない。その場合は tab を二回押して (送信ボタンにフォーカスを移動して) Enter が必要でめんどくさい (よくファイルダイアログが開く)。ime の設定周りが影響している?

  • tampermonkey でスクリプトを組み込む
  • Shift+Enter で改行になる場合 keyhac で Enter を Shift+Enter に置き換える。
  • Shift+Enter は google ime の設定で確定にしておく

で実装 & 設定変更

// ==UserScript==
// @name         ChatGPT
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://chat.openai.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=openai.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    document.body.addEventListener('keydown', function(e) {
        if (!(e.ctrlKey && e.key === 'Enter') || e.isComposing) {
            return;
        }

        if (e.srcElement.id != "prompt-textarea") {
            return;
        }

        let ele = document.querySelector("button[data-testid='send-button']")
        ele.click();
      
        setTimeout(()=> {
            let ele = document.querySelector("button.cursor-pointer");
            console.log(ele);
            if (ele != null) {
                ele.click();
            }
        }, 3000);
    });
})();

keyhac

    gpt = keymap.defineWindowKeymap(
        exe_name="vivaldi.exe", 
        class_name="Chrome_WidgetWin_1", 
        window_text="ChatGPT"
    )
    gpt["Enter"] = "Shift-Enter"

Google IME の設定

と、思ったら既に Chrome 拡張があった。

chrome.google.com

実装を見るに tampermonkey でやろうとしてたことと大差がないのだが・・・うまくいかなかったのなんでだろ。

Inkdrop - ちょっとしたスタイル設定

テキスト行の折返し。コードとテーブル表示は折り返さない。

.editor {
  .CodeMirror {
    pre.header.header-2.CodeMirror-line {
      max-width: 650px;
    }
    .table-row,
    .gfm-codeblock {
      max-width: none;
    }
  }
}

.CodeMirror-wrap pre.CodeMirror-line {
  max-width: 650px;
}

.mde-preview {
  p {
    max-width: 650px;
  }
  h2,
  ul {
    max-width: 680px;
  }
}

引用行で折り返しが発生した場合に凸凹にならないようにインデントを付ける

.editor {
  .CodeMirror {
    pre.quote {
      display: inline-block;
      text-indent: -1em;
      padding-left: 1em;
    }
  }
}

アマゾンの最強の働き方

某仕事関係者が勧めてきたので読了。

「創造的な活動を失敗に導く最も確実な方法は、だれかにそれを片手間の仕事としてやらせることだ」

答えは「シングルスレッド・リーダーシップ」と呼ばれるアマゾンのイノベーションにある。 この方式では、目標の達成に向けて、両立が難しいほかの責任を負わない1人の人物が、1つのプロジェクトを統括し、全体から切り離せる自律的なチームを率いる。

うちの組織で完全に欠けてるがこれで、あれもこれもそれもやって当たり前で色々なことをしていないと評価が低くなる (されにくくなる) ことに尽きる。組織というか、うちのチームな気もしてるが。