2014年10月10日

Audaciousのスキン追加方法(管理者権限不要)

Linuxで使えるシンプルな音楽再生ソフト、Audaciousのスキンの変更方法です。

日本語で見つかる説明はスキンを「/usr/share/audacious/Skins管理者権限で配置する」というものばかりだったので、管理者権限不要で簡単な方法をご紹介します。

Skinの入手方法

GNOME-Look.org のXMMS Themes タグなどからダウンロード可能です。とりあえずwinamp用のクラシックスキンが使えます。 同じくwinamp用でモダンスキンというものもありますが、こちらはaudaciousでは使えません。

ダウンロードしたファイルの拡張子が .zip, .wsz, .tgz, .tar.gz, .tar.bz2 などであればそのまま使えます。他の拡張子だった場合や、この後の方法で追加できなかった場合、ファイルを展開してみてください。中に複数のスキンが含まれている場合があります。また、通常のフォルダでもスキンとして使えます。

このあたり、詳細は Audaciousのスキン・Skinで外観変更 などを参考にしてください。

スキンの適用

スキンは「Gtkインターフェイス」では適用されません。Gtkインターフェイスだった場合、「表示」→「インターフェイス」とメニューをたどって、「Winamp クラシックインターフェイス」に変更してください。

「表示」→「インターフェイスの設定」を開くとスキンの一覧が表示されます。デフォルトで何種類か登録されています。スキンをクリックすれば即座に適用されます。

スキンの追加・その1

追加したいスキンファイルを、先ほどのスキン一覧にドラッグ&ドロップします。これてスキン一覧に追加され、audaciousに適用されます。

スキンの追加・その2

~/.local/share/audacious/Skins ディレクトリにスキンファイルを保存します。ディレクトリが存在しない場合は作成してください。すぐにスキンの一覧に反映されない場合は、一度audaciousを再起動してみてください。

注意

以上二つの方法では、追加したスキンを利用できるのは追加したユーザーだけです。他のユーザーでも利用したい場合は、管理者権限で/usr/share/audacious/Skins/にスキンファイルを置いてください。

逆に言えば、/usr/share/audacious/Skins/に追加した場合、他のユーザーのaudaciousからも追加したスキンが丸見えになってしまいます。

2013年5月26日

Kubuntu13.04でFcitx試してみた

日本語入力メソッドのFcitxを試してみました。

経緯

今まではデフォルト(?)のiBusを使っていました。
最新版のiBus1.5はGnome環境との統合が進められているそうです。
なのでUbuntuではデフォルトのIMをiBusからFcitxに変更する話もあるそうです。

このあたりの詳しい話はこちら

私としては、Ubuntuのデフォルトが変わらないとしても、Gnomeと統合されてるIMってKubuntuだとどうなるの・・・?と不安になりまして、今のうちにFcitxを試しておこうと思った次第です。

せっかくなので、導入過程やら感想などを書き残しておきます。

試した環境は Kubuntu 13.04 (64bit) です。
関係あるかわかりませんが、インストール時の言語は英語で、その後iBus-mozcをインストールして使っていました。

インストール

基本的にこちらの説明のとおりです。

一応書いておきますと、

sudo add-apt-repository ppa:ikuya-fruitsbasket/fcitx
sudo apt-get update
sudo apt-get install fcitx fcitx-mozc kde-config-fcitx

Anthyは使わないのでインストールしませんでした。
最後のkde-config-fcitxがないと設定画面が悲しい感じです。

インストールが終わったら、とりあえず再起動。
ログアウト・再ログインだけではなぜか一部の設定項目が有効になりませんでした。
(設定画面でキーボードレイアウト・入力メソッドの設定ができませんでした)

設定

今回は試してみるだけのつもりだったので、iBusを終了 → Fcitxを起動、とやってみましたが、これだと正常に動作しませんでした。
一応症状を書いておきますと、

  • ほとんどの(主にKDEネイティブの?)アプリで有効にならない。
  • 有効になっても、確定前の文字列が表示されない。(Chromium, JD, Gvimなど)
  • Gvimの:set iminsertが効かない。

などです。
他のブログさんの記事などを見てもここまでの不具合は無さそうだったので、後から起動したのが原因だろうと判断し潔くデフォルト設定を変更しました。

sudo im-config -cで「了解」→「はい」→ fcixtでスペースキーでチェックを入れる →「了解」→「了解」で設定を変更して再ログインでデフォルトを変更できます。

デフォルトに変更したら上述の不具合は全てなくなり、正常に動作しました。

一応正常に動作しそうなので、少し自分用に設定します。
自分の使い方だと、

  • 「全角/半角」でOn/Off切り替え
  • 「変換」または「カタカナ/ひらがな」でIM ON
  • 「無変換」でIN Off

です。

これらはFcixt config toolから設定出来ました。
IM On と IM Off のキーは「全体の設定」の「拡張オプションの表示」で設定できます。

あと、入力メソッドの切替キーに「Ctrl+Shift」+上下矢印が設定されていましたが、このあたりのキーバインドは他に使っていたので「入力メソッドの切換をホットキーで」のチェックを外しました。

日本語入力中に表示される言語バー的なバーは「見た目」の「状態パネルを隠すモード」で「隠す」にすれば表示されなくなりました。 せっかくなのでスキンをDarkにしたりもしてみました。

設定できる項目はかなり多いですね。
ここまでの設定で、ほぼiBusと同じ使用感になりました。

感想

上記のように設定をいじった所、iBus1.4とほぼ同じ使用感です。
この記事もFcixtで書いています。
私は凝った使い方をしていないので、あまり参考にならないかもしれませんが・・・

変換も今までどおりmozcなので違いは感じません。
もちろん見た目は違いますが。

一番の違いは、一文字目を入力している時から変換候補が表示されることでしょうか。
しかも、ずっと表示されているわけではなく、入力履歴に変換候補があるときだけ表示されて、キーが入力されて候補がなくなると消えたり、その後また出たりと結構チラチラして個人的には目障りです・・・
設定でオフにできそうなのですが、設定項目が見つけられませんでした・・・

違いに慣れれば、十分実用に耐える完成度ではないでしょうか。
開発者の皆様には頭が下がります。
せっかくデフォルトも変更したので、このまましばらく使ってみたいと思います。

2013年5月22日

Tortoisehgで信用するユーザの設定

Tortoisehg(というかMercurial)で、別ドライブに置いているリポジトリの設定ファイル(.hg/hgrc)が読み込めませんでした。
具体的には、defaultのリモートリポジトリが読み込めず、push/pull出来ませんでした。

原因は、hgrcの所有者がrootだったせいでした。
とりあえずコマンドラインからsudo hg pullとかはできるのですが、正直気持ち悪いです。

明らかにファイルの所有者だけ変更すれば良さそうです。
しかし、問題は別ドライブだとファイルの所有者の変更ができないこと・・・

sudo chown username hgrc

とかやったり、

sudo dolphin

でファイルマネージャから所有者を変えたりしても無駄です。
所有者はrootのままです。

なので所有者/グループの変更は諦めて、Mercurialの方の設定を変えました。
ちゃんと説明に書いてあるんですね。。。

http://mercurial-users.jp/manual/hgrc.5.html#trusted

結局、~/.hgrcを以下のように修正して、信用する所有者とグループにrootを追加。

[trusted]
users = user,root
groups = user,root

userは元から書かれていた所有者(おそらくログインユーザ)です。
適宜読み替えてください。

これで普通に使えるようになりました。

(以前はこの設定しなくても普通に使えてたと記憶しているのですが・・・)

Vimを+luaオプション付きでコンパイル

Vimの最新のパッチのバージョンがついに7.3.1000を超えました。
Vim7.4も近いですね。

しかし、Ubuntuのリポジトリに入っているvimは7.3.547と最新のものではありません。
今回、ソースからコンパイル&インストールまでしたのでその記録を残しておきます。
特にluaインターフェイスが大変でした・・・

一応、色々サポートという事でオプションは

+perl
+python
+ruby
+lua/dyn
+tcl

などをつけました。
Luaはいつもお世話になっているneocomplcacheでも使っているとのことで頑張りました。

手順は、基本的にvim-jpの説明に従いました。
他に下記のページを参考にさせていただきました。

http://d.hatena.ne.jp/h_east/20130409/p1

http://d.hatena.ne.jp/thinca/20100912/1284284839

http://yomi322.hateblo.jp/entry/2012/09/06/121958


下準備(ビルドに必要なパッケージのインストール)

Kubuntuでgnomeは使っていないのでGTK2版をいれます。

sudo apt-get install mercurial gettext libncurses5-dev libxmu-dev libgtk2.0-dev libperl-dev python-dev python3-dev ruby-dev tcl-dev

gnome版はlibgtk2.0-devの代わりにlibgnomeui-devを入れてください。
おそらく他にbuild-essentialとかも必要だと思いますが、すでに入れてありました。

他に、Lua対応として、

sudo apt-get install liblua5.1-0-dev liblua5.2-dev

が必要でした。
どちらか一方で良さそうですが、とりあえず両方いれました。
(後々おかしくなったのはこれが原因・・・?)

あと一応入っていなければluajitも。

sudo apt-get install luajit

ソースコード取得

Mercurialでcloneしてきます。

hg clone https://vim.googlecode.com/hg/ vim

私がcloneした時は7.3.1004でした。

コンパイル

以下のコマンドをvim/srcディレクトリで実行します。
pythonとluaのライブラリの場所が標準と異なるので指定しています。

./configure \
--with-features=huge \
--enable-multibyte \
--enable-gui=gtk2 \
--enable-perlinterp \
--enable-pythoninterp \
--with-python-config-dir=/usr/lib/python2.7/config \
--enable-rubyinterp \
--enable-tclinterp \
--enable-luainterp=dynamic \
--with-lua-prefix=/usr \
--enable-gpm \
--enable-cscope \
--enable-fontset \
--enable-fail-if-missing

gnome版は--enable-gui=gnome2だそうです。
面倒だったのでvim-conf.shとか作って書いてから実行しました。

この時、/usr/include/luaがないとかのエラーが出たので、無理やりですがシンボリックリンクで対応しました。

sudo ln -s /usr/include/lua5.1 /usr/include/lua

lua5.2の人はlua5.2をリンクすればコンパイルは通ると思います。
動作確認はしていません。

ここまで来たらvim/srcディレクトリでmakeします。
数分程度かかりました。

動作確認

vim/srcディレクトリにvimがあるので起動して、:versionできちんと目的のバージョンになっているか確認したほうがいいと思います。
ついでに+pythonや+lua/dynのオプションも確認できます。

オプションがついていても実行できない場合があるので、実際に動作させたほうが安全です。

:python print('Hello world')
:lua print("Hello world")

簡単な確認ですが、エラーがでなければ大丈夫だと思います。
私はluaインターフェイスの方で

ライブラリ liblua.so. が見つかりません。

とエラーが出てしまいました。
とりあえずliblua.so.もリンクを作ってコンパイルしなおして対応しました。

sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.1.so /usr/lib/x86_64-linux-gnu/liblua.so.

lua関係のエラーがどう見てもバージョン絡みっぽいですね。
5.1だけをインストールした状態ならこんなことしなくてもうまくいったのかもしれません。

やり直す時は、vim/srcのディレクトリで make distclean した後に./configureからやり直しました。

インストール

大丈夫そうでしたら、

sudo make install

で置き換えれば完了です。


python2 と python3

Debian系ディストリでは、python2とpython3は同時に利用できないそうです。

http://vim-jp.org/tips/if_python.html

なのですが一応やるだけやってみました。

+python3用に./configureに以下のオプションを追加しました。

--enable-python3interp --with-python3-config-dir=/usr/lib/python3.3/config

configディレクトリがなかったのですが、ipython3をインストールしたらconfigディレクトリも作られました。
python2の方でもipythonでインストールされるconfigディレクトリを読んでいるようです。 ここまでやれば、./configureとmakeは通りました。

しかし、結局+pythonと+python3を同時に有効にできませんでした。
両方入れてコンパイルすると両方+にはなるのでが、vim上で実行すると:py print('hello'):py3 print('hello')もエラーで実行できませんでした。

追記

公開した直後ですが、7.3.970以降は新しい正規表現エンジンにバグが残っているみたいなので、969以下にしておいた方がいいかもしれません。

hg update v7-3-969

で7.3.969に切り替わります。
切り替えたら以後の手順は同じです。(未確認)

私は今のところ特に気になっていないので最新版を使っていますが・・・

2013年5月19日

VimでMarkdown

最近、メモを書くときはMarkdown形式をよく利用しています。
かなり簡単に書けるのと、ソースそのままでも見やすいので重宝しています。
最近のこのブログの記事も、手元でMarkdownで書いています。

Markdownの書き方や特徴はWikipediaなどを参照してください。
流行っているようなので検索すればたくさん出てきます。

Markdownに対応したエディタも色々出ています。
しかし、テキストで書くならvimを使いたい、それが人情ではないでしょうか。
ちなみに、Markdown対応のエディタでできることは、

  • Syntaxハイライト(構文の色付け)
  • Live preview
  • htmlに変換して出力

などです。(個人的に欲しい機能)

羨ましかったのでvimでもこれらができるように悪戦苦闘しました。
せっかくなので結果を書き残しておきます。

※ 確認は全てKubuntu13.04で行なっています。
WindowsやMacでもパスなどを適宜修正すれば動作すると思います(未確認)。


Syntaxハイライト

vimはデフォルトではMarkdown形式には対応していないので、syntaxを追加します。
NeoBundleなどを使っていれば、.vimrcに下記の一行を追加して:NeoBundleInstallで一発です。

NeoBundle 'tpope/vim-markdown'

これでMarkdown形式のファイルを開けば色づけされるはずです。


アウトライン

Vimでは、ctagsを使うことで関数一覧からジャンプしたりTeXを編集中だったら見出しに飛んだりできます。(いわゆるタグジャンプ)
しかし、デフォルトではMarkdownには対応してません。
なので少し設定の追加が必要です。

私はtagbarというプラグインを使っているのでそれの設定方法を書きます。
やっていることはここをほぼそのままです。

ctagsに設定追加

homeディレクトリにある.ctagsファイルに以下を追加します。
ファイルがない場合は作成します。

--langdef=markdown
--langmap=markdown:.markdown,.mkd,.md
--regex-markdown=/^#[ \t]+(.*)/\. \1/h,heading1/
--regex-markdown=/^##[ \t]+(.*)/\.\. \1/h,heading2/
--regex-markdown=/^###[ \t]+(.*)/\.\.\. \1/h,heading3/
--regex-markdown=/^####[ \t]+(.*)/\.\.\.\. \1/h,heading4/
--regex-markdown=/^#####[ \t]+(.*)/\.\.\.\.\. \1/h,heading5/
--regex-markdown=/^######[ \t]+(.*)/\.\.\.\.\.\. \1/h,heading6/
Tagbarの設定

TagbarはNeoBundleなどで普通にインストールされているものとします。
Windowsでctagsの場所にパスが通っていない時は以下を.vimrcに書いて場所を教えてあげてください。

if has("win32")
    let g:tagbar_ctags_bin = "[ctags.exeまでのパス]"
endif

Markdown用に、以下の設定を.vimrcに追加します。

let g:tagbar_type_markdown = {
    \ 'ctagstype' : 'markdown',
    \ 'kinds' : [
        \ 'h:Headline'
    \ ],
    \ 'sort' : 0,
\ }

これで、見出しに応じたタグジャンプができるはずです。


プレビュー機能

Live previewって必要でしょうか。
正直、私には不要です。
Live previewに対応したエディタも使ってみましたが、むしろ動作がもっさりするような気がして、あまり好きになれませんでした。

とはいえ、手元でも確認しながら書きたいので、"保存時にプレビュー更新"に落ち着きました。
この用途ではmkdpreview-vimという素敵なvim pluginもあったのですが、保存時にちょと引っかかるのが気になったので今回は見送りました。

今は、プレビューにGoogle Chromeの拡張(Markdown Preview Plus)を使っています。
この拡張のいいところは、ファイルが更新されると自動で再変換&再描画してくれるところです。

インストールと使い方

まずは普通に拡張機能としてChromeに追加します。

次に「拡張機能」の画面で、「ファイルのURLへのアクセスを許可する」にチェックを入れます。
これをしないと変換してくれません。
ついでにオプションで「Enable auto-reload」にチェックを入れておきます。
これでmarkdownファイルが更新された時に自動リロードするようになります。
必要があればついでにcssの設定なども。

ここまで設定すれば、markdown形式のファイルをブラウザにD&Dるだけで勝手にhtmlに変換して表示してくれます。
vimで編集中にはD&Dとか面倒なので、簡単にスクリプトを書きました。

command! MkdChrome call MkdChrome()
function! MkdChrome()
    call system('chromium-browser ' . expand('%'))
endfunction

※ Chromium用です。
Google Chromeの場合はchromium-browserの部分をgoogle-chrome-stableなどに書き換えてください。

これを.vimrcに書いておけば、:MkdChromeでブラウザが立ち上がって(すでに起動している場合は新規タブで)編集中のファイルのプレビューが表示されます。
ファイルを編集して上書き保存すればプレビューも更新されます。
ただし、プレビューの更新には若干のタイムラグがあります。


HTML出力

書き終わったらHTMLとして出力したい場合もあるので変換します。

Markdown Preview Plusにも"Export To HTML"というボタンがありますが、なぜか私の環境では動作しませんでした・・・
なので別途変換手段を用意します。
とりあえずpandocを使っています。

pandocはapt-getからインストールできます。
非常に対応形式が豊富です。
とりあえずmarkdownからhtmlへの変換にしか使っていませんが。

インストールさえしておけば、

pandoc [input_file_name] -o [output_file_name] -f markdown -t html

で変換できます。
出力ファイルを指定しなければ変換結果は標準出力にでます。
これも毎回入力するのは面倒なので簡単なスクリプトを書きました。

command! MkdConv call MkdConv()
function! MkdConv()
    call system('pandoc ' . expand('%') . ' -o ' . expand('%:r') . '.html -f markdown -t html')
    let temp_html = expand('%:r') . '.html'
    execute 'sp ++enc=utf8 ' . temp_html
    execute 'normal ggVG"+ygg'
    call system('chromium-browser ' . expand('%'))
endfunction

以上を.vimrcに書いておけば、:MkdConvで以下の動作をします。

  1. 編集中のファイルをhtmlに変換
  2. ウィンドウを分割して変換後のhtmlファイルを表示
  3. htmlのソースを全てクリップボードにコピー
  4. ブラウザ(chromium)で変換後のhtmlを表示

htmlファイルも同じディレクトリに出力されます。
かなり強引な感じですが、一応手元では動作しています。
ブログの投稿ページで貼り付ければ終わりです(手動)。

ファイルのエンコーディングがUTF-8以外の時は、5行目の++enc=utf8を適宜変更してください。
編集中のファイルに合わせるのも簡単にできそうですが、pandocを使うのは当面のつなぎのつもりだったので面倒なのでやっていません。
ちなみにエンコードの判別をvimに任せる(++encオプション無しにする)と、vimがエンコードを決定する前にコピーしてしまって、コピーされた文字列が文字化けしました。


追記

投稿前に確認してたらもっと素敵なプレビューサービスを見つけました。

Markdown ドキュメントをとっても簡単にリアルタイムプレビュー編集できるサービス

設定不要でhtmlもちゃんと出力できます。
リロードがかなり高速です。
拡張やpandocなどのインストールも不要です。
今度からこっちにするかもしれません。
あ、でもcssが固定ですかね?

(でもせっかく書いたので記事は全部公開しておきます・・・)

2013年5月17日

Tortoisehg直った@Kubuntu13.04

先日の記事で書いた通り、Tortoisehgが起動しなかったのですが、別のリポジトリから安定版を入れれば起動はするようです。

バグ報告の記事に書いてありました。
ちょうど前回の記事を書いた時に報告されるというタイミングの悪さ・・・

ppaを追加するので、自己責任でお願いします。


安定版Tortosehgのインストール

端末から下記のコマンドで追加できます。Mercurialとtortoisehgの両方が必要らしいです。

sudo add-apt-repository ppa:tortoisehg-ppa/stable-snapshots
sudo add-apt-repository ppa:mercurial-ppa/stable-snapshots

それぞれ確認メッセージが出るので問題なければEnter。その後、普通にupdateします。

sudo apt-get update

すでにMercurialとTortoisehgがインストールされていれば、upgradeすれば安定版にアップデートされるはずです。

sudo apt-get upgrade

この時点でまだインストールしていなかった場合は普通にインストールしてください。正常にupgrade (またはinstall) されれば、thgで起動するはずです。

試しに使ってみた感じでは正常に動作しているようでした。