2015年12月17日木曜日

IGGG Advent Calendar 2015 [No. 17] DIYキーボード工作

このページでの更新はなかなかの久しぶりですね。
もう、「お久しぶりです」が口癖のような。

今回は、IGGGという群馬大学の部活のイベントとして、Advent Calendarをやることになったので、その17番目を担当します!

テーマは「DIYキーボード工作」
工作という名の「改造」です。

みんな自分の好きなキーボードはあると思います。高かろう、安かろう。
僕はDell Keyboardが好きですね。オーソドックスなやつです。

プログラマやブロガー、記事を書く人はそれぞれ好きなキーボードがあるはずです。

今回は、そんな好きなキーボードを改造するということで書きます。

じゃ、何を改造するのか?

「テンキーのそぎ落とし」 です(*ノω・*)

僕はプログラムを書く人間なのですが、テンキーって実は使いません。ってか、要りません。
そして、右利きなので、テンキーがあることによってマウスが遠くなってしまいます。
今では、フルサイズキーボードのテンキーレスのものが販売されていますよね、REALFORCEとか。でも、高いんですよ。

そこで、いま愛着のあるキーボードを改造するのがとても安くて簡単なのではないかと思って、今回実践してみました!

それではいきましょう!





これが、僕のキーボードですね。最初はUSキーボードを学校で使い始めたのがキッカケです。でも、日本ではJISキーボードしか手に入らないので、仕方がないですね。



解剖しました。ネジを取り外したあとですね。このキーボードはメンブレン式というものなので、全部で3層構造になります。上と下の層が電極を持っていて、中間は電極の部分だけが繰り抜かれている層で、電極が触れないようになっています。
やっぱ、解剖することによって仕組みを理解するのが楽しいですね。生物の解剖実験と同じ感じでしょうか?(実は、解剖実験をしたことがないんですよ。カエルとか解剖するんでしょ?)

このとき、見ておいて欲しいのがどのキーがどの線を使ってボードまで伝達しているかです。あとで、その件に触れます。



次はボードですね。これが押されたキーを認識して、USBを使ってパソコンにスキャンコードというコードを送っています。




さぁ、切っていきますよ!キャー(*ノェノ)キャー
ノコギリは、Amazonで800円ぐらいでした。超切れ味バツグンでした。




まさに一刀両断という感じ!キレイに切れました!
ちょっと残っていますね。
実は、上の方ではボードのサイズが邪魔をしてしまいこれ以上短くすることができませんでした。
他の理由として、一本だけテンキー側を通る回路があり、それを切ると大部分のキーが入力できない事態に陥るので、ここでとめました。
ですので、解体して切るときは、しっかりキーの通る回路を見てください。結構遠回りをしているケースがあるので。
面白いことに、これキーボードによって中身の回路が違うので分解する機会があったら比べてみてくださいね。
( ´∀`)b




さぁ、切ったものは角がトガッているのでヤスリをかけてザラザラと角を丸めましょう。
当然、テンキー側のほうを切るので、キーボードの支えは取れてしまいます。なので、滑り止めなので対応しました。
切った側面なのですが、私は何もしませんでしたが、気になる場合はパテーとかを塗って塗装するというのも手かもしれません!



じゃーん、完成!
見た感じ、REALFORCEぽくないですか!!??
マウスまでの距離が近くなったので便利になりました。

最後に、削り落としてしまったテンキー付近に「Print Screen」のキーがありました。
これは、なかなか痛いですね。でも、大丈夫!ソフトウェア側で欠点を補いましょう。
SharpKeysというキーボードのキーを別のものに置換するソフトウェアがあるので、最初に設定すればそのパソコンでは使えます。
Print Screenは右のWindowsキーに割り振りました。

最後に、実は去年のクリスマスにHappy Hacking Keyboard Professional 2を買ったんですが、ちょっと僕には合わなかったので、今眠っているんですよね。
もし、欲しい!っていう方が居ましたら、 Twitterで @hirontweet にDMください。値段などはそちらの方で交渉しましょう。

ちなみに、今、上海問屋さんが取り扱っている中華の黒軸/青軸のフレームレスキーボードがいいんじゃないかなって思っています!
リンクはこちら

それでは、引き続きIGGG Advent CalendarをStay Tuned!

2015年3月17日火曜日

Github製テキストエディタatomをLubuntu(32bit)でソースコードコンパイル

Twitterで「今すぐSublime Text を消してAtom をダウンロードすべき5つの理由」というリンクをクリックして見てみたら、Markdownがリアルタイムでレンダリングされると書いてあったので、早速入れることにしてみた…

atomのGithubレポジトリを開いたら、どのバージョンも、64bitのみのバイナリパッケージの配布、とあった。



Windowsには入れて試したくないので、仮想環境のLubuntu(32bit)に入れたかったが、64bitを落としてきても、アーキテクチャで警告が出されてインストールができない。

ソースを公開しているので、自分でコンパイルすることは出来るみたい。

仕方がないからやってみて、失敗したら諦めようとした。その経過と結果をブログにまとめることにしました。

結論からいうと、動きました。いや、動くようにしました。さらに、32bit用のバイナリパッケージを生成できるので、次回以降は楽。

では、辿って行きましょう。

1. まず、atomのGithubレポジトリの下の「Building」から「Linux」を選びます。

2. 書いてある必要条件をすべて入れましょう。以下のものを入れます。
  • build-essential
  • git
  • libgnome-keyring-dev
  • fakeroot
追加で以下も入れます(書いてないけど、入れないとコンパイルできない)
  • nodejs
  • npm
インストール方法は、おなじみのsudo apt-get install パッケージ名…

3. インストールが終わったら、まず、npm(Nodejs Package Manager)のバージョンをあげます。デフォルトでは、バージョン1.3.xxが入ってくるので、1.4.0以上にします。
  • sudo npm update (npmコマンドで更新情報を取得し)
  • sudo npm install npm -g (npmコマンドで自分自身を更新します、-gは結果だけ表示させるため)
4. 下準備が完了。gitコマンドでatomのソースをクローンします
  • git clone https://github.com/atom/atom (atomフォルダが作成される)
  • cd atom (atomフォルダにディレクトリを移ります)
ここで、自分は$HOMEに仮ディレクトリを作成してそこに上のコマンドを実行しました。どこで、クローンしても同じです。コンパイルしてしまったらあとは、要りません。※1

5. クローンしたレポジトリを更新します

  • git fetch -p (リモートレポジトリから更新を取ってくる)
  • git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
2番目のコマンドは、git checkoutだけでいいような気がするんですよね。。。僕は、いろいろ出てきてとりあえず、重大なエラーじゃなさそうだからということで、素通りしました。

6. いよいよ、ビルドします
  • sudo script/build
ワーキングディレクトリ(pwd)はatom/内でやります。後ほどそのディレクトリにいないと先に進みません。
このコマンドを実行することにより、$TMPDIRすなわち、/tmpにatom-build/Atomというディレクトリが作成されて、とにかくビルドで使ったファイルがたくさん作られます。

7. gruntを使って、atomとapmを/usr/local/binにインストールします
  • sudo script/grunt install
もし、エラーが出たら、pwdを打ってscript/ではなく、atom/にいることを確認して下さい。gruntの構成ファイルがatom/にはあるようです。installのあとにインストール先のディレクトリをしていすることができるみたいです。
  • sudo script/grunt install --install-dir インストールしたい先の絶対パス
8. インストールは終わったので、/usr/local/binにパスが通っていれば、実行はできます。※2

9. debのバイナリパッケージの作成

ビルドしたのはいいけど、毎回するのは時間かかるし、いやです。gruntのコマンドに、mkdebというコマンドがあり
  • sudo script/grunt mkdeb
を実行すると、$TMPDIR/atom-build/に.debで終わるファイルが作成されます。これが、バイナリパッケージです。

実は、script/buildのあとは必要なく、9番を実行すると、/usr/local/binにインストールするのではなく、パッケージマネジャー経由でインストールをすることができるのです。

補足:
※1:
バージョンアップなどのアップデートはパッケージマネージャーはしてくれません。バージョンアップがあるかどうかを、クローンしたディレクトリで、git fetch -pをして最新版を取得し、再度ビルドする必要があります。

※2:
ターミナルでatomを実行すると、白い画面で、下のコンソールに赤くエラー見たいに見えるかもしれません。その状態に出くわしたら以下のように回避しましょう。
$HOMEディレクトリにディレクトリを移り、root権限になっている隠しフォルダ.atomを自分自身に所有権を変更します
  • sudo chown user:user -R ~/.atom (-Rは再帰的にディレクトリに適用するという意味です)
また起動してみましょう、今度はちゃんと黒い背景のエディタが見えたと思います。

Markdownのリアルタイムレンダリングは、Ctrl + Shift + Mで右に表示されます。