10 Jan 2014, 12:56

taskwarriorでタスクにメモを書くシェルスクリプト

最近は、タスク管理のために taskwarriorを利用しています。

タスクに対してメモをつけたいと思い、メモする方法を調べました。簡単にメモするならば、以下で注釈を追加

task 20 annotate hoehoge

もっとがっつり書きたいと調べたところ、以下のような記事を発見。

スクリプトを起動してメモを作成する方法です。さっそく参考にしました。

${HOME}/Documents/wiki/tasks/commentsにメモ保存用ディレクトリ作成

mkdir -p ${HOME}/Documents/wiki/tasks/comments

以下のようなスクリプトを作成

task idを指定してコマンドを実行すると、Descriptionに c が追加されて、メモをエディタで開けます。

$ taskcomments 20

07 Jan 2014, 13:53

スクリプト言語はプログラマの必須スキル!『Rubyスクリプティングテクニック』を読んだ読書メモ

スクリプトをサクッと書きたいので、こんな本を読みました。



サンプルコードは以下に置いてある。これをダウンロードして読み進めていくのだが・・・途中からサンプルコードが動かない。

しかたがないよ、昔の本だから。 The Pragmatic Bookshelf | Source Code

プログラムとスクリプトは違う!

この書籍では、コードを書くことをプログラミングという言葉を使わずに「スクリプティング」という言葉を利用している。本書におけるスクリプティングの定義は以下だ。

軽妙なニュアンスを含み、また日常の雑用をこなすのにより適した用語

ターゲットはテストエンジニア

また、この本のターゲットはテストエンジニアだ。もともと、Scripting for Testersという題名を考えていたらしい。テストにたいする言及も文章の端々にある。

しかし、結果と期待値の比較のようなテストの自動化は扱っていない。自動化は本当の効率化にならない、また必要以上にコストをかけてスクリプトを書くべきではないと忠告している。スクリプトは問題を解決する手段。

内容

Rubyの文法をまったく知らない初心者でもわかるようにかかれている。

exampleを元に実際に手を動かして進めていく章と、文法の解説の章が交互に現れる。正規表現の重要性も強調されていて、よく説明されている。演習問題の解説がとても丁寧に書いてあり、演習も込みで読み進めていくのがいい。gemやツールのフォルダ構造にについてもかかれていて、ツールとしてどういうふうに共有するかが解説されている irbやUnitTestで小さく結果を確かめながらすすめていく。

テスト駆動開発と名をうっているが、そこまでTDDを熱く語っているわけではない。(TDDを期待するのは別の本がよいと思う)リファクタリングについてもたくさん説明が割かれている。テストでスクリプトを整備してクリーンな状態を保ちつつ、スクリプトの保守をしていこうという趣旨。 おわりに書いてあるまとめのことばが胸に刺さるので、引用する。

多くのスクリプタは自分が書いた個々のスクリプトからなにも得られないままでいます。

廃棄すべきスクリプトの作成にすべての時間を費やしていると、あなたの道具箱の中身が増えないばかりか、自分自身の成長も止めてしまうことになるのです。

スクリプティングで大事なことは、自分自身を駆り立てながら、その一方で自分の給与に見合った結果を安定して生み出していくことです。そのためには、コードを常にクリーンに保ちながら、スクリプティングの技術に少しずつ磨きをかけ、あらゆるニーズに対応するようにすることです

だから、スクリプト言語としてRubyがこの本で紹介されたのだと思う。TDDとリファクタリング、オブジェクト指向によるモジュール分割、フレームワークの継承による再利用、豊富な再利用可能ライブラリ群。

プログラマはスクリプト言語が必須スキル

私はプログラミングは知っているが、スクリプティングはあまり知らない。しかし、なんらかのスクリプト言語はプログラマの必須スキルだと信じていて必ず学ぶ必要があると思っている。

なぜなら、プログラマはより効率的にプログラミングするために日々改善が必要で、そのためには簡単にツールをつくるスキルが必要だからだ。Rubyを勉強しようとするモチベーションもスクリプト言語に対する義務的な知識欲があるからだ。

07 Jan 2014, 12:27

コマンドラインからgmail経由でメールを送るRubyスクリプト

なにかのアイデアを忘れないように、アイデアは思いついたときにgmailや会社のメールのInboxへリマインダメールを放り込む習慣がある。

コマンドラインからサクッとメールを送信するスクリプトを作成しました。

以下の記事を参考にしました。ありがとうございます。

事前準備として、以下をインストールする必要があります。

gem install mail
gem install tlsmail

Warningエラーがたくさんでるので、対策が必要。これはgmailが原因のようだ。

/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant Net::SMTPSession
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/2.1.0/net/smtp.rb:1063: warning: previous definition of SMTPSession was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: already initialized constant Net::POP
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:687: warning: previous definition of POP was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: already initialized constant Net::POPSession
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:688: warning: previous definition of POPSession was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: already initialized constant Net::POP3Session
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:689: warning: previous definition of POP3Session was here
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant Net::APOPSession
/home/tsu-nera/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: previous definition of APOPSession was here

以下のサイトを参考に対策を実施。

  • ruby on rails – warning: already initialized constant after installing tlsmail gem? – Stack Overflow

    require 'net/smtp'
    Net.instance_eval {remove_const :SMTPSession} if defined?(Net::SMTPSession)
    
    require 'net/pop'
    Net::POP.instance_eval {remove_const :Revision} if defined?(Net::POP::Revision)
    Net.instance_eval {remove_const :POP} if defined?(Net::POP)
    Net.instance_eval {remove_const :POPSession} if defined?(Net::POPSession)
    Net.instance_eval {remove_const :POP3Session} if defined?(Net::POP3Session)
    Net.instance_eval {remove_const :APOPSession} if defined?(Net::APOPSession)
    
    require 'tlsmail'
    

スクリプトは以下のとおりです。

05 Jan 2014, 12:25

ストレスフリーの境地、だからGTDとTDDが好きだ

medium_4774087006

2年以上前の自分のつぶやきをふと見つけたので、これについて書いてみる。

TDDとGTDの共通点

TDDが好きだ。その理由はTDDがGTDに似ているからだ。

[//www.youtube.com/embed/ie_HQwQ5YZE]

以下、似ている点を列挙してみる。GTDでのタスクという言葉は、TDDではテストという言葉に置き換えることができる。

  • [リスト化]TODOリストにしたがってタスクをこなしていく。
  • [最小化]大きな問題を最小単位のタスクまで分解して取り組む。
  • [ボトムアップ]タスクを確実に積み上げて大きなことを成し遂げる。
  • [NextAction]具体的で着手可能なNextActionのタスクを常に意識する。
  • [フロー状態]目の前のタスクに集中する。
  • [規律]規律(Kata)を遵守することでプロジェクトを推進する。

TDDを知らないころ、GTDにしたがってNextActionをこなしていくことを生活の規律にしていた。なので、GTDのように開発もしたいなと思っていた。TDDを知ると、その方法論にすぐに魅了されてしまった。

ストレスフリー

GTDのなかでとくに好きな考え方は、以下のようにたとえられるもの。

  • ストレスフリー
  • 水のように澄み切った状態
  • 働くだけの幸せバカ

空手が両者と関係しているのも、偶然ではないだろう。(6:30の空手パンチ!)

ストレスフリーはGTDの売り文句だけれども、TDDにもその感じは当てはめることができる。フリー状態とはいえないまでも、TDDをしていると、安心と集中を得ることができる。だから、TDDが好きだ。

人生の意味について

人生の意味はなんだろうかと思う。人生の意味はないと思う。

それだと不安に耐えられないので、無理やりにでも目標を定めてその達成を目指し、そこに意味を見出そうとしている。そして、目標の達成のために集中している状態が、幸せだと思っている。

また、目標は達成できない大きな目標ではなくて、小さなもの、達成可能なもの、瑣末なものがよい。ションベンをより遠くまで飛ばすことだって素晴らしい。小さくて具体的な次の一手を決めて、その達成に対して精一杯集中する。その過程におけるストレスフリーな状態が素晴らしい。

ターゲットを決めて前に進むことが大事。そういう人生観に、GTDやTDDの考え方はマッチしている。

だから、GTDやTDDが好きだ。

参孝


photo credit: net_efekt via photopin cc

05 Jan 2014, 03:44

2013年に読んだ技術書一覧

2014年はたくさん技術書を読もうと思う!

去年はあまり本を読まなかった気がするが、はてさてどんな本を読んだか、一覧にまとめてみました。

だいたい18冊くらい。

Web関係の本も読んだ気がするが、タイトルすら忘れてしまったのでノーカウント。 2014年は、2週間に1冊は読んでいきたいところだ。目指せ24冊!!


美しさってなに?リーダブルコードを読んで思ったこと。 | Futurismo


[CleanCoder]断片的なプロ意識に感銘!プログラマは[CleanCoder]でプロの感性を学ぼう。 | Futurismo


[本]IPv6ネットワークプログラミングを読んだ感想 | Futurismo


百科事典のようなワクワク感!IT技術者のための「ストレージの原則と技術」を読みました | Futurismo


[本]Jenkins (オライリー・ジャパン)を読んだ読書メモ | Futurismo


『よいコードを書く技術』とよいクラス名のつけ方について | Futurismo


Cygwin使いならば絶対に身につけておきたいコマンド5選+apt-cyg | Futurismo


プログラマ必読!「UNIXという考え方―その設計思想と哲学」でUnix哲学の真髄と美徳を学ぶ | Futurismo


レガシーコード改善ガイドを読了しました!心に響いた考え方の覚書 | Futurismo


テスターの視点を手に入れるために『実践アジャイルテスト』を読みました | Futurismo


モダンディなTDDの最新動向が集結!『Modern C++ Programming with Test-Driven Development』 | Futurismo


「モダンC言語プログラミング」を読んだ!C言語の組込みエンジニアのためのモダンテクニックが満載 | Futurismo





これはなかなか死ねたよ。



02 Jan 2014, 14:46

2014 年の目標

ドラクエ 8 のレベル上げをしていたら年が変わってしまった, そんな年越しだっだ. 今年の目標は, ドラクエ 8 を全クリすることだ.

2 番目の目標は, ムークを頑張ること.

去年の夏からムークを頑張ってきたが, 今年はさらに力を入れようと思う. 今年はムークを趣味にしてもいいと思ってる.

大学生のときに勉強しなかったことを後悔している. もっと時間に余裕のあるときに, コンピュータサイエンスやプログラミングに時間をかけて取り組んでおくべきだった.

しかし自分は大学院にはいかなかったが, それは後悔していない. なぜなら, 就職することで, プログラマになるという自分の道を決めることができたからだ.

自分は応用数学を勉強していたが, 勉強のやる気が起きなかった. 大学生のときはそれが社会にでて役に立つとは思わなかったからだ.

・・・

今は違う. 意欲的に学習できる.

その理由は, 一つに学習が将来の可能性につながると信じているから. だから, いくら時間をかけてもそれが苦にはならない.

もう一つの理由としては, ムークの講義はとてもおもしろい. 大学 1,2 年生のときは基礎科目を勉強していたのであまりおもしろくなかった. 大学 3 年生になると, 内容が専門的になっておもしろいなと感じたがそのまま就職活動だった. 大学 4 年のときは勉強はそれなりにしたけれども, ガチガチの数学だったのでつまらなかった. ムークの内容は, 大学 3 年生のころに感じたおもしろさを思い出す.

・・・

大学生のときに CS をしっかり学ばなかったことを後悔している. ムークは, そんな自分に学ぶ機会を与えてくれる. 素晴らしいことだ. ムークを利用して今年はコンピュータサイエンスの基礎を徹底的に学ぼうと思う. 今年は学びの年にしたい, それが新年の目標だ.

02 Jan 2014, 07:29

Linux Mintインストール後の設定メモ

前回、Linux Mintをインストールしたので、今回はその後の設定についてまとめます。

日本語入力環境の構築

デフォルトでは日本語がまず入力できません。なので日本語を入力できるようにします。

ソフトウェアを取得するリポジトリの変更と更新

日本国民ならば、パッケージを取得するための公式リポジトリは日本のミラーサイトに設定するべき。設定のソフトウェアソースを開き、公式リポジトリのミラーサイトを日本の国旗がかかれているものに変更。

http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages/ 
http://ftp.riken.jp/pub/Linux/ubuntu/

ソフトウェアを更新する。

$ sudo apt-get update

ディレクトリ名の英語表記

ホーム配下にあるディレクトリ(ピクチャやドキュメントなど)は日本語表記だが、コマンドラインとの相性を考えると英語の方がよいので変更する。

$ env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update

WorkSpace数の変更

WorkSpace数はデフォルトで2つだけれども、4つに変更する。

$ gsettings set org.cinnamon number-workspaces 4

テーマと背景を変更する

テーマや背景は趣味で変更。

メニューの色も変更してみる。gtk-theme-configというツールをつかう。

$ sudo apt-get install gtk-theme-config

インストールしたらメニューから Theme Configurationを選択。

Emacsを利用すると、256色つかえなかった。環境変数に以下を設定する必要がある。

$ export TERM=xterm-256color

 

フォントの変更

デフォルトフォントは、Sansというフォント。これをプログラミングフォント、Rictyに変更する。

Windows(NTFS)ファイルシステムをマウントする

Linux側からWindowsのドライブをマウントすれば、Linux側からもWindowsのファイルが利用できて便利です。以下にまとめました。

ディスプレイ明るさの調整

ノートPCなので、バッテリーを利用しているときは、ディスプレイの明るさを落として電力を節約したい。xbacklightdをインストールする。

sudo apt-get install xbacklight

調整は以下のコマンドで実施。setの後ろの数字で調整。

xbacklight -set 80

Applications

各種アプリケーションを入れます。

zsh

端末のシェルをzshにします。

$ sudo apt-get install zsh
$ chsh

git

Gitをインストール

$ sudo apt-get install git

続けて、githubと連携。以下のエントリも参照。

githubで管理しているdotfilesを落としてきます。

Ruby

rbenvを利用してインストール

git clone git://github.com/sstephenson/rbenv.git ~.rbenv
mkdir -p ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git
rbenv install 2.1.0
rbenv global 2.1.0 
rbenv rehash

エラーした。

configure: error: in `/tmp/ruby-build.20140102130128.5783/ruby-2.1.0':
configure: error: C compiler cannot create executables

この方法を試すとうまくいった Home · sstephenson/ruby-build Wiki

apt-get install build-essential autoconf libssl-dev libyaml-dev libreadline6 libreadline6-dev zlib1g zlib1g-dev
CC=/usr/bin/gcc rbenv install 2.1.0

Eclipse

この記事がとても参孝になりました。ありがとうございます

Linux版のEclipseを公式サイトからインストールします。/opt/eclipse配下に展開。以下で起動確認。

% /opt/eclipse/eclipse

起動できたら、日本語化します。Pleadesプロジェクトから日本語に必要なファイルをダウンロードして、feature,pluginsに上書き。

eclipse.intの最後に以下を追加

-javaagent:/opt/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

Eclipse環境の引越し方法はEclipse年次バージョンアップ時の移行方法について調べたを参考。

Wine

Windowsから引っ越してきたならば、必須のツール。なんとWindowsアプリがLinuxで利用できるのだ!Cygwinみたいなもの。

$HOME/.wine配下にCドライブのようなものができて、そこにアプリがインストールされる。

Evernote

Wineを利用して、Evernote for windowsをインストール!Winowsのホームディレクトリ/AppDate/Local/Evernote/EvernoteにEvernoteのデータがあるため、ここにシンボリックリンクをはることで、LinuxとWindowsでデータを共用。

その他、趣味に合わせてツールをドンドン導入。

  • Google Chrome
  • freemind
  • Emacs

01 Jan 2014, 12:39

デュアルブート時のLinux環境Dropbox導入について(Windows 7/Mint)

デュアルブートでDropboxを利用するとき、すでにDropboxアカウントは持っていて、Windows上にファイル群もある。

そんなときデュアルブートなので、WindowsのボリュームをマウントすればWindows上のDropboxにアクセスできる。なので、Dropboxの同期ファイルはWindows上のフォルダに指定すれば容量がすくなくなりうれしいです。

デュアルブートでのDropbox導入方法についてメモします。

LinuxからWindows(NTFS)をマウントする

ここでは、/mnt/winというマウントポイントにマウントするとします。

$mkdir -p /mnt/win

以下のコマンドでマウントします。マウントさせるボリューム名はGPartedツールを起動して調べるのがよいでしょう。

以下のコマンドでマウントします。マウントさせるボリューム名はGPartedツールを起動して調べるのがよいでしょう。(ここでは/dev/mapper/isw_bfahbhfbaf_Volume0p3)

$ sudo mount -t ntfs /dev/mapper/isw_bfahbhfbaf_Volume0p3 /mnt/win
$ df
Filesystem                           1K-blocks     Used Available Use% Mounted on
/dev/mapper/isw_bfahbhfbaf_Volume0p3  85284860 77874012   7410848  92% /mnt/win

このままでは、毎回手動でマウントさせないといけないので、Linux起動時に自動でマウントさせるようにします。/etc/fstabに以下の行を追加することで、Linux起動時にマウントするようになります。

/dev/mapper/isw_bfahbhfbaf_Volume0p3 /mnt/win ntfs defaults 1 0

参考: 4.4. ファイルシステムのマウントとアンマウント

Dropboxのインストール

以下からDropboxのアプリをインストールする。

Dropboxデーモンを起動する

~/.dropbox-dist/dropboxd

指示にしたがって進んでいくと、同期用のディレクトリがきかれます。すでにDropboxアカウントは持っていて、Windows上にファイル群もある。デュアルブートなので、WindowsのボリュームをマウントすればWindows上のDropboxにアクセスできる。なので、Dropboxの同期ファイルはWindows上のフォルダを指定します。

/mnt/win/Documents and Settings/TSUNEMICHI/を指定する。すると、以下のように質問されるので、OKを選択。

「Dropbox」という名前のフォルダが既に存在しています。そのフォルダ内にある既存のファイルをすべて、お使いの Dropbox で統合しますか?

ついでに、シンボリックリンクも作成。

ln -s "/mnt/win/Documents and Settings/TSUNEMICHI/Dropbox" ~/

Dropboxデーモンを自動起動

DropboxはLinux起動時に自動起動しないので、自動起動するように /etc/init.d/に起動スクリプトを作成します。

以下のサイトを参考にしました。ありがとうございます。

Install Dropbox In An Entirely Text-Based Linux Environment – The Unofficial Dropbox Wiki

ちゃんと起動したようです

$ ps ax|grep dropbox
 1610 ?        Sl     0:13 /home/tsu-nera/.dropbox-dist/dropbox

31 Dec 2013, 05:49

美は生産性に宿る!プログラマーのためのフォントRictyをLinux Mintに導入した

普段利用しているフォントが美しいと、なにをするにもテンションがあがりますね。

美は生産性に宿る!!

ということで、美しいプログラミングフォント、Rictyを Linux Mintに導入してみました。

以前、Windowsについての導入手順を記事にしましたが、今回はMint Linux環境で導入してみます。

環境

  • Linux Mint 16 64bit cinnamon

Rictyとは

Rictyとは、プログラミング言語を美しく表示するためのフォントです。Top 10 Programming Fontsで1位になった Inconsolataと、日本語用フォントMigu 1Mを合成して作成されています。

Rictyのインストール

FontForgeのインストール

FontForgeとは、フォントのためのエディタです。コンソールから、

$ sudo apt-get install fontforge

Ricty生成スクリプトのダウンロード

githubからRicty生成スクリプトの最新版を落としてきます。

$ mkdir -p /tmp/ricty
$ cd /tmp/ricty
$ mv /home/tsu-nera/Downloads/Ricty-master.zip .
$ unzip Ricty-master.zip 
$ mv Ricty-master/ricty_generator.sh .

Inconsolata のダウンロード

Inconsolata 公式サイトより OpenType file を入手。

$ mv /home/tsu-nera/Downloads/Inconsolata.otf .
  • Inconsolata.otf

Migu 1M のダウンロード

M+とIPAの合成フォントサイトから、Miigu 1Mを入手

$ mv /home/tsu-nera/Downloads/migu-1m-20130617.zip .
$ unzip migu-1m-20130617.zip
$ mv migu-1m-20130617/migu-1m-* .
  • migu-1m-regular.ttf
  • migu-1m-bold.ttf

Ricty生成

準備完了。

$ ll
-rw-r--r-- 1 tsu-nera tsu-nera   58464 12月 31 14:02 Inconsolata.otf
-rw-r--r-- 1 tsu-nera tsu-nera 3440184  6月 17  2013 migu-1m-bold.ttf
-rw-r--r-- 1 tsu-nera tsu-nera 3148684  6月 17  2013 migu-1m-regular.ttf
-rw-r--r-- 1 tsu-nera tsu-nera  115980 12月 31 13:58 ricty_generator.sh

以下でRictyを合成します。

$ sh ricty_generator.sh auto

完成しました。

$ ll
-rw-r--r-- 1 tsu-nera tsu-nera 3538464 12月 31 14:22 Ricty-Bold.ttf
-rw-r--r-- 1 tsu-nera tsu-nera 3228704 12月 31 14:22 Ricty-Regular.ttf

Rictyインストール

最後に、Rictyをシステムにインストールします。

$ mkdir -p ~/.fonts
$ cp -f Ricty*.ttf ~/.fonts/
$ fc-cache -vf

これで、フォントの選択画面にRictyが表示されるようになります。

システムのフォントをおきかえる

メニューからフォントを選択して、Rictyを選択することでシステムのフォントを置き換えることができます。

これで作業完了。Happy Programming!!

30 Dec 2013, 17:43

Fcitx-anthyを使ってLinux Mintで親指シフト日本語入力環境を構築するまでの手順

あたくしは何を隠そう親指シフターなのです。

Linux環境を利用するにあたって最大の不安は、親指シフトが利用できるかどうかというところでした。色々調べてみた結果、利用できたので方法を書いておきます。

Mint日本語対応

まずは、日本公式HPの手順にしたがって、日本語対応を完了させます。

コマンドは以下。

$ wget -q http://linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ sudo wget http://linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list
$ sudo apt-get update
$ sudo apt-get dist-upgrade

$ sudo apt-get install mint-gnome-ja --install-recommends

fctix-anthyを選ぶ

IMとは、インプットメソッドの略でコンピュータに文字を入力するためのソフトウェア。IMEとは、IMのエンジン(Engine)。かな漢字変換を制御するソフトウエア。文字入力は、キーボードからの文字列をIMEで変換してIMでアプリケーションに渡します。

Mintで利用できるものでメジャーなものは、

  • IM
    • iBus
    • Fcitx
  • IME
    • Mozc
    • Anthy

ネットて調べたところ、うれしいことにAnthyが親指シフト対応しているようだ。MozcはGoogle日本語入力で利用されている技術がオープンソースになったもので、Anthyよりも変換能力が高いが、親指シフトが残念ながら利用できない。

iBusは評判が悪そうなので(本の虫: iBus 1.5がクソすぎる)、対抗馬として最近出てきたFcitxをIMに選択。

よって、fctix-anthyを試してみることにしました。

fctix-anthyのインストール

以下の記事を参考にしました。ありがとうございます。

以下からインストールします。

$ wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
$ sudo wget https://www.ubuntulinux.jp/sources.list.d/saucy.list -O /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo apt-get update

記事でのfcitx-mozcの部分をanthyに変更しています。

$ apt-get install fcitx fcitx-anthy fcitx-libs-qt5 fcitx-frontend-qt5

また、fctix設定を開こうとするとエラーしたので以下もインストール。

$ apt-get install fcitx-config-gtk

最後におまじないをして、ログアウト・ログインしなおし。

$ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
$ im-config -n fcitx

これで利用できるようになったはず。`パネルの右下にキーボードが表示されていればOK.

Fctixの設定

メニューからFctix設定を選択。Anthyをダブルクリックして選択。

全般->入力方式から nicolaを選択して完了。

変換機能はMozcに劣る。しかし、変換候補がタブで次次表示できるのはよい。こんなに簡単に親指シフトが実現できるなんて、素晴らしい!!