2017年8月28日月曜日

Thunar で選択したファイル名をクリップボードへコピー

Windows 用には Clipcopy というフリーソフトを昔に作って使ってたんだけど、Ubuntu 用はないかなと物色していたところファイラー(Thunar)のアクションを設定すれば使えるらしいということで早速試してみたところうまく行ったので備忘録。


まずは普通にコマンド欄に下記を入れてみました。

コマンド(C): echo %F | xset -bi

これだけでできるのですが、ちょっと残念なことに複数ファイルを選択したときに半角スペース区切りとなってしまい、ファイル名のスペースと区切り文字のスペースの区別がつきません。そこでひと工夫

コマンド(C): echo '%F' | xset -bi

これで各ファイル名がシングルクォートでくくられるようです。おそらく、Thunarがシングルクォート区切りを吐いていて、それをさらにシングルクォートでくくっているのでそのまま出ているのではないかと思います。

これはこれで使えるのですが、複数ファイル名が欲しいときってバッチを作ったりする際だったりするのでできれば改行区切りがいいなぁと…

そこで簡単なシェルスクリプトを作成

~/bin/prm_split.sh

if [ $# -eq 1 ]; then
    echo -n "$1"
else
    for f in "$@"; do
        echo $f
    done
fi

引数の数を見ているのは、1個のファイル名を貼り付けるケースというのはコマンドラインが多く、コマンドラインでは改行が入っては不都合だからです。スペース区切りと改行区切りの2つのアクションを作るのであれば for 〜 done だけで十分です。

コマンド(C): prm_split.sh %F | xset -bi

これで期待通りの動作\(^_^)/

で、端末にファイル名を貼り付けようとしたら…張り付かない><;

ちょっといじって

コマンド(C): prm_split.sh %F | xset -pi

これだとうまく行く…
仕方がないので2回実行

コマンド(C): prm_split.sh %F | xset -bi;prm_split.sh %F | xset -pi

はいこれで期待通りの動作。

2017年8月8日火曜日

Ubuntu gnome 17.04 に Canon MG6230 用ドライバーをインストール

Canonのホームページにドライバーがあったのでこれをインストールするだけかと思ったら、エラーが出てインストールできなかったので備忘録。

エラーの内容ですが、プリンタードライバーでは下記のようになります。

yoshio@yoshio-ubuntu:~/Documents/cnijfilter-mg6200series-3.60-1-deb$ sudo ./install.sh
==================================================

Canon Inkjet Printer Driver
Version 3.60
Copyright CANON INC. 2001-2011
All Rights Reserved.

==================================================
実行コマンド = sudo dpkg -iG ./packages/cnijfilter-common_3.60-1_amd64.deb
以前に未選択のパッケージ cnijfilter-common を選択しています。
(データベースを読み込んでいます ... 現在 229886 個のファイルとディレクトリがインストールされています。)
.../cnijfilter-common_3.60-1_amd64.deb を展開する準備をしています ...
cnijfilter-common (3.60-1) を展開しています...
cnijfilter-common (3.60-1) を設定しています ...
libc-bin (2.24-9ubuntu2.2) のトリガを処理しています ...
実行コマンド = sudo dpkg -iG ./packages/cnijfilter-mg6200series_3.60-1_amd64.deb
以前に未選択のパッケージ cnijfilter-mg6200series を選択しています。
(データベースを読み込んでいます ... 現在 229902 個のファイルとディレクトリがインストールされています。)
.../cnijfilter-mg6200series_3.60-1_amd64.deb を展開する準備をしています ...
cnijfilter-mg6200series (3.60-1) を展開しています...
dpkg: 依存関係の問題により cnijfilter-mg6200series の設定ができません:
cnijfilter-mg6200series は以下に依存 (depends) します: libpng12-0 (>= 1.2.8rel) ...しかし:
パッケージ libpng12-0 はまだインストールされていません。
cnijfilter-mg6200series は以下に依存 (depends) します: libtiff4 ...しかし:
パッケージ libtiff4 はまだインストールされていません。

dpkg: パッケージ cnijfilter-mg6200series の処理中にエラーが発生しました (--install):
依存関係の問題 - 設定を見送ります
処理中にエラーが発生しました:
cnijfilter-mg6200series
実行コマンド = sudo dpkg -P cnijfilter-mg6200series
(データベースを読み込んでいます ... 現在 230105 個のファイルとディレクトリがインストールされています。)
cnijfilter-mg6200series (3.60-1) を削除しています ...
cnijfilter-mg6200series (3.60-1) の設定ファイルを削除しています ...
libc-bin (2.24-9ubuntu2.2) のトリガを処理しています ...
実行コマンド = sudo dpkg -P cnijfilter-common
(データベースを読み込んでいます ... 現在 229901 個のファイルとディレクトリがインストールされています。)
cnijfilter-common (3.60-1) を削除しています ...
cnijfilter-common (3.60-1) の設定ファイルを削除しています ...
libc-bin (2.24-9ubuntu2.2) のトリガを処理しています ...

スキャナードライバーでは下記のようになります。

yoshio@yoshio-ubuntu:~/Documents$ cd scangearmp-mg6200series-1.80-1-deb/
yoshio@yoshio-ubuntu:~/Documents/scangearmp-mg6200series-1.80-1-deb$ sudo ./install.sh
==================================================

ScanGear MP
Version 1.80
Copyright CANON INC. 2007-2011
All Rights Reserved.

==================================================
実行コマンド = sudo dpkg -iG ./packages/scangearmp-common_1.80-1_amd64.deb
以前に未選択のパッケージ scangearmp-common を選択しています。
(データベースを読み込んでいます ... 現在 229886 個のファイルとディレクトリがインストールされています。)
.../scangearmp-common_1.80-1_amd64.deb を展開する準備をしています ...
scangearmp-common (1.80-1) を展開しています...
dpkg: 依存関係の問題により scangearmp-common の設定ができません:
 scangearmp-common は以下に依存 (depends) します: libpng12-0 (>= 1.2.8rel) ...しかし:
  パッケージ libpng12-0 はまだインストールされていません。
 scangearmp-common は以下に依存 (depends) します: libusb-0.1-4 (>= 2:0.1.10a) ...しかし:
  パッケージ libusb-0.1-4 はまだインストールされていません。

dpkg: パッケージ scangearmp-common の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
処理中にエラーが発生しました:
 scangearmp-common
実行コマンド = sudo dpkg -P scangearmp-common
(データベースを読み込んでいます ... 現在 229933 個のファイルとディレクトリがインストールされています。)
scangearmp-common (1.80-1) を削除しています ...
scangearmp-common (1.80-1) の設定ファイルを削除しています ...


要するにプリンタードライバーでは「libpng12-0」と「libtiff4」が、スキャナドライバーには「libusb-0.1-4」が足りないようです。

ところが apt-get でインストールしようとしてもそんなパッケージはないと怒られてしまいます。

yoshio@yoshio-ubuntu:~/Documents/scangearmp-mg6200series-1.80-1-deb$ sudo apt-get install libtiff4
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ libtiff4 が見つかりません

そこでグーグル先生に尋ねたところ下記のページを見つけました。
How-to Install libtiff4 for Ubuntu 14.04 Trusty LTS Linux Easy Guide

ということでここに書かれていることをやってからドライバーをインストールしたところ無事に使えるようになりました。

不足しているパッケージのインストール
  • sudo su -
  • apt-get install libtiff5 libtiff5-dev
  • echo 'deb http://cz.archive.ubuntu.com/ubuntu precise main universe' >> /etc/apt/sources.list.d/extra.list
  • apt-get update
  • apt-get install libpng12-0
  • apt-get install libtiff4
  • apt-get install libusb-0.1-4
  • exit
ドライバーのインストール
※ドライバーのインストール方法はCanonのページにあります。
  • cd cnijfilter-mg6200series-3.60-1-deb
  • sudo ./install.sh
  • cd scangearmp-mg6200series-1.80-1-deb/
  • sudo ./install.sh
後始末
  • sudo /etc/apt/sources.list.d/extra.list /etc/apt/sources.list.d/extra.list.bak
  • apt-get update