20200113のMacに関する記事は3件です。

JISキーボード上でUSキー配列を実現し、さらにセミコロンをエンターにする

長年、色々なキー配列を試してきた。
USキー配列を使ったり、JISを使ったり、karabinerでキー配列を微妙にカスタマイズしたり。

ここでは、この試行錯誤の末に行き着いたキー配列とそれをmacOSで実現する方法について記事にしておく。

英語配列 v.s. 日本語配列

キーボードを選ぶ時や最初にノートPCを買う時に最初に選ぶことになるのが日本語配列(JIS配列)を使うか英語配列(ANSI配列)を選ぶかについて。

日本語配列
image.png

英語配列
image.png
(引用: https://ja.wikipedia.org/wiki/JIS%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89)

例えば、ちょっと検索しただけでもどちらの配列がいいかいろいろな意見がある。

それぞれ人の好みがあるのだが、かいつまんで紹介すると

JIS配列のメリット

  • Enterキーが大きい
  • 英数/かなキーがあり、全角半角の切替が容易

US配列のメリット

  • spaceが大きい
  • 記号の配置が論理的
  • returnキーが近い
  • 英数/かなキーがない分、CommandキーがSpaceキーに近い
    • 一方で最初に日本語入力切り替えのための設定が必要

という点が挙げられている。

僕の個人的な好みでは

  • 記号の配置はUSキーが好み
  • 英数/かなキーは絶対にほしい
    • 全角半角を一つのボタンで切り替える方式より、それぞれの専属のキーで現在の状態に依存せずに次に打つ文字を指定できる方が絶対に使いやすい
    • spaceキーがUS配列ほど大きい必要は全くなく、親指で打てるキーが多いJIS配列が好み

という矛盾した要求がある。

そこでJISキーボードを使って物理的にはJIS配列を使いつつも、キー配列はUS配列にできるだけ近くなる様にカスタマイズした。
ほかにもいろいろとキー配列をカスタマイズしたので、そこでは手順をその手順をまとめておく。

カスタマイズ手順

1. JISキーボードをUS配列として認識させる

「システム環境設定」→「キーボード」→ 「キーボードの種類を変更」
image.png

たまに「キーボードの種類を変更」のボタンが出ないことがある。どういう条件で出てくるのかわからないが、「システム環境設定」→「言語と地域」で、優先する言語に日本語だけでなく英語も加えると「キーボードの種類を変更」ボタンが表示される様になった。

キーボード設定アシスタントが起動する。「Shiftキーの横のキーを押せ」と言われるので言われた通りに押すとJISのキーボードとして識別されるはずである。しかし、ここでANSIを選ぶ。
image.png

これでほぼほぼUS配列のキー配列が手に入る。
しかし、このままではJISキーボードにない `\のキーが押せない。

2. Karabinerを使ってキーのリマップをする

以下のようにリマップをする。

image.png

  • まずJISキーボードで右shiftの左側のキー(_があるところ)が"international 1"という名前になっている。そのキーを`にマップする。
  • - 変換、無変換キーを「英数」「かな」キーにする。これでJIS配列を使っているかのごとく全角半角を切り替えられる。
  • 右⌘キーをcontrolキーにマップする。(controlは非常に頻繁に打つので、親指で打てる箇所に置いている)
  • \キーはenterキーの左(JISキーボードの[の位置)に特に設定しなくてもマップされる。

3. karabinerのcomplex modificationsを使ってセミコロンエンターを実現する

セミコロンの位置にあるキーをEnterキーにマップしている。
右手の小指のホームポジションの位置にenterキーがくることになる。やってみるとわかるが、これが非常に打ちやすい。このカスタマイズをするためにはkarabinerでcomplex modificationsという設定をする必要がある。
実現方法はこちらの記事に書いた。
Karabiner-Elementsを使ってセミコロンエンターを実現する

ほかにもkarabinerを使って、アプリを切り替えるホットキーを実現する設定をしていたり、特定のアプリでショートカットキーを上書きしたりしている。

この一連のカスタマイズを使ってようやく満足のいく配列が実現できた。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【第2回】pythonでCPUとメモリの使用率を取得する

CPUとメモリの使用率を取得する第2回です。

前回からの違いは、ボタンを押した分だけログが取れること

動くこと優先してます。

  • ソース的にキレイにできそうなところもあるけどとりあえず動くことを優先してます。

ファイルの存在確認入れてるんだけど?

  • なんかうまく動いてないっぽい。
  • logファイルを先に作っておくとうまくいく。

動作確認

  • windows10 1909
  • mac catalina
#!/usr/bin/env python
import psutil as psu
import tkinter as tk
import sys
import os
import datetime

# tkinterでwindowの作成とタイトルを作る
# windowサイズの指定
root = tk.Tk()
root.title(u"CPU&メモリ使用率")
root.geometry("600x300")

# cpu用ラベル
Static1 = tk.Label(text=u'CPU:')
Static1.pack()
# CPUの取得した値を表示する
txtcpu = tk.Entry(width=20)
txtcpu.pack()

# memory用ラベル
Static2 = tk.Label(text=u'memory:')
Static2.pack()

# memoryの取得した値を表示する
txtmem = tk.Entry(width=20)
txtmem.pack()


log = './cpumem.log'


def btn_click():
    # テキストボックスをクリア
    txtcpu.delete(0, tk.END)
    txtmem.delete(0, tk.END)
    if(os.path.exists(log)):
        with open(log, mode='a', encoding="utf-8") as f:
            # 時間の取得
            dt_now = datetime.datetime.now()
            # 日時のフォーマット修正
            dt = dt_now.strftime('%Y/%m/%d %H:%M:%S')
            # メモリの利用情報を取得
            memory = psu.virtual_memory()
            txtcpu.insert(0, memory.percent)
            cpu_percent = psu.cpu_percent(interval=1)
            txtmem.insert(0, cpu_percent)
            cpulog = txtcpu.get()
            memorylog = txtmem.get()
            f.write(dt + " " + cpulog + " , " + memorylog + "\n")
    else:
        with open(log, mode='w', encoding="utf-8") as f:
            # 時間の取得
            dt_now = datetime.datetime.now()
            # 日時のフォーマット修正
            dt = dt_now.strftime('%Y/%m/%d %H:%M:%S')
            # メモリの利用情報を取得
            memory = psu.virtual_memory()
            txtcpu.insert(0, memory.percent)
            cpu_percent = psu.cpu_percent(interval=1)
            txtmem.insert(0, cpu_percent)
            cpulog = txtcpu.get()
            memorylog = txtmem.get()
            f.write(dt + " " + cpulog + " , " + memorylog + "\n")


# ボタンの生成
Button = tk.Button(root, text='使用率取得', command=btn_click)
Button.pack()

root.mainloop()

実は、まだ次回があります。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

古くなったMacを少しでも軽く使う方法

  • 視差効果を減らす
  • 透明度を下げる
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む