GIMPでCMYK形式のPSDファイルを開けるようにする

GIMPはSeparate+プラグインを使用すれば部分的に以下の用途やTiffファイルのインポートでCMYK形式を扱うことができるけれど、Adobe PhotoshopのPSDファイルを開くことはサポートしていない。

Separate+ プラグインには以下の機能があります:

RGB 画像を色分割
(ICC プロファイルと lcms による) カラーマネジメント
色のソフトプルーフ
色分割した画像ファイルに ICC プロファイルを添付
RGB プロファイルの変換
デュオトーンのサポート

Gimp 自体にも CMYK に関連する機能が少数ながら存在します:

カラーピッカーを使うときに CMYK の値を表示
ディスプレイフィルタによるソフトプルーフ (非推奨)
カラーマネジメント設定による色のソフトプルーフ

PSDファイルを開こうとするとこのようなエラーが出る。

Error loading PSD file: Unsupported colour mode: CMYK



○環境

Ubuntu 16.04
GIMP 2.8.16



○方法

Ubuntuであればシェルからコマンドを打つだけ。

convert input.psd -channel RGBA -alpha Set -colorspace rgb output.psd

※inputやoutputは適切なパス+ファイル名に変更する


参考

https://wiki.archlinux.org/index.php/GIMP/CMYK_support#About_CMYK_color_and_Gimp
http://www.openmutual.org/2011/08/converting-cmyk-psd-files-for-use-in-gimp/

Helixキーボードを組み立てた

一番最初のGroup Buyで買ったHelixキーボードを組み立てた。Helixのビルドガイドを読めば出来るけれど、一発では完成しなかったので直したところなどを書いておきたい。
f:id:ultra-genma:20180819214942j:plain


◆キット

遊舎工房Helix アクリル5行版キット バックライトモデル
ロープロファイルスイッチ 赤軸
OLEDモジュール


◆環境

はんだごて(HAKKO FX-600)
Ubuntu
Git


◆組み立てと注意点

手順はこちらに詳細に載っているのでこれに従った。1つも部品を破壊することなくつくることが出来た。
github.com

組立て終わってから知ったけれど、こちらに組み立て動画がある。
www.youtube.com

・チップのダイオードはとても小さいのでハンダづけしたあと壊れていないか確認

向きに注意して測定して、壊れていなければ順方向電圧が700mVくらいになっている
f:id:ultra-genma:20180819215831p:plain

・TRRSジャックはヒートクリップで固定

f:id:ultra-genma:20180819220520j:plain

・OLEDのソケットはPCBにはめてもゆるゆるなのでマスキングテープで固定

f:id:ultra-genma:20180819220529p:plain

・キースイッチを付けたあとダイオードをはんだ付けしなおす

キースイッチをアクリルにバチバチはめるときに結構衝撃があり、ダイオードが剥がれてしまうことがある。そのためキースイッチのはんだ付けしたあとに1秒ずつくらいで良いのでダイオードのはんだを一瞬溶かすと良い。

・バックライトLEDやキースイッチのはんだがしっかり載っていることを確認する

はんだはなるべく少なくしたいので、LEDのランドに完全にははんだで覆わないでいた。しかし、最初組み終えて確認したらバックライトが半分くらいしか点灯せず、しかもまだらに付いていたのでたくさん壊れてしまったのかととても絶望した。
ランドがしっかりかぶるようにはんだづけし直したら綺麗に全部点灯した。キースイッチも同様に目で見て完全に接着できていることがわかる程度にはんだを盛ったほうが良い。

・キースイッチのランドがブリッジしていないことを確認する

LEDがはんだ不足で接触不良だったこととは対象的にキースイッチのランド同士の髪の毛くらいの細さの隙間がショートしてしまっていると、これもキーが反応しない原因になった。初め3か所反応しないキーがあったが、全てこれが原因だった。とくに楕円形のランドははんだのぬれが悪いのでとても苦労した。
くっついてしまってどうしても取れない場合は、隙間が目で見えなくてもカッターでまっすぐひっかくだけでも直るが、フラックスクリーナーを使うと隙間が見えやすくなる。
f:id:ultra-genma:20180819222510p:plain

・バックライトLEDの点灯確認

LEDの確認はテスト用のソースコードがあるのでこちらを使用して確認した。
qmk_firmware/keyboards/helix/rev2/keymaps/led_test at master · qmk/qmk_firmware · GitHub

このテストではバックライトLEDが全て同時にRed→Green→Blueの順に周期的に変化する。
以下のようにビルドして書き込む。手順はdefaultをビルドするときと同じ。

$ make helix:led_test
$ make helix:led_test:avrdude

成功するとこのように光る。
www.youtube.com

・キーキャップを付けたあとに背面のアクリルを付ける

キーキャップは背面のアクリルを付ける前に付けたほうが良い。キーキャップを押し込むときに結構ちからがいるので、背面のアクリルをつけてしまうと手で挟んだ時にアクリルがしなって折れてしまいそうになる。
そのため、背面のアクリルはキーキャップを付けて、スイッチやLEDが動くか確認したあと、本当に最後につければ良い。


◆QMK Firmwareの書き込み

1.ソースコードの取得

以前Let's Splitでqmk_firmwareは使っていたので、今回はそのgitを更新した。fetchしてpullするとHelixのソースコードがダウンロードされる。

~/git/qmk_firmware$ git fetch

~/git/qmk_firmware$ git pull

 create mode 100644 keyboards/helix/common/glcdfont.c
 create mode 100644 keyboards/helix/config.h
 create mode 100644 keyboards/helix/helix.c
 create mode 100644 keyboards/helix/helix.h
 create mode 100644 keyboards/helix/i2c.c
 create mode 100644 keyboards/helix/i2c.h
 create mode 100644 keyboards/helix/info.json
 create mode 100644 keyboards/helix/pico/config.h
 create mode 100644 keyboards/helix/pico/info.json
 create mode 100644 keyboards/helix/pico/keymaps/biacco/config.h
 create mode 100644 keyboards/helix/pico/keymaps/biacco/keymap.c
 create mode 100644 keyboards/helix/pico/keymaps/biacco/rules.mk
 create mode 100644 keyboards/helix/pico/keymaps/default/config.h
 create mode 100644 keyboards/helix/pico/keymaps/default/keymap.c
 create mode 100644 keyboards/helix/pico/keymaps/default/readme.md
 create mode 100644 keyboards/helix/pico/keymaps/default/readme_jp.md
 create mode 100644 keyboards/helix/pico/keymaps/default/rules.mk
 create mode 100644 keyboards/helix/pico/matrix.c
 create mode 100644 keyboards/helix/pico/pico.c
 create mode 100644 keyboards/helix/pico/pico.h
 create mode 100644 keyboards/helix/pico/rules.mk
 create mode 100644 keyboards/helix/pico/serial_config.h
 create mode 100644 keyboards/helix/pico/split_util.c
 create mode 100644 keyboards/helix/pico/split_util.h
 create mode 100644 keyboards/helix/pro_micro.h
 create mode 100644 keyboards/helix/readme.md
 create mode 100644 keyboards/helix/rev1/config.h
 create mode 100644 keyboards/helix/rev1/info.json
 create mode 100644 keyboards/helix/rev1/keymaps/OLED_sample/config.h
 create mode 100644 keyboards/helix/rev1/keymaps/OLED_sample/keymap.c
 create mode 100644 keyboards/helix/rev1/keymaps/OLED_sample/readme.md
 create mode 100644 keyboards/helix/rev1/keymaps/OLED_sample/rules.mk
 create mode 100644 keyboards/helix/rev1/keymaps/OLED_sample/serial_config.h
 create mode 100644 keyboards/helix/rev1/keymaps/default/config.h
 create mode 100644 keyboards/helix/rev1/keymaps/default/keymap.c
 create mode 100644 keyboards/helix/rev1/keymaps/default/rules.mk
 create mode 100644 keyboards/helix/rev1/matrix.c
 create mode 100644 keyboards/helix/rev1/rev1.c
 create mode 100644 keyboards/helix/rev1/rev1.h
 create mode 100644 keyboards/helix/rev1/rules.mk
 create mode 100644 keyboards/helix/rev1/serial_config.h
 create mode 100644 keyboards/helix/rev1/split_util.c
 create mode 100644 keyboards/helix/rev1/split_util.h
 create mode 100644 keyboards/helix/rev2/config.h
 create mode 100644 keyboards/helix/rev2/info.json
 create mode 100644 keyboards/helix/rev2/keymaps/default/config.h
 create mode 100644 keyboards/helix/rev2/keymaps/default/keymap.c
 create mode 100644 keyboards/helix/rev2/keymaps/default/readme.md
 create mode 100644 keyboards/helix/rev2/keymaps/default/readme_jp.md
 create mode 100644 keyboards/helix/rev2/keymaps/default/rules.mk
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/config.h
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/keymap.c
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/keymap_4rows.c
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/keymap_5rows.c
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/keymap_xrows.h
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/oled.c
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/oled.h
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/readme.md
 create mode 100644 keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows/README.md
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows/README_jp.md
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows/config.h
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows/keymap.c
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows/rules.mk
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows_jis/config.h
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows_jis/readme.md
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows_jis/readme_jp.md
 create mode 100644 keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk
 create mode 100644 keyboards/helix/rev2/keymaps/froggy/config.h
 create mode 100644 keyboards/helix/rev2/keymaps/froggy/helixfont.h
 create mode 100644 keyboards/helix/rev2/keymaps/froggy/keymap.c
 create mode 100644 keyboards/helix/rev2/keymaps/froggy/readme.md
 create mode 100644 keyboards/helix/rev2/keymaps/froggy/rules.mk
 create mode 100644 keyboards/helix/rev2/keymaps/led_test/README.md
 create mode 100644 keyboards/helix/rev2/keymaps/led_test/config.h
 create mode 100644 keyboards/helix/rev2/keymaps/led_test/keymap.c
 create mode 100644 keyboards/helix/rev2/keymaps/led_test/led_test_init.c
 create mode 100644 keyboards/helix/rev2/keymaps/led_test/rules.mk
 create mode 100644 keyboards/helix/rev2/matrix.c
 create mode 100644 keyboards/helix/rev2/rev2.c
 create mode 100644 keyboards/helix/rev2/rev2.h
 create mode 100644 keyboards/helix/rev2/rules.mk
 create mode 100644 keyboards/helix/rev2/serial_config.h
 create mode 100644 keyboards/helix/rev2/serial_config_simpleapi.h
 create mode 100644 keyboards/helix/rev2/split_scomm.c
 create mode 100644 keyboards/helix/rev2/split_scomm.h
 create mode 100644 keyboards/helix/rev2/split_util.c
 create mode 100644 keyboards/helix/rev2/split_util.h
 create mode 100644 keyboards/helix/rules.mk
 create mode 100644 keyboards/helix/serial.c
 create mode 100644 keyboards/helix/serial.h
 create mode 100644 keyboards/helix/ssd1306.c
 create mode 100644 keyboards/helix/ssd1306.h

まだ持っていないけれどfortitude60も入っていた。

 create mode 100644 keyboards/fortitude60/config.h
 create mode 100644 keyboards/fortitude60/fortitude60.c
 create mode 100644 keyboards/fortitude60/fortitude60.h
 create mode 100644 keyboards/fortitude60/info.json
 create mode 100644 keyboards/fortitude60/keymaps/default/config.h
 create mode 100644 keyboards/fortitude60/keymaps/default/keymap.c
 create mode 100644 keyboards/fortitude60/keymaps/default/rules.mk
 create mode 100644 keyboards/fortitude60/matrix.c
 create mode 100644 keyboards/fortitude60/readme.md
 create mode 100644 keyboards/fortitude60/rev1/config.h
 create mode 100644 keyboards/fortitude60/rev1/rev1.c
 create mode 100644 keyboards/fortitude60/rev1/rev1.h
 create mode 100644 keyboards/fortitude60/rev1/rules.mk
 create mode 100644 keyboards/fortitude60/rules.mk
 create mode 100644 keyboards/fortitude60/serial.c
 create mode 100644 keyboards/fortitude60/serial.h
 create mode 100644 keyboards/fortitude60/split_util.c
 create mode 100644 keyboards/fortitude60/split_util.h

2.makeする

defaultのままテストするのでいじらずにmakeする。
defaultのままではOLEDやバックライトのLEDは点灯しない
有効化は下の「4.OLEDとバックライトLED」に記載した。

~/git/qmk_firmware$ make helix:default
QMK Firmware 0.6.96
WARNING:
 Some git sub-modules are out of date or modified, please consider running:
 make git-submodule
 You can ignore this warning if you are not compiling any ChibiOS keyboards,
 or if you have modified the ChibiOS libraries yourself. 

Making helix/rev2 with keymap default

avr-gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/helix/i2c.c                                                                    [OK]
Compiling: keyboards/helix/serial.c                                                                 [OK]
Compiling: keyboards/helix/ssd1306.c                                                                [OK]
Compiling: keyboards/helix/rev2/matrix.c                                                            [OK]
Compiling: keyboards/helix/rev2/split_util.c                                                        [OK]
Compiling: keyboards/helix/rev2/split_scomm.c                                                       [OK]
Compiling: drivers/avr/ws2812.c                                                                     [OK]
Compiling: keyboards/helix/helix.c                                                                  [OK]
Compiling: keyboards/helix/rev2/rev2.c                                                              [OK]
Compiling: keyboards/helix/rev2/keymaps/default/keymap.c                                            [OK]
Compiling: quantum/quantum.c                                                                        [OK]
Compiling: quantum/keymap_common.c                                                                  [OK]
Compiling: quantum/keycode_config.c                                                                 [OK]
Compiling: quantum/process_keycode/process_leader.c                                                 [OK]
Compiling: tmk_core/common/host.c                                                                   [OK]
Compiling: tmk_core/common/keyboard.c                                                               [OK]
Compiling: tmk_core/common/action.c                                                                 [OK]
Compiling: tmk_core/common/action_tapping.c                                                         [OK]
Compiling: tmk_core/common/action_macro.c                                                           [OK]
Compiling: tmk_core/common/action_layer.c                                                           [OK]
Compiling: tmk_core/common/action_util.c                                                            [OK]
Compiling: tmk_core/common/print.c                                                                  [OK]
Compiling: tmk_core/common/debug.c                                                                  [OK]
Compiling: tmk_core/common/util.c                                                                   [OK]
Compiling: tmk_core/common/eeconfig.c                                                               [OK]
Compiling: tmk_core/common/report.c                                                                 [OK]
Compiling: tmk_core/common/avr/suspend.c                                                            [OK]
Compiling: tmk_core/common/avr/timer.c                                                              [OK]
Compiling: tmk_core/common/avr/bootloader.c                                                         [OK]
Assembling: tmk_core/common/avr/xprintf.S                                                           [OK]
Compiling: tmk_core/common/magic.c                                                                  [OK]
Compiling: tmk_core/protocol/lufa/lufa.c                                                            [OK]
Compiling: tmk_core/protocol/usb_descriptor.c                                                       [OK]
Compiling: tmk_core/protocol/lufa/outputselect.c                                                    [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Class/Common/HIDParser.c                                       [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c                                        [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c                                [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c                                      [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c                                          [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c                                    [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c                                          [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c                                 [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c                                  [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/ConfigDescriptors.c                                       [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/DeviceStandardReq.c                                       [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/Events.c                                                  [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/HostStandardReq.c                                         [OK]
Compiling: lib/lufa/LUFA/Drivers/USB/Core/USBTask.c                                                 [OK]
Linking: .build/helix_rev2_default.elf                                                              [OK]
Creating load file for flashing: .build/helix_rev2_default.hex                                      [OK]
Copying helix_rev2_default.hex to qmk_firmware folder                                               [OK]
Checking file size of helix_rev2_default.hex                                                        [OK]
 * File size is fine - 16490/28672 (12182 free)

3.pro microに焼く

Detecting USB port, reset your controller now........と出てドットが増え続けているリセット待ちの状態でリセットを1回押す。
avrdude done. Thank you.と出たら問題なく完了。

~/git/qmk_firmware$ make helix:default:avrdude
QMK Firmware 0.6.96
WARNING:
 Some git sub-modules are out of date or modified, please consider running:
 make git-submodule
 You can ignore this warning if you are not compiling any ChibiOS keyboards,
 or if you have modified the ChibiOS libraries yourself. 

Making helix/rev2 with keymap default and target avrdude

avr-gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text    data     bss     dec     hex filename
      0      16490          0      16490       406a .build/helix_rev2_default.hex

Checking file size of helix_rev2_default.hex                                                        [OK]
 * File size is fine - 16490/28672 (12182 free)
Copying helix_rev2_default.hex to qmk_firmware folder                                               [OK]
Detecting USB port, reset your controller now........
Detected controller on USB port at /dev/ttyACM0

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file ".build/helix_rev2_default.hex"
avrdude: input file .build/helix_rev2_default.hex auto detected as Intel Hex
avrdude: writing flash (16490 bytes):

Writing | ################################################## | 100% 1.22s

avrdude: 16490 bytes of flash written
avrdude: verifying flash memory against .build/helix_rev2_default.hex:
avrdude: load data flash data from input file .build/helix_rev2_default.hex:
avrdude: input file .build/helix_rev2_default.hex auto detected as Intel Hex
avrdude: input file .build/helix_rev2_default.hex contains 16490 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.12s

avrdude: verifying ...
avrdude: 16490 bytes of flash verified

avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)

avrdude done.  Thank you.

4.OLEDとバックライトLED

OLEDとバックライトLEDはソースコードをなおして有効にする必要がある。
こちらの説明ではrules.mkを編集すると書かれているが、このファイルは複数あるので注意が必要。上のファイルにはLED_BACK_ENABLEなどの文字列がないのですぐに違うファイルだと気づくと思う。
× /qmk_firmware/keyboards/helix/rules.mk
○ /qmk_firmware/keyboards/helix/rev2/keymaps/default/rules.mk

下のrules.mkを開き、LEDとOLEDの設定をyesに変更してビルドする。
LED_BACK_ENABLE = yes
OLED_ENABLE = yes


◆その他

今まで100円ショップで買った400円のはんだごてを使っていたけれど、初めて大人気のFX-600というはんだごてを使用した。意外と持ち手のヒーターとの堺の太い部分がかなり熱くなるので前のほうを持っていたらやけどしそうになった。ぎりぎり持ち手の部分なので鉄板つけないで熱くならないようにしてほしい。それよりもステーション型もほしい。
温まるまでの時間は安いものよりずっと早くて、設定温度になるとLEDが点滅するので良かった。

【Let's Split】一部のキーが動作しないときのトラブルシューティング

レツプリ組み立て終わっても特定の行だけとか特定の列だけ反応しないことがあったので、どこが悪いのか調べた。


◆Let's SplitとArduino pro microの配線

レツプリを組み立てるとき色の違いはあるかもしれないけれど、このパターンのArduino pro microを使うと思う。
自分は350円くらいの青いものをebayで買った。
f:id:ultra-genma:20180805190824j:plain

これのパターンを絵にするとこのようになっている。
f:id:ultra-genma:20180805191034p:plain

青字の6-9の4つがキーボードの行に対応していて、
赤字のA1-10の6つがキーボードの列に対応している。
f:id:ultra-genma:20180805191339p:plain

この表から分かるように左上のキー1(SW1)はA1-SW1-6という配線になっている。
f:id:ultra-genma:20180805192028p:plain


◆特定の1行または1列が反応しないとき

例えば、2行目のキーが全て反応しないとき、図の青字の7の行が悪いので、Arduinoの7番ピンの接触不良または故障だとわかる。
また、1列目のキーが全て反応しないとき、図の赤字のA1の列が悪いので、ArduinoのA1番ピンの接触不良または故障だとわかる。

pro microは壊してしまう前に予備を用意しておいたほうが良い


◆特定の1キーだけが反応しないとき

1キーだけが反応しないときはpro microに問題はなく、反応しないスイッチの接触不良またはスイッチ自体が壊れている。

Kindle Fireで連続スクリーンショット

シェルスクリプトKindleのページをスクリーンショットできるか試した
調べてもそれらしいものが見つからなかった

1.準備

bashが使えること
・adbが使えること

2.スクリーンショット

./adb shell screencap -p /[androidの保存場所(sdcardなど)]/[file name].png
パーミッションがついてるディレクトリを指定する

3.スリープ

sleep 1s
スクリーンショットに時間かかったりやページ送りした時にエフェクトがあるため少し待つ

4.ページ送り

./adb shell input touchscreen tap x座標 y座標
例: ./adb shell input touchscreen tap 650 700
タッチした位置にリンクがあるとページが飛んでしまい、前の方のページだとループしてしまうためなるべく余白の端の方の座標を指定する

5.ページ数分ループする

for 変数名 in `seq -f %03g` 最初のページ 最後のページ
do
    // スクリーンショット
    // sleep
    // ページ送り
done

seq -f %03gで001.pngのように3桁のファイル名をつくる

Kindle便利なのでおすすめ amzn.to

viをvimに変更する

自分専用のvimコンフィグを作る

githubvimを追加する

githubのアカウントでvimをforkする githubにログインし、vim公式のgithubの右上にある"Fork"ボタンを押す https://github.com/vim/vim

新しく自分のgithubに出来たvimのmaster branchからmyvim branchを作り、これにいろいろ自分の設定を追加していく

myvim branchをローカルのgitフォルダにcloneする

$ cd git
$ git clone https://github.com/vim/vim.git
$ git checkout myvim
Branch myvim set up to track remote branch myvim from origin.
Switched to a new branch 'myvim'
$ $ git branch
  master
* myvim

vimをビルドする

1.Vimのビルドするために使うパッケージをインストールする

$ sudo apt install -y git build-essential libtinfo-dev
$ sudo apt install -y python3-dev libxmu-dev  libxpm-dev libgtk-3-dev

2.git用の適当なディレクトリにソースコードを取得する

$ git clone https://github.com/vim/vim.git

3.vimディレクトリに移動し、copt.txtを作成する

$ cd vim/
$ vi copt.txt

4.copt.txtには下の一行を追加する

--enable-gui=gtk3 --enable-python3interp=dynamic --enable-fail-if-missing

5.configureを実行する

$ ./configure $(cat copt.txt)

6.makeとinstallを行う

$ make
$ sudo make install

vimをデフォルトのviに変更する

vimとviをalternativeに登録する

$ sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 100
update-alternatives: using /usr/local/bin/vim to provide /usr/bin/vi (vi) in auto mode
$ sudo update-alternatives --install /usr/bin/vim vim /usr/local/bin/vim 100
update-alternatives: using /usr/local/bin/vim to provide /usr/bin/vim (vim) in auto mode

githubのmyvim branchにcopt.txtを追加する

m$ git status
On branch myvim
Your branch is up-to-date with 'origin/myvim'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    copt.txt
$ git add copt.txt
$ git status
On branch myvim
Your branch is up-to-date with 'origin/myvim'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   copt.txt
$ git commit -m "Add: configure option file"

$ git status
On branch myvim
Your branch is ahead of 'origin/myvim' by 1 commit.
  (use "git push" to publish your local commits)
nothing to commit, working directory clean
$ git push origin myvim

参考

Software Design 2018/07

LinuxのBlenderでMMD toolsを使えるようにする

◆環境

Ubuntu 16.04
Blender 2.76b
mmd_tools v0.4.5 (Oct 26, 2014)
アリシア・ソリッドのモデル

3d.nicovideo.jp

◆やること

公式からmmd_tools v0.4.5最新安定版をzipでダウンロードする
BlenderのFile>User Preferences>Add-ons画面で一番下のInstall from File...からダウンロードしたzipを選択する
なにも反応が無いけれどhomeディレクトリの中の下の方にzipが解凍されて入っている

~/.config/blender/2.76/scripts/addons$ ls
auto_scene_setup.py      blender_mmd_tools-0.4.5

面倒なことにほしいのはmmd_toolsディレクトリ以下であるので中身を1つ上のディレクトリに移動する

$ sudo cp -r blender_mmd_tools-0.4.5/mmd_tools/ .
$ ls
auto_scene_setup.py       mmd_tools       blender_mmd_tools-0.4.5  

※最後の.はカレントディレクト
cpコマンド使ってしまったのでblenderディレクトリは削除する

$ sudo rm -r blender_mmd_tools-0.4.5/

BlenderのFile>User Preferences>Add-ons画面に戻り、左上の検索ボックスにmmdと入力するとObject: mmd_toolsという項目が出てくるのでチェックボックスにチェックを入れる
左下のSave User Settingsを押してウィンドウを閉じる
File>Import>MikuMikuDance Model (.pmd, .pmx)を選択してImportするファイル(Alicia_solid.pmxなど)を選択する

githubのpush時のログインを省略する

githubでremoteへpushするときに毎回ユーザー名とパスワードを入力しなければいけないのが面倒なので省略できるようにする

①.netrcの編集

ホームディレクトリに.netrcファイルを作成してユーザー名などを記入する

$ vi .netrc

で開いた空のファイルに以下を追加する

machine github.com
login username
password hogehoge

②gitのconfigファイルの編集

originに設定したURLにユーザー名とパスワードを追加する
cloneしたディレクトリに移動し直下にある.gitディレクトリの中のconfigファイルを編集する

vi .git/config

[remote "origin"]
  url = https://username:hogehoge@github.com/username/repository.git

.netrcでloginとpasswordって単語使ったのだからこれ定数なのかと思ったら両方にユーザー名とパスワード入れなきゃいけないんですね

ユーザー名:hatena
パスワード:1234

としたならば

url = https://hatena:1234@github.com/username/repository.git