下記は2013年に調べたものなので一部情報が古いかもしれない. 「海外」としたが, 時間的な制約から, 英語圏しか調査は行っていない.
2018年3月19日月曜日
2018年3月10日土曜日
debug/enbug
エンバグという単語について調べていたら, ジャーゴンとしては存在する単語であることがわかった (したがって, 和製英語というわけではない). 下記のY-Combinatorの掲示板で触れられていた:
Sorry to burst your bubble, but there exists enbug.org whose about page ([http://enbug.org/AboutThisSite](http://enbug.org/AboutThisSite)) says:
The meaning of enbug is the opposite of the word debug, namely, to add errors or defects into software or hardware.
That page was last edited on 2007-03-04.
2018年2月19日月曜日
macOS High SierraでKarabiner-Elementsだけで親指シフト入力環境を構築する方法
!!!!あたらしい記事が ここ にあります!!!!
Fortniteが動くかとおもいEl Capitan (10.11.x) から一気にHigh Sierraにアップグレードしてみたものの, グラボがないとダメですと言われてゲームが起動できなかった.
これまで私がSierra系に更新していなかった理由は, Karabinerが動かないと聞いていたからだ. こうなったらSierra以降向けに開発されているという Karabiner-Elements (KE) で, 無理矢理NICOLA配列での親指シフト入力環境を実現する しかない……というわけで, とりあえず動くものができたので公開します.
動作確認した環境は下記:
- OS version - macOS High Sierra (10.13.3)
- IME - Google 日本語入力 2.20.2700.1 (基本設定: ローマ字入力)
- Karabiner-Elements version - 11.5.0
試してないけどSierraでもイケると思う.
インプリしたのは, とりあえず NICOLA配列 (JAWP) で, 右シフトを「変換」キー, 左シフトを「無変換」キーとしています.
現状のこのNICOLA配列の実装の不具合としては:
- けっこう前もって (よっこらしょという感じで) 親指シフトキーを押す必要がある
- ときどきシフト状況が正確に把握されないことがある
という点が挙げられます. もっとうまい書き方があるかもしれない.
使い方
Karabiner-Elements (KE) をインストールしてから,
上記の2つのjsonファイルをダウンロードして, ディレクトリ:
$HOME/.config/karabiner/assets/complex_modifications/
に格納してください.
次に, Karabiner-Elementsを起動してから
Preferences...
を開き, Complex Modifications
タブを選択します. 下の方にある Add rule
ボタンを押すと, 設定の一覧が出てきます.
この一覧の下の方に, 「無変換, 変換キーでIME Off, On」, 「親指シフト入力のためのNICOLA配列」があるので, Enableして下さい.
おおまかな仕組み
シフトごとにフラグとなる変数:
Oyayubi-R
, Oyayubi-L
, Oyayubi-Any
(右か左のどちらかが押されたとき用) を用意 (set_variable
) して, 押下されたらセット, 離されたらリセットしています. この処理の記述をしているのが, muhenkan_henkan_ime.json
です.
フラグの状態とIMEの状態に応じてmanipulateの処理が決まります. こちらは
nicola_genenerated.json
で記述しています.
ファイル名から察しがつくように, いちいちキー一つ一つの設定を書いていくのは面倒なので, 設定のためのjsonジェネレータをRubyで書いた――のだけど, こういうものがあると後から知った:
- s-show, KE-complex_modificationsを使ってKarabiner-Elementsの設定を楽にする方法, 2017-11-12.
Conclusion
macOS High Serraで, Karabiner-Elementsだけで親指シフト入力を可能にした.
References
実装するにあたり, 以下のドキュメントが役に立ちました.
- takezo, karabiner.json Reference Manual, pqrs.org, 2018-02-17 (read).
- s-show, Karabiner-Elementsだけで”全角/半角”でのIME切り替えを実現する方法など, 2017-12-02.
- jumjamjohn, 【人権回復】Karabiner-ElementsでOne-to-many, Many-to-oneマッピング, 2017-11-09.
- rcmdnk, KE-complex_modificationsを使ってKarabiner-Elementsの定義を色々作って公開する, 2017-08-30.
- rcmdnk, Karabiner-Elementsで日本語入力状態を把握してキー設定出来る様になった, 2017-11-06.
2017年12月10日日曜日
つぶやき日記2017-12-10
- Mac環境のPythonパッケージであるANACONDAをインストールしたら, PATHが変わってiconvがうまく動かなくなって (
conversion from CP943 unsupported
) しまっていたことに気づいた.-f CP943
というオプションが使えない/Users/user_name/anaconda/bin
ではなく, MacOSがシステム標準で用意している/usr/bin/iconv
を使用するようにした. - k-db.comが今年いっぱいでサービス停止とのこと.
2017年11月19日日曜日
[Ruby]モジュールに継承/派生っぽいことをさせてみる試み
組み込みライブラリもしくは既存のクラスclassやモジュールmoduleを, 特定の用途向けに一部だけ改変したいことがある. その際, できればモンキーパッチはしたくない.
このような場合, クラスならば
class DerivedKlass < OriginalKlass
として継承を使える. 派生クラスを作ることで, 元のクラスのコピーを作り, それを改変すればいい.
ではモジュールの場合は, どうしたらよいだろう? ここでは, Mathを取り上げて考えてみる.
最初に, include/extend/refineという既存の方法の検討をおこない問題点を明らかにする. 次に, これらの問題点を解決する
Module#module_compose
の導入を提案する.2017年11月16日木曜日
Rubyの実験: Moduleのprivateインスタンスメソッド
Moduleのprivateインスタンスメソッド, 具体的には
Module::module_function
のふるまいで, 腑に落ちない点があった. 派生先のClassクラス (ひいては一般に定義されたクラス) からなぜ使えないのか? ということで, 実験した. 結論的には 仕様だった, という落ちでした……w2017年11月8日水曜日
Rubyの実験: Object/Class/Module/Kernelにメソッドを追加するとどうなるか?
Object/Class/Module/Kernelにメソッドを追加すると, これらや一般のクラス, モジュールやインスタンスに対してどのような影響があるか, 調べるコードを書いてみた. 追加するメソッドはインスタンスメソッドと特異メソッドで, 両方publicの可視属性です.
2017年11月2日木曜日
つぶやき日記2017-11-01 Rubyでいくつか調べていたこと
- ModuleやClassのインスタンスメソッドの可視性の相違 (例えば Object#extendとModule#includeはパブリックインスタンスメソッド,かたやModule#public/protected/privateはprivateインスタンスメソッド) について.どうやってpublicとprivateを使い分けているのだろう? 思想がよくわからない……外側から使えるか否かなのかな.
- public/protected/privateは,実は予約語ではない.Moduleのprivateインスタンスメソッドである.このようなメソッドはRuby自前で書けるか? 答え: 書けない.引数を与えない場合の記述が問題になる.仮にdefを再定義できるならば可能となる (defは予約語である).
- 強引に書きたい場合は,https://stackoverflow.com/questions/28055356/determining-methods-visibility-on-the-fly が参考となる.defに代わるメソッド定義メソッドを用意することになるだろう.
2017年7月6日木曜日
Mac環境でGit GUI経由でgitkを使ったときに発生するエラー: unknown color name "lime"の解決
SourceTreeの品質がおかしくなって以降、GitのGUIツールの代替えアプリをいくつか試してきた. Github Desktop, SmartGitやGitKrakenなどを使ってみた後, GitKrakenに落ち着いたが, 最近処理が重くなってきたのと, ライセンス関連がうざくなってきたので, 代替えの調査を兼ねて, git (Xcode Command Line Toolsではなく, brewでインストールした方) が標準で用意しているGUIを試してみた.
git guiコマンドでGit Gui.app経由でgitkを起動したとき, Mac OS X El Capitan (10.11.6)環境ではエラーが発生しうまく動かない現象があったが, 解決した. /usr/local/bin/gitkのコードは, いじらなくていい.
(以下の記事は, brewとbrew caskの環境が整っていることを前提としている)
git guiコマンドでGit Gui.app経由でgitkを起動したとき, Mac OS X El Capitan (10.11.6)環境ではエラーが発生しうまく動かない現象があったが, 解決した. /usr/local/bin/gitkのコードは, いじらなくていい.
(以下の記事は, brewとbrew caskの環境が整っていることを前提としている)
2017年7月2日日曜日
つぶやき2017-07-01
- Mac miniの新しいの, 出て欲しいなぁ.
- 少し古い文献について写経をしていて, 漢字のフォント表示がなにかおかしいことに気づいた. 調べたところ, iTerm2で機種依存文字を表示させると新字として表示されてしまう場合があることに気づいた: 例えば「神」と「神」(旧字の方. 示へん. UTF-8にも関わらずBloggerが勝手に文字コードを新字の神#x795Eのほうに変換してしまうので数値文字参照#xFA19で埋め込みました). 標準アプリの「ターミナル」(Terminal.app)ではきちんと表示されるのだ.
- iTerm2では両方とも新字のフォントが表示されてしまう. 念のため, 使用しているデータのコードポイントも調べてみたけども, 当然ながら違う. なぜだ……
- 編集上はMacVimなどしかるべきエディタを使えば問題ないといえば無いのだが, コンソールからgrepなんかをかけるとき, 思わぬミスにつながりそうで嫌だなぁ.う〜ん, Terminal.appを使ったほうがいいのかなぁ...
登録:
投稿 (Atom)