Hyprland でスクリーンショットを撮る場合 Hyprshot を使うのが一般的です。ただ Hyprshot は 2 年以上開発が止まっていて微妙なところがあります。
代わりに hyprwm/contrib にある Grimblast が使えます。以下のようにするとマウスで範囲選択した部分をクリップボードへコピーできます:
grimblast copy area
画面を停止させてスクショを取る場合は -f を使います。sleep コマンドと合わせて使うと便利です:
sleep 10 ; grimblast copy area -f
ところで Hyprshot も Grimblast も grim というコマンドを使ってスクショを撮るのですが、HiDPI で非整数倍の拡大を行なっている場合に撮った画像がボケる(blur)場合があるようです。
https://github.com/hyprwm/contrib/issues/69
御多分に洩れず自分もこれに悩まされていたのですが、Mastodon で @[email protected] さんに貰った以下のパッチを grim に当てると改善しました[1]。
https://gist.github.com/lo48576/c0e445246cdbbfcf42badd1663873c1f
一枚目がパッチを当てる前、二枚目が当てた後です(スクショしたのはこの投稿):
NixOS にインストールする grimblast にこの修正を当てた grim を使わせるようにする場合、
nixpkgs にある grim のビルドスクリプトと上記のパッチを手元にダウンロードした上[2]で、ビルドスクリプトに patches = [ ./patch ]; を追加し、これを grimblast へ以下のように overlays で渡すことで行えます:
environment.systemPackages = with pkgs; [
(grimblast.override {
grim = callPackage ./grim/package.nix {};
})
];