毎日モザイク

White Room Layout Works

2019-10-03T08:37:23+09:00 [Thu]
--> [労働]

魂を加速する

120msもかかっていたvim(iterm2上)の起動を90msまで短縮した、たった一つの冴えたやり方的ななにか。

colorschemeを決めうちに変更。

そんだけ。

立派に作られたcolorschemeは各種のなにかに対応するため、ちゃんとしたスクリプトっぽい構成になっていますが、決まってしまえばめったに変更することがないので決め打ちに変更してしまいましょう。

なんだかんだいっても決め打ち数値を割り当てるだけの逐次処理は最強です。

せっかくなので、黒バック用の陰キャ全閉、見てるだけで陰気になる華やかさの破片もない普段遣いのものを晒しておきます。

もとはjellybeansだったはずなのですが、原型をとどめていません…。

何もかもが決め打ちなので、guiのみ。


"jellymod2 guionly
hi clear
syntax reset
set background=dark
let colors_name="jellymod2"

hi! Normal                      guifg=#EEEEEE   guibg=#000000   cterm=NONE          gui=NONE

hi! ColorColumn                 guibg=#000000
hi! Comment                     guifg=#888888
hi! Constant                    guifg=#DF6A5C                   cterm=NONE          gui=NONE
hi! Cursor                      guifg=#222222   guibg=#AAAADD
hi! CursorColumn                                guibg=#1C1C1C
hi! CursorLine                                  guibg=#1C1C1C
hi! CursorLineNr                guifg=#AAAAAA                   cterm=NONE          gui=NONE
hi! DbgBreakPt                                  guibg=#4F0037
hi! DbgCurrent                  guifg=#DEEBFE   guibg=#345FA8
hi! Delimiter                   guifg=#668799
hi! DiffAdd                     guifg=#D2EBBE   guibg=#405026   cterm=NONE          gui=NONE
hi! DiffChange                                  guibg=#334455   cterm=NONE          gui=NONE
hi! DiffDelete                  guifg=#444444   guibg=#300000   cterm=NONE          gui=NONE
hi! DiffText                                    guibg=#7697D6   cterm=NONE          gui=NONE
hi! Directory                   guifg=#7697D6
hi! ErrorMsg                    guifg=#FFAAFF   guibg=#000000   cterm=NONE          gui=NONE
hi! FoldColumn                  guifg=#535D66   guibg=#111111   cterm=NONE          gui=NONE
hi! Folded                      guifg=#A0A8B0   guibg=#384048
hi! Function                    guifg=#FAD07A                   cterm=NONE          gui=NONE
hi! Identifier                  guifg=#C6B6EE                   cterm=NONE          gui=NONE
hi! LineNr                      guifg=#444444                   cterm=NONE          gui=NONE
hi! MatchParen                  guifg=#FFFFFF   guibg=#556779
hi! ModeMsg                     guifg=#999999                   cterm=NONE          gui=NONE
hi! NonText                     guifg=#555555                   cterm=NONE          gui=NONE
hi! Pmenu                       guifg=#DDDDDD   guibg=#111111
hi! PmenuSel                    guifg=#DDDDDD   guibg=#333333
hi! PreProc                     guifg=#8FBFDC                   cterm=NONE          gui=NONE
hi! PreciseJumpTarget           guifg=#B9ED67   guibg=#405026
hi! Question                    guifg=#79AA6A                   cterm=NONE          gui=NONE
hi! Search                      guifg=#000000   guibg=#FFFF88   cterm=NONE          gui=NONE
hi! SignColumn                  guifg=#777777   guibg=#111111
hi! Special                     guifg=#44AA99                   cterm=NONE          gui=NONE
hi! SpecialKey                  guifg=#774444                   cterm=NONE          gui=NONE
hi! SpellBad                    guifg=#FFAAFF
hi! SpellCap                    guifg=#7697D6                   cterm=NONE          gui=NONE
hi! SpellLocal                  guifg=#2D7067                   cterm=NONE          gui=NONE
hi! SpellRare                   guifg=#770066                   cterm=NONE          gui=NONE
hi! Statement                   guifg=#8197CF                   cterm=NONE          gui=NONE
hi! StatusLine                  guifg=#111111   guibg=#666666   cterm=NONE,reverse  gui=NONE,reverse
hi! StatusLineNC                guifg=#222222   guibg=#666666   cterm=NONE,reverse  gui=NONE,reverse
hi! StatusLineTerm              guifg=#666666   guibg=#110033   cterm=NONE          gui=NONE
hi! StatusLineTermNC            guifg=#666666   guibg=#222222   cterm=NONE          gui=NONE
hi! StorageClass                guifg=#dd996F                   cterm=NONE          gui=NONE
hi! String                      guifg=#79AA6A
hi! StringDelimiter             guifg=#556633
hi! Structure                   guifg=#8FBFEE                   cterm=NONE          gui=NONE
hi! TabLine                     guifg=#666666   guibg=#000000   cterm=NONE          gui=NONE
hi! TabLineFill                 guifg=#000000   guibg=#000000   cterm=NONE          gui=NONE
hi! TabLineSel                  guifg=#AAAAAA   guibg=#000000   cterm=NONE          gui=NONE
hi! Title                       guifg=#79AA6A                   cterm=NONE          gui=NONE
hi! Todo                        guifg=#333333   guibg=#FFFFAA
hi! ToolbarLine                                                 cterm=NONE          gui=NONE
hi! ToolbarButton                                               cterm=NONE          gui=NONE
hi! Type                        guifg=#FAD07A                   cterm=NONE          gui=NONE
hi! VertSplit                   guifg=#111111   guibg=#111111
hi! Visual                                      guibg=#404050
hi! VisualNOS                                                   cterm=NONE          gui=NONE
hi! WarningMsg                  guifg=#FFFFFF                   cterm=NONE          gui=NONE
hi! WildMenu                    guifg=#FFAAFF   guibg=#302028
hi! rubyClass                   guifg=#447799                   cterm=NONE          gui=NONE
hi! rubyControl                 guifg=#8197BF                   cterm=NONE          gui=NONE
hi! rubyIdentifier              guifg=#C6B6FE
hi! rubyInstanceVariable        guifg=#C6B6FE
hi! rubyPredefinedIdentifier    guifg=#DE5577
hi! rubyRegexp                  guifg=#EE55EE
hi! rubyRegexpDelimiter         guifg=#6600EE
hi! rubyRegexpSpecial           guifg=#CC6666
hi! rubySymbol                  guifg=#7697D6                   cterm=NONE          gui=NONE

hi! link MoreMsg                     ModeMsg
hi! link IncSearch                   Search
hi! link Conceal                     Operator
hi! link Error                       ErrorMsg
hi! link Operator                    Structure
hi! link TagListFileName             Directory
hi! link cFormat                     Identifier
hi! link cOperator                   Constant
hi! link cocoaClass                  objcClass
hi! link cocoaFunction               Function
hi! link coffeeRegExp                javaScriptRegexpString
hi! link diffAdded                   String
hi! link diffRemoved                 Constant
hi! link elixirAtom                  rubySymbol
hi! link erlangAtom                  rubySymbol
hi! link erlangBIF                   rubyPredefinedIdentifier
hi! link erlangDirective             Statement
hi! link erlangFunction              rubyPredefinedIdentifier
hi! link erlangNode                  Identifier
hi! link htmlEndTag                  htmlTag
hi! link htmlTag                     Statement
hi! link htmlTagName                 htmlTag
hi! link htmlBoldItalic              Special
hi! link htmlBoldUnderlineItalic     Special
hi! link htmlUnderlineItalic         special
hi! link htmlItalic                  special
hi! link javaScriptRegexpString      rubyRegexp
hi! link javaScriptTemplateDelim     Identifier
hi! link javaScriptTemplateString    String
hi! link javaScriptTemplateVar       StringDelim
hi! link javaScriptValue             Constant
hi! link luaOperator                 Conditional
hi! link objcClass                   Type
hi! link objcDirective               rubyClass
hi! link objcMessageName             Identifier
hi! link objcMethodArg               Normal
hi! link objcMethodName              Identifier
hi! link objcStatement               Constant
hi! link objcSubclass                objcClass
hi! link objcSuperclass              objcClass
hi! link phpArrayPair                Operator
hi! link phpBoolean                  Constant
hi! link phpFunctions                Function
hi! link phpNull                     Constant
hi! link phpOperator                 Normal
hi! link phpQuoteDouble              StringDelimiter
hi! link phpQuoteSingle              StringDelimiter
hi! link phpRelation                 Normal
hi! link phpSuperglobal              Identifier
hi! link phpVarSelector              Identifier
hi! link pythonOperator              Statement
hi! link rubyConstant                Type
hi! link rubyFunction                Function
hi! link rubyGlobalVariable          rubyInstanceVariable
hi! link rubyInterpolationDelimiter  Identifier
hi! link rubyModule                  rubyClass
hi! link rubySharpBang               Comment
hi! link rubyString                  String
hi! link rubyStringDelimiter         StringDelimiter
hi! link vimOper                     Normal
hi! link xmlDocTypeDecl              PreProc
hi! link xmlDocTypeKeyword           PreProc
hi! link xmlEndTag                   xmlTag
hi! link xmlEntity                   Special
hi! link xmlEntityPunct              xmlEntity
hi! link xmlEqual                    xmlTag
hi! link xmlProcessingDelim          xmlAttrib
hi! link xmlTag                      Statement
hi! link xmlTagName                  xmlTag
hi! link EndOfBuffer                 Ignore


MacVimだと、このあとGUIの起動という大仕事があるので、この程度切り詰めても体感できるほどの効果はありません。

2019-08-12T22:04:35+09:00 [Mon]
--> [日常]

denite-gitが動かないのはどう考えても以下略

denite-gitが動きません。

OSX10.11.6(ハードが古すぎてここが限界)
MacVim8.1.1722(157)
denite, denite-git,ほか依存関係者はさっきアップデートしたやつ。

tigかsourcetreeのどちらかがメインなので、あんまり気にしてませんでしたが、超あっけなく解決してしまったので一応書いておこう。

フォルダをApplication Support/repoからDesktop/repoに移したら普通に動きました…。

deniteかdenite-gitがフォルダ名にスペースがあるとダメなようです。普通は使いませんが、デフォルト名のは仕方ない…。

起動ディスクのデフォルト名にも入ってますが、アソコはposix pathでは展開されないので問題なし。ということのようです。

2019-07-16T01:36:28+09:00 [Tue]
--> [Ubuntu]

ひどいターミナル

st(suckless terminal or simple terminal)はひどい。

もちろん、いい意味で。

sucklessをgoogle翻訳すると「ひどい」と出る。ホントの意味はわからない。

.strcみたいな設定ファイルはなくて、なんというか、こう、コンパイル時に設定オプションを書き換えてリコンパイルしろという恐ろしい仕様。

起動オプションでも変更できる設定があるけど、せっかくなので設定用のファイルを書き換えたほうがstっぽい感じ。設定ファイルがわけわからん状態になっても大丈夫。オリジナルをコピーし忘れてもデフォルト設定ファイルがオマケで入っている親切設計。

もちろん、そんな鬼仕様なのでコンパイルは瞬殺で終わる。

起動が超速い。どのくらい速いかと言うとcairo-dockのエフェクトが終わらないうちに起動する。設定がハードコーディングされるので読み込むものがない。一人で使うものはこうでなくちゃ。どうせ決まった設定なんて滅多に変えないし、コンパイルは爆速なのでmake clean install Return!!!の!あたりで終わってる。

fcitxでインライン変換が出来ない。左右metaに割り当てたon/off切替が効かないのでcontrol+spaceを使わないといけない。何かに食われているらしいけど読むのはCのソースコードなのでまたの機会にw。キー設定も書かれているので読めばわかるだろ系。

安心のtrue color対応。ubuntuの旧型LTSでも使えます。

2019-05-15T23:56:03+09:00 [Wed]

Indesignから文字なし・文字ありのPNGで書き出して、レイヤー状態のPSDファイルでください。

Indesignからフォルダ1に文字非表示のPNG画像を書き出します。
ついで、フォルダ2に文字のみのPNG画像を書き出します。
これを適当な手段で合成して1枚のPSD形式にまとめて納品します。
そういう需要が少しあるようです。

// marge2ImagesIntoPsd.jsx
// Actionに"paste"セットを作って"pasteInto"アクションに
// "特殊ペースト→同じ位置にペースト"を記録
// Indesignで表示・非表示を分けて書き出したファイルを
// 一枚のレイヤー生きPSDファイルに結合する
// 2019.05.14 WhiteRoom

(function main () {

    var fs = folderSelect();
    var re = /.*\.(JPG|jpg|PSD|psd|PNG|png|TIF|tif)$/;
    var layLitems = fs.layerL.getFiles(re);
    var layUitems = fs.layerU.getFiles(re);

    if ((layLitems.length) != (layUitems.length))  {
        confirm("画像ファイルと文字ファイルの数が異なっています。実行しますか?");
    }

    //photoshop start
    for (var i = 0; i < layLitems.length; i++) {

        var fileObjL = new File(layLitems[i]);
        var fileObjU = new File(layUitems[i]);
        var saveLocation = new File(fs.savLoc + "/" + fileObjU.name);
        var psdOpt = new PhotoshopSaveOptions();
        psdOpt.alphaChannels = true;
        psdOpt.annotations = true;
        psdOpt.embedColorProfile = false;
        psdOpt.layers = true;
        psdOpt.spotColors = false;

        open(fileObjL);
        open(fileObjU);

        activeDocument.selection.selectAll();
        activeDocument.activeLayer.copy();
        activeDocument.close(SaveOptions.DONOTSAVECHANGES);
        activeDocument.flatten(); //下段のレイヤーは統合します(個人的な都合)
        doAction("pasteInto","paste"); //同じ位置にペーストは面倒なのでaction
        activeDocument.saveAs(saveLocation, psdOpt, true, Extension.LOWERCASE);
        activeDocument.close(SaveOptions.DONOTSAVECHANGES);
    }
})();

//なんとなく分離してみただけ。この程度はmain()の中に入れたほうがいいかも
function folderSelect() {
    var retItems = new Object();
    retItems.layerL = Folder.selectDialog("画像レイヤーのフォルダを選択してください");
    retItems.layerU = Folder.selectDialog("文字レイヤーのフォルダを選択してください");
    retItems.savLoc = Folder.selectDialog("保存先フォルダを選択してください");
    return retItems;
}

まず定番の.DS_Storeほかファイラのクソファイル避け。
ブラックリスト方式は難しすぎるので(/^[^.].=$/ でも /(?!.).+$/ でも駄目だったので諦め)ホワイトリスト方式で。
次も定番の同じ位置にペーストがJSではできない。
できるっぽいけどかなりめんどくさそうなので、アクションに逃げます。
メニュー項目から同じ位置にペーストを記録したアクションを呼び出すだけでお悩み解決。
※同じinddから同じ設定で書き出した画像を扱うのが前提なので、サイズの不一致とか一切考慮に入れていません。

2019-03-03T07:27:25+09:00 [Sun]
--> [日常]

signing with opengpg

LOのopen gpg signatureは何をするか。

LOの.odt, .odsほか、open document formatの実体はzipファイルで、解凍すればわかりますが、ドキュメント本体とか、配置画像とか、設定とか、履歴とかをひとまとめの圧縮ファイルにしたものです。

こんな感じ。

content.xmlというのが本文で、documentsignatures.xmlというのがgpgsignatureをxml化したものです。

デジタルサインでなんか直感と違う動作の、サインしたあとで保存してはいけないというのは、content.xmlがサインしたものと変わってしまうからで、デジタルサインが成功すると.odtのzipファイルに追加保存されているので、そのまま閉じればいいわけです。

サインが成功したファイルをLOで開くと、勝手に検証してくれて、正しい署名であれば青っぽいウィンドウが出ます。

なぜここまでにMacのスクショがないかといえば、Mac版ではどうにも動かないからです…。