毒男日記

本当に面白いと思ったコンテンツをそれとなくご紹介

windowsの半角/全角をmacみたいに左右の親指で設定したい症候群

常日頃から全角半角キーとの距離感に関しては思うところがあった。

彼ってば利用頻度の割に遠いのよね。

一方でmacのかなキーや、英数キーのマブダチ感は異常ですよ。

そこで自然と表題の通り病を患ってしまう訳である。


どうにかして前者の役割を剥奪すべく、ネットを検索すると、

Windowsでemacsキーバインド+IME操作 – RainbowDevilsLand

というサイトを発見。keyhacというアプリを使え良いらしい。

windows10にも対応しているとのことで、新しく買ったノートパソコンでも大丈夫。

素晴らしいじゃないですか。


どうせなら、カーソル移動もカーソルキーを使わずにやりたいですね。

ということで設定を入れ込んでみた。



Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,e0,3a,00,00,00,00,00



import sys
import os
import datetime

import pyauto
from keyhac import *

def configure(keymap):

    # --------------------------------------------------------------------
    # Customizing the display

    # Font
    keymap.setFont( "MS Gothic", 12 )

    # Theme
    keymap.setTheme("black")

    # --------------------------------------------------------------------

    # Global keymap which affects any windows
    if 1:
        keymap_global = keymap.defineWindowKeymap()

        keymap_global["RC-p"] = "Up"
        keymap_global["RC-n"] = "Down"
        keymap_global["RC-b"] = "Left"
        keymap_global["RC-f"] = "Right"
        keymap_global["RC-a"] = "Home"
        keymap_global["RC-e"] = "End"

        keymap_global["RC-Alt-p"] = "Shift-Up"
        keymap_global["RC-Alt-n"] = "Shift-Down"
        keymap_global["RC-Alt-b"] = "Shift-Left"
        keymap_global["RC-Alt-f"] = "Shift-Right"
        keymap_global["RC-Alt-a"] = "Shift-Home"
        keymap_global["RC-Alt-e"] = "Shift-End"

    ## IMEを切り替える
    #
    #  @param flag      切り替えフラグ(True:IME ON / False:IME OFF)
    #
    def switch_ime(flag):

        # バルーンヘルプを表示する時間(ミリ秒)
        BALLOON_TIMEOUT_MSEC = 500

        # if not flag:
        if flag:
            ime_status = 1
            message = u"[あ]"
        else:
            ime_status = 0
            message = u"[_A]"

        # IMEのON/OFFをセット
        keymap.wnd.setImeStatus(ime_status)
        # IMEの状態をバルーンヘルプで表示
        keymap.popBalloon("ime_status", message, BALLOON_TIMEOUT_MSEC)
        
    def ime_on():
        switch_ime(True)
        
    def ime_off():
        switch_ime(False)


    keymap_global["(28)"] = ime_on
    keymap_global["(29)"] = ime_off


以上の設定で、変換キーと無変換キーが半角と全角の切り替えになる。

また、右ctrl+f, b, n, pでキーボードの矢印キー相当の動きが行える。

いちいちカーソルキーに指を伸ばさなくて良いの凄く嬉しいですわ。


shift~的な記述が存在しているのは、既存文字列のシフト選択のため。

親指でシフトキーが押せるとメッチャ便利ですよ。

テキストの選択にマウスの出番が無くなるので右手に優しいッス。


あと、レジストリの変更でcaps lockには右ctrlのみを割り当てた。

これによって左のctrlでは、従来のwindowsちっくなctrl操作が可能だ。

ctrl+cでコピーして、ctrl+vでペーストみたいな。


やったぜ。

日本語と横文字の交じり合った文章を快適に打つことができるぞ。


独占機能を奪われた全角半角キーは本日付でリストラでございます。