Archlinuxでスクリーンショット
設定もぼちぼち落ち着いてきたので、スクリーンショットでも取ろうかと。
importというコマンドでスクリーンショットが取れるので、 どのパッケージにあるのか探してみる。
$ pkgfile import extra/bash-completion extra/imagemagick community/plan9port community/quilt
うん、bash-completionは補完機能だから、imagemagickか。
yaourt -S imagemagick 依存関係を解決しています... 衝突するパッケージがないか確認しています... パッケージ (3) liblqr-0.4.2-1 ocl-icd-2.2.10-1 imagemagick-6.9.7.0-2 合計ダウンロード容量: 2.25 MiB 合計インストール容量: 9.86 MiB :: インストールを行いますか? [Y/n] :: パッケージを取得します... liblqr-0.4.2-1-x86_64.pkg.tar.xz をダウンロード... ocl-icd-2.2.10-1-x86_64.pkg.tar.xz をダウンロード... imagemagick-6.9.7.0-2-x86_64.pkg.tar.xz をダウンロード... キーリングを確認... パッケージの整合性を確認しています... パッケージファイルのロード... ファイルの衝突を確認しています... 空き容量の確認... :: パッケージの変更を処理しています... インストール liblqr... インストール ocl-icd... ocl-icd の提案パッケージ opencl-driver: packaged opencl driver インストール imagemagick... imagemagick の提案パッケージ imagemagick-doc: for additional information ghostscript: for Ghostscript support [インストール済み] openexr: for OpenEXR support openjpeg2: for JP2 support [インストール済み] libwmf: for WMF support librsvg: for SVG support [インストール済み] libxml2: for XML support [インストール済み] libpng: for PNG support [インストール済み] libwebp: for WEBP support [インストール済み]
使い方をみる
$ import --help Version: ImageMagick 6.9.7-0 Q16 x86_64 2016-12-23 http://www.imagemagick.org Copyright: Copyright 1999-2017 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: Cipher DPC HDRI Modules OpenCL OpenMP Delegates (built-in): bzlib cairo fontconfig freetype gslib jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps rsvg tiff webp wmf x xml zlib Usage: import [options ...] [ file ] Image Settings: -adjoin join images into a single multi-image file -border include window border in the output image -channel type apply option to select image channels -colorspace type alternate image colorspace -comment string annotate image with comment -compress type type of pixel compression when writing the image -define format:option define one or more image format options -density geometry horizontal and vertical density of the image -depth value image depth -descend obtain image by descending window hierarchy -display server X server to contact -dispose method layer disposal method -dither method apply error diffusion to image -delay value display the next image after pausing -encipher filename convert plain pixels to cipher pixels -endian type endianness (MSB or LSB) of the image -encoding type text encoding type -filter type use this filter when resizing an image -format "string" output formatted image characteristics -frame include window manager frame -gravity direction which direction to gravitate towards -identify identify the format and characteristics of the image -interlace type None, Line, Plane, or Partition -interpolate method pixel color interpolation method -label string assign a label to an image -limit type value Area, Disk, Map, or Memory resource limit -monitor monitor progress -page geometry size and location of an image canvas -pause seconds seconds delay between snapshots -pointsize value font point size -quality value JPEG/MIFF/PNG compression level -quiet suppress all warning messages -regard-warnings pay attention to warning messages -respect-parentheses settings remain in effect until parenthesis boundary -sampling-factor geometry horizontal and vertical sampling factor -scene value image scene number -screen select image from root window -seed value seed a new sequence of pseudo-random numbers -set property value set an image property -silent operate silently, i.e. don't ring any bells -snaps value number of screen snapshots -support factor resize support: > 1.0 is blurry, < 1.0 is sharp -synchronize synchronize image to storage device -taint declare the image as modified -transparent-color color transparent color -treedepth value color tree depth -verbose print detailed information about the image -virtual-pixel method Constant, Edge, Mirror, or Tile -window id select window with this id or name Image Operators: -annotate geometry text annotate the image with text -colors value preferred number of colors in the image -crop geometry preferred size and location of the cropped image -encipher filename convert plain pixels to cipher pixels -geometry geometry preferred size or location of the image -help print program options -monochrome transform image to black and white -negate replace every pixel with its complementary color -repage geometry size and location of an image canvas -quantize colorspace reduce colors in this colorspace -resize geometry resize the image -rotate degrees apply Paeth rotation to the image -strip strip image of all profiles and comments -thumbnail geometry create a thumbnail of the image -transparent color make this color transparent within the image -trim trim image edges -type type image type Miscellaneous Options: -debug events display copious debugging information -help print program options -list type print a list of supported option arguments -log format format of debugging information -version print version information By default, 'file' is written in the MIFF image format. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output.
なんかいっぱいあるなぁ。 とりあえず、欲しい機能を抜粋
オプション | 効果 |
---|---|
-frame | window別にキャプチャする |
-window root | 全画面キャプチャ |
-crop geometry | 画面から特定範囲を切り出す |
オプション無し | カーソルが出てきて領域を選択できる |
ラッパーコマンドを作るならこんな感じか
#!/bin/basnh NAME=$NAME OPTION=$OPTION DIR=/tmp # スクリーンショットを取る import $OPTION $DIR/$NAME # ビューワーで確認する feh $DIR/$NAME
マルチモニターでprimaryだけを取得するには全体を範囲にいれから切り抜く必要がある。 xrandrを使ってモニタ情報を取得する
$ xrandr | grep '^DP1' # モニタ名で絞り込むと以下のようなレスポンスがくるので DP1 connected primary 2560x1440+3152+1152 (normal left inverted right x axis y axis) 600mm x 340mm $ xrandr | grep '^DP1' | cut -d' ' -f4 # スペース区切りにした4フィールド目を取得 2560x1440+3152+1152
これを使ってスクリーンショットを取る
$ import -window root -crop $(xrandr|grep '^DP1'|cut -d' ' -f4) hoge.png
i3-wmに仕込むなら
~/bin/ss-monitorとかコマンド作成して
#!/bin/bash MONITOR=${1} NAME=$(date +%Y%m%d-%H%M%S).png SIZE=$(xrandr|grep "^${MONITOR}"|cut -d" " -f4) OPTIONS="" OPTIONS+="-resize 1200x1200" import -window root -crop $SIZE $OPTIONS $NAME feh $NAME exit 0
バインドでつなぐ
bindsym $mod+s exec ~/bin/ss-monitor DP1