FreeBSD - デスクトップ環境構築 - i3wm - FreeBSD 12.0 - 基本操作 - キャプチャ

 
1. 概要
2. パッケージインストール
3. スクリプト作成
4. キー割り当て

1. 概要

 画面のキャプチャをとるのがなかなか難しい・・・。

2. パッケージインストール


pkg install ImageMagick7
pkg install xdotool
 ImageMagick7 が実際にキャプチャをとるプログラムで、xdotool は、アクティブウィンドウの ID をとるのに必要な、プログラムです。

3. スクリプト作成

 キャプチャをとるスクリプトを2つ(全画面用、アクティブウィンドウ用)を作ります。  全画面用(まぁ、ディレクトリなり、ファイル名は適当に)

~/capture.sh
 中身は

#!/bin/sh

import -window root ~/images/base/$(date +%Y%m%d_%H%M%S)_screenshot.png
convert ~/images/base/*.png -set filename:test '%t_%W_%H' ~/images/'%[filename:test].png'
rm ~/images/base/*.png
 いったん ~/images/base に作成して、サイズがわかるようにしたファイル名にした後、元のファイルを削除します。  ファイル名は

~/images/年月日_時分秒_screenshot_横幅_高さ.png
 というファイル名になります。  アクティブウィンドウ用は

~/capturew.sh
 中身は

#!/bin/sh

import -window "$(xdotool getwindowfocus -f)" ~/images/base/$(date +%Y%m%d_%H%M%S)_screenshot.png
convert ~/images/base/*.png -set filename:test '%t_%W_%H' ~/images/'%[filename:test].png'
rm ~/images/base/*.png
 で、基本は、全画面用と同じですが「-window "$(xdotool getwindowfocus -f)"」で、xdotool を使用して、アクティブウィンドウを対象にしています。

4. キー割り当て

 Print を全画面用、Alt+Priont をアクティブウィンドウ用のキーとして定義します。

~/.i3/config
 に以下の2行を追加します。

bindsym  Print    exec --no-startup-id ~/capture.sh
bindcode Mod1+111 exec --no-startup-id ~/capturew.sh
 「bindsym」と「bindcode」が混在しているし、そのせいで「Print」と「111」という書き方になっているし、みっともないことこの上ないのです。  本当は、「bindsym」でスマートに行きたかったのですが・・・。  Alt+Print の方を、「bindsym」で、定義すると機能しなかったので仕方ない。
 
 
カウンタバックグラウンド