インフラエンジニアのPC環境

インフラエンジニアは常に効率環境を目指している

ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム

OS


CUIソフト

今はほぼ未使用

操作を覚える必要のあるおすすめソフト

software:keybord:keyhac


keyhacでキーをカスタマイズする方法

keyhacとは

スクリプト言語 Python を使って、キーボード操作を カスタマイズするアプリケーションです。
https://crftwr.github.io/keyhac/doc/ja/

  • WindowsとMacに対応。(ただMacは正常に動かず。開発も止まっている。)


Windowsの設定例

USキーボードで、Windowsの右Alt、左Altで日本語入力を切り替える設定

  • 左Altで、英語入力
  • 右Altで、日本語入力
import sys
import os
import datetime

import pyauto
from keyhac import *


def configure(keymap):

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

        # 左Altキーを空打ちするとime_off
        keymap_global["O-LAlt"] = lambda: switch_ime(False)

        # 右Altキーを空打ちするとime_on
        keymap_global["O-RAlt"] = lambda: switch_ime(True) 


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

        # if not flag:
        if flag:
            ime_status = 1

        else:
            ime_status = 0

        # IMEのON/OFFをセット
        keymap.wnd.setImeStatus(ime_status)

    
    # MacのリモートデスクトップからWindowsPCを操作する場合
    # AltとWinキーを逆にする
    #keymap.replaceKey( "LAlt", "LWin" )
    #keymap.replaceKey( "LWin", "LAlt" )
    
    #keymap.replaceKey( "RAlt", "RWin" )
    #keymap.replaceKey( "RWin", "RAlt" )


    # Altがメニューに反応してしまう対策
    # ALT押したあとにCtrlのDownUpが入ればメニュー移動しない。
    keymap_global[ "D-LALT" ] = "D-LALT", "LCTRL"
    keymap_global[ "D-RALT" ] = "D-RALT", "LCTRL"


Vi風にする

   keymap_global[ "Alt-h"  ] = "Left"
   keymap_global[ "Alt-j" ] = "Down"
   keymap_global[ "Alt-k" ] = "Up"
   keymap_global[ "Alt-l"  ] = "Right"


WindowでMac風キー操作を実現する

注意:Teratermを使っている人は、この設定を使うとうまくコピペできなくなります。
Teratermは、「Alt-C」「Alt-V」を使います。

    #Mac風
    keymap_global["Alt-S"] = "Ctrl-S"
    keymap_global["Alt-C"] = "Ctrl-C"
    keymap_global["Alt-X"] = "Ctrl-X"
    keymap_global["Alt-V"] = "Ctrl-V"
    keymap_global["Alt-W"] = "Ctrl-W"

    keymap_global["Ctrl-A"] = "Home"
    keymap_global["Ctrl-E"] = "End"
    keymap_global["Ctrl-Shift-A"] = "Shift-Home"
    keymap_global["Ctrl-Shift-E"] = "Shift-End"


キーバインドにしたくないアプリケーションソフトを指定

    def is_target(window):
        if window.getProcessName() in ("chrome.exe",          # Chrome
                                       "firefox.exe",         # Firefox
                                       "WindowsTerminal.exe," # Windows Terminal
                                       "cmd.exe",             # cmd
                                       "mintty.exe",          # mintty
                                       "gvim.exe",            # GVim
                                       "VirtualBox.exe",      # VirtualBox
                                       "putty.exe",           # PuTTY
                                       "ttermpro.exe",        # TeraTerm
                                       "vncviewer.exe"):      # UltraVNC
            return False
        return True


キーバインド変更するためのエディタ

    # --------------------------------------------------------------------
    # Text editer setting for editting config.py file
    # キーバインド変更するためのエディタ。標準ではnotepad.exeだがここでは好きなエディタを指定
    # Setting with program file path (Simple usage)
    if 1:
        keymap.editor = "C:\\Program Files (x86)\\sakura\\sakura.exe"


Escapeで、IMEをOFFにする

keymap_global["Esc"] = lambda: keymap.getWindow().setImeStatus(0)


個別のソフトの指定

    # 【個別ソフト】「Chrome」の設定
    if  1:
        keymap_chrome = keymap.defineWindowKeymap( exe_name="chrome.exe" )
        keymap_chrome[ "Ctrl-H" ]   = "Back" #Backspace


コンソールを非表示にする

keyhac.exeが存在しているディレクトリに生成されているkeyhac.iniの[console]セクションに記述されているvisible=1をvisible=0に設定する


Macでの利用(問題あり。)

キーボードイベント全部持っていかれてしまい、想定通りに動かないので、利用しない方がいいです。

Mac起動時の注意点

最近のmacOSでは、署名のないソフトウェアがみだりに起動できないようになっています。
初回起動時は、アプリのアイコンを右クリック(Ctrl+クリック)してコンテキストメニューを表示。
そこから「開く」で起動します。

USキーボードの左Cmdを「英数」に、右Cmdを「かな」にする

「英数」キーは102 「かな」キーは104です

import os
import datetime
import subprocess

from keyhac import *


def configure(keymap):

    keymap_global = keymap.defineWindowKeymap()

    # 右Altキーを空打ちするとime_off
    keymap_global["O-LCmd"] = "102"

    # 左Altキーを空打ちするとime_on
    keymap_global["O-RCmd"] = "104"

HomeとEndを使う

    keymap_global["D-Home"] = "Cmd-Left"
    keymap_global["D-End"] = "Cmd-Right"
    keymap_global["D-Shift-Home"] = "Shift-Cmd-Left"
    keymap_global["D-Shift-End"] = "Shift-Cmd-Right"

iterm2で、Vim等のEscすると、IMEをオフにする

    keymap_iterm2 = keymap.defineWindowKeymap( app_name="com.googlecode.iterm2" )
    
    def escWithIMEOff():
        esc = keymap.InputKeyCommand("Esc")
        esc()
        ime_off = keymap.InputKeyCommand("(102)")
        ime_off()

    keymap_iterm2["Esc"] = escWithIMEOff


参考


software/keybord/keyhac.txt · 最終更新: 2024/01/25 00:02 by kurihara

ページ用ツール