マウスのミドルクリックの割り当てをrdesktopでもxmonadでも変更したい

結論 xmodmap が駄目なら xinput を使えばいいじゃない. 前提 私の場合はマウスのミドルクリックを頻繁に使うので,使い易い場所に配置したくなる. 今まで,Ubuntu上でremminaやVMを使っている場合にリモートやVM内でミドルクリックを入力する場合には,.Xmodmapでpointerを設定すれば良かった. 例えばKensingtonのEM-7でボタン8(右上のボタン)にミドルクリックを割り当てる場合は あとはX起動時にこのファイルを読み込めばよく,xmonadの場合はStartHookに とかでも良いし,.xprofileも読み込まれるので,こっちでも良い 課題 しかしながら,この記事→ HHKBをHHKモードでWindowsでもLinuxでも使う - hadacchi blog のキーボードマッピングのために RDP クライアントを remmina から rdesktop に変更したところ,xmodmap の設定が反映されず元のボタン配置での入力がリモートホストに届くようになってしまった. 対策 これではまずいので対処を調べたところ,xmodmap ではなく xinput を使う方法でもマウスの設定が可能なことが分かった. 設定はこんな感じ. まずデバイス名を調べる. ID を表示させて ID 番号で指定することも可能であるが,起動する度に変更される可能性があるのか不明なこと,ならばとコマンドで ID を抽出するともっと長くなることから,今回は名前でデバイス指定することにする. ちなみに ID でどうしてもやりたかったら,ID の抽出はこんな感じ. 現在の設定を表示させてみる. ちなみに,EM-7はデバイス名にタブとかスペースが連続して幾つも入っていて,ちゃんと調べるのが面倒だったのでコマンドでそのまま送ることにした. どうやら,うちの環境では xmodmap を適用していても xinput からは変更がないように認識されているようだった. 設定を変更してみる. xmodmap の設定を消して再起動(再ログイン)するのを忘れずに. VM でも rdesktop でも,もちろんホスト OS でも正しく動作したので,これで行くことにする. xmonad の設定 xmonad.hs に書くことにした.xmodmap の時みたく xprofile でも良いかも.

異なる環境で共通の.vimrcを使う

前提 gitなどで設定ファイルを管理していて,どのマシンでも同じ設定をgit cloneですぐに引っ張れるようにしている. こうするとスタートアップは用意であるものの,環境依存の設定のためエラーを吐いたり最悪の場合は動作しないことがある. 今回はその中でも vim の場合. 対処法 vimの設定は.vimrcや.gvimrc(vim.gtkなど)などで設定する. .vimrcなどの中では条件分岐が使える. 1を返す関数がTrueを,0を返す関数がFalseを意味する. has('feature')が便利で,OSによる分岐や:versionで出力されるfeatureの有無(+/-)による分岐が可能. 例えば,pluginのsingletonはclientserverを必要とするが,cygwinでコンソールでのみvimを使う場合にエラーを吐く. これを防ぐためには などとすればどちらにも対応できる.

nginx で StartSSL のクライアント証明書を使ったクライアント認証をやる

毎回,認証が表示されるのが面倒臭いので,クライアント認証を導入する. 環境 nginxのバージョンを上げるか,opensslのバージョンを上げるかしないとエラーを吐くので,nginxを1.9.12以降に上げるか(#901 (Changes in openssl master wrt SSL_shutdown()) – nginx),opensslを1.1.0以降に上げる(SSL error NginX 1.9.10) 本記事では,試験鯖でnginx公式リポジトリ(Debian 8 (Jessie) - Web サーバ Nginx 構築(Nginx 公式リポジトリ使用)! - mk-mode BLOG)を使用して入れた1.10.2-1と, jessie-backportsを使用して入れた1.0.2k-1により動作確認することとする. ちなみに,この鯖はそれらとは環境がまた違います. nginxのアップデート ownCloudを入れていてnginxを使っている時にnginx-commonを消すとapache2が入ってしまい,/etc/systemd/system/nginx.serviceが/dev/nullを指すようになってしまったので,/lib/systemd/systemにnginx.serviceを書いて(NGINX systemd service file | NGINX),おまじないを唱える. そうすると,systemdで制御できるようになるようなので,service nginx startとかが効く. nginx.serviceに書いてあるバイナリーのバージョンを確認して,問題なければnginxの設定に入る. nginxの設定 startsslのログインにクライアント証明書を使ったクライアント認証が必要(最近はメールアドレスへのワンタイムパスがサポートされたけど,昔は証明書を失くしたら二度とログインできなかった)なので,当然インストール済だとして,その証明書を使うことにする. 証明書のsubjectは以下とする. subjectを確認する方法は とかやる.pkcs12の部分は証明書の形式に応じて変更する. あとはnginxのserverあたりに設定を書く. 基本的な設定は,この辺を流用すると楽チン.Generate Mozilla Security Recommended Web Server Configuration Files ね,簡単でしょ?

キー入力イベントの可視化

キー入力のトラブル PCを使っていると,キー入力が思い通りにいかないことがある. 違うキーが入力されるのは,目で見て分かるのでまだマシな方で,何か入力されているのか否かも分からない場合もある. その場合,キーイベントを拾って出力させるのが良い. 具体的には,HHKBをHHKモードでWindowsでもLinuxでも使う - hadacchi blogという記事のようなことをしていて, かつremminaでRDP接続をしている時に,hhk上のALT(◇と入れ替えている)を押しても,スタートメニューが開かない(Winキー入力になってない)場合. Windows側で確認 KT Software - Keymill がシンプルで良い. ただし,画面の上側にタスクバーを表示させていると,ウィンドウがタスクバーの後ろに起動して,移動できなくなる. Linux側で確認 xevコマンドを叩く. 起動したウィンドウを閉じようと思うとマウスを動かすとマウスイベントも拾ってしまうので,コンソールのログが流されてしまうのが欠点.

debian jessie に owncloud 8.1 を導入する

方法 owncloudの入れ方には,大きく分けて2種類 apt-getで入れる 普通に入れる backportsから入れる ソースからコンパイル ついでに,owncloudはwebdavが必要になるので,httpdも入れる. apache2 nginx で,本記事では apt-get で backportsから owncloudを入れる (apache2を使いたくないから) nginx で運用する 手順 nginxと,mysql or mariadbは使える前提 owncloudを入れてみる なんか apache2 が入ってきたものの,nginx で十分なので backports で入れることにする apache2とかを消す 普通に消そうとすると,php5-cgiが入ろうとする.これも要らない.php5-cgiも消そうとしたら,php5-fpmが入ろうとする.これは使う. 他に一緒に入ったものをまとめて消す spdyでも良ければ,これでOK http2を使う場合は,nginxとopensslもbackportsで入れる mysqlの設定 DB作成.owncloudにログインする時に初期設定するので,何でもOK.ユーザも別で作って良い. nginxの設定 基本はnginx Example Configurations — ownCloud 9.2 Server Administration Manual 9.2 documentationに従いつつ,Generate Mozilla Security Recommended Web Server Configuration Filesあたりを参照して,自分の環境に直す. 私の場合, あと,この辺も設定しておかないとwebdavで大容量ファイルの転送に失敗すると思われる. nginx + php-fpmでphpを動かす - Qiita 要するにファイルサイズの上限解除.

DD-WRTをイーサネットコンバータとして使う

client bridge - toshi_hirasawaの日記 を参考にしつつ, 私が使っているものは日本語化されてたり v24-sp2だったりという差分があったので一部補足しながら. 前提 DD-WRT化は済とする. wl0はAPとして,wl1はClientとして設定する. 構成 DD-WRTの構成 Firmware DD-WRT v24-sp2 (08/07/10) std 準備 接続環境 (複数経路を用意してバックアップ) 作業用端末からwl0のwifiに接続できるようにする. 作業用端末からDD-WRTの有線LANポートに接続できるようにする. DD-WRTのアドレス固定 基本タブ 基本タブ LAN側接続の項目を自宅内で有効な固定アドレスに設定する. VLAN タブ 全て同一VLANに設定する. 設定 無線LAN タブ 基本 タブ wl1のMAC動作モードを「Client Bridge」にする ネットワーク名(SSID)をWNDR4300のSSIDにする 無線LANセキュリティ タブ wl1の無線LAN認証以下の設定を,WNDR4300とアソシエートできるように設定する セキュリティ タブ Firewall タブ Firewall保護のSPI Firewallを「無効」 基本タブ 経路 タブ 動作モードを「RIPv2」にする Bird config Styleは「Vtysh」のままでOKだった インターフェースは「LAN&WLAN」のままでOKだった 基本 タブ スイッチにインターネット側ポートを設定するのチェックボックスを外す この時点(設定ボタンを押した後?)でインターネット接続方法は選択できなくなっており,「無効」になっているはず こんな感じで,NAT/NAPTなしでイーサネットコンバータとして動作するようになっているはず. 右上のステータスには「WAN: 無効」と出ているはず.

ssh セッションを socks proxy として使う

そもそも,ポートフォワーディングとダイナミックフォワーディングがあるが,後者を使うものとする. コマンドラインの場合 これで,ブラウザのproxyを localhost:LOCAL_PORT とかにすれば良い. configファイルの場合 これで,ssh proxy とかすれば良い.ブラウザの設定は上と一緒.

clamav で Pdf.Exploit とかで誤検出する場合の対応方法

ClamAV を運用していると,何年も前に入手し通常はアクセスしない PDF ファイルの中から,Pdf.Exploit 系の検出がなされる場合がある. 普通に clamdscan を走らせると発見されると同時に消されてしまうので,たまに困ることがある. 検出しても削除しないようにする 私の環境では,clamdscanだとうまく制御できなかったので,crontab で clamscan を呼ぶことにした. メールの宛先とかは自分でいじってちょ. あと freshclam はデーモン化して走らせておくこと. 特定のシグネチャを無視させる 検出されるシグネチャが増えると誤検出もメールに記載されるため分かりづらくなってくる. そのシグネチャ自体を無視したい場合は,/var/lib/clamav/hogehoge.ign2とign2ファイルを作ってシグネチャ名をリストしておく. なお,上のシグネチャを無視するかは,貴方の判断で行なうこと. 特定のファイルを無視させる 明らかに問題ないと自分で思っているファイルだけ,あらゆる検出から無視させる場合は,/var/lib/clamav/hogehoge.fpとfpファイルを作ってファイルのシグネチャをリストしておく. どっちのがリスクが高いかは使い方次第なので,やっぱし貴方の判断で設定すること.

HHKBをHHKモードでWindowsでもLinuxでも使う

環境 ホストOS Ubuntu 14.04 ゲストOS Windows 7 VM PF Virtualbox 要件 Windows側 CapsLockを使いたくない HHK モードが理想 DIP SW 1: OFF, 2:OFF としたい Windowsキーを使いたい Lite 拡張モードにせざるを得ない DIP SW 1: ON, 2: OFF DeleteよりもBackSpaceを使う DIP SW 3:ON 左手でもFnキーが欲しい DIP SW 4:ON AltキーはSpaceの両隣 DIP SW 5:ON Wakeupは無効 DIP SW 6:OFF Linux側 右Alt(◇と入れ替えたキー,以降は「新右◇」と表記)をxmonadのショートカットキーの起点にしたい Lite 拡張モードの場合,新右◇はSuper_Rなので,mod4あたりを設定に使えば良かった.HHKモードの場合,新右◇はHenkan_Modeであり,modキーに割り当てられていない. 課題 HHKモードでWindowsキーを使いたい HHKモードで新右◇をSuper_Rの代用にしたい 対策 キーマップの変更 in Windows HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout へ Scancode Map を設定する. 他に設定がない場合, とする. ちなみに,0x79=変換キー,0xe05c=右Windowsキー xmodmap in Linux xmodmapを設定した上で,xmodmapでロード. 補足 両方設定していても,VM上で正しくWindowsキーとして動作する. 追記(2017/1/24) remminaで接続した先のWindowsに対して,上の設定ではWindowsキーとしての動作をさせられなかったので別の手段を適用してみた. この場合,上で行なった設定は不要になるので注意. この辺を参照のこと. xkbでキーバインドを変更する – Happy My Life Ubuntu 15.04: キーボードのカスタマイズ設定 - 児童小銃 要点としては,キーが何になっているのかは xev で確認. henkan_mode はsetxkbmap上は<HENK>. キーマップの出力 キーの置き換え設定の記述 キーマップの修正 ~/.xkb/keymap/mykbd の xkb_symbolsの項目のの最後に”+kbd_swap(HenkSuper)”を追加する キーマップの適用 以下を,X起動時のどこかでやれば良い. 私の場合,xmonadを使っているので,xmonad.hsのstartupHookで としてみた. 後ろにxmodmapをつけているのは,xkbcompの実行後にxmodmapがデフォルトに戻ってしまって,xmonadのmodキーの設定が外れてしまうため. 結果 ダメだった. remminaには,相変わらず何も送信できてないっぽい. 他にremminaの設定でRDPのキーボードレイアウトのタブのuse client keyboard mappingをオン/オフ変えてもダメ. Super_LとSuper_Rと変えてもダメ.… Read More »

sudo -s した時の insecure directories を消す

home の .zshenv で compinit を呼ぶ時に compinit -u としてチェックを避けているにも関わらず,sudo -s した時にエラーが出るようになってイラついたので,こんなことした.