Safari 他でスワイプして戻る操作が効かなくなった問題が色々やったら直った
2016年12月13日追記:この問題は jiTouch の One-Fix Two-Slide-Down/Up, One-Fix-Press Two-Slide-Down/Up ジェスチャーを使ったとき起きることが分かった。[jiTouch のサポートページ(http://www.jitouch.com/support/)に問題が起きたときの対処法がいくつか書いてあるが、根本的な解決策は今のところないため、これらのジェスチャーを使わないほうがよさそうだ。(追記ここまで)
Safari や Xcode の画面で、左右スワイプして戻る/進むと戻りかけのまま画面が固まってスクロールを受け付けなくなる問題が Mavericks でときどき起きていた。体感では10〜20回に1回の割合。さっき Yosemite にアップグレードしたら百発百中で発生するようになったので Apple の品質管理も地に落ちたもんだと思っていたが、あんまり騒いでる人がいないので偶発的なバグかもしれないと思った。で色々試したら直った。以下手順。
- システム環境設定の「トラックパッド」を開く
- 「スクロールとズーム」タブで「スクロールの方向:ナチュラル」をオフ
- 「その他のジェスチャ」タブで全部の項目をオフ
- スワイプを試してみてうまく動くのを確認し、オフにした項目をオン
元々オフになっている項目があったらオンにしてからオフにするとうまくいくかもしれない。試してないが。
補足、先に試して効果がなかったこと:
- PRAM リセット
- 「ページ間をスワイプ」の設定だけ切り替え/オンオフ
Twitter の画像 URL に :orig をつけると元画像が取得できる(できない場合もある)
Twitter にアップロードされた画像は、ある程度の大きさを超えると自動的に縮小される。しかし画像の URL に :orig
をつけて https://pbs.twimg.com/media/XXX.jpg:orig
にすると元の画像を取得することができる。ただし元画像があまりに大きいと :orig
をつけても縮小された画像が返ってくる。
元画像を取得するには
タイムラインに表示された画像を右クリックして「イメージを新規タブで開く」を選ぶ。ブラウザによってはメニュー名が異なる(「新しいタブで画像を開く」など)。
新しいタブで開いた画像の URL は https://pbs.twimg.com/media/XXX.jpg:large
という形式になっている。 :large
の部分を :orig
に変えて開き直す(:large
がついていない場合は単に :orig
を付け足す)。これで元画像が取得できる。
元画像が取得できる条件
画像の横幅が一定の大きさ以下なら元画像が取得できる。横幅が上限よりも大きくなると上限値まで縮小される。上限は URL 末尾のオプションの有無で変わってくる。
2015年10月10日追記: 最近 :orig
のサイズの上限が変更されたようだ。Twitterの画像の:origで投稿時原寸の画像が降ってくるお話 - neotaso’s blogによれば :orig
をつけることで6400×3840ピクセルの画像も原寸で表示されるとのこと。
URL 末尾のオプション | 横幅の上限 |
---|---|
なし | 横600ピクセルまで |
:large |
横1024ピクセルまで |
:orig |
|
縦幅にも上限がある。横幅は上限に収まるが極端に縦長な画像の場合、縦の上限値まで縮小される。
URL 末尾のオプション | 縦幅の上限 |
---|---|
なし | 縦1200ピクセルまで |
:large |
縦2048ピクセルまで |
:orig |
|
GitHub 風の絵文字の名前で絵文字入力できる SKK 辞書つくった
GitHub Markdown では :+1:
で👍を出すとか :smile:
が😄になるとかそういうことができる。SKK でも簡単に絵文字を入力したかったので絵文字辞書を作った:
https://github.com/uasi/skk-emoji-jisyo
▽モードに入って smile と入力すると😄を出せる。
その他に使える絵文字は Emoji cheat sheet を参照のこと。ただし Unicode に収録されていない絵文字は出ない。辞書に入ってるのは870文字。
辞書はこれでダウンロードできる:
curl -O https://raw.githubusercontent.com/uasi/skk-emoji-jisyo/master/SKK-JISYO.emoji.utf8
AquaSKK 向けのインストール方法は README に書いた。他はよろしくやってほしい。
ところで Mac で Ctrl+Cmd+Space を押すと絵文字入力パレットが出てこれはこれで便利。使うとよい。
😊😊😊
PS: emot gem 使うと名前と絵文字の Map が取れて便利。
Cintiq 13HD に最初から貼ってある液晶保護フィルムの交換についてサポートに聞いた
最近の Cintiq 13HD には最初から液晶保護フィルムが貼ってある(2013年秋ごろかららしい)。これに傷がついたらどうすればいいか、自分で交換できるのか、というか剥がせないっぽいけど上から他社の液晶保護フィルムを貼っていいのか、ワコムのサポートにメールで問い合わせてみた。
ワコム 液晶ペンタブレット 13.3フルHD液晶 Cintiq 13HD DTK-1300/K1 【新型番】2015年1月モデル
- 出版社/メーカー: ワコム
- 発売日: 2015/01/23
- メディア: Personal Computers
- この商品を含むブログを見る
質問と回答
Q 液晶保護フィルムは自分で交換できるか?
A ユーザーが交換することはできない。
Q フィルムに傷がついたらどうするか?
A ワコムの修理センターに送付して修理対応。費用はその都度見積り。
Q 他社製の液晶保護フィルムを上から貼ってもいいか?
A 最初から貼ってあるフィルムは見やすさや書き心地を追求してある。上から他社製のフィルムを貼るとそれが損われることがある。そのため重ね貼りはおすすめしない。ただ、傷が気になるようなら他社製のフィルムを貼ることを検討してほしい。元々のフィルムは剥がさないほうがいい。
Cintiq は画面より芯のほうが柔らかい素材を使っているが、筆圧が強かったり、ペン先が片減りして尖っていたり、同じ箇所を集中的に描いたりすると傷がつきやすいので気をつけてほしい。
というわけで
修理対応だと面倒なので上から液晶保護フィルムを貼ることにした。買ったのはこれ。アンチグレアで見やすい。色味は多少変わるが気にしていない。表面がさらさらして書きやすい。そんなところ。
フィルム貼りは埃対策のため服を脱いで風呂場で行った。端を折って剥がしやすくしたセロハンテープを用意し、フィルム表面にくっつけて引っ張ったりしながら。知恵と気合いが試される。
13インチのフィルムを気泡なく貼るのはしんどいからしばらく交換したくない。
ミヤビックス OverLay Plus for Cintiq 13HD 低反射タイプ 液晶 保護シート OHDTK1300
- 出版社/メーカー: ミヤビックス
- メディア: エレクトロニクス
- この商品を含むブログを見る
vagrant up すると .dev ローカルドメインを設定してくれる Landrush が便利な話
(2015年3月3日追記: .dev をローカルドメインに使うとゲスト上で gem
コマンドが使えなくなる場合がある。 .test などを使うとよさそう)
Rack の世界には Pow というサーバがあって便利。何が便利かというと、ln -s ~/my-rack-app ~/.pow/my-rack-app
こうやって Rack アプリへのシンボリックリンクを ~/.pow に入れるだけで、ブラウザで http://my-rack-app.dev
にアクセスできるようになって、アクセスしたら自動で Rack サーバを立ち上げてくれる。
自動でローカルドメインをセットアップしてくれるのはすごい便利。 Vagrant でも Landrush というプラグインを使うとそういうことができる。インストールはこう:
vagrant plugin install landrush
Mac だとこれだけでよい。 Linux では設定が必要なので README 読んで。
インストールしたら Vagrantfile に設定を書く。
Vagrant.configure('2') do |c| ... if defined?(Landrush) c.landrush.enabled = true end end
これで vagrant up
すると一緒に DNS サーバが起動する。 myhostname.vagrant.dev
にアクセスするとVMにリダイレクトされる。
Qiita の開発用サーバをローカルで立ち上げるときもこれを使っている。設定はこんな感じ:
Vagrant.configure('2') do |c| ... if defined?(Landrush) c.landrush.enabled = true c.vm.hostname = 'qiita.dev' c.landrush.tld = 'qiita.dev' c.landrush.guest_redirect_dns = false end end
c.landrush.guest_redirect_dns = false
を指定してる理由は忘れた。外すと動かなかった気がする。 c.landrush.tld = 'qiita.dev'
を単純に = 'dev'
にしない理由は Pow と共存させるため。ここに指定した TLD と同名のファイルが /etc/resolver
以下に生成される。その TLD を持つドメインにアクセスしたら、ファイル内で指定された DNS サーバがそれを処理する。という仕組みになっていて Pow は /etc/resolver/dev
を使うので、バッティングを避けている。
これ便利なので使うとよい。
Mac がスリープから復帰したとき Vagrant を動かしっぱなしだったら通知するようにした
Vagrant を立ち上げたままのを忘れてバッテリーが減るの早いなーおかしいなーというのが何度かあったので、スリープから復帰したとき Vagrant が動いていたら通知を出すようにした。
まずスリープから復帰したタイミングで与えられたコマンドを実行する awakened というツールを書いた: https://github.com/uasi/awakened
awakened のインストール手順はこれ:
git clone https://github.com/uasi/awakened cd awakened make cp awakened ~/bin
awakened は第1引数に実行ファイルへの絶対パスを取り、 Mac がスリープから復帰したらそれを実行する。第2引数以降は実行ファイルに渡される。
awakened /bin/sh ~/.awakenedrc
で、これを launchd でデーモン化した。以下の XML を ~/Library/LaunchAgents/org.exsen.awakened.plist
に置いて launchctl load ~/Library/LaunchAgents/org.exsen.awakened.plist
する。 XML に書いてあるいくつかのパスは自分の環境に合わせて書き換えてほしい。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.exsen.awakened</string> <key>ProgramArguments</key> <array> <string>/Users/uasi/bin/awakened</string> <string>/bin/sh</string> <string>/Users/uasi/.awakenedrc</string> </array> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/> </dict> </plist>
launchd.plist では引数のメタキャラクタが展開されないので ~/.awakenedrc などと書かずに絶対パスで書く。詳しくは man launchd.plist
を見る。
~/.awakenedrc
には Vagrant が動いていたら通知するやつを書いた。ついでにスリープ復帰後に不安定になるアプリケーションを再起動するようにした。
# VBoxHeadless プロセスがいたら Vagrant が動いているはず if pgrep -q VBoxHeadless; then osascript -e 'display notification "Vagrant is up and running." with title "awakened"' fi # Should I Sleep を再起動する killall "Should I Sleep" open -a "Should I Sleep"
快適になった。
Mac の CLIP STUDIO PAINT で Emacs ぽくカーソルを動かせるやつ書いた
CLIP STUDIO PAINT は独自のUIフレームワークを使っているので Ctrl-F,B でカーソルを前後に動かすとかそういうやつができない。ので KeyRemap4MacBook の設定を書いた。
以下の XML を $HOME/Library/Application Support/KeyRemap4MacBook/private.xml
に書く。で KeyRemap4MacBook の設定を開いて ReloadXML して設定を有効にする。テキストフィールドで Ctrl-F, Ctrl-B, Ctrl-N, Ctrl-P, Ctrl-A, Ctrl-E, Ctrl-K が使えるようになる。ただし Ctrl-A, Ctrl-E, Ctrl-K は、複数行にわたるテキストフィールド(テキストツールのボックスなど)では期待通りに動作しない。以上。
<?xml version="1.0"?> <root> <appdef> <appname>CLIPSTUDIOPAINT</appname> <equal>jp.co.celsys.CLIPSTUDIOPAINT</equal> </appdef> <vkopenurldef> <name>KeyCode::VK_OPEN_URL_SHELL_CLIPSTUDIOPAINT_emulate_ctrl_k</name> <url type="shell"> <![CDATA[ /usr/bin/osascript \ -e 'tell application "System Events"' \ -e 'keystroke (ASCII character 31) using shift down' \ -e 'keystroke "d" using control down' \ -e 'end tell' ]]> </url> </vkopenurldef> <item> <name>My CLIP STUDIO PAINT Hacks</name> <appendix>Change Ctrl+N to Down Arrow</appendix> <appendix>Change Ctrl+P to Up Arrow</appendix> <appendix>Change Ctrl+F to Right Arrow</appendix> <appendix>Change Ctrl+B to Left Arrow</appendix> <appendix>Emulate Ctrl+A</appendix> <appendix>Emulate Ctrl+E</appendix> <appendix>Emulate Ctrl+K</appendix> <identifier>private.my_clipstudiopaint_hacks</identifer> <only>CLIPSTUDIOPAINT</only> <autogen>__KeyToKey__ KeyCode::N, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen> <autogen>__KeyToKey__ KeyCode::P, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen> <autogen>__KeyToKey__ KeyCode::F, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen> <autogen>__KeyToKey__ KeyCode::B, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen> <autogen>__KeyToKey__ KeyCode::A, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen> <autogen>__KeyToKey__ KeyCode::E, VK_CONTROL | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen> <autogen>__KeyToKey__ KeyCode::K, VK_CONTROL | ModifierFlag::NONE, KeyCode::VK_OPEN_URL_SHELL_CLIPSTUDIOPAINT_emulate_ctrl_k</autogen> </item> </root>