我が comipoli.js が Mojave で起動できない理由が判明。
NSMakeRect よ、お前が原因か。
NSMakeSize は問題ないので書き方が変わったという訳では無いようだ。
検索するとあったわ。
Problems with Mojave? ? Issue #44 ? JXA-Cookbook/JXA-Cookbook ? GitHub
NSRect を関数で得た場合でもエラーというオマケ付きかよ。
こりゃどうにもならん、修正を待つしかない。
我が comipoli.js が Mojave で起動できない理由が判明。
NSMakeRect よ、お前が原因か。
NSMakeSize は問題ないので書き方が変わったという訳では無いようだ。
検索するとあったわ。
Problems with Mojave? ? Issue #44 ? JXA-Cookbook/JXA-Cookbook ? GitHub
NSRect を関数で得た場合でもエラーというオマケ付きかよ。
こりゃどうにもならん、修正を待つしかない。
さて、新 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 の設定か。
アップデートでリセットされちゃうのをなんとかしなければ、後日。
Wayland 環境で Gedit を使うと Ctrl+F9 が動かない。
下方パネルの表示を切り替えするキーだが微妙に不便。
Gedit でスクリプトを debug – L’Isola di Niente
で主に使う、出すのは勝手に出るので問題ない
だけど非表示にするためだけにマウスに手をのばす必要がある。
キー一発で非表示にすること”だけ”できればいいんだけどなぁ。
だったら自分で非表示にするだけのプラグインを作ればよくね?
キーを何にするか、Esc が妥当だと思うけど単キーでは動かない。
gnome-terminal の終了同様な Ctrl+D は一行削除だ。
とりあえず Ctrl+Esc にしてみた、これはお好みで。
[Plugin] Loader=python3 Module=bottom_panel_close IAge=3 Name=Close a Bottom Panel Name[ja]=ボトムパネルを閉じる Description=Close a Bottom Panel Description[ja]=ボトムパネルを閉じる Authors=sasakima-nao <sasakimanao@gmail.com> Copyright=Copyright © 2018 sasakima-nao <sasakimanao@gmail.com> Website=http://palepoli.skr.jp/
bottom_panel_close.plugin
#!/usr/bin/env python3 # Gedit bottom_panel_close plugin version 3.30.0 # Copyright © 2011-2018 sasakima-nao <sasakimanao@gmail.com> import gi gi.require_version("Gtk", "3.0") gi.require_version("Gedit", "3.0") gi.require_version("Peas", "1.0") from gi.repository import GObject, Gedit, Gtk, Gio class BottomPanelCloseAppActivatable(GObject.Object, Gedit.AppActivatable): """ Set GMenu and Accelerator """ app = GObject.Property(type=Gedit.App) def __init__(self): GObject.Object.__init__(self) def do_activate(self): self.app.set_accels_for_action("win.bottomclose", ["<Control>Escape"]) self.menu_ext = self.extend_menu("tools-section") item = Gio.MenuItem.new("Close Bottom Panel", "win.bottomclose") self.menu_ext.append_menu_item(item) def do_deactivate(self): self.app.remove_accelerator("win.bottomclose", None) class BottomPanelClosePlugin(GObject.Object, Gedit.WindowActivatable): __gtype_name__ = "BottomPanelClosePlugin" window = GObject.Property(type=Gedit.Window) def __init__(self): GObject.Object.__init__(self) def do_activate(self): self.action = Gio.SimpleAction.new("bottomclose", None) self.action.connect('activate', self.on_bottom_panel_close_activate) self.window.add_action(self.action) def do_deactivate(self): self.window.remove_action("bottomclose") def on_bottom_panel_close_activate(self, action, param): panel = self.window.get_bottom_panel() panel.props.visible = False
bottom_panel_close.py
Ctrl+Esc で閉じることができるようになった。
これでちょっぴりプログラミングが捗る。
@ 21:51
タイトルの bottom が buttom になっていたので書き換え。
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 が動かなかった。
むーやることがまた増えてしまった。
第一印象ここまで、また何か気が付いたら。
Fedora 29 では OpenJDK が 1.8 から 11 になった。
いきなり凄いバージョンアップだよなぁ、って違う!
IcedTea ベースの今までと違い Oracle のソースになったみたい。
Java 11正式版がリリース、本バージョンからOracle JDKのサポートは有償に。OpenJDKで無償の長期サポート提供は現時点で期待薄 ? Publickey
なんか色々あるようだけど。
RHEL の先行開発版である Fedora には RHEL 用のそのままが使われると思う。
サポート切れや脆弱性については後ろに RedHat がいるので何も問題ない。
それはいいとして。
jjs は 29 でも実行できるけどアップグレードされていないので es6 は使えない。
GraalVM は dnf list でも出てこない、うーん。
とりあえず Java 11 はコンパイルなしで実行できるらしいので試してみよう。
JEP 330: Launch Single-File Source-Code Programs
なんとシバンが使えるようだ。
つまり Java 言語のまま普通のスクリプトとして使える、よし早速。
#!/usr/bin/java --source 11 // -*- Mode: Java -*- public class Hoge { public static void main(String[] args) { System.out.printf("%s\n", "ほげ"); } }
動いたけど…
結論、インタプリタ実行しているのではない。
メモリ上にコンパイルしてソレを実行しているだけのようだ。
つまり javac が必要、Fedora デフォルトには入っていない。
sudo dnf install java-11-openjdk-devel
それと、シバンを使う時は拡張子を取っ払う必要がある。
Gedit で色分けできないのでモードラインを使いましょう。
*.java 拡張子をつけたまま usr/bin/java に渡すこともできる。
この時はシバンがあるとエラーになる、なんかもどかしい。
ようするに拡張子が無い場合は一行目を無視する、って感じの単純な実装みたい。
macOS ならそれでいいんだけどね。