20210114のMacに関する記事は7件です。

Google日本語入力の辞書をWindowsとMacで共有クラウド管理

クラウド上で辞書ファイル(とおまけ)を管理する。ここではGoogle Driveをローカルフォルダとして同期させている場合を想定する。

Windowsの場合

シンボリックリンクを使って、あたかもGoogle日本語入力アプリケーションが読み込むフォルダ内(C:\Users\ユーザー名\AppData\LocalLow\Google\Google Japanese Input\にクラウド上の辞書ファイル(user_dictionary.db)が存在するかのように設定したかったが、Google日本語入力の辞書ツールを複数台のPCで同期(共有)する方法を見る限り、非常に面倒くさそうなので、次の方法を採用する。

クラウド上の辞書ファイル(user_dictionary.db)が存在するフォルダは、C:\Users\ユーザー名\GoogleDrive\Documents\Manage_user_dictionaryとする。

  1. Google日本語入力のユーザー辞書を複数のPCで同期する方法に沿ってバッチファイルを作成、起動時のタスクも作成

    • タスクスケジューラーについて:ノートパソコンの場合は、「条件」→「電源」→「コンピューターをAC電源で使用している場合のみタスクを開始する」をオフにする image.png
  2. シャットダウンも行うバックアップ用のバッチファイルをショートカットキーで実行できるようにする

    1. たとえば、ファイルを右クリック
    2. ショートカットを作成
    3. ショートカットを右クリック
    4. プロパティでショートカットキーを登録(たとえば、Ctrl+Alt+4)
    5. このままだと誤作動しかねないので、バックアップ用のバッチファイルの先頭に、バッチ実行時にメッセージを出して処理の続行を確認する方法のような確認メッセージ表示スクリプトを追加(記事中の...に元のスクリプトが入る)

最終的にアップデート用のバッチファイルは

@rem update_dic.bat
@rem [Google日本語入力のユーザー辞書を複数のPCで同期する方法](https://www.y-shinno.com/google-japanese-input-sync/)

set filepathFrom="C:\Users\ユーザー名\GoogleDrive\Documents\Manage_user_dictionary\user_dictionary.db"
set filepathTo="C:\Users\ユーザー名\AppData\LocalLow\Google\Google Japanese Input\user_dictionary.db"
copy /Y  %filepathFrom%,%filepathTo% 
"C:\Program Files (x86)\Google\Google Japanese Input\GoogleIMEJaTool.exe" --mode=dictionary_tool

バックアップ用のバッチファイルは

@rem backup_dic.bat
@rem [Google日本語入力のユーザー辞書を複数のPCで同期する方法](https://www.y-shinno.com/google-japanese-input-sync/)
@rem [バッチ実行時にメッセージを出して処理の続行を確認する方法](https://www.projectgroup.info/tips/Windows/cmd_0028.html)

set /P ANSWER="backup_dic.datを実行します。よろしいですか (Y/N)?"

if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={yes} (goto :yes)

exit

:yes

set filepathFrom="C:\Users\ユーザー名\AppData\LocalLow\Google\Google Japanese Input\user_dictionary.db"
set filepathTo="C:\Users\ユーザー名\GoogleDrive\Documents\Manage_user_dictionary\user_dictionary.db"
copy /Y  %filepathFrom%,%filepathTo%
shutdown.exe /s /t 0

Macの場合

シンボリックリンクが容易に使える。クラウド上の辞書ファイル(user_dictionary.db)が存在するフォルダは、/Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionaryとする。

  1. /Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary上に、/Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput内のファイルをuser_dictionary.db以外コピーする(念の為.から始まる隠しファイルもコピーする):以下コマンドで可能

    cp -rn /Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput/. /Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary/
    
  2. /Users/ユーザー名/Library/Application\ Support/Google/JapaneseInputフォルダを別名(JapaneseInput_originalとか)に変更

  3. フォルダのシンボリックリンクを作成

    ln -s /Users/ユーザー名/Google\ ドライブ/Documents/Manage_user_dictionary /Users/ユーザー名/Library/Application\ Support/Google/JapaneseInput
    
  4. /Users/ユーザー名/Library/Application\ Support/Google/JapaneseInputというフォルダ(に見えるもの)が作成されて、かつGoogle日本語入力の辞書ツールを開いたときにクラウド上の辞書ファイル内に登録していた単語が確認できたら成功:辞書ツールは画像の場所で確認可能
    image-20210114224607621

まとめ

クラウド経由で、WindowsとMacの両方で辞書ファイルを管理する方法をまとめた。面倒でなければ、Windowsもシンボリックリンク(フォルダではなくファイルに直接作って自動で修復し続ける)が利用できるらしいので記事を参照。シンボリックリンクフォルダバージョンを理解するのにえらい時間かかった...

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

【Unity】Display Resolution Dialog廃止以降でも解像度指定したい

はじめに

ProjectSettingsのPlayerにあったDisplay Resolution DialogがUnity 2019.3あたりからいなくなりました。

デバッグとかちょっと解像度変えたい時が個人的によくあるので、今後は各自で対応する必要がありそうです。
以下は思いあたる対応となります。

環境

  • Windows10
    (macOSでも同様なことができると思います)
  • Unity 2019.4

方法①

UnityのScene内で解像度指定するUIと機能を実装する。

UnityEngine.Screen.SetResolutionを実行中に呼び出せば変更されます。
ただ実装が大変。

https://docs.unity3d.com/ja/current/ScriptReference/Screen.SetResolution.html

方法②

Display Resolution Dialog(Launcher)を作る。

Unityで書き出したexeにコマンドライン引数を渡すようなGUIを用意すれば、今まで同様に指定解像度で起動してくれます。
アプリを起動する前に指定できるので画面切り替えがなくてスムーズです。
配布物とかだとユーザー側は扱いやすいと思います。

このあたりを引数に渡せばよしなにしてくれそうです。

  • -screen-fullscreen
  • -screen-height
  • -screen-width
  • -screen-quality

~~.exe -screen-width 1280 -screen-height 720

ただ、GUI組むとなるとこれも少し大変。

https://docs.unity3d.com/ja/2019.4/Manual/CommandLineArguments.html

方法③

直接コマンドライン引数を渡す。

方法②はGUI実装が大変なので、Windowsのコマンドプロンプトやショートカットなどで引数を渡してさっくり起動しようという話です。
外見はいいのでとにかくすぐ設定を変えて見たい時はこれでいい気がします。

ショートカットだと以下の感じ。

  1. Unityで書き出したexeを対象にショートカットを作成。
  2. プロパティを開いてリンク先の後ろに引数を付け足す。 image.png

参考

https://forum.unity.com/threads/display-resolution-dialog-deprecation.793611/

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

[Mac]ssh接続時のREMOTE HOST IDENTIFICATION HAS CHANGED!のエラーを解決

前置き

Macでssh接続をする際に
REMOTE HOST IDENTIFICATION HAS CHANGED!
というエラーが出ることがある。
これは以前の認証キーが残っていることが原因であるようだ。

■ssh接続試行時のエラー

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(省略)

ECDSA host key for  x.x.x.x has changed and you have requested strict checking.
Host key verification failed.

■[注意!]良くない解決策

vim /Users/[ユーザー名]/.ssh/known_hosts

この中の接続しようとしているIPアドレスの部分を消去
(消去できればなんでも良いですが、ddを押して1行一気に削除が楽です)

■良い解決策

該当のknown_hostsを削除するという方針自体は正しいようですが、直接消すのは(エラー自体は消えますが)良くないようです。
対処法としては、エラー時に警告が出るのと同時に上記のknown_hostsの情報を削除するためのコマンドも案内されるそうで、そちらのコマンドを使う方が良いようです。
(この具体的なコマンドは現在状況を再現できなく、再度出てきた時に更新できればと思います!)

※新形式のknown_hostsだと探すのが少し面倒という理由もあるようです。
大変勉強になりました。

この辺りは詳しくは@angel_p_57さんのSSHの公開鍵ってなに?をご参照いただくと大変勉強になりそうです。

皆で高め合っていきましょう!

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

Big Surで "macOS 11 or later required !" が出たり、pyarrow2.0.0 がinstallできなかったりしたときの対処メモ

はじめに

定期的にやってくる環境周りのトラブルですが、今回はMacのOSを Big Sur にUpgradeしたことに起因したものでした。

困ったことの要約

  • Big Sur で pyenv で python を使っていたら macOS 11 or later required ! という謎のエラーが出て pythonがcrashした
  • 上記はpython3.9.1 にすると解消するのだが、すると pyarrow が対応していなくて Installできない
  • grpcio が Installできない
  • numpy 周りでエラーになる!

ということが発生したので、そのworkaroundを書いておきます。
いずれ不要になるとは思いますが、今現在で言えば結構厄介です。

個々の対処法

macOS 11 or later required ! への対処

再現方法

こんな感じです。

% python -c "import tkinter; r = tkinter.Tk()"   
macOS 11 or later required !
zsh: abort      python -c "import tkinter; r = tkinter.Tk()"

Tkなんて使わないよ! と思うでしょうが、 matplotlib か何かが使おうとしたりします。
※ んーそれを回避した方が良かったかもしれないな...

対処法

(たぶん BigSurにしてから)pyenv経由でInstallしたようなPythonで発生していたようですが、 pythonを3.9.1にすることで解消されました。brew で pyenv を入れている場合は以下のような感じになります。

% brew install tcl-tk   #  これが必要なのか、は未確認ですがそう書いてあるところがあった
% brew upgrade pyenv
% pyenv install -l | grep 3.9  # 3.9系を探す
  3.9.0
  3.9-dev
  3.9.1
  miniconda-3.9.1
  miniconda3-3.9.1
% pyenv install 3.9.1    # 3.9.1 が一番新しいのでそれにする

治るか確認

% pyenv local 3.8.7  # エラーが出るVersion
% python -c "import tkinter; r = tkinter.Tk()"   
macOS 11 or later required !
zsh: abort      python -c "import tkinter; r = tkinter.Tk()"
% pyenv local 3.9.1
% python -c "import tkinter; r = tkinter.Tk()"   
### エラーが出ない! ###

python3.9系になんてできないときは...?

とは言っても、気軽に3.9系にUpdateできるプロジェクトばかりではないでしょうし、その場合は正規のInstaller経由でInstallしたPythonなら大丈夫だとかなんだとか(未確認)。

pyarrow2.0.0 が python3.9 に対応していない!

pyarrow は どうも pyathenapandas拡張 のようなライブラリから必要とされているようで、それらを使っていると影響を受けます。

普通に pip や poetry などではInstallできなかったので、3.8系のwheelを強引にInstallします(たぶんちゃんと動いている)。cp38 な部分を cp39にするとどうも良いらしい。酷い方法ですが、仕方ない...

% curl -LO https://files.pythonhosted.org/packages/14/75/9f116c8d0774ed170c59c87649d3e74dbdaf3318d72a09171c6f4634c7a7/pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl
% mv pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
% pip install pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl

これで、poetry や pipenv などで Installしようとしても既にInstall済みなので何もされずエラーにならなくなります。

grpcio が Installできない

BigSur周りのトラブルの初期に出くわしたので、どういう発生条件か忘れてしまいましたが、これも事前に以下のようにして入れておくと良かったです。

% pip install --upgrade pip setuptools wheel
% pip install --no-cache-dir --force-reinstall -Iv grpcio==1.34.0

numpy 周りでエラーになる!

どうも Accelerator がどうとか、そういう理由でエラーになるようでした。
Install時ではなく、実行時にエラーになるのでちょっと性質が悪いです。
こんな感じでInstallしておくことで、回避できました。

% brew install openblas
% OPENBLAS="$(brew --prefix openblas)" pip install numpy

まとめると

最近は poetry で 管理していますが、結局こんな手順でInstallしておくとなんとか通りました。

% pyenv local 3.9.1
% poetry run pip install --upgrade pip setuptools wheel
% poetry run pip install --no-cache-dir --force-reinstall -Iv grpcio==1.34.0
% curl -LO https://files.pythonhosted.org/packages/14/75/9f116c8d0774ed170c59c87649d3e74dbdaf3318d72a09171c6f4634c7a7/pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl
% mv pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
% poetry run pip install pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
% OPENBLAS="$(brew --prefix openblas)" poetry install

さいごに

ビルドエラーとか人類の時間を奪う敵だと思います。

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

MacからWinへのリモートデスクトップ

RDPの設定

Win->Winへのリモートデスクトップはほとんど困ることがないけど、Mac->Winだと主にキーボード周りで変更しないとつらい。

  1. Karabiner-Elementsで「ろ」を「¥」に変えておく

Windows用のキーボードではこの位置に「¥」があるけど、MacのキーボードはShiftを押しても押さなくても「_」になるので変えておく

https://knowledge.sakura.ad.jp/23355/

を参考に、適当なルールをインポートしておいて、そのjsonファイルを変更して次の記述を追加しておく。

    {
      "description": "「ろ」を「¥」に置き換える",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "international1"  
          },
          "to": [
            {
              "key_code": "international3"
            }
          ]
        }
      ]
    },

2.RDP先のWinで「noyen.exe」を起動しておく

Macの「¥」とWinの「¥」はキーコードが違って、このままだとWinでバックスラッシュが入力できない。そこで、次のソフトを起動しておく。

https://github.com/stkchp/noyen

3.puttyなどのソフトは文字がぼやけて見えるので、その対策

Win側で設定を開いて、「ぼやけた表示のアプリを修正します」と検索して、下記のように「鮮明に表示」のオプションを「オフ」にする!

image.png

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

Prallels上のWindowsで日本語切り替えをかな・英数に割り振る(改訂)

久しぶりにParallelsでWindowsを利用したら、日本語切り替えのやり方が変わっていたのでメモ。

IMEの設定を開く

以前は「プロパティ」とかをいじったが項目自体がない。

スクリーンショット_2021-01-14_5_54_15.png

キーとタッチのカスタマイズを選択

文字通り選択するだけ。

スクリーンショット_2021-01-14_5_54_28.png

キーの割当を変更

やることは下記の2つ。

  • 各キーに好みの機能を割り当てるを「オン」に
  • 無変換キーで「IME オン/オフ」を選択

スクリーンショット_2021-01-14_5_54_38.png

以上です。

以前はキーを細かく?いじっていましたが、GUIの操作だけでできるようになりました。
上記操作はたまたまいじってたらうまく動いただけなので、おかしかったらご指摘お願いします。

とうか、Parallelsに吸収してほしいといつも思う。

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

【随時更新】Apple Silicon (M1)での開発環境

M1対応してるなら対応版を使いたいのでメモ

とりあえず Is Apple silicon ready? をチェック

前提

  • archコマンドが使えること
    • Rosettaが入っていればいいらしいのでKarabiner-Elementsとか入れるタイミングで入るはず
  • Homebrewで入るものはできるだけHomebrewで
    • 好みで使わないものもあると思うけど

一覧

ソフトウェア名 配布チャネル URL メモ
VSCode Insiders https://code.visualstudio.com/insiders/ 「ARM64」のアイコンからダウンロード
Homebrew 公式インストーラ https://brew.sh/index_ja 公式サイトのワンライナーでのインストール
git Homebrew brew install git
iTerm2 Homebrew brew install iterm2 設定はこちらを参考に
pyenv Homebrew brew install pyenv

随時追記

CPU依存のないもの

シェルで構築されていたりとか

ソフトウェア名 配布チャネル URL メモ
pyenv-virtualenv Homebrew brew install pyenv-virtualenv
nodenv Homebrew brew install nodenv
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む