月別アーカイブ: 2018年12月

Automator JXA and shell

サービスがいいMacBookにしておく – ザリガニが見ていた…。

Automator ってコンテキストメニューが作れるんだ!
この方法なら筆者が書いた Finder Script より簡単にシェルが使える。
macOS アプリを JXA (AppleScript) で拡張 – L’Isola di Niente
いや Nautilus スクリプトと同じように使えるというべきか。

では早速。
Mojave ではサービスではなく「クイックアクション」になっています。

リンク先ではテキストの選択だけど Finder での選択もイケそう。
「Finder 項目を表示」を挟む必要があるみたい。
早速同じ AppleScript を試すと、、、、、

あぁ、やはりパス名は古い mac 形式、いつものことだ。
しかしこの input は CR 改行区切りの文字列なのか配列なのか?
JXA でないと筆者は解らないので「JavaScript を実行」に置き換えて。

function run(input, parameters) {
	
	// Your script goes here
	let app = Application.currentApplication();
	app.includeStandardAdditions = true;
	//let s = input.toString().split('\r').join('\n');
	let s = input.join('\n');
	app.displayAlert(s);

	//return input;
}

うん、JXA だと input は JavaScript の配列になるようだ。
こっちだと UNIX パスになるな、何故かはワカンネ。
最後の return は次に続くチェーンが無いなら不要みたい。

んで、名前を付けて保存すると。

~/Library/Services/

以下に保存される、*.workfrow はディレクトリのようだ。
中にある info.plist の NSMenuItem キーからメニューを変名できる。

まて、よく見ると「シェルスクリプトを実行」のアクションがある。
AppleScript, JXA だけでなく直接 bash も使えるようで。
入力を「引数として」の選択肢もある、これならどうなる?

ところでカレントディレクトリは又してもルートなんだろうか。
と思って調べたら $HOME だった、どっちにしろ移動しなきゃ。
ファイル実行ではないので $0 では調べられない、と最初思ったけど。
ファイルを選択してコンテキストメニューなんだから $1 でいいヤン。

cd `dirname $1`
echo "$@" > out.txt

で保存して Finder で何か選択して実行。
選択したファイルがある位置に UNIX 形式パスが IFS 区切りでリダイレクトされるのが確認できるはず。
これでシェルを簡単に使えるようになるのでお好きなコマンドを。
JXA とチェーンを繋げればかなり高度な自動化ができそう。

Macbook Plexus

我が Macbook Air 2018 の天板に早くもキズがぁ!
いや爪は引っかからないし線的な汚れかも。

2011 モデルのゴールドは雑に扱ってもこんなにならなかったのに。
スペースグレイの色が汚れやすいのか、新型の表面処理が原因だろうか?

しかしいくら雑巾で拭いても全然消えない、これは困った。
コンパウンドしかないかなぁと思いながら周りを見ると。。。。。

Plexus があるじゃないの。
バイク乗りならみんな持っている、2 りんかんで売っているし。
いや筆者はビッグ?なスクーター、ってそれはどうでもよくて。

いつもヘルメットを拭いている高級な布に吹きかけ天板をサラッと。
一発で綺麗になった、Plexus ってこんなに凄かったのか!

ということで、Macbook のお手入れにも Plexus は’使えます。
Fedora で使っている RealForce も今度バラした時に使うわ。

colon command

Bash, no-arguments warning, and case decisions – Stack Overflow

このページの

: ${1?"Usage: $0 ARGUMENT"}

がよく解らなかった。
先頭のコロンって何も起こらないコマンドだったはずだけど。
変数中の ? も今まで見たことがなかった。

何もしない組み込みコマンド ":" (コロン)の使い道 – Qiita

凄く詳しい解説をありがとう。

: echo 1
# 無視される

: | echo 1
# 1 が出力される

: touch one.txt > tow.txt
# 空の tow.txt だけが造られる

: ${var=3}
echo $var
# 3 が出力される

なるほど、先頭コロンが何もしないのは最初の引数だけなんだ。
でも :=, :? の場合は副作用が起こるということらしい

それと変数中の ? の正体は :? のようだ、イコールも同様。
:- と同様にコロンは実は無くてもいいということね。

つまり最初のは第一引数が無い場合は ? 以下をエラー出力して終了という意味。
こんな短いコードで実現、って Bash 解りづれぇYO!

uname

cat /etc/hostname

は macOS では使えないジャン!

えっと macOS でホスト名を得るには $HOSTNAME が使えるのか。
いや /proc/version とかも Linux だけだ、うーん。。。。。

カーネルのバージョンなどのシステム情報を調べるには

uname があった!
これなら Fedora, macOS のどちらでも同様だ。

シェルスクリプトの覚書色々 – L’Isola di Niente

ということで前回のデフォルト引数等を含めて書き換えました。
えらそうに Tips ページなんか作っていてまだ知らないこと多いな。

Macbook Air dual boot in Fedora

Macbook Air 2011 を Fedora にする。
とかなり前に書いてすっかり忘れていたのでそろそろヤル。
上書きも考えたけど一応デュアルブートにすることに。

このページを参考にした、古い Ubuntu だけど。
【Tips】MacBookにUbuntuを入れてデュアルブート環境を構築する方法 | ソフトアンテナブログ

とりあえず 40GB の FAT パーティションの確保。
最後に「失敗しました」と出たけどパーティションは作れていた。
なおスワップ用パーティションを別に作る必要はない。

Fedora 29 Install (SSD) | PaePoi
で作った USB メモリを再利用。

EFI Boot を選択し return で Live が起動。即インストールを選択。
まず日本語を選択、US キーボードに変更。
インストール先は 1 つしか出ないので選択して完了すると領域不足と出る。
ボタンを押して先程作った FAT パーティションを選択して削除する。
これでインストール開始できる。

電源を落とし USB メモリを抜いて再起動。
grub 画面の一番下に「MAC OS X」が出るけど選択しても起動できない。
macOS を起動するには普通に option キーを押しながら電源ボタン。

まず WiFi を設定、って接続できない!
とりあえずスキップしてユーザー名とパスワードの設定。
普通に起動できました。

WiFi については下記の Install WiFi drivers のコマンドで。
コマンドの前に sudo を付けるのを忘れずに。
Installing Fedora on Macbook Air | There is no magic here
筆者は現在 WiMax なので USB 接続の簡易有線 LAN を使った。
再起動後には WiFi 接続できるようになっていた。

ファンクションキーが fn を押してもメディアキーのまま。
しかも動作が変なので以下を 1 から 2 に書き換える。

sudo vi /sys/module/hid_apple/parameters/fnmode

さっきのリンク先のとおりに hid_apple.conf も作成しておく。

fn キーは Macbook には無いキーには使えるようだ。

Super:  command
Delete: fn+delete
Home:   fn+←
end:    fn+→

ファイル共有を ON にして、判りやすいようにホスト名を変更して

#nmcli general hostname ***.***
nmcli general hostname fnote.local

他の Fedora で nautilus の「他の場所」から簡単に接続できる。
デフォルトで「公開」ディレクトリね、皆変えていると思うけど。

後は、rEFInd は特に必要ないな。
キーボードが光らないことのほうが気になるよ。
タッチパッドの二本指スクロールが早過ぎなんだけど調節できないのかな?
Air 2018 はそのまま使うよ、だって TouchID が Fedora で動くはずないし。

そんなことより困ったぞ、control と command を間違えまくる。
Ctrl+C は当然 control+C なんだが command+C を押してしまう。
Fedora デスクトップと Macbook Air の併用に慣れすぎだ…
このキーボードではそういうふうに指が勝手に動く、予想外だったZE!