2015年11月29日日曜日

Fedora 23 の MATE環境で、デュアルモニターに別々の壁紙を設定する方法

※このエントリの内容はLinux Mint等にも使えるかもしれません。

Fedora 23出ましたね。Spinが充実していてとても嬉しいです。
そこで早速、MATE Compiz spinをインストールしてみました。Compizが大好きなので嬉しい限りです。
ですが困ったことが一つ。私はデュアルディスプレイで作業しているのですが、MATEデスクトップ環境ではそれぞれのモニタに別の壁紙を設定することができません。

それでなんとかしてみました。
検索すると、どうやら"nitrogen"というのを使うとデュアルディスプレイに別々の壁紙が設定できるとのこと。
まずはnitrogenをインストールしてみます。

$sudo dnf install -y nitrogen

使い方は

$nitrogen ~/picture
のように、引数に壁紙が格納されているディレクトリを渡してやります。

こんな感じになります。使い方はなんとなくわかるでしょう。

ここで問題です。Applyしてみたはいいものの、壁紙が反映されません!!
ここで海外のフォーラム含め色々と調べると、gnome-tweak-tool使うといいよなどと出てくるのですが、現行のバージョンのgnome-tweak-toolでは用途に適しません。

さらに調べると、どうやら二点解決策があって、ファイルマネージャが壁紙をハンドルできること、もしくはデスクトップのアイコンを非表示にすることでnitrogenが正常動作する模様です。

ここではデスクトップのアイコンを非表示にしてみます。
方法としては、dconfエディターを立ち上げ

org → mate → desktop → background

の順に掘り下げ、その中にあるshow-desktop-iconsのチェックを外します。
これでnitrogenが正常に動きました!

最後に忘れてはいけないのが、nitrogenで説定した壁紙は、再起動すると失われてしまいます。
ですので、起動時に以下のスクリプトを実行するようにしてください。"自動起動するアプリ"に追加しておくと良いでしょう。

nitrogen --restore

ちなみに筆者のデスクトップはこんな感じになりました。

以上です。
なんらかのお役に立ちましたらコメントくださると嬉しいです。

2015年8月20日木曜日

PerlからGoogleのAPI経由でBloggerにポストするサンプル

Google APIでは多数の言語用のライブラリが提供されているにも関わらず、Perl用のライブラリがありません。

ですが、Google::API::ClientというCPANモジュールが便利なので、これを使ってBlogger API v3を叩いて記事を投稿してみようと思います。

ちなみにこのスクリプトを実行する前にGoogle Developer Consoleにて若干の下準備が必要となりますが、ここでは割愛させていただきます。

また、このスクリプトではクライアントIDとクライアントシークレットにJSONファイルを使用しますので、Google Developer Consoleの認証情報からクライアントIDを発行し、JSONファイルをclient_secrets.jsonという名前で保存し、本スクリプトの上の階層に設置しておいてください。

#!/usr/bin/perl
use strict;
use warnings;
use feature qw/say/;

use FindBin;
use JSON;
use Data::Dumper;

use Google::API::Client;
use Google::API::OAuth2::Client;

use Sample::Utils qw/get_or_restore_token store_token/; #This module has been included in the google-api-perl-client-master.zip

my $blogid = 'Insert your BlogID';

my $client = Google::API::Client->new;
my $service = $client->build('blogger', 'v3');

my $file = "$FindBin::Bin/../client_secrets.json";
my $auth_driver = Google::API::OAuth2::Client->new_from_client_secrets($file, $service->{auth_doc});

my $dat_file = "$FindBin::Bin/token.dat";
my $access_token = get_or_restore_token($dat_file, $auth_driver);

my $entry = {
    'kind' => 'blogger#post',
    'blog'=> {
        'id'=> $blogid,
     },
    'title' => 'A test post',
    'content' => 'With <b>HTML</b> content',
};
my $res = $service->posts->insert(blogId => $blogid, body => $entry )->execute({ auth_driver => $auth_driver });
say Dumper($res);

store_token($dat_file, $auth_driver);

__END__

このスクリプトをターミナルで初回起動した時(またはリフレッシュトークンの有効期限が切れた時)はOAuth用のURLが生成されます。 それをブラウザで開いて認証を済ませると、コードがブラウザ上に表示されます。それをターミナルに貼り付けて続行してください。

もしこの記事が貴方のお役に立ったようであれば、コメント欄に何かしら書いていただけると嬉しいです。

2015年8月6日木曜日

Fedora 22のChromeでHuluの文字化けを直す

最近のChromeではNPAPIが使えなくなり、今まで通用していた、Chromeの設定でPPAPIを無効にしてHuluの文字化けを回避する、といった手段が使えなくなっています。

そこで、Huluが字幕用フォントとして活用しているumingをTakaoPGothicで上書きするという手段で対応してみました。

まずはTakaoフォントをダウンロードし、展開します。
ここではhogeというユーザのホームディレクトリ直下にダウンロードするということで作業を進めてみます。


$wget https://launchpad.net/takao-fonts/trunk/15.03/+download/TakaoFonts_00303.01.tar.xz
$tar xvf TakaoFonts_00303.01.tar.xz
これでホームディレクトリにTakaoFonts_00303.01というフォルダが作成され、中にTakaoPGothic.ttfが入っているのが確認できると思います。

次はumingフォントをインストールします。

$sudo dnf install -y cjkuni-uming-fonts
$fc-cache -fv
はい、これで準備は整いました。
最後にこのuming.ttcをTakaoPGothic.ttfで上書きしてしまえば完了です。

$sudo cp /home/hoge/TakaoFonts_00303.01/TakaoPGothic.ttf /usr/share/fonts/truetype/arphic/uming.ttc
$sudo mkdir /usr/share/fonts/takao-gothic
$sudo cp /home/hoge/TakaoFonts_00303.01/TakaoPGothic.ttf /usr/share/fonts/takao-gothic/
$sudo cp /usr/share/fonts/takao-gothic/TakaoPGothic.ttf /usr/share/fonts/cjkuni-uming/uming.ttc
$fc-cache -fv


ちゃんと表示されてますね!
以上です。

もしこの記事が貴方のお役に立ったようであれば、コメント欄に何かしら書いていただけると嬉しいです。