前提
- cygwinの使い方は知っているものとして,いつも入れるプログラムを記載する
インストールプログラム
cygwin インストーラによる
- corkscrew
- curl
- gcc
- git
- make
- openssh
- p7zip
- pip2/pip3
- python2/python3
- sqlite3
- tmux
- vim
- wget
- zsh
自分でmakeする
- nkf
nkf を使えば,dosのipconfigなどをutf8に変換してcygwinのコマンドやスクリプトで処理できるようになるので,オススメ.

Now, http2 is available if your browser accept it.
hadacchiが好きでやってること.
nkf を使えば,dosのipconfigなどをutf8に変換してcygwinのコマンドやスクリプトで処理できるようになるので,オススメ.
c:\windows\system32\control.exe
Win + I
Win+IGet-AppxPackage マッチング文字列 | Remove-AppxPackage
| アプリ | マッチング文字列 |
|---|---|
| Groove ミュージック、映画、テレビ | *zone* |
| People | *people* |
| Xbox | *xboxapp* |
| アラーム&クロック | *WindowsAlarms* |
| カメラ | *camera* |
| OneNote | *onenote* |
Windows10になって、Winキー+カーソルキーでウィンドウをスナップする機能をつかうと、例えばWin+←とした場合、右半分に配置するウィンドウ候補が表示される。
ここでウィンドウを選択すると右半分にもスナップされ、ESCなどでキャンセルすると左半分へスナップしたウィンドウだけがスナップされる。
従来のWindowsではこのウィンドウ候補が表示されず、フォーカスの当たっているウィンドウのスナップ動作だけが行われて動作が完了していた。
私はそこまで自動化してくれる必要などなく、個別にガシガシウィンドウを右なり左なりにスナップして使うので、ウィンドウ候補の表示は邪魔である。
StartSSLで発行した証明書を使用しているサーバ(この鯖でした)へのアクセス時,たまにchromeで証明書エラーが出ていた.
特定のマシンでしかエラーが出ないので,放置していたんだけれども,最近になってfirefoxでもエラーが出るようになり本格的に怪しいと感じるようになったので証明書の発行元について調べてみた.
StartSSL(StartCom)のSSL証明書がiPhoneなどで認識されない問題 | カニとモモンガと愉快なユウ
ダメぢゃん…
はい,発行元,乗り換えるよ!
乗り換え先として名前がいくつかのサイトで挙がっていた Certbot へ移行することにした.
無料でSSL証明書を発行できるのはメリットだね!
sudo apt-get install certbot -t jessie-backports
openssl genrsa -aes256 2048 > server.key # <- 未だ秘密鍵がない場合 openssl req -new -sha256 -key server.key -out server.csr # <- 未だ証明書署名要求がない場合 sudo certbot certonly --standalone --csr server.csr --config-dir . --logs-dir . --work-dir . -d DOMAINNAME
openssl dhparam 2048 -out dhparam.pem
ssl_certificate /path/to/0001_chain.pem; ssl_certificate_key /path/to/server.key; ssl_dhparam /home/hada/sslfiles/dhparam.pem; ssl_trusted_certificate /path/to/0000_chain.pem;
sudo apt-get install dovecot-pop3d dovecot-lmtpd heirloom-mailx postfix maildirmake.dovecot /var/mail/USERNAME # Maildir形式の場合
送信テスト
行中に「.」のみの行が末尾のしるし.
mail USERNAME@HOSTNAME Subject: Test this is test .
受信テスト
よく忘れるので,メモ.
debianの場合,jessie-backportsで入れれば1.10.3が入る(2017.3時点)ので,自分でコンパイルするのをやめた.
WebDAVをまともに使おうと思った場合,libnginx-mod-http-dav-extを一緒に入れると良い.
systemctl start nginx.service で PID ファイルに関するエラーが出る場合は,起動スクリプトを修正すると良い.
@@ -20,6 +20,7 @@ PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;' +ExecStartPost=/bin/sleep 0.1 ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5
色々とtipsを書くエントリ.
jupyter notebook --no-browser
jupyter notebook --generate-config
設定ファイルを編集する.
c.NotebookApp.ip = '*' c.NotebookApp.port = 8888 c.NotebookApp.password = 'sha1:********'
パスワードの生成は
from notebook.auth import passwd; passwd()
2回パスワードを入力すると,ハッシュが返ってくるので,上のpasswordの値として代入する.
結構簡単になってたよ
xmodmap が駄目なら xinput を使えばいいじゃない.
私の場合はマウスのミドルクリックを頻繁に使うので,使い易い場所に配置したくなる.
今まで,Ubuntu上でremminaやVMを使っている場合にリモートやVM内でミドルクリックを入力する場合には,.Xmodmapでpointerを設定すれば良かった.
例えばKensingtonのEM-7でボタン8(右上のボタン)にミドルクリックを割り当てる場合は
pointer = 1 8 3 4 5 6 7 2 9 10 11 12
あとはX起動時にこのファイルを読み込めばよく,xmonadの場合はStartHookに
spawn "xmodmap ~/.Xmodmap"
とかでも良いし,.xprofileも読み込まれるので,こっちでも良い
xmodmap ~/.Xmodmap
しかしながら,この記事→ HHKBをHHKモードでWindowsでもLinuxでも使う - hadacchi blog のキーボードマッピングのために RDP クライアントを remmina から rdesktop に変更したところ,xmodmap の設定が反映されず元のボタン配置での入力がリモートホストに届くようになってしまった.
これではまずいので対処を調べたところ,xmodmap ではなく xinput を使う方法でもマウスの設定が可能なことが分かった.
設定はこんな感じ.
xinput --list --name-only | grep Kensington
ID を表示させて ID 番号で指定することも可能であるが,起動する度に変更される可能性があるのか不明なこと,ならばとコマンドで ID を抽出するともっと長くなることから,今回は名前でデバイス指定することにする.
ちなみに ID でどうしてもやりたかったら,ID の抽出はこんな感じ.
$ xinput --list | grep Kensington | cut -d= -f2 | cut -d' ' -f1 # スペースではなくタブ文字
$ xinput get-button-map "$(xinput --list --name-only | grep Kensington)" 1 2 3 4 5 6 7 8 9 10 11 12
どうやら,うちの環境では xmodmap を適用していても xinput からは変更がないように認識されているようだった.
$ xinput set-button-map "$(xinput --list --name-only | grep Kensington)" 1 8 3 4 5 6 7 2 9 10 11 12
VM でも rdesktop でも,もちろんホスト OS でも正しく動作したので,これで行くことにする.
main = do
(略)
xmonad $ ewmh defaultConfig
{ (略)
, startupHook = myStartupHook
}
myStartupHook = do
(略)
spawn "xinput set-button-map \"$(xinput --list --name-only | grep Kensington)\" 1 8 3 4 5 6 7 2 9 10 11 12"
gitなどで設定ファイルを管理していて,どのマシンでも同じ設定をgit cloneですぐに引っ張れるようにしている.
こうするとスタートアップは用意であるものの,環境依存の設定のためエラーを吐いたり最悪の場合は動作しないことがある.
今回はその中でも vim の場合.
vimの設定は.vimrcや.gvimrc(vim.gtkなど)などで設定する.
.vimrcなどの中では条件分岐が使える.
1を返す関数がTrueを,0を返す関数がFalseを意味する.
has('feature')が便利で,OSによる分岐や:versionで出力されるfeatureの有無(+/-)による分岐が可能.
例えば,pluginのsingletonはclientserverを必要とするが,cygwinでコンソールでのみvimを使う場合にエラーを吐く.
これを防ぐためには
if has('clientserver')
call singleton#enable()
endif
などとすればどちらにも対応できる.