ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2016年10月12日水曜日

macOS Sierra にアップデート

macOS Sierra にアップデート

タイトルのままで  macOS Sierra にアップデートしました。当然(?)Linux とのデュアルブートにしていたのですが、アップデートしたら壊されました。rEFlnd を再度導入することになるんだけど、結構前にやったことなので忘れてるんだよね。

それ以前に Command + R って押しながら Mac を起動するんだけど Windows キーでも代用できるとあったけど家には Windows キーが搭載されたキーボードがないので、それを探すのがまず一苦労。

色々、探してやっと Windows キーがあるキーボードを見つけました。後は簡単、Windows + R を押しながら起動して rFind のインストールシェルを起動するだけで終わり。

なお、macOS Sierra を起動していることはなく Linux を起動しています。


ちなみにパーティーションを割っているせいかそれなりに時間かかりました。

2016年9月5日月曜日

Nouveaou

Nouveaou に戻した


 NVIDIA QUADRO K620 を使っていて Nouveaou では対応してなかったので (正確には対応が不十分だった) 仕方なく NVIDIA のドライバを使っていたんだけど init 3 で起動して startx とした後 Xorg を終了すると画面が真っ暗になる問題があった。

仕方なく LightDM をつかっていたんだけど。数日前に Nouveaou の対応状況がよくなったので Nouveau に戻してみた。やっぱりいい感じ。

F*ck you NVIDIA !

GTX 1060 とか出てるのに k620 なの?ってツッコミは無しでお願いします。

2016年6月9日木曜日

新しいマシン

新しいマシン買いました


Mac Mini (PPC) の調子が悪かったので Mac Mini 2014 late を買いました。スペックは Intel Core i5-4260U 1.40GHz メモリは 4GB の HDD は 500GB です。Mac OS X は残しつつ Gentoo をインストールしました。

CPU が Intel のものになったのでカーネル構築など色々簡単でした。悩んだといえばブートローダーぐらいかな。

2016年4月29日金曜日

SpamAssassinがヘッダーに記載するホスト名を変更

SpamAssassinでヘッダーに記載されるホスト名を変更する


前にやってたんだけど、再構築したら Google で延々と検索することになったのでメモです。

/etc/spamassassin/local.cf に report_hostname foobar.localdomain.local と記述すれば変更出来ます。ただこのヘッダーは何か問題があったときに管理者と開発者が問題解決するために、変更は出来ても削除は出来ないので注意が必要です。

2016年4月6日水曜日

net-fs/samba-4.2.9 で addc

net-fs/samba-4.2.9


Gentoo で net-fs/samba の4系が安定版になったのでAD構成でもしてみようかなぁ。と思ったんだけど。依存関係を見たら。

REQUIRED_USE="addc? ( gnutls !system-mitkrb5 )... なんてなってて app-crypt/mit-krb5 だとだめで app-crypt/heimdal 使わないとだめなので、面倒になってやめました。

一応、挑戦はしてみたんですけどねぇ。mit-krb5 と heimdal ではコマンドのオプションも違ってて諦めました。

2016年3月26日土曜日

F.lux

xFlux


Linux版の f.lux です。緯度などを入力して起動すると夕方になるとモニターの表示がやさしくなって目が疲れません。ちょっとしたツールだけど便利です。長時間ディスプレイを眺めていると疲れるんですよね。

NeoBundleからdeinに乗り換え

deinの設定


次のような感じにしてます。プラグインは TOML で管理して遅延ロードしてます。必要な部分だけ。「.vim/dein」ディレクトリを作って TOML ファイルを用意したら問題なし。


let g:rc_dir = expand('~/.vim')

let s:dein_dir = expand('~/.vim/dein')

let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim'

if &runtimepath !~# '/dein.vim'
  if !isdirectory(s:dein_repo_dir)
    execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir
  endif
  execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p')
endif

if dein#load_state(s:dein_dir)
  call dein#begin(s:dein_dir)

  let s:toml      = g:rc_dir . '/rc/dein.toml'
  let s:lazy_toml = g:rc_dir . '/rc/dein_lazy.toml'

  call dein#load_toml(s:toml,      {'lazy': 0})
  call dein#load_toml(s:lazy_toml, {'lazy': 1})

  call dein#end()
  call dein#save_state()
endif

if dein#check_install()
  call dein#install()
endif

filetype plugin on

NeoBundleからdeinに乗り換えてみて


NeoBundle のときからも TOML でプラグイン設定が記述できたけど、その部分はそれほど変化はないんだけど設定が簡単になった感じ。Powerline を使ってるからその部分で起動時間がかかるのがってのはあるけど Powerline を外してみたらその速度に驚いた。

NeoVim に乗り換えたらさらに速いんだろうけど、まだ vim で充分かな。

rxvt-unicodeのフォント再設定

.Xresourceの設定


今の .Xresource 設定です。

URxvt*termName:         xterm-256color
URxvt*depth:            24
URxvt*saveLIne:         300000
URxvt*geometry:         120x35
URxvt*perl-ext-common:  default,matcher,clipboard-osc
!URxvt*perl-ext-common: default,matcher,clipboard-osc,xim-onthespot
URxvt*inputMethod:      uim
URxvt*imLocale:         en_US.UTF-8
!URxvt*preeditType:     OnTheSpot
!URxvt*preeditType:     OverTheSpot
URxvt*url-launcher:     chromium
URxvt*matcher*button:   1

URxvt*foreground:       #B2B2B2
URxvt*background:       #202020
!URxvt*background:      black

URxvt*color0:           #2e3436
URxvt*color1:           #cc0000
URxvt*color2:           #4edc4e
URxvt*color3:           #c4a000
URxvt*color4:           #3465a4
URxvt*color5:           #75507b
URxvt*color6:           #06989a
URxvt*color7:           AntiqueWhite
URxvt*color8:           Grey25
URxvt*color9:           Red
URxvt*color10:          #00ff00
URxvt*color11:          Yellow
URxvt*color12:          #5c5cff
URxvt*color13:          Magenta
URxvt*color14:          Cyan
URxvt*color15:          White

URxvt*lefterSpace:      -1
URxvt*lineSpace: 0

URxvt.font:              xft:Terminus:pixelsize=14:antialiase=true,xft:Ricty:pixelsize=14:antialiase=true
URxvt.boldfont:          xft:Terminus:piselsize=14:antialiase=true:bold,xft:Ricty:pixelsize=14:bold:antialiase=true
URxvt.italicfont:        xft:Terminus:piselsize=14:antialiase=true:italic,xft:Ricty:pixelsize=14:italic:antialiase=true
URxvt.bolditalicfont:    xft:Terminus:piselsize=14:antialiase=true:bold:italic,xft:Ricty:pixelsize=14:bold:italic:antialiase=true
URxvt.imFont:            -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso10646-1

Powerlineを使っているのでTerminusを優先にしています。RictyにPowerlineのパッチを適用しても良いのですが好みの感じにならなかったので、こうしてます。pixelsize=14とかなり文字は小さいので辛いって人はサイズ大きくすると良いかも。またTerminusを最初に持ってきていてpixselsize=14だとrxvt-unicode (urxvt) だと日本語変換 (OnTheSpot) で変換出来ないので imFont を設定しています。

しかし、どうしてか Ricty にパッチあててもうまくいかないんだよな。

2016年2月1日月曜日

Gentoo LinuxをPXEブート

Gentoo LinuxをPXEブート


Gentoo Linuxって他のディストリビューションと違ってPXEのイメージが配布されてないんですよね。だからGoogleさんに聞いてみたら。やはりやっている人がいました。install-minimal-${ARCH}-date.isoをPXE出来るようにするスクリプトを書いている人が、ただ更新が速いGentooなので既に動かなくなっていたので修正してみました。

以下がコードになります。

gentoo-pxe-convert.sh
#!/bin/bash

# automates the procedure outlined at: http://blog.dastrup.com/?p=12

MOUNT=$1
OUT=$2

if [ x$MOUNT == "x" -o x$OUT == "x" ]; then
        echo usage: $0 [MOUNT] [OUT]
        exit 1
fi

echo converting gentoo iso mounted at $MOUNT into PXE-bootable stuff at $OUT

mkdir -p $OUT
cp $MOUNT/isolinux/gentoo $OUT/
cp $MOUNT/isolinux/gentoo.igz $OUT/
cp $MOUNT/image.squashfs $OUT/

mkdir -p $OUT/work

pushd $OUT/work > /dev/null 2>&1
echo decompressing initrd
xz -d -c ../gentoo.igz | cpio -idv > /dev/null 2>&1
mkdir -p mnt/cdrom
mv ../image.squashfs mnt/cdrom/

patch -p0 --ignore-whitespace <<'EOF'
--- init.orig   2016-01-31 07:22:56.619082092 +0900
+++ init        2016-01-31 07:28:40.100068255 +0900
@@ -455,10 +455,6 @@
                CHROOT=${NEW_ROOT}
        fi

-       if [ /dev/nfs != "$REAL_ROOT" ] && [ sgimips != "$LOOPTYPE" ] && [ 1 != "$aufs" ]; then
-               bootstrapCD
-       fi
-
        if [ "${REAL_ROOT}" = '' ]
        then
                warn_msg "No bootable medium found. Waiting for new devices..."
@@ -591,7 +587,7 @@
                else
                        bad_msg "Block device ${REAL_ROOT} is not a valid root device..."
                        REAL_ROOT=""
-                       got_good_root=0
+                       got_good_root=1
                fi
        done

@@ -670,8 +666,6 @@
        [ -z "${LOOP}" ] && find_loop
        [ -z "${LOOPTYPE}" ] && find_looptype

-       cache_cd_contents
-
        # If encrypted, find key and mount, otherwise mount as usual
        if [ -n "${CRYPT_ROOT}" ]
        then
@@ -712,7 +706,7 @@
                                # Upgrade to cached version if possible
                                [ "${DO_cache}" -a -f "${_CACHED_SQUASHFS_PATH}" ] \
                                                && _squashfs_path=${_CACHED_SQUASHFS_PATH}
-                               mount -t squashfs -o loop,ro "${_squashfs_path}" "${NEW_ROOT}/mnt/livecd" || {
+                               mount -t squashfs -o loop,ro "/mnt/cdrom/${LOOPEXT}${LOOP}" "${NEW_ROOT}/mnt/livecd" || {
                                        bad_msg "Squashfs filesystem could not be mounted, dropping into shell."
                                        if [ -e /proc/filesystems ]; then
                                                fgrep -q squashfs /proc/filesystems || \
EOF

echo recompressing initrd
#find . -print | cpio -o -H newc 2>/dev/null | xz -9 -c - > ../gentoo.igz
find . -print | cpio -o -H newc 2>/dev/null > ../gentoo.igz
popd > /dev/null 2>&1
rm -r $OUT/work

echo done.
使い方はISOイメージをマウントし、例えばマウントポイントが/mnt/cdromならgentoo-pxe-convert.sh /mnt/cdrom hogeって感じにするとhogeの中にgentoo、gentoo,igzってファイルが出来上がるのでtftpdでKERNELとINITRDとして指定します。

tftpd'(32|64)のpxelinux.cfg/defaultだと次のようになります。

DEFAULT menu.c32

LABEL gentoo-amd64
MENU LABEL ^1. Gentoo-amd64
KERNEL /gentoo-amd64/gentoo
APPEND initrd=/gentoo-amd64/gentoo.igz root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/dev/loop0

LABEL gentoo-x86
MENU LABEL ^2. Gentoo-x86
KERNEL /gentoo-x86/gentoo
APPEND initrd=/gentoo-x86/gentoo.igz root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/dev/loop0


Gentooなのですぐに変更されると思うんだけれどしばらくは使えると思います。そしてオリジナルの作者に感謝!

2015年11月24日火曜日

Logitech Unifying ReceiverをLinuxで使う

Logitech Unifying Receiver


Logitech Unifying ReceiverをLinuxで利用しようとすると、例えばマウスだと標準で付属してくるUnifying Receiverはペアリングされているので使うことはできるけど、DPIの設定や他のデバイスをペアリング出来ないのをSolaarっていうのを使ってLinuxでも便利に使えるようにします。


Solaarのインストール


Gentooな人はemerge solaarで一発でインストール終わりです。Gentooを使ってないひとはオフィシャルサイトを見てインストールしてください。基本的にインストールは簡単です。


利用方法


Solaarをインストールしただけではデバイスにrootしか読み書き出来ないようになっているので、Unifying Receiverを一度抜き差ししてください。するとplugdevグループで読み書き出来るようになります。利用するユーザはこのplugdevに所属させておきます。

solaar-cliというコマンドラインとGUIのsolaar両方が使えるのですが、手元の環境で試したところsolaar-cliはペアリングぐらいしか出来ませんでした。DPIの設定などを行おうとするとエラーになります。まあマウスを使うのでそこまでCLIにこだわることはないので、GUIのSolaarを起動します。

起動すると認識しているデバイスがツリー状で表示されるかと思います。設定したいデバイスをツリーから選択してDPIやスムーズスクローリングなどの設定をすると幸せになれます。

注意として、もしUnifying Receiverをキーボードなどに接続し、かつ充電しながら利用している場合はSolaarを起動してもデバイスを認識していることはメッセージで表示されますが、ツリーとして表示されません。そんな場合はUnifying ReceiverをPC本体に接続すると問題が解決します。

動作確認が出来たらDEのスタートアップに登録するかWMが起動するときに自動起動するように設定しましょう。

2015年11月22日日曜日

uptime

MacMini(PPC)のuptime


$ uname -a
Linux macmini 3.17.8-gentoo-r1 #1 Sun Feb 8 18:40:16 JST 2015 ppc 7447A, altivec supported PowerMac10,1 GNU/Linu

19:29:06 up 286 days,  9:01,  1 user,  load average: 0.00, 0.01, 0.05

って感じです。

パスワード管理ツール

パスワード管理ツール


パスワード管理ツールとしてマルチプラットフォームのPasswordBoxを使ってたんですが、数日前にメールが来て2016年の秋だったかなにサービス終了して、Intel Securityの元でTrue Keyとして生まれ変わるようなんです。

そこで困ったのがTrue KeyってLinux、ChromeOSに対応してないんですよね。しかし、サポートフォーラムを見ていると正式サポートじゃないけどLinuxでも使えるってあったのでやってみました。(サポートフォーラムは丁寧に対応してくれるのでいい感じです。)


インストール


インストールはWindowsか対応しているプラットフォームで行ってください、インストール後にTrue Keyを起動してPasswordBoxのアカウントでログインを行うと移行する?って聞かれるので移行します。

注意: 移行するとPassowrdBoxのアカウントは無効になります。

移行が終わりログインしたら設定からChromeの拡張をインストールします。普通にChromeをインストールしていれば拡張は同じアカウントでChromeログインしてれば拡張は同期されるのでしばし放置します。えーとこれだけです。これでLinux、ChromeOSでもTrue Keyが使えます。

True Keyを最初に使うと1年間は無料で使えます。またPasswordBoxでLifetime Supportを契約していた人は3年間無料らしいです。

セキュリティ面としてはLastpassよりいい感じがしています。ただお値段がLastpassより高く年額19.99ドルなんですよね。私は興味があってすぐ移行しちゃいましたが、PasswordBoxを使ってる人はギリギリでTrue Keyに移行した方が得だと思います。ただPasswordBoxは情報をエクスポートする機能がないのでサービスが利用できる間に安全な方法でデータを保存しておく方が良いと思います。

Chrome Web StoreにあったのでURL掲載しておきます。検索しても出てこないので。
https://chrome.google.com/webstore/detail/true-key/nbeldjopgciegccabfohnefghfpinncn?utm_source=chrome-app-launcher-info-dialog

ターミナルTwitterクライアントRainbow Stream

ターミナルTwitterクライアント


もうね、普段からターミナルに閉じこもってるので出来ることならTwitterもターミナルでやりたいんですよ。そこでTTYtterってのを使ってたんですけど違うものは無いかと探すとRainbow Streamというpythonで書かれた素敵なクライアントがあるじゃないですか!

何が素敵かというとオフィシャルさいとにある動作しているアニメーションを見てください。

Rainbow Streamオフィシャルサイトより引用

ユーザーストリーミングはもちろんのこと画像もターミナルで表示される素晴らしさ。


インストール方法


インストールはRainbow Streamのドキュメントにもあるようにvirtualenvを利用するのが良いと思います。以下のようにやります。

virtualenv venv
source venv/bin/activate
pip install rainbowstream

と簡単です。あとはrainbowstreamとタイプするとTLがどんどん流れていって面白いです。私(kn0wledge)は結果TTYtterからRainbow Streamに乗り換えました。

2015年11月19日木曜日

Tmux 2.1リリース

さて Gentoo でも Tmux 2.1 がリリースされました。このリリースでマウス系のオプションが変更になっています。

set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
この要になっているのを次のようにします。

set -g mouse on

これでマウスが使えるようになりましたが Tmux 1.9の時と動作が違うので、できる限り近付けるように設定していきます。

2015年9月7日月曜日

keychain が gpg をロードしない

keychain のバージョンは 2.8.1 で何時からか gpg をロードしなくなりました。
前までは以下のように .bash_profile に記述してました。

keychain --quiet "$HOME"/.ssh/id_rsa
[ -z "$HOSTNAME" ] && HOSTNAME=$(uname -n)
[ -f "$HOME/.keychain/$HOSTNAME"-sh ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh
[ -f "$HOME/.keychain/$HOSTNAME"-sh-gpg ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh-gpg

この状態で 2.7.1 に keychain を置き換えてログインすると ssh と gpg のエージェントが起動されるのは確認しました。2.8.1 になってから何か追加でオプションが必要になったのかもしれないと思い man を眺めてました。man ページの最後にサンプルがあるんですが、それと比べても違いはない状態です。

なんだろうなぁー。と man ページを眺めてると --agents なるオプションがあってもしかしてと思い次のようにしてみました。

keychain --agents gpg,ssh --quiet "$HOME"/.ssh/id_rsa
[ -z "$HOSTNAME" ] && HOSTNAME=$(uname -n)
[ -f "$HOME/.keychain/$HOSTNAME"-sh ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh
[ -f "$HOME/.keychain/$HOSTNAME"-sh-gpg ] && \
    source "$HOME/.keychain/$HOSTNAME"-sh-gpg

こうした後、ログアウトしてログインすると gpg-agent が起動しました。今まで気が付かなかったんだけど、いつからこうなってたんだろうって感じですね。

2015年8月15日土曜日

Tmux で sudo したあとに window 名がホスト名になるのを回避する

Tmux で sudo したあとに window 名がホスト名になるのを回避する

前回の記事で ssh した後に ssh を切断しても window 名がリモートホストのままになるのを解決したわけですが、sudo を使っても同じような現象になってしまうのでこれを解決します。

方法としては同じような事をしています。

if [ -n "${TMUX}" ]; then
        function sudo() {
                export local window_name
                window_name=$(tmux display -p '#{window_name}')
                command sudo "$@"
                tmux rename-window "$window_name"
        }
fi

とまあ function sudo() を定義して window 名を戻しているだけです。

2015年8月12日水曜日

TTYtter をカスタマイズ

TTYtter を利用する

Twitter で CLI のクライアントも良いかなと思いました。TTYtter は Perl で作成 されたソフトウェアなので Perl が実効出来るようにしておいて下さい。

TTYtter をカスタマイズ

TTYtter はそのままでも充分使えるのですが、プラグインを追加して機能というか見 た目を変更しました。以下が設定ファイルです。

.ttytterrc

#======================================================================
# TTYTTER Settings YYYY-MM-DD (gotta code that for ruby 1.9)
#======================================================================

simplestart=1

hold=1
ssl=1
ansi=1
vcheck=1
verify=1

dostream=1
mentions=1
searchhits=32
autosplit=1
timestamp=0
timestamp=%a %b %d %T %Z %Y
#shorturl=http://is.gd/api.php?longurl=

#====================================================== Interface
urlopen=open -a chromium %U
avatar=feh %U

newline=1
notifytype=
notifies=dm,me,reply,search,default
#notifies=dm,reply

colourdefault=CYAN
colourdm=MAGENTA
colourlist=BLUE
colourme=GREEN
colourprompt=OFF
colourreply=YELLOW
coloursearch=OFF
colourwarn=MAGENTA

#=================================================== Plugins
#exts=/home/kn0wledge/.ttytter-extensions/PrettyTweets.pl
exts=/home/kn0wledge/.ttytter-extensions/oxhak_ttytter_output.pl
#exts=/home/kn0wledge/.ttytter-extensions/time.pl
#exts=/home/kn0wledge/.ttytter-extensions/timestamp.pl

#================================================== Friends/readline
readline="@kn0wledge"

#==================================================

TTYtter の拡張は手を加えています。

そのままだと日本語のツイートが長い場合折り返されないので Text::LineFold を利 用して折り返しするようにしています。ちなみに Perl は分かってないので、試行錯 誤した結果なので変な部分もあると思います。

.ttytter-extensions/oxhak_ttytter_output.pl

# oxhak tytter output extension
# https://github.com/oxhak/ttytter-extension
# https://plus.google.com/101484008937520775428/posts?hl=fr
# https://twitter.com/OxHaK

use utf8;
use Text::LineFold;
$lf = Text::LineFold->new( OutputCharset => '_UNICODE_' );

$handle = sub {
    my $ref = shift; # this is a hashref to the tweet structure
    my ($time, $ts) = &$wraptime($ref->{'created_at'}) if &getvariable('timestamp');
    my $timestamp = defined($ts)?'['.$ts.'] ':'';
    my $sn = &descape($ref->{'user'}->{'name'});
    my $txt = &descape($ref->{'text'}) ;
    (my $txtfinal = $txt) =~ s/\n//g;
    (my $wrapped = $txtfinal);
    (my $folded = $lf->fold($wrapped, 'PLAIN'));
    (my $wrappedfinal = $folded);
    my $menu_select = $ref->{'menu_select'};

    my $string =
            "\e[38;5;160m\e[48;5;15m\e[1m"
            ${menu_select} . ''.
            "\e[38;5;255m\e[48;5;8m\e[1m ".
            ${sn} . ''.
            "\033[m\e[49m\n".
            ${wrappedfinal} . ''.
            "\n \n";

    print $streamout $string;
    return 1; # one logical tweet accepted
};

最後にスクリーンショットを掲載します。

TTytter

2015年8月5日水曜日

command-line fuzzy finder (fzf) による補完

command-line fuzzy finder (fzf) による補完


今回は fzf による補完を紹介したいと思います。前回紹介した qfc よりも強力です。対応している shell は bash, zsh, fish です。ちなみに私は bash を使ってます。


fzf のインストール


公式サイトにあるままです。

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

.fzf に git clone して install スクリプトを実効します。このスクリプトは実効すると .bashrc に1行追加するので install を実効する前に .bashrc のバックアップをしておいた方が良いと思います。


キーバインド設定


デフォルトではプレフィックスが Ctrl-t になっていてこれでは Tmux と重複するので Ctrl-s に変更しました。

.bashrc. などに sty stop undef と stty start undef を記述して .inputrc ファイルを作成して "\C-s": '' と記述します。そして .fzf/shell/key-bindings.bash に記載されているキーバインドを編集します。大体これで設定は完了となります。後は好きなようにカスタマイズして下さい。

ここで紹介したものより、この方が良いよってあればコメントにお願いします。


その他


vimには fzf を設定してません。unite を使ってます。

2015年7月28日火曜日

Chromium 44 + uim の挙動が変

Chromium 44 と uim の相性

Chromium 44 で uim を利用すると文字入力が変になります。mozc, anthy であればアドレスバーに1文字だけ入力し Enter をタイプするとそのまま検索されちゃいます。チャットなどの文字入力欄では1文字だけ入力して Enter で確定すると、そのままポストされる状態です。

これが SKK になるともっとひどい動きになります。

対策

Gentoo では問題のなかったバージョンである Chromium 43 系の ebuild ファイルが portage ツリーから消えているのでパッチ適用でしのぎます。もちろん独自 Overlay で 43 系の ebuild ファイルを用意しても良いのですが、可能なら新しいのが使いたいってなもんです。

さて、問題は次の Issue で報告され Closed になってます。
Issue 1257003002: OnPreeditChanged should update the internal composition after checking it. (Closed)
これを参考にパッチを作ります。以下のようになりました。

diff -urPN a/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux.cc b/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux.cc
--- a/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux.cc       2015-07-16 05:30:08.000000000 +0900
+++ b/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux.cc       2015-07-28 06:59:15.478133281 +0900
@@ -236,8 +236,6 @@
   if (suppress_next_result_ || IsTextInputTypeNone())
     return;
 
-  composition_ = composition_text;
-
   if (is_sync_mode_) {
     if (!composition_.text.empty() || !composition_text.text.empty())
       composition_changed_ = true;
@@ -245,6 +243,8 @@
     SendFakeProcessKeyEvent(0);
     GetTextInputClient()->SetCompositionText(composition_text);
   }
+
+  composition_ = composition_text;
 }
 
 void InputMethodAuraLinux::OnPreeditEnd() {
diff -urPN a/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux_unittest.cc b/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux_unittest.cc
--- a/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux_unittest.cc      2015-07-16 05:30:08.000000000 +0900
+++ b/chromium-44.0.2403.89/ui/base/ime/input_method_auralinux_unittest.cc      2015-07-28 07:09:14.228367499 +0900
@@ -606,6 +606,18 @@
   test_result_->ExpectAction("compositionstart");
   test_result_->ExpectAction("compositionupdate:a");
   test_result_->Verify();
+
+  // crbug.com/513124.
+  context_->SetSyncMode(true);
+  context_->SetEatKey(true);
+  context_->AddCommitAction("c");
+  context_->AddCompositionUpdateAction("");
+  input_method_auralinux_->DispatchKeyEvent(key);
+
+  test_result_->ExpectAction("keydown:229");
+  test_result_->ExpectAction("compositionend");
+  test_result_->ExpectAction("textinput:c");
+  test_result_->Verify();
 }
 
 TEST_F(InputMethodAuraLinuxTest, MixedAsyncAndSyncTest) {

これを /etc/portage/patches/www-client/chromium-44.0.2403.89/ に拡張子を .patch にして適当な名前で保存します。chromium の ebuild には epatch_user が記載されているので、これで emerge を実施すれば自動でパッチが適用されコンパイルされます。

ここで掲載したパッチの利用は自己責任でお願いします。急がない方はバックポートされるらしいので、それまで uim から他の物に乗り換えるなどした方が安全だと思います。

2015年7月24日金曜日

WeeChat でマウスを使う

WeeChat でマウスを使う

ターミナルアプリの IRC クライアントである WeeChat はキーボードだけで軽快に色々と出来る。なのであまり気にしていなかったのだが、最近になってチャンネンルの切り替えとかがマウスで出来ることを知った。

さっそくやってみた。


/mouse enable これでマウスが有効になりマウスで操作が出来るようになる。ただこれだと一時的な設定で次回起動時に有効にならないので、設定ファイルを編集してマウスサポートを有効にする。もちろん /mouse enable のあと set で設定することも出来るけど忘れた。というか自信がない…

WeeChat が起動しているときは終了してから ~/.weechat/weechat.conf の mouse = off となっているのを mouse = on に編集して保存。これで次回起動時からマウスサポートが有効になる。