ほぼ自分用備忘録。
他の方も何かの役に立つかも。
ただし以下の内容を実行する事については自己責任でお願いします
富士通T900/Bのデジタイザペンが動かない、筆圧が出ない、変な動きをする場合。
以下の頁でデジタイザのドライバをダウンロード。
http://azby.fmworld.net/app/customer/driversearch/pc/drvdownload?driverNumber=E1022966
T900/Bの型式名で検索しても、何故か64ビット版Windowsのドライバしか置かれていない。
上記アドレスのドライバは、対応表にT900/B書かれていないが、問題なく動くっぽい。
Linux版HSP3DishとVIMを組み合わせたい。
vimrcに以下の内容を書く。

"HSP3Dish
noremap <F5> :w<CR>:execute "! /home/yy/hsplinux35/hspcmp -i -u" . " " . expand("%:p")<CR>:execute "! /home/yy/hsplinux35/hsp3dish" . " " . expand("%:r") . ".ax"<CR>
autocmd BufRead,BufNewFile *.hsp set filetype=hsp

「/home/yy/hsplinux35/」の部分は当然、HSP3Dishを置いてあるディレクトリを指定。
F5を押すと、編集中のスクリプトを保存してAXにコンパイル、実行します。

シンタックスはVimhotのものを流用。
改行コードがCRLFなので、:set ff=unixみたいな感じでLFに。

GVIMでしか試していませんが、多分VIMでも行けると思います。多分。
Windows上GVIMのgvimrc
自分が使いやすい設定。
3行目の「hsp」については後述。

"HSP
noremap <F1> :execute "!start \"c:\\hsp34\\hsphelp\\helpman.exe\"" . " " . expand( "<cword>" )<CR>
noremap <F5> :w<CR>:execute "!start hsp %:p"<CR>

autocmd BufRead *.hsp call FileTypeHsp()
autocmd BufRead *.as call FileTypeHsp()
autocmd BufRead *.hss call FileTypeHsp()
function FileTypeHsp()
set filetype=hsp
endfunction

"行番号を表示
set number

"Shift+Insertに加え、クリップボードからの貼り付けで変なタブが入る事を抑止。
noremap <S-Insert> :set paste<CR>i<C-r>*<ESC>:set nopaste<CR>

"右端で折り返さない。
set nowrap

"無意味に英語表示に直してみる。
let $LANG = "en"
"メニューをホンマ無意味に英語にする。
source $VIMRUNTIME/delmenu.vim
set langmenu=none
source $VIMRUNTIME/menu.vim

"常にタブを表示。
set showtabline=2
"ctagsで作られたタグのアレを参照。多分こんな明示せんでもいけるはず。
"ちなみに、DOS窓でctags -Rとしたのち、VIM上でC-]を押す。
:set tags=tags;

"メモ書き用シンタックス。
au BufRead,BufNewFile *.txt set syntax=hybrid

" タブを表示するときの幅
set tabstop=4
" タブを挿入するときの幅
set shiftwidth=4
" タブをタブとして扱う(スペースに展開しない)
set noexpandtab
"
set softtabstop=0

"透明感(?)のあるインデント表示。
set list
set listchars=tab:\|\

"一時ファイルの出力先を変える。
set backupdir=C:\vim\tmp
set directory=C:\vim\tmp
set undodir=C:\vim\tmp
Windows上GVIMとHSP3を組み合わせたい。
「HSP3.x用 コマンドライン コンパイラ」を使えば可能…のはずなのだが、Windows7のバグのせいで上手く行かないため、以下のような方法で対応している。
以下はおまけMk3に書いたもののコピー。

香り屋版Vimと、HongKong氏の「HSP3.x用 コマンドライン コンパイラ」を組み合わせて、HSP開発環境としてみる。
ただ、Vimからコマンドラインコンパイラを実行しようとすると、何故かちゃんと動かない。
調べてみると、Windows7のコマンドプロンプトにおいてはコマンド引数の先頭に半角スペースがくっ付くと言うバグとしか思えない挙動をするらしい。
以前のWindowsでは正常だそうで、これマイクロソフトのしわざです。

EXEからEXEを起動する際の引数は正常なので、Vimとコマンドラインコンパイラの間にかますEXEを自作して対処。
せっかくだから、VimでHSPを書く方法を載せてみる。

必要なものは以下。
香り屋版Vim(普通のVimでも良いはず)
HSP3.x用 コマンドライン コンパイラ(hcl_cmp2)
VimDeHotSoup(シンタックスのファイルを拝借する)


件の、Vimとコンパイラの間のソース。よろしければ使って下さい。
#packopt name "HSP"
#packopt hide 1

PARAM=dir_cmdline
if strmid(PARAM,0,1)=" " {
getstr PARAM,PARAM,1,'',1024
}
if strmid(PARAM,0,1)="\\" {
PARAM="C:"+PARAM
}
exec "C:\\hcl_cmp2\\hcl_cmp2.exe "+PARAM
end
C:\hcl_cmp2にコマンドラインコンパイラがあるものとして作成。
8〜10行目は要らんかも知れん。

これをコンパイルして、出来たEXEをVimと同じディレクトリに移動。

gvimrcに、F1とF5の操作、命令とかの色分けについて記述。
以下、VimHotプラグインの説明書にあったものを土台に改造したもの。
VimHot本体は上手く扱えなかったので…。スミマセン。
"HSP
noremap <F1> :execute "!start \"c:\\hsp34\\hsphelp\\helpman.exe\"" . " " . expand( "<cword>" )<CR>
noremap <F5> :execute "!start hsp %:p"<CR>

autocmd BufRead *.hsp call FileTypeHsp()
autocmd BufRead *.hss call FileTypeHsp()
function FileTypeHsp()
set filetype=hsp
endfunction

"行番号の表示。
:set number
HSSってのは、一時期使っていたお洒落なHSPスクリプトエディタの拡張子。
これもHDLのあるディレクトリに合わせて下さい。行番号はオマケのディアルガ。

命令の色分けをするためのファイルを用意する。
これもVimHotに含まれる、vimhot\syntax\hsp.vimを、Vim\vim80\syntaxにコピー。
Vim\vim80\synmenu.vimのてきとうな行に、以下を追記。
an 50.50.205 &Syntax.HIJK.HSP :cal SetSyn("hsp")

以上で、HSPとVimの共演が実現します。多分。

眠いからちゃんと書けているかどうか分からん。


※上記の方法だと、C:\以外にあるファイルのコンパイルが出来ません。テキトーです。
Windows版GVIMの背景に萌え絵を表示したい。
vim-bgimg。
https://github.com/vim-scripts/vim-bgimg
HSP3でDXライブラリ使っているとonexitが効かない。
いのびあさんの「dxlib.as」を使うと、onexitが正常に動かないよう。
DXライブラリ側の「ProcessMessage」で対応する。こんな感じ。:

ProcessMessage
if stat=-1 :break
Linuxでibusの動きがおかしい。
xtermとか開いて、ibus exit、ibus-daemon -d。
一度ibusを止めて再起動している。
Linuxでibusが全く使えない。
ibus-setup忘れてないか?
X201iのDebian JessieでThinkfanが正常に起動しない。
https://askubuntu.com/questions/236255/thinkfan-on-thinkpad-t410-thinkpad-acpi-doesnt-seem-to-support-fan-control
とりあえずthinkfanをsynapticとかapt-getで入れて、エラーが出ても無視。
/etc/modprobe.d/thinkfan.confファイルを作って、以下の内容にする:

options thinkpad_acpi experimental=1 fan_control=1

これでファン制御の許可がされるので、xtermで以下を実行し、thinkfanサービスを自動で実行するように。:

sudo systemctl enable thinkfan.service

以降はOS起動の時に自動でファン制御がされるはず。
Linuxでマウスポインタの速度を変える。
xset m 0 0。
2つの数値のどっちかが、ポインタの速度を加速するしきい値。色々試して良い感じにする。
横から見たヒトの体。

すっげえキモいデザインだな。
JSPaintをローカルかつ単体の実行ファイルとして使う。
1. npmてのをググって、msi落としてセットアップ。
node.jsなるもののパッケージマネージャらしい。
これはDebianのパッケージマネージャでも取得出来るが、うちのDebianJessie環境では以下3番の手順でエラーデス!になった。

2. パスを確実に通すためいったんログオンし直す。

3. npm install -g nativefier
npmによって、nativefierがダウンロード、セットアップされる。

4. nativefier --name "jspaint" --insecure --ignore-certificate --disable-context-menu index.html
(Windows上で32ビット版Linux用のアプリケーションを作る場合は
nativefier --name "jspaint" --insecure --ignore-certificate --disable-context-menu --platform linux --arch ia32 index.html)
これでカレントディレクトリにディレクトリが作られる。

5. 生成されたディレクトリ内の、resources\app\lib\main.jsの4440行、!options.saveAsの「!」を消す。
これをしないと、ファイルの保存が出来ない。

6. 生成されたディレクトリ\resources\app\nativefier.jsonのtargetUrlを、file:///index.htmlに 直す。
うちのDebianJessieでは、何故か絶対ディレクトリを指定しないとダメだった。
「file:///ユーザ名/Documents/生成されたディレクトリ名/index.html」みたいな感じ。

7. 生成されたディレクトリに、jspaintのindex.htmlその他全てのファイルとディレクトリをコピー。

(参考にしました: https://github.com/jiahaog/nativefier/issues/45)
Windows、MinGWでSDL2を使う。
MinGWのパッケージマネージャ的なやつでmsys-bash入れる。

コレを使ってSDL2、SDL_mixer、SDL_imageをるいぱんこ。以下3URLから、develとmingwの書かれているtar.gzを落 とす。
https://www.libsdl.org/download-2.0.php
https://www.libsdl.org/projects/SDL_mixer/
https://www.libsdl.org/projects/SDL_image/
コレをLhaplusで解くとパーミッションでないどになるので、Explorer使って読み込み専用のチェックをのける。
のけたら、各ディレクトリでmake native。

その後で、C:\MinGW\msys\1.0のinclude、lib、binを、パスの通っているであろうC:\MinGWにコピー。フォルダを統合 する感じ。
多分msysのinclude以下各フォルダをパス通したら良いとは思う。

で、ビルドは以下のコマンドで。
"C:\MinGW\bin\gcc.exe" nazo.c -o nazo.exe -ISDL2-2.0.3\x86_64-w64-mingw32\include\SDL2 -LSDL2-2.0.3\x86_64-w64-mingw32\lib -lSDL2_image -lSDL2 -lSDL2main

それと、main()部分は以下のようにする必要があるっぽい。
int WinMain(int argc, char * argv[])
WinMainじゃなくてmainでも良いのかも知れないが。

絵を表示するために、以下2ファイルを、SDL2_image-2.0.3\i686-w64-mingw32\binから作業ディレクトリにコピー。
libpng16-16.dll
zlib1.dll
Fvwm2のFvwmWharfで、AfterStep用のDockAppを埋め込むと見切れて変な風になる。
asclockとかをSwallowする時はMaxSwallowで。
ふつうのSwallowだと48x48ドットのワクにぼし込む感じになるらしい。MaxSwallowは64x64ドット。
IceWMにおいて、ウインドウの最大化、最小化などで音を鳴らす。
以下はIceWM1.3.8での話。他のバージョンでは違うと思う。
apt-getなどでIceWMを入れている場合、以下の手順だけでいけるはず。

1. osspd、osspd-alsaをapt-getとかでセットアップ。
これは、最近のLinuxでは音を鳴らす仕組みが変わっていて、IceWMが扱う古い仕組みをエミュレートするために必要。
具体的には、OSSと言うのをALSAでエミュレートする。

2. ~/.icewmにstartupファイルを作成。

3. startupの内容を以下のようにする。
#!/bin/bash

killall icesound
icesound &

4. ~/.icewmにsoundsディレクトリを作成。

5. sounds内に、以下のファイル名でwavを作成。
再生周波数は8000Hz、メタデータを入れず、ヘッダなしのRAW、Unsigned 8bit PCMで保存の事。Audacityで設定可能。
startup.wav
shutdown.wav
restart.wav
launchApp.wav
workspaceChange.wav
windowOpen.wav
windowClose.wav
dialogOpen.wav
dialogClose.wav
windowMax.wav
windowRestore.wav
windowMin.wav
windowHide.wav
windowRollup.wav
windowMoved.wav
windowSized.wav
windowLower.wav

IceWMをソースコードから自分でmakeする場合。

1. configure実行の際、以下のようにする。
./configure --enable-guievents --with-icesound=OSS,YIFF,ESD
YIFF、ESDは要らんかも知れん。

2. src/wmapp.hの81行目にある#if 0を#if 1に直す。
何故この処理が殺されているのかはナゾ。

3. make、make install。