gnome-screenshotをgyazo用にいじったメモ
タイトルの通りgnome-screenshotをちょっといじった。
gnome-screenshotは簡単に言うとGNOMEでスクリーンショットを撮る(Alt + Print Screen)
ときに起動するアレです。
どんな風にいじったかというとオプション引数で保存するファイル名を指定できるようにしました。
このオプションが渡されていなければダイアログを出して保存するパスを聞いてきます。
タイトルの「gyazo用に」というのはgyazo for linuxはRubyスクリプトなんですが、
それの中でスクリーンショットを撮るプログラムとしてImageMagickのimportコマンドを使っていて、
- これだと透過ウィンドウが透過していなかったり
- なぜかfirefoxのウインドウがまったく無視されてしまったり(なにか特別なことでもしてるんでしょうか...)
とさんざんなので、gnome-screenshotを使えばこういうことは起こらないのでぜひgnome-screenshotを使いましょう、
ということで調べたところgnome-screenshotはファイル名は必ずダイアログに入力しないといけなくて保存するファイル名を指定できない。
そこで冒頭のようなオレオレ改造を施したgnome-screenshotを作ろうということになりました。
まず
どのパッケージに属してるか調べる。
$ dpkg -S =gnome-screenshot gnome-utils: /usr/bin/gnome-screenshot
ソースをダウンロードしてくる。
(いろいろカレントディレクトリにダウンロードされるので注意)
$ apt-get source gnome-utils
適当に(Githubで)ググる
公式は
http://live.gnome.org/GnomeUtils
なんだけどふとGithubで検索したらいくつかあるみたいだった。
Githubにあったほうがforkするだけで楽だしforkすれば容量が浮くしということで
今回はコミットの日付が新しい2番目のをベースに変更していくことにした。
というかすでに変更したので変更したファイルを適当にコピーする。
apt-get sourceで取ってきたのはちょっと古くて
いくつか自分が変更したのとは違う変更があったので
git checkout -pで自分だけの変更を残してコミット。
あとついでだけどGNOMEのプロジェクトはだいたいGitで管理されてるらしく
All Projects
に全プロジェクトのリポジトリのリストがありました。(ググってるうち見つけた)
ビルドするために最新版のパッケージをインストールする
aptからだとどうしても古くていくつかソースからインストールした。
- glib (2.27.0)
- gtk+ (2.20.0)
- atk (1.30.0)
- gdk-pixbuf (2.22.0)
本家
いくつかのミラー
ミラー (ftp.nara.wide.ad.jp)
- libgwibber-gtk (0.0.6)
インストールは/optに
動作確認のために/usrとか/usr/localにインストールするのは嫌だったので
自分は/optにインストールした。($HOME/localでもなんでも好きなところにすればいいと思う)
$ ls /opt atk-1.30.0 gdk-pixbuf-2.22.0 glib-2.27.0 gtk+-2.20.0
setupenv
動作確認の時はsetupenvってスクリプトを書いていろいろテストするための環境を整えた。
$ setupenv shell /opt/{atk-1.30.0,gdk-pixbuf-2.22.0,glib-2.27.0,gtk+-2.20.0} # sudoはldconfigのために必要 [sudo] password for tyru: spawning new shell(/bin/zsh)... $
すると新しいシェルが立ち上がる。
自分はデフォルトシェルがzshなのでzshが起動している。
$LD_LIBRARY_PATHとか$PKG_CONFIG_PATHが変更されてるので
新しい方のgtk+とかの関数が呼ばれたり
(この場合はgnome-sreenshotの)ビルドが通ったりして
ようするにこの中で動作確認ができる。
システムには影響しないので便利です。
結果
tyru/gnome-utils at write-to-filename · GitHub
http://github.com/tyru/gyazo-linux/tree/gnome-screenshot
無事ウインドウもスケスケになりました。
よかったですね。