2022-12-30

meishi2キーボードを買って、キーを押したら「こんにちは~~」と出るようにしてみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

自作キーボードにちょっと興味が出たので、お気軽に試せそうなmeishi2キーボードを買ってみました。

購入は、遊舎工房から買ってみました。

https://shop.yushakobo.jp/products/834

作り方は、以下を見ながらです。

https://biacco42.hatenablog.com/entry/2019/08/10/185624

はんだづけは、へたくそなので作ったものはお見せできませんが、はんだづけする箇所はそんなに多くないので、へたくそでもきちんと動きました。

ファームウェアは、いろいろカスタマイズできそうなCUIを使った方法で行いました。

WSL2を利用して実施しています。

基本は、上記手順に書いてある方法でよいのですが、WSL2環境だとちょろちょろコンパイルする際にエラーが出ましたが以下を参考にすることでだいたい解決しました。

http://www.neko.ne.jp/~freewing/hardware/qmk_setup_environment_build/

コンパイルはできるのですが、WSL2からファームウェアを焼くことがどうもうまくいかなかったので、ファームウェアをやくときは、windows側にQMK Toolboxを以下から取得してインストールして行いました。

https://github.com/qmk/qmk_toolbox/releases

Windows側からWSL2のファイルを見るには、

\\wsl$

と指定すれば見れるので、wsl2側で作成したhexファイルを直接指定することができます。


カスタマイズとして、キーを押したら「こんにちは~~」と出るようにします。

meisihi2のデフォルトのキーマップは

qmk_firmware/keyboards/biacco42/meishi2/keymaps/default

にあるので、この横にカスタマイズ用ファイルの置き場所を以下のような感じで作ります。

qmk_firmware/keyboards/biacco42/meishi2/keymaps/mymap

このディレクトリの中に今回は以下の3つのファイルを用意しました。

config.h

keymap.c

rules.mk

それぞれ内容は以下になります。

config.h

今回WINDWOS環境を利用するのでUNICODE_MODE_WINCOMPOSEを指定しています。

---------------------------
#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE
---------------------------


keymap.c

---------------------------
#include QMK_KEYBOARD_H

//KC_AとKC_Bを指定していますが、使わないキーを適当に割り当てています
enum custom_keycodes {
    HASE = KC_A,
    WATA = KC_B,
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [0] = LAYOUT( /* Base */
    HASE, WATA, LCTL(KC_C), LCTL(KC_V)
  )
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  switch (keycode) {
    case HASE:
      if (record->event.pressed) {
        send_unicode_string("こんにちは~~");
      }
      return false;
      break;
    case WATA:
      if (record->event.pressed) {
        send_unicode_string("うるせ~よ");
      }
      return false;
      break;
  }
  return true;
}
---------------------------


rules.mk

ユニコードが利用できるようにします。

---------------------------
UNICODE_ENABLE = yes
---------------------------


これで以下のようにファームウェアをコンパイルします。

make biacco42/meishi2:mymap

出来上がったhexファイルをmeishi2にやきます。


meishi2側は、これでOKなのですが、このままでキーを押すとWindows側にはなんか数字やらがたくさん出てくる感じなってしまいます。

日本語を受け取るにはWindows側に以下からWinComposeを取得してインストールする必要があります。


これで無事にキーを押したら

「こんにちは~~」

と出てきてくれます。

2022-09-16

rubyで住所情報から都道府県を取り出す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

 以下のような住所情報があったとします。

東京都府中市1-2-3 道路横ビル

これから都道府県と取り出し、それ以外と分離する場合は、以下のような感じで可能です。

org = "東京都府中市1-2-3 道路横ビル"

pref = org.match(/^.+?[都道府県]/).to_s

addr = org.sub(pref,"")

prefに都道府県、addrにそれ以外が入る感じなります。

都道府県取得の正規表現に?を忘れると

prefが「東京都府中市1-2-3 道」と最長一致なってしまうのでご注意です。


※やっぱりこれだと京都府がとれないです。

pref = org.match(/^.{2,3}[都道府県]/).to_s

の方がよさそうです。


※※上記では東京都府中市が東京都府になっちゃいます。最短一致させるための?を忘れてました。

pref = org.match(/^.{2,3}?[都道府県]/).to_s

の方がよさそうです。


2022-03-23

gitでレポートな感じ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

 gitを運用していて、だれがどれくらい変更したんだろうとか調べたくなってみました。

とりあえず以下のようなことができるかなという感じです。


誰が何回commitしたか?

git shortlog --summary -n


特定の人が何行変更したか?

find app spec -type f | xargs -n1 git --no-pager blame -f -w|grep xxx| wc -l

上記では、app、spec配下のファイルをxxxさんが変更した行数を取得している感じです。