dothikoのカクカクワールド2D REBOOT

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか色々。

Xubuntu(Ubuntu+xfce)16.04でのトリプルモニタ環境の設定

Xubuntu 16.04 (≒Ubuntu + xfce) 、今までデュアルモニタ環境で快適に使っていましたが、実はコレ偶然の産物だった…という話。 前述のようにwacom cintiq13HDを導入したため、トリプルモニタ環境にしたのですね。ちなみにGPUはnvidiaのGeForce 750GTXです。 …

Gesturefyとevdevで作る快適3ボタンマウス環境

FirefoxのプラグインFiregestureが使えなくなったため、Gesturefyを導入しました。 これがまた、なかなか良い。 なお、ジェスチャー&ロッカージェスチャー*1は、現時点ではlinux/macにおいては、右ボタンが押下時にコンテキストメニューを発動するため、コ…

Blenderが起動しないように見えるとき(@トリプルモニタ環境)

遅ればせながら、あけおめことよろでございます。 さて私のPC環境は大きく変化し、Wacom cintiq13HDを導入したことでトリプルモニタ環境となりました。 ちょっと変則的ですが、正面と右にモニタを配置。これは今までと同じ。 次に、正面の下…つまり机の上にc…

SWIGオブジェクトから生のポインタを取り出すには

最近SWIGづいていますが… PythonのSWIG(SWIGのPythonか…?)ラッパーオブジェクトからポインタを取り出すにはどうすればいいのか? それも、自作のクラスオブジェクトでございます。 なんでこんなことをする必要があるのかというと、SWIG化クラス「foo」があ…

Gdk(pygi)でマウスカーソルを任意位置に動かすには

感動のあまりカキコ! 改造版mypaintのsizechangemode.pyから一部抜粋〜 def drag_start_cb(self, tdw, event): self._ensure_overlay_for_tdw(tdw) self._queue_draw_brush() # Storing original cursor position and some needed objects. dev = event.get…

SWIG関数にctypesからアクセス

ついでにこれも思いついたシリーズ。 すなわち例えば、SWIG側の内部にstaticで構造体ポインタのリストを持っておき。 idx = register_hogehoge(void *ptr)でそのリストに登録。 その後はidxを使って(OpenGLのテクスチャの名前みたいな感じで)、例えば draw_…

PythonでSWIGのC++関数中でGdkPixbufにアクセスしてみた

Pythonで作ったGdkPixbufを、SWIGのC++関数に送り込んでC++の中で最速描画ということを考えつきました。 さらに、そのpixbufはcairoから作ると、なお痛快でしょう。 と前々から思っていたのですが、遂に重い腰を上げて作ってみました。 そんなわけでそのサン…

Xubuntu 16.04でCintiq 13HDを自動設定するの巻

ついつい、勢いでwacomの液タブCintiq 13HDを買ってしまいました(^^; 旧モデルなのは、安いだけでなくLinuxで使うには何も考えなくて良くて都合が良いというメリットもあるのです。 どーでもよいのですがこの絵、tegaki_dtで頑張って書いてたらボタンの誤爆…

SWIG & python でundefined_symbolが出る時

何か超久々ですがとりあえず… とりあえず以下、例として、 Flagtileというクラスがあるとします python用のtestlib2モジュールに組み込まれます。 SWIG, g++ともコンパイルは問題なく通る C++内では普通に使えている しかし、SWIGでPythonモジュールに組み込…

PyGObject(PyGi)で「デフォルトのフォントサイズ」を取得する

PyGObject…でいいのでしょうか。PyGiなのか。未だによくわかりません。 とにかく新しい方のGtkのpythonバインディングで、コンボボックスのカスタムレンダラーで使うデフォルトのフォントサイズを取得したくなりました。 これはMyPaintにOpenCVのgrabCut関数…

SWIGとnumpyについて(ImportErrorとセグメンテーションフォールト)

何か「ハリーポッターと魔法のナントカ」みたいなタイトル… それはともかくSWIGとnumpyでハマってしまったので備忘録的にメモ。 現象としては hppでNO_IMPORT_ARRAYを定義して#include <numpy/arrayobject.h>すると、.pyファイルでSWIGモジュールをインポートした時点でimporterro</numpy/arrayobject.h>…

cgdbを用いてpython拡張モジュール(てか、mypaint)をデバッグする方法

これまた備忘録的に… 当然ながらgccとかg++はデバッグオプション(-g -O0) でビルド mypaintの場合はsconsを使っているため、SConstructに書いてあるようにdebugオプションを使う つまり、scons debug=true デバッグビルドができたらcgdb pythonとする b 関…

Python+SWIGでがんばってみた for mypaint (備忘録的)

MyPaintに塗りつぶし拡大ルーチンを設置すべく、Python+SWIGで頑張ってみますた!(`・ω・´) 結果は… 何とか動くようになった!?!? それで悩んだところを備忘録的に書いておこうと思います。 手こずったところ まずPyDict_SetItem()。これがキツかった。 …

PyGiで謎のワーニングに対処する

今試作中のMypaint向けスタンプツールでポップアップメニューをgladeで作るように変更しました (以前はコードから作ってたけど、見通しが悪いので) それでいろいろ試行錯誤した結果、Gtk.ActionGroupでアクションを作って、このアクションからcreate_menu_…

xubuntu 16.04でvim-jediをまともに入れました

昔使っていたvim-jedi…当時、ちょっと遅いこともあって今ひとつ使いづらいときもあったりして、次第に離れておりました。 しかしながら最近、ちょっとpycharmというIDEを入れてみたらあまりにも使いやすいため、これはvimも整備しておかねば…ということで再…

Xubuntu(というか、Thunar)でエプソンEP-802Aのネットワークドライブに簡単アクセス

長いタイトルに短い記事といきたかったのですが、なんか長くなってしまいました… 実家用の複合機エプソン EP-802AにはLinuxドライバもありますが、出来る限りドライバレスで生きていきたいワタクシですので、単体スキャナ機能を活かしたいわけです。 以前は…

本当に駄目なマウスだろうか?自分の使い方が悪いのでは?と思って足掻く & 中ボタンの凝った使い方

実は買ったのはこのマウスなのですが このマウス、微妙である。 (糞WiiUさんのブログ「 俺的糞ゲー処刑ブログ 」様の、真似w) 握り具合自体は悪くないのと、特に変な事をしていないので (一時期、Win8対応!とかいってサイドボタンから迷惑至極なキーコー…

M100rマウス故障→改造決行!

まぁ、またもクソマウスを買ってしまうという愚行を繰り返したこともありますが… M100rの右クリボタンがチャタるようになりました。 保証に出そうかな〜と思ってましたが、保証って送料はどうなってるんですかね。M100rの実売価格を考えると送料のほうが高く…

LinuxにおけるDualshock3(PS3) & DualShock4(PS4) とMednafen向け設定について

(正確にはDualshock3ではなくホリの「ホリパッド3ターボプラス」なのですが、DualShock4の方は正真正銘のPS4のDualShock4です。) このDS4をXubuntu 16.04のPCにUSBケーブルで差し込んだ所…(当たり前なのでしょうが)普通にジョイパッドとして認識しました…

mayu向けにsystemdのserviceを書いてみた件

考えてみると半年ぶりのエントリだったのか… 三ヶ月ぶりぐらいの気分でいたわけですが…恐ろしい時間の速さ。 どこぞの神父のスタンド攻撃でも喰らっているのでしょうか。それはともかくsystemdだ。 ubuntu 16.04ではsystemdになっているので、daemonも書き直…

PCのサウンド環境とオーディオ沼の恐怖

新マシン建造直前に、唐突にPCのサウンド周りを改良し始めました。 これは特に音質の改善を目論んだものではなく、単に3.5mmミニプラグの接触が時折悪くなりサウンドが出ない、片方のチャンネルが出ない…ということがよくあったため、接触を改善するにはいく…

新規skylakeマシンを建造しXubuntu 16.04.1をインストール & mayuをコンパイルできた!

Linuxに最新のデバイスは全く良くない… そんなふうに考えていた時期が 僕にもありました しかしながら、あまりにも32GBメモリが安いのでついつい、まぁ、どうせ将来的にはこれも古くなるんだし…的な発想で。 ASUSのH110M-A M.2とPentium G4500で作ってみまし…

MyPaintにPolyfilltoolを実装しています

MyPaint私家版にさらにPolyfilltoolを実装ッ!(途中) アイデアとしてはこうです。 「brushlibを弄ってポリゴンフィルを付けるのは面倒だが、pycairoで描いてそのサーフェスをgdk.pixbufに変換しさらにそれをmypaintのレイヤのメソッドload_surface_from_pix…

BeautifulSoup4で突然なんだかエスケープされるようになったので対処

あ…ありのまま 今 起こった事を話すぜ! 「おれは xml-rpcでfc2から取ってきた記事をbs4にかけたと 思ったら すべてのタグが&lt;とかでエスケープされていた」 な… 何を言っているのか わからねーと思うが おれも 何をされたのか わからなかった… というわ…

MyPaintのレイヤ切り替えを超高速化するたったひとつの冴えたやりかた

MyPaintにおいて、レイヤ切り替えはちょっともっさり。これがMyPaintの宿命だと思い込んでおりました。が… gui/stategroup.pyのStateクラスのクラス変数、autoleave_timeoutをデフォの0.8から0.1とかにするとめっちゃ高速化します。 これはまさかして…拘束具…

外部ターミナルにデバッグ情報などを表示してみた

当たり前なのかもですが (& よくわかってないので迂遠な使い方かもですが) 最近ようやくttyの使い方に気づいたのでメモっておきます。 ターミナルエミュレーターやコンソールでttyってやるとその端末のデバイスファイルが出るわけですが、当然、それに対して…

私家版改造MyPaintがなんだかエライことになってきた件

機能つけすぎてわけわからんわ〜という感じになりつつあり… (^^; github.com ↑なんか比較的カッコいいリンクが作れたので、これで参ります。 当私家版MyPaintでは様々な機能を実験していますが、その中でもひたすらインクツールを改良しまくっています。いや…

VAIO SVT1311AJにUbuntu 15.10をインストールしてみる

さて、何故か最近ノートづいているワタクシですが。 今度はVAIO SVT1311Aだ! ↑インストール直後のバニラなUbuntu 15.10 最近メモリが安くなっていたため、サクッと4GBのキングストンのDDR3L PC-12800を購入して8GBに増量…はいいのですが、後になって12GB積…

githubでの初pull request@mypaintが通りました!

一応記事にしておきますです… githubについて超ド素人の分際でいきなりmypaintのinktool node関連のpull requestを出してしまい、いろいろ修正しましたが結局、 achadwickさんにご迷惑をかける始末… 本当に申し訳ありませんでしたachadwickさん&mypaint guy…

VAIO CR92HSのCPUを換装してみる

要らなくなったとのことで、VAIO CR92HSをいただきました。 しかし、CPUがCeleron 550… そこで、以前Thinkpad SL510のCPUを載せ替えた時に余ったCeleron Dualcore T3000にダメ元で載せ替えてみることにしました。 フタを開けて驚きです。 えっ? こんな簡単…