Mac」タグアーカイブ

macOS tar

macOS で作った tar.gz を Fedora の flie-roller で開く。

何ですかこのドットディレクトリは!
中身は ._*** というドットファイルがファイル数だけ作られる。
展開すると普通にドットファイルに、普段は見えないから本当に困る。

前回の macOS 版 comipoli の配布の時まで気が付かなかった。
よく解らないから file-roller で削除して差し替えしたけど原因を探らないと。
使えるオプションとかは同じだけど、バージョンの違いかな?

バージョンどころか、そもそもまったくの別物だった。
というか、よく考えたら何か見覚えが。

「__MACOSX」の意味は? いま敢えて「zip」を見直す – 新・OS X ハッキング!(30) | マイナビニュース

__MACOSX の件はあまりにも有名だから zip ではなく tar.gz で配布していたのに。
tar よ、オマエもだったのか。。。。。

Fedora から samba でログインして file-roller を使うか、アプリを探すか迷う。

Old mac to New mac

さて、新 Macbook Air を使えるようにしなければ。
とりあえずデフォルト以外で必要なアプリをば。

Visual Studio Code (以下 vscode)
Google Chrome (以下 chrome)
KeepassXC

が最小限だな、Gedit さえ使えれば Fedora とまったく同じなのに。
ちなみに mac で動画は Youtube くらいしか見ない、音楽は聴かない。
ただ App Store にはドレも無いんですけど。
しかたがないので一つづつ公式サイトから落としていく。

vscode って今は app のまま配布しているのね。
しかしこのマシンはドラッグアンドドロップが凄くやり辛いぞ!
3D Touch のせいだけどドラッグする時は軽めにタッチ。

後は以下を旧マシンからコピーして設定は元通り。
~/Library/Application Support/Code/User
このマシンだと起動が超速いな、テキスト編集はもうこれ一つでいいや。

chrome は書くまでもなくログインで元通り。
今頃知ったけど macOS 版も F12 でデベロッパーツールなんだね。
safari の開発ツールはタッチのエミュができないのが痛い。

KeepassXC は Fedora から kdbx をコピーして元通り。
command+V を試しに押下してみると警告ダイアログが出たので

とやると、おぉ command+V が使えるじゃん!
これでパスワード管理も Fedora と同様に使えるようになった。

後は普通にカスタムだ。
US 配列キーボードなのにバックスラッシュが円記号になるのはなんか笑える。
これはキーボードの設定で変更できる、それ以外は好みだよね。
拡張もコピペしなければ。

macOS アプリを JXA (AppleScript) で拡張 – L’Isola di Niente
を使おうと又しても警告が。

なんかダイアログ出過ぎ、今までこんなにウザかったか?
Fedora 等と違って初心者も使うからなんだろうけどさ。
拡張スクリプトなんて初心者は手を出さないだろ。

ところで、macOS 新規には .bash_profile, .bashrc が無いんだね。
Mac(OSX)で.bashrcを編集する ? GitHub
前のマシンはあったような気がするけど、とにかく新規作成。
.bashrc には

# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH

# Fedora like Prompt
PS1='[\u@\h \W]\$ '

# alias
alias ll="ls -l"
alias jxa="osascript -i -l JavaScript"
alias jsc=/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc

こんな感じで落ち着いた。
osascript はファイルを渡すと js の拡張子で振り分けするので jxa コマンドはインタラクティブで使う時用のみ設定すれば良かった。

後は Apache の設定か。
アップデートでリセットされちゃうのをなんとかしなければ、後日。

Macbook Air 2018

Macbook Air が届いたので軽くレビュー。
第一印象、あれ?小さい。
旧型に比べベゼルが削減されているだけなので画面の感じは変わらない。

Touch ID の所は電源ボタンを兼ねているのね、押せる。
初回起動時に Touch ID や Siri や ApplePay の設定が出る。
なんかもうマジで iPhone みたい。

OS 起動時はパスワードのみ、スリープ復帰は Touch ID で。
うん iPhone と同じ、若い人達にも自然に受け入れられると思う。

起動して使えるようになるまでの時間は半分くらいに。
だってそりゃ 2011 モデルとの比較だし、新しいって凄い。

キーボードは、ウルセェ!
第三世代バタフライって音が小さくなったんじゃなかったの?
前世代ってドンだけウルさかったんだよ。

そんなことより。
command+space と control+space が逆だ!

MacのUSキーボードでcontrol + spaceの日本語入力と英字入力の切り替えをcommand + spaceに変更する設定方法

Yosemite から新規はこうだったのか。
筆者はデフォルトのまま使う主義なので慣れで…
って無理だ、指が勝手に動く!

だって Fedora(GNOME) も真似して Super+Space なんだもん。
スーパーキー (キーボード) – Wikipedia
素直に変更させて頂きます。

Fedora との共有は samba で以下のように。
ディスクの暗号化は選択しなかった、という前提で。

gcc, clang, swift 等のコマンドが最初からある、けど。

使おうとすると超バカデカい Xcode 一式を落とさせようとする。
java どころか jjs まであった、こっちは当然 JDK を落とさせようとする。

python は 2.7、もういかげん python3 にしてくれ!
Fedora デフォルトに python2 は入らない、Linux のほうが進んでいる。

ruby は無いみたいだけど、homebrew が使うはずだけど。
って筆者は homebrew も Xcode も使わないんだけーが。

jxa は自作の comipoli.js が動かなかった。

むーやることがまた増えてしまった。
第一印象ここまで、また何か気が付いたら。

mac: unzip 文字化け

macOS 版 Comipoli が cbz 内部で日本語があるとエラー。
原因を色々探ってみたら zipinfo がこういうことになっていた。

Fedora

macOS

macOS の zipinfo が日本語ファイル名を出力できないだけだった。
どちらも LANG=ja_JP.UTF-8 だし、Terminal.app も日本語出力は普通にできるし。
でも何故か展開すると普通に日本語ファイル名になる。

個別取り出しも日本語指定で取り出せる、意味ワカンネ!
つまり、この出力を日本語にて得られないと個別取り出しができないってことだ。

いくら検索しても shift-jis のことしか出てこない、んなもん常識以前だろ!
UTF-8 が化けることに誰も気がついていないのか。。。。。

NSStringEncoding – Foundation | Apple Developer Documentation

コイツを色々試したけどドレも日本語に戻せない。
iconv も試しているけどお手上げ状態。
日本語は非サポートってことで済ませようかな。。。。。

現状を置いておきます、日本語ファイル名でなければ動くんだけど。
comimac-0.0.2.tar.gz

ところでオプションでなんとかしようと漁っていたらこんなのが。
macOS ではオプションに出ない -O, -I って何だろう?

Unzip の日本語ファイル名の取り扱いについて | FreeBSD | daily memorandum 3.0.0

ってつまり。

#!/bin/sh
unzip -Ocp932 "$@"


_Zip932 とかの名前で Nautilus Script に登録しておけば Fedora も例の文字化けを回避。
macOS の奴はパッチが当たっていないようなのでこの手段は使えない。
Ubuntu の奴はコレを自動判別しているだけ、ってことみたい。

Comipoli は進まなかったけど面白いことを知った。

Mac and Linux user-dir

Linux の sh でユーザーディレクトリのパスを得るのは簡単だ。
最近のバージョンであれば XDG 関連が最初から入っている(と思う)
詳しいことは man xdg-user-dir で。
たとえばドキュメントディレクトリなら

echo xdg-user-dir DOCUMENTS

「そんなコマンドネェよ」という人も大丈夫。
xdg-user-dir の中身は単純なシェルスクリプトなので自作も簡単。

#!/bin/sh

test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && . ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
if [ "x$1" = "xDESKTOP" ]; then
  eval echo \${XDG_${1}_DIR:-$HOME/Desktop}
else
  eval echo \${XDG_${1}_DIR:-$HOME}
fi

何をやっているか理解できれば素敵。
デフォルト引数はこんな場合に使うのか、ふむふむ。

Mac では、困った user-dirs.dirs が無いぞ。
xdg-open には open_darwin() という関数があるのにな。

open_darwin

シェルから得る手段を探しているけど見つからない。
Mac って本当に sh ではたいしたことができないなぁ。
AppleScript か JXA を使いなさいということか。

って、だったら AppleScript を sh から使えばいいんでね?

#!/bin/sh

doc=`osascript -e "POSIX path of (path to documents folder)"`
echo Documents Path: $doc

おぉ!

user_dir

Mac や Linux ではやはり US キーボードでないと駄目だね。
バックコーテーションとチルダはシェルでよく使うから。
コレが日本語キーボードだと嫌がらせとしか思えない位置にある。

おまけ、Visual Studio Code で今頃知った。
command+shift+C でソース位置をカレントに terminal.app が開く。
拡張スクリプトを書こうとしたけど必要無かったYO!