シェルスクリプト Forced Todo

Forced Todoはなかなか進まない進捗に対して、一定の時間でTODOを読み上げ、進捗を迫るものである。 あまりに進捗しないので作ってみた。

Gist

Systray

Notifyを開始するとSystrayに常駐し、Systrayから終了できるようにした。

Systrayへの常駐はMailDeliver2同様、yadを使うようにした。

notifypid=$!

yad --notification --image=player-time --text="TODO NOW!" --command="yad --text-info --timeout=15 --title=TODO --width 300 --height 300 --filename=$HOME/.yek/forcedtodo/todotext" --menu='Edit!'"$task_editor $HOME/.yek/forcedtodo/todotext"'|Quit!quit' --tooptip="Immidiately Task" 
kill $!

Yadのオプションについて分析してみよう。

オプション 意味
--notification Systrayに常駐する
--image=player-time Systrayのアイコンを選択
--text="TODO NOW!" Notificationの名前(ポップアップに影響)
--command 左クリック時の実行コマンド
--menu 右クリックメニュー。項目名とコマンドを!で分けている。quitで終了

ネストされているYadは次の通り

オプション 意味
--text-info テキストダイアログ
--timeout=15 15秒でダイアログが閉じる
--title=TODO ウィンドウタイトル
--width 300 ウィンドウの幅
--height 300 ウィンドウの高さ
--filename=... テキストの内容となるファイル

Zenityとは結構な違いがあることに注意。

Yadは通常ブロックするため、Yadが終了しなければ戻らない。 そのため、Notifyするためのプログラムをサブシェルでバックグラウンドプロセスとして実行し、そのプロセスID($!)を取得し、Yadが戻ったらKillすれば良い、ということになる。

Notify (Open JTalk)

Notifyは単一のプロセスIDを振るためにサブシェルで実行し、バックグラウンドプロセスとすることでループさせる。

(
  while sleep $notify_interval
  do
  perl -pe 's/\n/。/g' ~/.yek/forcedtodo/todotext | open_jtalk "$jtalk_tuning[@]" -m $hts_voicefile -x $mecab_dictdir -ow $jtalk_tmpfile
  play $jtalk_tmpfile >| /dev/null &|
  notify-send -t $notify_time "TODO" "$(<$HOME/.yek/forcedtodo/todotext)"
  done
) &

単純なsleepによるループである。

基本的な手順としては

  1. Open JTalkで音声ファイルを作成
  2. 合成した音声ファイルをバックグラウンドプロセスとして再生
  3. Notify Sendを使って通知に表示

となる。

ここで大きな情報はOpen JTalkだろう。

Open JTalkはスピーチシンセサイザーだが、eSpeak, SVOX Pico, Festivalといったソフトウェアと比べて非常に自然で、日本語に対応している。 ただし、かなり複雑なソフトウェアだ。

Manjaro(Arch)では、AURにあるopen-jtalkパッケージをインストールする。

NAIST JdicファイルはAURにも存在していないが、辞書ディレクトリとして/usr/share/open-jtalk/dic/を使用することができる。精度は異なるかもしれない。

NAIST JDicをインストールするためには、mecabをインストールし、さらにNaist JDicで/usr/libexecが指定されている部分を/usr/libに変更しなくてはいけない。

女声を使用するためにはopen-jtalk-voice-meiをインストールする。

Open JTalkは非常に自然で、Twitterの読み上げにも使えそうだが(twとの組み合わせがいいだろう)、複数行を扱うことができないため、Perlで変換している。 また、Open JTalkは標準出力に吐くことはできないようだ。

Manjaro 0.8.13 セットアップ作業 part2

パッケージの順次インストール

  • umplayer-svn
  • kuickshow
  • gqview
  • chromium-pepper-flash
  • smtube
  • youtube-dl
  • atomicparsley
  • gnome-terminal
  • cutemarked
  • haroopad
  • screen
  • at
  • nemo-share
  • unbound

screenは、.zshrcでSSH接続に対してscreenを呼んでいるので必要。

atはrsoftmirrorが使っているので必要。

Gnome Terminalは、Nemoが必要とするため(Gnome Terminalがないと、Nemoで「端末で開く」とした時に開くことができない)に導入した。

ファイアウォール

とりあえず、

# touch /etc/iptables/iptables.rules

した上で

# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD DROP
# iptables -N INCOMING
# iptables -A INCOMING -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT
# iptables -A INPUT -j INCOMING
# iptables -A INCOMING -p udp --dport 53 -j ACCEPT
# iptables -A INCOMING -p udp --dport 5353 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -P INPUT DROP
# iptables-save > /etc/iptables/iptables-rules

して

# systemctl start iptables

だが、ルールがどうにも気に入らなかったので、結局gufwを使ってしまった。 なんとか早くnftをマスターしたいところではある。

SpamAssasinのham学習

Spamはだいたい固めてあるが、Hamは非常に広い階層にあるため、次のスクリプトで処理した。

setopt EXTENDED_GLOB
integer ind

for i in ~/Mail/inbox/**/*~*/SystemMessage(#q/)
do
{
#  print $i
for j in "$i"/<->(#q.[1,100])
do
	cp -v "$j" ~/tmp/ham/$(( ++ind ))
done
} always { TRY_BLOCK_ERROR=0 }
done

これでMHフォルダ内にある全てのメールが集約できる (事前にspamは排除しておく必要あり) ため、あとはディレクトリをhamで学習させれば良い。

マウスカーソルが歪む問題とCinnamon

相変わらず出現する。XFceだと、それなりの頻度ででるようだ。 KDEに関してはそこまで使い続けたことがないため、出るかどうかは分からない。 KDE4では最も出現しやすかったが。

結局、UIが改善されたXFceでもKDEでもなく、Cinnamonに戻ることとなった。 LINEのフォント問題も、なぜかCinnamonで起動すると綺麗に表示される。

ちなみに、以前から感じていたことだが、Cinnamonのフォントレンダリングが異様に綺麗だ。 サブピクセルレンダリングの設定に関わらず。 これは一体なんなんだろう。

また、以前は機能しなかったCinnamonのスクリーンショット機能もきちんと動作した。 もしかして以前はGnome-Screenshotが入っていなかったりしたのだろうか。

Gnome-ScreenshootはXDG-PICTURES以下に自動で保存するため、ガンガン撮れる代わりに、ちゃんと分類しないと後で痛い目を見る。

Cinnamonに戻したため、またウィンドウショッピング(GUIの外観の設定)に時間を費やすこととなった。 壁紙を前回から引き継ぎ、黒ベースのテーマとしてかなり綺麗に仕上がった(以前はそもそも設定していなかった)のだが、そうするとウィンドウ色などを独自に定義するものとうまく噛み合わなかったりする。 Mikutterに関してはダークテーマに設定したが、Geanyが常に白背景に白字を使うのだが、にも関わらず入力中の部分についてはGTKのテキスト背景色を使う。ダークテーマだとテキスト背景色は黒に近いため、見えない。 変換するとシステムカラーになるため問題ないが…

結局、日本語テキストが多い場合は、meditを使う、というスタイルに戻ることになりそうだ。

マウスカーソルテーマでLCDテーマに青がないため、黒を使っているがテキストエリアでロストすることがちらほらあるのも残念。

壊れたシステムの修復のためのManjaro 0.8.13インストール

update-grubできない問題は根が深く、様々なところで訊いてはみたものの、結局答えが出ない。

Manjaro 0.8.13について

Manjaro Linuxは0.9.0リリースを控えていたが、新インストーラのCalamaresのバグがなかなか解消できず、結局0.8.12でCalamaresを採用したものの、インストーラをThusに戻した0.8.13をリリースするに至った。

Manjaro Linuxの日本語を一手に引き受け、Manjaro JPも開発するrago1975さんによれば、0.9.0のThusインストーラバージョン的なものだとという。

実際にそのように感じる。というのは、XFceはGTK3を採用する4.12、KDEはPlasma5なので、デスクトップが別物になっている。 XFce版だとDMも完全に別物となっており(もしかしたらMDMから差し替えられたのかもしれないが)、雰囲気はがらっと変わった。

XFceは0.8.12でも4.12の開発版である4.11を採用しており、現行のManjaroテーマも既に採用されていたため、0.8.12からの目新しさは特にない。 とはいえ、それまでの0.8.11からすれば劇的に変わり、垢抜けないデザインが特徴だったXFceもぐっとスタイリッシュになった。0.8.12と比べてもやはり部分的に見た目も変更されている。

アップデートでは見た目に関する部分は変わらないため、「見た目が変わった」というのは、入れ替える動機にもなるかとは思うが(Plasma4がPlasma5に置き換えられるのは当面先だろうから、入れ替えはかなり大変だと思う)、今回はThusの改良に非常に力が入れられていた。

まず、Thusインストーラの起動はすごく速くなった。これまでは、忘れた頃に起動する勢いだったが、すぐに起動するようになった。

Thusは手動パーティショニングをしてもLUKSの利用ができるようになったはずだが、それについては今回試していない。

LUKSパスフレーズについては、「特殊な文字を使うな」という注意書きが増えた。「LUKSパスフレーズに記号を含めると復号化できなくなる」という問題に対応したのか。

またブートローダーはGRUB2とGummibootを選択できるようになった。しかし、Gummibootを選択するとブートローダーはインストールされない。 また、Gummibootを選択した場合、ブートできない可能性があるのでウェブサイトを見るかと聞かれる。

Thusはかなり改善されたことを感じられる。

また、0.8.11まではUEFIでインストールしても第1パーティションにGRUB_BOOTを切っていたが、これをやめて3パーティション構成になった(ESP, BOOT, LVM)。Gummibootにすると、2パーティションになる。

Gummibootにきちんと対応してくれると嬉しかったのだが…

なお、Manjaro 0.8.11をそのままにしてインストールすると、GRUB2でも起動しなかった。 事前にGPTを作成しておくことで無事に起動できた。

ただし、UEFIブートメニューに謎の無効な空欄エントリがあるということは変わらない。

導入しようにも…

しかし、Alternative HDD (500GB)に入れても、そこで構築してSSDに移す、というのはかなり大変な作業になる。SSDのほうが小さいからだ。

かといって、環境をイチから作るのに、現行の環境を潰してしまうと、だいぶ長く仕事ができなくなってしまう可能性がある。

散々悩んだ挙句、結局はSSDをもう1台追加することにした。 ケーブルも併せてだいたい12000円の出費。なかなか痛い。 だが、仕事を見通しが立たないまま止めるわけにもいかないし、かといって更新できない状態でも放置できないので、やむなしか。

ケーブルはAmazonで、SSDはNTT-Xで購入。NTT-Xは仕事でも使えるようなので、これからかなりお世話になることになるだろう。

ケーブルは当日、SSDは翌日に到着した。

インストール作業

インストール

まずは単純に、SSDを組み込んで元のSSDとAlternative HDDを外し、予めGPTを作成した上でThusインストーラでインストールする。

UEFIでLVM, LUKS, /home分割はon, GRUB2を選択、なお起動時にはnomodesetnokmsbootオプションが必要。

ただし、インストール後はnomodeset及びnokmsbootは必要なかった。

基本セッティング

まずはworldencmountの必要なファイルをtarで展開する。これでbtrfsボリュームのマウントが可能になる。

そしてzshのインストール。 なお、zsh-configについてはかなり癖がある設定の上に、手元の.zshrcで設定できなくなるので私は好まない。

これでマウントできるようになったら、btrfsをroでマウントし、最低限のファイルをコピーする。主要な設定ファイルは

cp ~/share/manjaro-home-transition/*(#q@) .

で以降できる。データ本体は~/shareにあるため、データの以降は必要ない。

日本語フォントはあるが、日本語入力ができない状態でスタートするため、とりあえず

yaourt -S fcitx-mozc-ut

インストール前にPKGBUILDをいじってニコと英語dicを有効にしてインストール。 ただし、googlecode.comのIPv6問題があるため、その前に

yaourt -S dnsutils

してdigを使えるようにし、

dig japanese-usage-dictionary.googlecode.com

して/etc/hostsにIPv4で決め打ちする。

私のプログラムは多くがRubyを使うため、Rubyも設定しておく必要がある。 これは次の方法で行う。元々

pacman -Q > pacman-q

としてあり、ここから

grep -F ruby pacman-q | cut -d " " -f 1 > rubypkg

として抽出。このうちインストール済みのものは必要ないので、

pacman -Q | cut -d " " -f 1 > pacman-qq

と現状のものを取得し

cat pacman-qq pacman-qq rubypkg | sort | uniq -u > target-ruby

とする。あとは

yaourt -S $(cat target-ruby)

でOKだ。

同様の方法でTTFファイルもインストール。

また、EncFSをコアに入れているので、EncFSをインストール。

yaourt -S encfs

また、nemoはテンプレートディレクトリにシンボリックリンクを許容するが、Thunarはしないので、シンボリックリンクをやめて、コピーに

rm template
cp -R share/template .

さらに、エスケープしたfstabをベースにfstabを修正する。 その前にVIもVimもなくて混乱するため(例えばvipwはあるのに、vipwはできない)、インストールしておく。

yaourt -S gvim vi

とりあえずエディタはmousepadが使える。とりあえずはmousepadで修正しリブート。

日本語周り

fcitx-mozc-utだけ入れたが、それさえ入っていなかった。 そして、日本語周りはManjaro JPベースではないため、それなりに複雑だ。

まず、fcitx-mozc-utがベースになるので、それをインストール。

yaourt -S fcitx-mozc-ut

各ツールキットに対して入力するためのパッケージと、設定のためのパッケージも導入

yaourt -S fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fcitxconftool

これだけでは入力できないため、~/.xprofileに追記

export GTK_IM_MODULE=fcitx
export GTK2_IM_MODULE=fcitx
export GTK3_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export DefaultIMModule=fcitx
export PATH=/home/aki/bin:$PATH

$PATHは別件だが、ついでに書いておいた。XMODIFIERSXMODIFERSと書いており、LINEやSkypeに対して日本語入力できないという問題が発生して若干ハマった。

なお、さらに後ほど突如としてGTKアプリケーションに対してfcitxが有効にならず、

gtk-query-immodules-2.0 --update-cache 
gtk-query-immodules-3.0 --update-cache 

しても直らず、結局両パッケージをアンインストールした上で再インストールしたら直った、などということもあった。

そして再起動。

パッケージインストール part1

先にいくつか使われるのがわかっている~/.config以下のファイルをコピーしておく。 .config以下はそのままシンボリックリンクに変換できないからだ。

cp ~/share/manjaro-home-transition/.config/usr-dir* .config/
cp -R ~/share/manjaro-home-transition/.config/opera-developer .config/
cp -R ~/share/manjaro-home-transition/.config/tasque .config/
cp -R ~/share/manjaro-home-transition/.config/fontconfig .config/

そして次のパッケージをインストールしていく。

  • ctags
  • leafpad
  • medit
  • geany, geany-plugins
  • smplayer, smplayer-themes, smplayer-skins
  • opera-developer
  • linux405
  • infinality*
  • wine
  • plasma
  • kde-applications
  • kopete

Wine * LINEで文字が非常に汚い、という問題があったが、いつの間にか直った。

KDE5関連はplasmaパッケージで、kde-applicationと合わせるとかなりの部分がインストールされる。

kopeteのファイルは~/.kde4以下にあるので、これをコピーする。

cp -R ~/share/manjaro-home-transition/.kde4/share/apps/koepte ~/.kde4/share/apps/
cp  ~/share/manjaro-home-transition/.kde4/share/config/kopeterc ~/.kde4/share/config

KDE5

KDE5は、KDE4よりもさらにスタイリッシュにはなったが、スマホっぽいふらっとUIになり、洗練されたがいかにも重量級な「すごい演出」は損なわれた。

また、非常に多くの機能が未実装だ。

マルチディスプレイの対応についてはkscreenパッケージで対応できるが、細かく設定ができない。 Catalystで設定することはできるが、永続しない。

また、systrayが未実装(!)。libappindicatorとsni-qtを使えばいけるような話なのだが、実際はいくつかのアプリケーションがこれでもsystrayに入らない。

相変わらずKDEで設定が効かない部分があるので、

  • kde-gtk-config
  • kcm-gtk

を導入、さらにqtconfig-qt4を使って設定する。

悪くはないけれど、KDE4から乗り換えるには早いか。 アニメーションはKDE5のほうがパワーアップしているが、KDE4よりも良いかと言われると悩むところ。 少なくとも、設定の問題でKDE4のほうが現状は良いと思う。

KDEとXFce

そして、KDEで設定するとXFceのUIが壊れたりするのでたちが悪い。 この設定はかなり難しいが、基本的には「設定マネージャー→外観」でテーマ設定してからgtk-theme-configで調整すれば良い。

ちょっとややこしいが、gtk-theme-configはextraに"gtk-theme-preferences"という名前でパッケージがあり、さらにAURに"gtk-theme-config"というパッケージもある。 恐らくは公式入りしたが、AURのパッケージ作者がメンテナになっているわけではないのだろう。

より細かく設定するならばxfce-theme-managerがあれば良いが、場合によってはより迷宮入りする。KDEといったり来たりすることになるだろう。

なお、一度XFceが起動不能になり、~/.config/xfce4を吹き飛ばして作りなおすはめになった。この場合、skelからコピーするのが近道。

パッケージインストールpart2

  • cinnamon
  • xsane
  • xfce4-theme-manager
  • fetchmail
  • spamassassin
  • razor
  • virtualbox*
  • tasque
  • skype, skype-call-recorder
  • openssh, sshfs
  • lv
  • w3m
  • nss-mdns
  • amarok
  • audacious, audacious-plugins
  • libcue
  • audacity
  • inkscape-gtk3-bzr

Inkscapeは猛烈に長い。

Zeroconfの設定は、これに加え/etc/nsswitch.confにmdns-minimalを書くこと。avahi-daemonは標準で起動。

Pandoc

相変わらずhaskell-pandocパッケージが入らないので

yaourt -S ghc cabal happy alex

してから

export PATH=$HOME/.cabal/bin
cabal update
cabal install pandoc

PDF出力用に…

yaourt -S texlive-core texlive-langcjk

うまくいった。

TODO

今わかっているのは、Spamassassinのsa_learnで学習したデータを持ち込んでいないこと。

あと、SOXもまだインストールしていない。 それ以外は恐らくは必要になったら足す形で、ゴミパッケージをなるべく増やさないようにするだろう。結局使えなかったものをためこんでしまったからだ。

また、英数キーを押すと問答無用でCapsLockになる、というトラブルも出ている。

AURのpandoc-static

AURのpandoc-staticパッケージが更新できず詰まっていたので、記載。

pandoc-staticがicu<54を要求しているために起きていた。 この問題は既に報告され、修正したとしているが、それでも以前問題があった。

更新のしようがなくなってしまっていたので、pandoc-staticを削除してからアップデートし、そしてpacndoc-staticを入れなおす。

だが、GnuPG鍵が確認できず、エラーになる。 これも解決したとしているが、解決されていなかった。

gpg --keyserver pgp.mit.edu --search-keys fauno

でいけた。

AURメーリングリストに投稿しました

Arch LinuxのAURリポジトリにあるfcitx-mozc-ut(とmozc-ut関連全般)がビルドできなくなっていた。日本語を使う人にとっては致命的な問題だ。

そこでその問題の解決を望んでAURのメーリングリストにビルドできないよ、ということを返すとsvnを手動で取るといいよ、とのお答え。せっかく答えていただいたので、自力解決に向けて試行錯誤を繰り返した。

かなり時間もかかったし、色々聞いてみたりもしたが、結局は次のことが重なっていたのだった。

  1. googlecode.comがIPv6でアクセスできない
  2. mzocdic-ut, edictが更新されており、ソースを取得できない
  3. Japanese Usage Dictionaryのrevision 0を要求しているが、revision 0はない

アクセスできてないんじゃない?hostしてみれば?という指摘を受けて気がついたのだが、これでIPv6でアクセスできていない(DNSはAAAAレコードを返してくるが、pingも通らない)そのため簡単な解決策として、/etc/hostsにIPv4アドレスのみを記述した。

しかし、Japanese Usage Dictionaryはrevision 0を要求しているので、これがないと拒否される。単純にrevision指定なしとするとrevision 10が取得されるので、指定なしでもいいと思ったのだが、010に変更。

それでSubversionのエラーはなくなるが、Mozcdic UTがNot fountになるのでサーバーからファイルリストを獲得すると、更新されファイル名が変わっている(日付が新しくなっている)。そのため、mozcdirとedictのアドレスを変更、当然チェックサムが通らず失敗するので、失敗したままそのソースファイルからsha512sumでチェックサムを取得してPKGBUILDを修正。

これで成功した。一応、それをパッチとして投稿した。反応はないが。とはいえ、Mozc-UTは日本人にとっては極めて重要だろう。

Manjaroがまた死んだ。さらに電源が入らなくなった

システム再セットアップ

pacman -Syuuの最中にフリーズしてしまい、LVMでロールバックしたが、ファイルシステムのミスマッチがあるとしてブートしてくれなくなった。systemdで落ちてしまう。

LVMでロールバックしてダメだとどうしようもない。さっさと諦めてtarでUSBメモリーに待避して再セットアップ。

もうなれたものだ。以前の記事にもした手順でセットアップしていく。だが、問題がいくつかみつかった。

  • tarballが「予期せぬEOF」と言われて展開できない。どうやら、不完全なtarballができてしまったらしい。実際、232MBとかなり小さい。
  • かなり多くのパッケージがインストールできない。その大部分はpackage()関数がないためだという
  • UTのリポジトリにアクセスできないため、mozc-utが使えない
  • 4kvideodownloaderのチェックサムが通らない

tarballについては諦めるしかない。

package関数については、build()にまとめてあってpackage()がないものが結構あるのが問題だ。そのため、やり方は乱暴だが、

sed -i 's/^build().*{/package() {/' /tmp/yaourt-tmp-user/aur-package/PKGBUILD

とすれば通る。これは、PKGBUILDを取得してから、再開しますか?とか続行しますか?と聞かれている時に行う。ちなみに、単純に分割すると「installをmakeするターゲットがありません」と言われてしまう。もちろん、単純に

package() {
:
}

と書いても通るとは思う。

UTリポジトリについては対処方法はないと思う。4kvideodownloaderについては、手動で修正すれば良いとは思うが、とりあえずバイナリを落としてきてローカルに展開して使えるようにした。

電源が入らない

途中で何度かフリーズしてしまった。おそらく熱問題だと思われる。追加ファンが届いていたので取り付ける。

マザーボードはASRock FM2A88X+Killer、ケースはFractal Design Defnie R4だ。今回はGelid Silent 14の通常版とPWM版をAmazonで購入。既に120mmのファンが追加されている。

設置は、天面に設置していた120mmを外し、Silent 14を設置、サイドにSilent 14 PWMを設置、120mmについては前面の吸気ファンにする。

設置は比較的簡単だが、Silent14はゴムブッシュを使って固定するが、外にかなり飛び出してしまうのと、ファンに入れる時はかなり強く引っ張らないといけないのが難点。大きいケースで取り回しも楽。非常に使いやすい。

だが、フロントファンについては戸惑った。ツールレスと書いてあるのだが、穴があるだけでどう固定していいのかさっぱりわからない。とりあえずクリアテープで固定した。

この追加ファン+3(4pin*1, 3pin*2)でマザーボードのファンピンはすべて埋まる(シャシーファンに限定せず)。ケースは天面に1つ、底面に1つ固定可能だが、使用できない。

だが、そうすると電源が入らなくなった。正確には、たまに電源は入り、ランプが点灯、HDDの駆動音がし、電源ファンが回るが、それだけ。スイッチで電源を切ることもできない。放電したり、コネクタを挿し直したりしたが治らず、急遽秋葉原へ。

BUYMORE本店でいろいろ聞いたが(後述)、帰ってきてマザーボードを裸にしようとしている時に、メインの電源ケーブルがややゆるいことに気がついた。しっかり挿したら直った。恥ずかしい…

@BUYMORE本店

お店に急行して、相談すると、結構戸惑われてしまったが、それはM/Bが死んだのではないか、ということだった。

保証は利くが旧正月で1ヶ月程度かかる…とのことなので、やはり何かしら調達するしかなさそうだった。Intel 2CPUを目指していたのだが、その余裕はない。

そして現状のCPUを中心としたパワー不足でグラフィックの4kを含む他画面出力という点を見て提案を求めたところ、サーバーかWS用のものを使うべきだとした上で、現実的な妥協点として、i7-4950Kと260Xまたは960を使った8万円弱のプランを提案してもらった。

持ち帰って検討していたのだが、前述のように直ってしまった。恥ずかしい。

なお、コンシュマー向けのM/Bに大量のメモリを積んでがりがり使うとメモリエラーによってフリーズしたり不安定になりやすい、との話だった。真偽は確認していない。

Manjaroのアップグレード時のX起動問題と、マウスカーソルの問題

昨年末にきていたAURのアップデートだが、これを適用するとXが起動しなくなる。LVMスナップショットを使ってロールバックしていたが、3回適用しても全て同様の症状となる。

しかし、3回目にyaorutの実行メッセージにヒントをみつけて次のように実行した

sudo mhwd-gpu --setgl catalyst

これで正常に起動した。スナップショットを削除して完了。

そして先日からセカンドモニターのマウスカーソルがバグる、という話をしていて、なんとかしたいので調べてみた。すると、Radeonの問題であり、Windowsでも生じるらしい。Windowsの解決策が並ぶ。

“linux pointer cursor distored”で検索すると情報が出てきた。

のように、

Option “SwCursor” “true”

xorg.confに追記することで解決する、らしい。解決したのかは分からないが、とりあえず今のところなっていない。