プログラミング気分ではないし Mac でも。
たまにしか使わないとキーボードショートカットを忘れる…
ええいソレなら
Mac OS と GNOME キーボード操作対応表 – L’Isola di Niente
ということでこんなページを作った。
多分もう仕事以外で Windows は使わないからページ整理のついでだが。
しかしこうしてみると本当に同じような進化をしているよね。
今後キーボードを使う OS はこんな感じに収束されるのだろう。
プログラミング気分ではないし Mac でも。
たまにしか使わないとキーボードショートカットを忘れる…
ええいソレなら
Mac OS と GNOME キーボード操作対応表 – L’Isola di Niente
ということでこんなページを作った。
多分もう仕事以外で Windows は使わないからページ整理のついでだが。
しかしこうしてみると本当に同じような進化をしているよね。
今後キーボードを使う OS はこんな感じに収束されるのだろう。
PyObjC で Python から Cocoa にアクセスしてみよう (フェンリル | デベロッパーズブログ)
なんだよ、Mac で Python は全然役立たずじゃないヤン!
ただ Python2 専用だろうな、次期版は Python3 になるかな。
Simple PyObjC Example ? Python recipes ? ActiveState Code
Window も作れ、更にサブクラスも当然のように使えるようだ。
しかし日本語情報が全然見つからない。
日本人は Mac で Python でも計算ばかりやって喜んでいるようだ。
何が面白くてプログラミングしているか理解できないが人それぞれかと。
よし上記をコピーして動かしてみよう。
拡張子を外して実行パーミッションを付けて。
シバンで pythonw を指定してと。
#!/usr/bin/pythonw #-*- coding:utf8 -*-
これで Finder から command+O してみる。
端末エミュレーターが開くジャン!
pythonw は Windows と仕様が違うの?
Macintosh で Python を使う ? Python 2.7ja1 documentation
Windows で Python を使う ? Python 2.7ja1 documentation
確かに Mac のドキュメントには”ターミナル無し”とは書いていない。
ヤラレタって感じ、結局アップルスクリプトと変わらない結果に。
オマケに初期化が凄く遅い、おまえは IronPython か!
やはりスクリプトで GUI はあきらめたほうが良さげ。
でも Objective-C 関数が Python で使えるのは嬉しいかも。
いや、初期化が遅いと結局使わなくなるのは経験済みで。
あー”コレだ!”てのがまだ見つからないYO!
mac にてスクリプトのみで GUI がやりたい。
つまり Linux の PyGObject のようにしたい。
AppleScript: Graphic User Interface (GUI) Scripting
やっとヒントが見つかった。
System Event で Application を作れば空のアプリになるようだ。
コレを利用して別途で GUI を作ればなんとかなりそう。
シバンで osascript を指定して実行パーミッションを付けて。
拡張子を取っ払わないとデフォルトアプリ起動になるので注意。
#!/usr/bin/osascript -l JavaScript var app = Application("System Events"); app.includeStandardAdditions = true; app.displayDialog("はろーわーるど");
よし、ダイアログのみを出すスクリプトはイケた!
でも Finder にて command+O では端末が開く…
Python でも試したけど拡張子が無ければシバンで開いてくれる。
けれど Windows と同様に端末が開いてしまう。
pythonw がある時点で気がつけよ俺、Linux には無いてか不要。
端末を開かずに osascript を実行する方法、あるのか?
Windows で PowerShell をブン投げた時を再現するとは。
Mac は想像していたほど Linux 的には使えないかも。
Mac で”デフォルトアプリにて開く”は open コマンド。
Linux の gvfs-open と同じ、説明が逆の気がするけど。
ということは Finder で /usr/bin を開くには
cd /usr/bin open .
おぉ、コマンドからなら普通に開くことができるんだ。
open `pwd` でもいいけどドットのほうが簡単。
端末もいいけどたまに GUI でファイルを確認したい時があるのよ。
隠し属性ファイルを Finder に表示する必要なんて無いんだな。
finder コマンドが存在しなくて困っていたけどこんな方法が。
ドットディレクトリ内を探したい時は ls -a コマンドで。
Linux を使っている人なら常識だけど。
後はパスの通った場所にコレを用意して。
#!/bin/sh open -a /Applications/Atom.app $@
#!/bin/sh open -a /Applications/iHex.app $@
よしコレでファイルの確認作業が格段に楽になった。
本当は Nautilus の拡張みたくやりたいけどまだ手段がワカラン。
iHex は無償だったので選んだけど確認用途なら十分かな。
しかしまあ、同じ UNIX というだけでありがたいYO!
mac ではスクリプトは何を使おう?
筆者が主に Python を使っているのは Linux だったから。
書くまでもなく PyGObject という究極便利なものがあったから。
Linux なんてアップデートマネージャや dnf が Python 製。
使う言語はフレームワークやライブラリで決まる。
簡易な CMS ツールなら wordpress ベースなので PHP に。
スマホゲームなら Unity 一択に近いので C# に。
Mac で Python はどう考えたって役立たずだよなぁ。
Apple スクリプトを覚えても他で応用が効かないのが痛い。
ならば JavaScript なんてどうだ?
なんたって上記のドレも JavaScript が絡む。
今や GNOME デフォルトアプリでさえ Gjs 製がある。
Unity(mono) は JavaScript も使える、というように。
mac でも Gjs のようなものがあれば便利だけど。
知らないうちにMacがシステム標準でJavaScriptで操作できるようになってた (JXA) – Qiita
って思っていたら Yosemite なら普通に使えるんかい!
早速 .bashrc にエイリアスを用意しよう、mjs でいいかな。
どうでもいいけど mac には標準で nano が入っている。
ドットファイルの編集をする場合なんかに便利だね。
PS1='[\u@\h \W]$ ' mjs() { if [ $# -eq 0 ]; then osascript -l JavaScript -i else osascript -l JavaScript $@ fi }
普通にエイリアスを登録でもいいけど筆者は関数にした。
これなら Gjs や Python 同様に引数の有無でインタラクティブシェルに。
同じようにしたい人は関数名をお好みで変更してね。
再ログインで使えるようになったのを確認してと。
control+D で終了できるけど終了時に改行はしてくれないようだ。
さて、Gjs 並には使えるのかな?
let は無理か、まあ Safari でも使えないからね。
JavaScript エンジンは Safari と同じ Nitro だろうし。
でも Gjs のようにタプルは問題なく使えるようです。
SpiderMonky に統一ってわけにはいかないよな。
標準出力は console.log() を使えば可能。
print() を用意してほしいな、手段を知らないだけかもだが。
さて言語は使えることが解ったので GUI を作る方法でも。
OS X YosemiteからJSでMacアプリを作れるようになったって!?と聞いてみたものの | mah365
こんなのを見つけたけど osascript では動かないや。
スクリプトエディタ.app で command+R の必要がある。
うーん、これじゃたいして役に立たないぞ。
何か手段があるのだろうけど検索しても出てこない。
そりゃこんな Mac らしくないことがしたい人は少ないよNE。
もう少し調べる。