ページ

2012-11-12

Twitter NG Word Filter 0.2をリリースしました

リクエストにお応えして新Twitter対応版をリリースしました。
Twitter - NG Word Filter for Greasemonkey
どうぞご利用ください。
  • Firefox 16 (Greasemonkey 1.4)
  • Chrome 23 (NinjaKit 0.9)
で動作確認しています。

使い方

NGワードで非表示

ngwords変数にNGワードを正規表現で入力してください。
var ngwords = /#4ji|#followme|I'm at/i;
正規表現の書き方はこちらを参照 RegExp - JavaScript | MDN


NGユーザーで非表示

ユーザーごと非表示にしたい場合は以下の行のコメントアウトを外して、USER_NAMEの部分をユーザ名に書き換えてください。
GM_addStyle('.tweet[data-name="USER_NAME1"], .tweet[data-name="USER_NAME2"] {display:none !important;}');

NGされたものを表示

猿アイコンを(右?)クリックしてユーザスクリプトコマンドからvisibleを押すと、「NGワードで非表示」にしていたつぶやきを一時的に表示できます。



メモ

前回のバージョンではTwitterのJavaScriptが内部で利用するためにtriggerされているイベントを横から勝手につぶやきが追加されるタイミングのAPIとして活用していました(難読化されたJSを解読するのがダルかった)が、今回は MutationObserver API を使ってざっくり監視しています。addEventListener('DOMNodeInserted'などは非推奨となっているのでMutationObserverを使いましょう。

2012-11-09

SublimeText2でコード補完の候補選択をTabで行う方法


SublimeCodeIntelを入れているといちいちctrl+spaceをしなくてもコード補完(auto complete)の候補が出てくる。
コード補完の候補が表示されている時にTabを押して次の候補→次の候補と選択したい。(Google IMEと同じ動作)。下記の設定で実現した。winだけで確認。
Preferences > Key Bindings - Userに
[
 { "keys": ["tab"], "command": "auto_complete", "context":
  [
   { "key": "auto_complete_visible", "operator": "equal", "operand": true }
  ]
 },
 { "keys": ["shift+tab"], "command": "auto_complete_prev", "context":
  [
   { "key": "auto_complete_visible", "operator": "equal", "operand": true }
  ]
 }
]

調べ方

ctrl+spaceでコード補完を表示させた後、続けてctrl+spaceを押せばauto_completeコマンドによってコード補完の次の候補が選択され最後までいくとまた先頭に戻る動作を確認した。
次に Preferences > Key Bindings - Default を検索(正規表現を有効にしてctrl\+spaceをキーワードに検索)して、それっぽい{ "keys": ["ctrl+space"], "command": "auto_complete" }が見つかったので、tabに移植した。
キーバインド設定の空気はここで掴む。Key Bindings — Sublime Text Unofficial Documentation

メモ

Google IMEはTabで候補選択ができて、さらにTab+shiftで一つ前に戻ることができる。この動作もSublimeに取り入れるかはまだ決めてない。ちなみにsublimeでctrl+shift+spaceで同じ動作にならなかった。

追記

Sublime Text Japan Users Groupで教えていただいた。auto_complete_prevコマンドで解決。ありがとうございます!
Auto completeで一つ前の選択に戻すキーバインドを知りたい - Google グループ

2012-11-06

SublimeText2で拡張子ごとにインデントを設定する

設定したいファイルを開いて、以下のように設定すればソフトタブ2になるはず。
Preferences > Settings - More > Syntax Specifc - User
{
 "tab_size": 2,
 "translate_tabs_to_spaces": true
}

LubuntuにRictyフォントをインストール

Font Managerでインストール済みのフォントを確認。

あとで書く。

FontForgeインストール時のエラーメッセージ

うーん、気にしなくてよさそう。
$ sudo apt-get install fontforge
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libfontforge1 libgdraw4 libspiro0 libuninameslist0
提案パッケージ:
  fontforge-doc potrace autotrace python-fontforge fontforge-extras
以下のパッケージが新たにインストールされます:
  fontforge libfontforge1 libgdraw4 libspiro0 libuninameslist0
アップグレード: 0 個、新規インストール: 5 個、 削除: 0 個、保留: 0 個。
4,541 kB のアーカイブを取得する必要があります。
この操作後に追加で 13.3 MB のディスク容量が消費されます。
続行しますか [Y/n]? 
取得:1 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libspiro0 i386 20071029-2build2 [12.5 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libuninameslist0 i386 0.0.20091231-1.1build1 [530 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libfontforge1 i386 0.0.20120101+git-2ubuntu1 [2,536 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libgdraw4 i386 0.0.20120101+git-2ubuntu1 [361 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu/ quantal/main fontforge i386 0.0.20120101+git-2ubuntu1 [1,101 kB]
4,541 kB を 4秒 で取得しました (1,034 kB/s)
以前に未選択のパッケージ libspiro0 を選択しています。
(データベースを読み込んでいます ... 現在 110941 個のファイルとディレクトリがインストールされています。)
(.../libspiro0_20071029-2build2_i386.deb から) libspiro0 を展開しています...
以前に未選択のパッケージ libuninameslist0 を選択しています。
(.../libuninameslist0_0.0.20091231-1.1build1_i386.deb から) libuninameslist0 を展開しています...
以前に未選択のパッケージ libfontforge1 を選択しています。
(.../libfontforge1_0.0.20120101+git-2ubuntu1_i386.deb から) libfontforge1 を展開しています...
以前に未選択のパッケージ libgdraw4 を選択しています。
(.../libgdraw4_0.0.20120101+git-2ubuntu1_i386.deb から) libgdraw4 を展開しています...
以前に未選択のパッケージ fontforge を選択しています。
(.../fontforge_0.0.20120101+git-2ubuntu1_i386.deb から) fontforge を展開しています...
desktop-file-utils のトリガを処理しています ...
shared-mime-info のトリガを処理しています ...
man-db のトリガを処理しています ...
libspiro0 (20071029-2build2) を設定しています ...
libuninameslist0 (0.0.20091231-1.1build1) を設定しています ...
libfontforge1 (0.0.20120101+git-2ubuntu1) を設定しています ...
libgdraw4 (0.0.20120101+git-2ubuntu1) を設定しています ...
fontforge (0.0.20120101+git-2ubuntu1) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
[3720:3720:10539640502:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
                                            /usr/share/themes/Lubuntu-default/gtk-2.0/images/null.png,
                      borders don't fit within the image
                                                        [3720:3720:10539641191:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
                    /usr/share/themes/Lubuntu-default/gtk-2.0/images/scrollbar_vertical.png,
            borders don't fit within the image
                                              [3720:3720:10540111226:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
        /usr/share/themes/Lubuntu-default/gtk-2.0/images/null.png,
borders don't fit within the image
[3720:3720:10540147385:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
        /usr/share/themes/Lubuntu-default/gtk-2.0/images/scrollbar_horizontal.png,
borders don't fit within the image

SublimeText2のSettings(JSON)の値をコンソールから取得する方法

デフォルトのfont_faceを知りたい。
Preferences > Settings - Default を見ても空欄になっていてわからない。
ググってみると、コンソールに以下で取得できた。
view.settings().get('font_face')
WindowsはConsolas、LubuntuはMonospace とわかった。
getの中を他のキーを変えればいろいろ調べられるはず。

Lubuntuにrbenvでrubyとrailsを入れる


Ruby on Rails 3.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました - Rails 雑感 - Ruby on Rails with OIAX

を参考(検証)にしながら、lubuntu 12.10 のほぼまっさらな状態からやってみる。
ちなみにubuntu系ははじめからrubyは入ってない。



各種パッケージのインストール

$ sudo apt-get install build-essential git curl zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev libsqlite3-dev nodejs
※build-essentialにmake, g++などが入っている。railsはJavaScript Runtimeが必要なのでnode.jsを選択した。

Apache、MySQL を使うなら、以下のものが必要。
$ sudo apt-get install apache2 libmysqlclient-dev mysql-server


rbenvセットアップ

apt-getのrbenv調査

Ubuntu 12.04からapt-getでrbenvのインストールが可能
apt-getのrbenvを確認してみる。
$ sudo apt-get install rbenv
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています              
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libreadline5 libruby1.8 libruby1.9.1 ruby ruby1.8 ruby1.9.1
提案パッケージ:
  ri ruby-dev ruby1.8-examples ri1.8 ruby-switch ruby1.9.1-examples ri1.9.1
  graphviz ruby1.9.1-dev

apt-getでrbenvを入れるとシステム用に1.8や1.9のrubyも入るようだったので止めとく。
rbenv は sstephenson/rbenv にしたがってgitでインストールすることにした。



rbenvをインストール

$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
zshを使っているので.zshenvに。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv
$ echo 'eval "$(rbenv init -)"' >> ~/.zshenv
何かのきっかけで、title:7: command not found: rbenv と表示されても、.zshenvに eval "$(rbenv init -)" が追記されていれば正常。


シェル再起動
$ exec $SHELL

ruby-buildインストール

$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
一回目に fatal: The remote end hung up unexpectedly が出たけどもう一回やったらうまくいった。


インストール可能なパッケージ一覧
$ rbenv install -l
略
1.9.3-p194
1.9.3-p286
1.9.3-preview1
1.9.3-rc1
previewの手前の安定版 1.9.3-p286 を入れることにした。

$ rbenv install 1.9.3-p286
※ここで make: コマンドが見つかりません が出る場合は $ sudo apt-get install build-essential



$ rbenv rehash



常に使うrubyとして設定

$ rbenv global 1.9.3-p286
$ ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]
で確認。

zshの訂正機能が効いてzsh: correct 'ruby' to '_ruby' [nyae]?のようになったら、訂正しないの意味の n を入力。


一応

$ rbenv version
$ which ruby
してrbenvのrubyになってるか確認。



.gemrcを用意。
$ echo 'install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri' >> ~/.gemrc


$ gem install rbenv-rehash
入れとく。



railsインストール

$ gem install rails
$ rails -v
Rails 3.2.8
zsh: correct 'rails' to 'tail' [nyae]?と聞かれたら n。

手順にしたがってrailsのデモを作る

$ cd
$ mkdir work
$ cd work
$ rails new foo --skip-bundle
$ cd foo

Gemfile の以下のコメントアウトを外す。
# gem 'therubyracer', :platform => :ruby
現状この意図がわからなくて悔しい。
追記:わかった。therubyracerを入れずに rails generate scaffold~ すると Could not find a JavaScript runtime.と言われた。
ググってみると、railsはJavaScript Runtime(エンジン)が必要で、railsは ExecJS というgemが環境にインストールされているJavaScript Runtimeを探してくるが見つからなくて動かねえよってことらしい。ちなみにtherubyracerにはv8が入っている。再びググるとv8まわりでトラブルが起きている記事や、メモリ使用量が多いためHerokuでは非推奨という記述が見つかった。うちはnode.jsを入れることにする。(nodejsもv8だった)。




$ bundle install

$ rails g scaffold user name:string email:string
$ rake db:migrate

$ rails s

ブラウザで http://localhost:3000/users を開いて動作確認。
動いた。
OIAXさんありがとうございました。




2012-11-04

BloggerでjQuery・CSSを効率良く管理したい

  • JavaScriptとCSSを一箇所にまとめて効率良く編集したい。
    • SyntaxHighlighter用コードと小さなスクリプトを同じ場所に。
  • ファイルは一つにまとめたい。
    • jQueryを使ったスクリプトを書きたい。
    • AutoPagerize対応用コードも。

効率良く編集

設定画面からBloggerテンプレートデザイナーや直接テンプレートのHTMLを編集するのはめんどくさい。一箇所に埋め込んでおいて、自分のエディタから入力したいのでDropboxを使う作戦でいってみる。

埋め込み場所

BloggerでJavaScript・CSSを埋め込む方法は、テンプレートのHTML編集かレイアウトのガジェット(HTML/JavaScriptモジュール)のどちらか。
始めにサイドバーのガジェットに入れてみたが、cssの適用が遅いので却下。
「テンプレートデザイナー - アドバンス - Add CSS」はJSの埋め込み場所とバラけるので使わない方針で。
結局テンプレート側にまとめて書くようにした。head閉じタグの手前に挿入。
<!-- SyntaxHighlighter start -->
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script language='javascript' type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
<style type='text/css'>
/* SyntaxHighlighter: adjustment for chrome */
.syntaxhighlighter .gutter .line {
  word-wrap: normal;
}
.syntaxhighlighter .code {
  word-wrap: normal;
}
.syntaxhighlighter .toolbar {
  display: none;
}
</style>
<!-- SyntaxHighlighter end -->

<!-- MyScripts start -->
<link href='https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css' rel='stylesheet' type='text/css'/>
<script src="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.js"></script>
<!-- MyScripts end -->


結果

Dropboxで共有しているファイルを書き換えて数秒後に反映されるのでわりと快適になった。


付録

Dropboxに置いたファイル内容も一応貼り付けておく。CSSのfont-sizeをどうするべきか揺れている。
che.js:小さなスクリプトはここに書く。
var jqscript = document.createElement('script');
jqscript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js';
jqscript.charset = 'UTF-8';
document.getElementsByTagName('head')[0].appendChild(jqscript);
var t = setInterval(function() {
  if (window.jQuery) {
    clearInterval(t);
    //ここにjQueryロード後実行したいコードを書く
    myFunc();
  }
}, 100);

function myFunc() {
  jQuery(function($) {
    // AutoPagerizeされたときに実行したいものはここに。
    var InsertNode = function(evt) {
      // SyntaxHighlighter
      SyntaxHighlighter.highlight();
    };
    $(document).bind('AutoPagerize_DOMNodeInserted AutoPagerAfterInsert', InsertNode);
    if (window.addEventListener) { 
      window.addEventListener('AutoPatchWork.DOMNodeInserted', InsertNode, false);
    }

    // 投稿画面にあるwysiwygエディタのフォントサイズ指定「小(x-small)」が
    // 小さすぎるので、動的にsmallに変更。「最小(xx-small)」も含む。
    $('.post-body [style*="x-small"], .entry-content [style*="x-small"]').each(function() {
      $(this).css('font-size', 'small');
    });
  });
}
 

che.css:テンプレートを修正したい場合に使う。
body {
  font-size: 85%;
  /*font-size: 15px;*/
}
pre {
  background-color: #F8F8F8;
  border: 1px solid #CCCCCC;
  border-radius: 3px;
  padding: 6px 10px;
  overflow: auto;
}
code {
  background-color: #F8F8F8;
  border: 1px solid #EAEAEA;
  border-radius: 3px;
  margin: 0 2px;
  padding: 0 5px;
  overflow: auto;
}
pre, code, tt {
  font-family: Consolas,"Liberation Mono",Courier,monospace;
}
blockquote {
  border-left: 5px solid #dddddd;
  color: #777777;
  padding: 0 15px;
}
::selection {
  background-color: pink;
}
::-moz-selection {
  background-color: pink;
}
h2 {
  /*font-size: 25px;*/
  font-size: 140%;
  text-transform: none;
  margin: 0;
}
h3 {
  /*font-size: 20px;*/
  font-size: 130%;
}
h3 {
  font-size: 120%;
}
h3.post-title,
h3.entry-title {
  font-size: 160%;
}
.sidebar h2 {
  font-size: 13px;
  margin-bottom: 10px;
}
.date-header span {
  font-size: 15px;
  font-weight: normal;
}

bloggerのwysiwygエディタのフォントサイズ指定に不満

投稿画面のwysiwygエディタ
フォントサイズ指定の
「最小」は style="font-size: xx-small;"
「小」は style="font-size: x-small;"
「標準」は何も付かない。
「大」は style="font-size: large;"
「最大」は style="font-size: x-large;"

小のx-smallは小さすぎるのでsmallにしてほしい。large側は普通なのでバグな気がする。

どうすればこの問題を解消できるだろうか。
  • HTML編集モードにx-smallをsmallに置換するボタンを付ける。
  • フォントサイズ指定の「小」を封印する。
  • JavaScriptでサイズ操作

追記

jQueryで動的にx-smallとxx-smallをsmallに変更するようにしてみた。多分これが一番楽。
$('.post-body [style*="x-small"], .entry-content [style*="x-small"]').each(function() {
  $(this).css('font-size', 'small');
});

埋め込み方法はこちらに書いた。
BloggerでjQuery・CSSを効率良く管理したい - cherenkov's暗中模索blog


2012-11-03

bloggerのCSSを効率良くカスタマイズする方法

デバッグ時はdropboxにcssファイルを置いて編集する。

テンプレートのHTML編集でheadの閉じタグの前にdropboxからcssを読み込むためのコードを貼る。
<link href="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css" rel="stylesheet" type="text/css"></link>
あとで書く。

bloggerのCSSを確認・変更するために便利なページ

このページを使って選択したテンプレートのデザイン/CSSを確認する。便利なのはたぶん自分だけ。


見出し:

見出し(h2)

小見出し(h3)

準見出し(h4)

標準

---------------------

フォントシリーズ:
最小(xx-small) ABCDEFG
小(x-small) ABCDEFG
標準 ABCDEFG
大(large) ABCDEFG
最大(x-large) ABCDEFG
太字(ボールド)ABCDEFG
斜体(イタリック)ABCDEFG
下線(アンダーバー)
取り消し線

---------------------

リンクの表示確認


altテキスト
旅の思い出
動画に関するプロパティ・キャプションは無いみたい
----------------------



番号付きリスト:
  1. アンパンマン
    1. あんぱん
      1. ジャムおじさんが作る。
    2. 空を飛べる。
    3. 水に弱い。
  2. リストの入れ子はTabキー。Shift+Tab で上に戻る。
  3. リスト中の改行は Shift+Enter

箇条書き:
  • ももクロ
    • かなこぉ↑
      • 茶畑
    • ももか
      • あだ名
        • ケバブ

引用(blockquote):
梨くったら夏おわり(日村勇紀)

pre:
<link href="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css" rel="stylesheet" type="text/css"></link>


code:
ctrl + alt +del


長文でline-height、word-break、word-wrapなどを確認:

ブラウンによるオシロスコープをはじめとして、ビデオモニター、テレビ受像器、コンピューターなどのディスプレイなど、多く用いられてきた。
また、テレビの代名詞のように扱われることもあり、たとえばテレビの番組などを指して「ブラウン管の向こうに~」といったような使われ方をすることもある。YouTubeの "Tube"もこの真空管に由来する。「ブラウン管のスター」という言葉は映画スターを指す「銀幕のスター」と対置されよう。
ブラウンが発明したのは、冷陰極管で、クルックス管に、陰極線によって光る蛍光面を付けたものであった。今日一般的なブラウン管では、電子銃を利用している。
ブラウン管式のテレビでは、スイッチを入れたらすぐ表示できるようにするため、および加熱と冷却、通電と放電の繰返しによって寿命が短くなることを防ぐため、いくらかの回路を通電しっぱなしにするため待機電力を消費した。真空管時代にはこのことをうたった「ポンパ」という商品名もある。
スイッチを入れた時に聞こえる『ブーン』という音は残留磁場を消磁する音である。動作中には非常に高い周波数の『キーン』という音が、特に高域の聴覚が敏感な子供には聞こえるが、これは水平走査の音である。
ブラウン管 - Wikipedia





rmコマンドをごみ箱に移動する動作に置き換える

Lubuntu12.10

andreafrancia/trash-cli
この評判がよさそうなので入れてみる。

インストール

sudo apt-get install python-setuptools
sudo easy_install trash-cli
で終わり。

準備

今回の目的である rm のエイリアスを .zshrc などに書く。
alias rm='trash-put'
source ~/.zshrc

コマンド一覧

trash-put           trashes files and directories.
trash-empty         empty the trashcan(s).
trash-list          list trashed file.
restore-trash       restore a trashed file.
trash-rm            remove individual files from trash can.

動作確認

現在のごみ箱の中身を取得
trash-list

ゴミを投げ入れてみる

echo "frieza" > deathnote
rm deathnote

確認

trash-list
出来た。

ごみ箱を空にする

trash-empty




Linuxあるある

linuxあるある早く言いたい

ひよこユーザから見たノウハウ的なメモ。
  • ホーム以下のなんちゃらディレクトリやファイルを人に伝える場合は、
    ~/.hoge ファイルを~
    ~/.config ディレクトリを~
    とパスの後ろにファイルかディレクトリを明記しないとわからん。
    ~/.config/ のように最後にスラッシュつけるのもいいかな。
  • hoge.desktop ファイルなどを示す際、ただ .desktop ファイルとだけ書くとわからん。普通に ".desktop" ファイルを作成しちゃうので注意。

2012-11-02

Lubuntuのキーバインドを変更する方法

Lubuntu 12.10
  • 変換キー を 半角/全角キー
  • カタカナひらがなキー を Tabキー
にしたい。

現在のキーマップを調べるためにファイルに書き出してみる。
xmodmap -pke > xmodmap_default
エディタで開いて、適当に当たりをつけて対象のkeycodeを確認する。
今回は以下が対象だった。
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 101 = Hiragana_Katakana Romaji Hiragana_Katakana Romaji
このkeycodeに対して上書き設定をしてやる。

~/.Xmodmap ファイルに保存。Xは必ず大文字じゃないとダメ!!(3日位ハマった)
keycode 100 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji
keycode 101 = Tab ISO_Left_Tab Tab ISO_Left_Tab


次に動作確認。
xmodmap ~/.Xmodmap
して反映させてから、キーを叩いて確認する。OK。


なお ~/.Xmodmap ファイルを作っておくだけでOS起動時にリマップが適用される。
ググると ~/.config/lxsession/Lubuntu/autostart ファイルに @xmodmap ~/.xmodmaprc を書いて保存とか書いてあるサイトが見つかるけど ~/.Xmodmap ファイルだけでよかった。

ちなみに ~/.config/lxsession/Lubuntu/autostart ファイルを設定して再起動すると、デスクトップが真っ暗の状態になった。
その際は落ち着いて、右クリックメニューから PCManFM だかを起動して autostart ファイルを除去してやればいい。右クリックメニューからsign outで再起動すれば直る。
自分はこれをやってLubuntuぶっ壊れた!と思って再セットアップしてしまった。

Lubuntu(Openbox)のショートカットキーを確認する方法

ググったほうが早いかも。

Lubuntu (12.10)はデスクトップ環境にLXDE、さらにそのウィンドウマネージャにOpenboxを採用している。(wikipediaに書いてあった)。
それを頼りにググると、~/.config/openbox/lubuntu-rc.xml にショートカットキーの割り当てが記述されていることがわかった。
あとは適当なエディタで開いて適当なキーワードで検索すれば目的は達成されるはず。
(GUIで確認・編集ができるユーティリティは存在するのかな?)

  • terminal(端末)をショートカットキーで起動
    • ctrl + alt + t

あとで書く。

2012-11-01

Sublime Text 2の便利なPackage・Snippetメモ

Packages

  • .css.scssファイルのシンタックスハイライトはPackage Managerで SCSS でいいみたい。

Snippets

あとで書く。

VirtualBoxのGuest AdditionsとVMware PlayerのVMware Toolsの話

最新バージョンは VMware Player (5.0.0 build-812388)。 

VMware PlayerやVirtualBoxを使う際、ホストOSとゲストOSを繋ぐ拡張が提供されている。
主に、マウスカーソルの共有、ファイルの共有、クリップボードの共有が行えるようになる。

 VMware Playerを試したことがなかった頃、なんとなくでずっとVirtualBoxでUbuntu9とかを入れてみたりして遊んでいた。(ほぼセットアップのみで全然活用してなかった)。
当時のVirtualBoxはGuest Additionsを入れてないと、ゲストOSにカーソルのフォーカスが移ると、右Ctrlキーだかを押さないとホストOSにカーソルが戻って来なかった。
最近のは知らない。 VMware PlayerはVMware Toolsを入れなくても、はじめからマウスカーソルはシームレスに切り替えることが出来て驚いた。(OS起動時はctrl+altが必要だけど)。

UbuntuでSublimeText2にSublime Package Controlがインストールできない場合

Lubuntu 12.10, Sublime Text 2 (2.0.1)。

Sublime Package Controlのインストール用コマンドはここから。
http://wbond.net/sublime_packages/package_control/installation
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Ubuntu系LinuxでSublime Package Control をインストールするコマンドを打って、「許可がありません」と言われたら権限不足が原因で失敗している。
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IOError: [Errno 13] 許可がありません: u'/home/cherenkov/.config/sublime-text-2/Installed Packages/Package Control.sublime-package'

対応策はSublimeのPackageなどが保存されるディレクトリのパーミッションを変更すればいい。
コマンドラインはわからないのでGUIな方法をメモ。

  1. HOMEを開き、メニュー - 表示 - 隠しファイルを表示する にチェック。
  2. .configをファイルマネージャで開く。
  3. .configを開いたら、メニュー - ツール - rootユーザとして現在のフォルダを開く。
  4. .config以下にsublime-text-2 フォルダがあるはずなので、このフォルダで右クリックメニューを開いて、プロパティ - パーミッション - 内容の変更:誰でも に変更する。 全ての下位フォルダにも適用するか聞かれたら「はい」を選択。
これでいけるはず。


追記
CUIな方法としては、
sudo chmod -R 777 ~/.config/sublime-text-2/
でよさげ。


--------------
起動時に以下のようなダイアログが出て実行できない場合。

Unable to run package setup:
Traceback (most recent call last):
  File "./PackageSetup.py", line 165, in upgrade
    upgradePackage(pkg, pristinedir, datadir, backupdir)
  File "./PackageSetup.py", line 158, in upgradePackage
    os.path.join(backupdir, base), inhibitOverwrite)
  File "./PackageSetup.py", line 90, in upgradeArchive
    writeFile(fname, newar.read(f))
  File "./PackageSetup.py", line 18, in writeFile
    with open(fname, 'wb') as fo:
IOError: [Errno 2] そのようなファイルやディレクトリはありません: u'/home/cherenkov/.config/sublime-text-2/Packages/Package Control/readme.creole'

rootユーザとして現在のフォルダを開く などして、.config/sublime-text-2/Installed Packages にある Package Control.sublime-package を削除すればいい。
その後、前述のパーミッションをちゃんと変更したかチェックして、SublimeのConsoleにPackage Controlインストール用のコマンドを入れる。