Skip to content

Ronin-CK/HyprQuickFrame

Repository files navigation

HyprQuickFrame

A polished, native screenshot utility for Hyprland built with Quickshell. Features a modern overlay UI with shader-based dimming, smooth spring animations, and intelligent window snapping.

License Wayland Quickshell Hyprland Nix

✨ Features

  • 3 Capture Modes:
    • Region: Freehand selection with alignment guides.
    • Window: Automatically snaps to open Hyprland windows.
    • Screen: Instant full-screen capture.
  • Modern UI:
    • Floating "Pill" control bar to switch modes.
    • Animations: Smooth spring animations for selection resizing.
    • Visuals: Fragment shader for smooth dimming and rounded corners.
  • Smart Saving:
    • Quick Save: Automatically saves to Pictures/Screenshots and copies to clipboard.
    • Notifications: System notification with preview upon save.
    • Editor Mode: Opens the screenshot in Satty for annotation (Optional).

🎥 Demo

Click to watch the demo
recording_20260204_011541.webm
20260108-163953.mp4

📦 Requirements

  1. Quickshell (The shell environment)
  2. grim (Screen capture)
  3. imagemagick (Image processing)
  4. wl-clipboard (Clipboard support)
  5. libnotify (Desktop notifications)
  6. satty (Optional: for Editor Mode)

🚀 Installation

1. Install System Dependencies

Arch Linux:

sudo pacman -S grim imagemagick wl-clipboard satty libnotify

2. Install Quickshell

yay -S quickshell

3. Clone Repository

git clone https://github.com/Ronin-CK/HyprQuickFrame ~/.config/quickshell/HyprQuickFrame

4. Basic Test

Run this in your terminal to verify installation:

quickshell -c HyprQuickFrame -n

❄️ Nix Installation

This project includes a flake.nix for easy installation.

Run directly:

nix run github:Ronin-CK/HyprQuickFrame

Install in configuration: Add to your inputs:

inputs.HyprQuickFrame.url = "github:Ronin-CK/HyprQuickFrame";
inputs.HyprQuickFrame.inputs.nixpkgs.follows = "nixpkgs";

Then add to your packages:

environment.systemPackages = [ inputs.HyprQuickFrame.packages.${pkgs.system}.default ];

Using Overlay:

nixpkgs = {
  overlays = [
    inputs.HyprQuickFrame.overlays.default
  ];
};

Then install via pkgs.hyprquickframe.

⚙️ Configuration (Hyprland)

Add the following keybindings to your hyprland.conf:

# 1. Standard Screenshot (Quick Save)
# Saves directly to ~/Pictures/Screenshots and copies to clipboard
bind = SUPER SHIFT, S, exec, quickshell -c HyprQuickFrame -n

# 2. Editor Mode (Annotation)
# Opens the screenshot in Satty for editing before saving
# Requires: satty
bind = SUPER CTRL SHIFT, S, exec, HYPRQUICKFRAME_EDITOR=1 quickshell -c HyprQuickFrame -n

Credit