タグ別アーカイブ: Mac

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!

Safari 10

遅ればせながら MacBook Air を macOS Sierra にしました。
2011 モデルですが何も問題なくアップグレードできました。

五年前のマシンでも Siri は使えます、マジで iPhone と同じ。
サブマシンなので詳しいことはもっとヘビーな人のサイトで。

さて Safari 10 で我がサイトはキチンと表示できるか確認だ。
うん問題ないみたい、Mac の情報はほとんど無いサイトだけど。
あら、Safari 10 がついに let に対応してくれたようで。

safari_let

iPhone のアップデートはまだ様子見だけど多分同じだろう。
これで主用ブラウザすべてで let を使っても大丈夫になった。
いや、macOS や iOS はアップグレードしない人も結構いるんだけど。

つか、osascript の JavaScript もやはり let 対応になっている。
これで Gjs と同じように変数定義できる、やったね。

osascript_let

普通に文字列保存すると古い Mac の文字コードになるのは変わっていない。
ソコを一番変えてほしいんだけど、UTF-8 以外は全部絶滅してくれよ。
まあ少数派の意見なんでしょうけどね。

追記
iOS 版 Safari 10 もやはり同様でした。

KeePassX v2

このサイトで使うパスワードは何だっけ?
って KeePassX があるじゃないか。

いやまあ筆者は必要になった時にしかアプリをインストールしない人なので。
そういえば Fedora 23 にしてから ffmpeg すら入れていないな。
最近動画をダウンロードなんて全然やらなくなったし(…

とにかく gnome-softwere から KeePassX で検索、って出てこねぇ!

sudo dnf install keepassx

コマンドで入れたらバージョン 2 になっていた。
まあとくに使い勝手は変わっていない、Ctrl+V で自動入力できる。

keepassx2

v1 のデータはインポートできるけど v1 形式にエクスポートは無い。
CSV にエクスポートできるのでその場合でも問題は無いと思うけど。

しかし面白いよね。
本家 KeePass2 は Linux でも動くと言っているのに v2 互換を作るって。
mono なんて Linux では誰も使っていないからね。
Downloads – KeePass

Mac KeePass で検索してもみんな KeePassX ばかり。
実際本家が v1 の公開を続けているのは v1 しか需要が無いってことだろう。
mono の遅さに耐えられるのってマジで Unity のゲームだけだよ。

その Unity なウチ姫は iPhone から削除したけど。
ランキング戦やマルチプレイなんてやりたくないのにそればかり。
ガードスキルの追加で過去のイベント産 SR を皆殺しって嫌がらせかよ。
まあそれはどうでもよくて。

KeePassX ? Downloads

Mac 版どころか Windows 版まであるっていったいどういうことだ。
互換なのに本家を殺しにきているのかな。
せっかくなので MacBook Air にも v2 を入れてみよう。

AppStore には本家はあるけど KeePassX は無い、Fedora と同じか。
Mac は普通にサイトからダウンロード、自分でインストール。

keepass2linux

keepass2mac

うん Qt はネイティブだからどちらでもサクツと起動できていいね。
Mac 版なのに閉じるボタンで終了するんだがコレは Qt の仕様なのか?

あれ、Mac 版って command+V の自動入力はできないのか。
v1 なら対応版があるみたいだけど現行 OSX バージョンで動くのかな?
まあいいか、持ち運び用途なんだから確認できれば筆者には充分。

keyboard shortcuts

プログラミング気分ではないし Mac でも。
たまにしか使わないとキーボードショートカットを忘れる…
ええいソレなら

Mac OS と GNOME キーボード操作対応表 – L’Isola di Niente

ということでこんなページを作った。
多分もう仕事以外で Windows は使わないからページ整理のついでだが。

しかしこうしてみると本当に同じような進化をしているよね。
今後キーボードを使う OS はこんな感じに収束されるのだろう。

Mac x86_64

さて、筆者もついに Mac を手に入れた。
これで Mac 向けアプリの開発、をするかどうか今は解らない。

ところで Mac 向けアプリの C コンパイラは UNIX 系なので gcc である。
困ったことに Xcode 付属品らしい、つまり Xcode を入れる必要がある。

App Store から落とす、って Xcode って 2.57GB もあるんかい!
単なるアプリケーションなのに Fedora iso の二倍って何だよ。
Linux アプリはデカくてもキロバイト単位なので本当にウンザリする。

インストールが終わって即使おうと思ったが gcc が見つからない。
C言語入門 – MacでC言語 – コンパイラ(gcc)のインストール – Xcode – Command Line Tools – Webkaru
こんなページを見つけたけど Yosemite では一度起動すれば自動で入った。

gcc で C/C++ – L’Isola di Niente
OS X はたしか 64bit だったはず。
コンパイラが gcc だから Linux x86_64 と同じ結果になると思う。
上記ページの x86_64 サイズ確認コードを動かしてみる。

以前は sizeof の値を %d にしていたのだが %lu にしろと Warning が出た。
Mac の gcc は Linux より警告レベルを高く設定しているようだ。
ということで %lu 指定に書き換えて普通にビルド、そして実行。

x86_64

やはり Linux x86_64 とまったく同じだね。
日本語を扱う場合は UCS-4 だということに注意しよう。
てか UTF-16 なのは Windows だけなんだが。

しかし /usr/include ディレクトリが存在しないぞ。
スタジオエッチはドコにあるのだ?

stdioh

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include
にあった、なるほど Xcode 必須なわけだ。

まあ Xcode のエディタは思っていたよりシンプルで使えそう。
エディタを探そうと思ったけどコレを使いこなしたほうがよさげ。
というか、なるべくアプリは少なくしたい、デカいのはもう嫌。
私的に必須な逆インデントのショートカットキーもあるので問題ない。

no_modeline

さすがに modeline は使えなかった、惜しい。
ちなみに Gedit は Yosemite では起動すらできなかった。