{"id":29195479,"url":"https://github.com/alonso-herreros/hyprcap","last_synced_at":"2026-05-15T21:06:33.785Z","repository":{"id":298069117,"uuid":"998483610","full_name":"alonso-herreros/hyprcap","owner":"alonso-herreros","description":"HyprCap is a utility to easily capture screenshots and screen recordings on Hyprland","archived":false,"fork":false,"pushed_at":"2025-08-15T15:02:01.000Z","size":113,"stargazers_count":10,"open_issues_count":11,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-15T15:41:33.913Z","etag":null,"topics":["bash-script","hyprland","recording","screenshot"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alonso-herreros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-08T17:49:42.000Z","updated_at":"2025-08-15T15:02:00.000Z","dependencies_parsed_at":"2025-07-10T17:23:00.548Z","dependency_job_id":"7a4e116f-8fc9-4711-9093-6d3750833a6a","html_url":"https://github.com/alonso-herreros/hyprcap","commit_stats":null,"previous_names":["alonso-herreros/hyprcap"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/alonso-herreros/hyprcap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonso-herreros%2Fhyprcap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonso-herreros%2Fhyprcap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonso-herreros%2Fhyprcap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonso-herreros%2Fhyprcap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alonso-herreros","download_url":"https://codeload.github.com/alonso-herreros/hyprcap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alonso-herreros%2Fhyprcap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271103202,"owners_count":24699646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash-script","hyprland","recording","screenshot"],"created_at":"2025-07-02T05:04:32.251Z","updated_at":"2026-05-15T21:06:33.778Z","avatar_url":"https://github.com/alonso-herreros.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HyprCap\n\n[![AUR version][aur-shield]][aur-link]\n[![AUR git version][aur-git-shield]][aur-git-link]\n[![Latest GitHub release][release-shield]][release-link]\n\nHyprCap is a utility to easily capture screenshots and screen recordings on\n[Hyprland](https://hyprland.org/).\n\nIt allows selecting windows, regions and monitors with your mouse, command line\narguments, or an interactive [`fuzzel`][fuzzel] menu.\n\n\u003c!-- It allows selecting windows, regions and monitors with your mouse, a --\u003e\n\u003c!-- `dmenu`-like program, or with command line arguments. --\u003e\n\n## Installation\n\n### Arch Linux\n\nThis utility is available in the [AUR](https://aur.archlinux.org/packages/hyprcap). You can install it\nusing an AUR helper like `yay`:\n\n```bash\nyay -S hyprcap\n```\n\n### Nix Flake\n\nHyprCap is distributed as a Nix flake. You can install or run it directly from the GitHub source.\n\n#### Prerequisites\n\nNix with flakes enabled\n(set `experimental-features = nix-command flakes` in your Nix config)\n\n#### Install to your profile\n\nTo install HyprCap into your user environment:\n\n```bash\nnix profile install github:alonso-herreros/hyprcap\n```\n\n#### Use in a flake\n\nYou can add HyprCap as an input to your own flake:\n\n```nix\n{\n    inputs = {\n        hyprcap.url = \"github:alonso-herreros/hyprcap\";\n    };\n}\n```\n\n#### Using with Home Manager\n\nAdd HyprCap to your Home Manager configuration:\n\n```nix\n{\n\tinputs.hyprcap.url = \"github:alonso-herreros/hyprcap\";\n\n\toutputs = { self, nixpkgs, home-manager, hyprcap, ... }: {\n\t\thomeConfigurations.your-user = home-manager.lib.homeManagerConfiguration {\n\t\t\t# ...\n\t\t\thome.packages = [\n\t\t\t\thyprcap.packages.${pkgs.stdenv.hostPlatform.system}.default\n\t\t\t];\n        };\n\t};\n}\n```\n\n### Manual installation\n\n#### Dependencies\n\nInstall the required dependencies using your package manager. For example, on\nArch Linux, you can use:\n\n```bash\nsudo pacman -S wf-recorder grim slurp hyprland jq wl-clipboard hyprpicker libnotify\n```\n\nThe following dependencies are **required** to run HyprCap:\n\n- `wf-recorder`\n- `grim`\n- `slurp`\n- `hyprland`\n- `jq`\n\nThe following extras are not essential, but required for some features\n\n- `wl-clipboard` to copy to clipboard\n- `hyprpicker` to freeze the screen\n- `libnotify` + a notification daemon to get notified\n- `fuzzel` to use an interactive menu\n\u003c!-- - dmenu or equivalent (to use an interactive menu) --\u003e\n\n#### Copy the script\n\nCopy the `hyprcap` script to a folder in your `PATH`:\n\n```bash\ngit clone https://github.com/alonso-herreros/hyprcap.git HyprCap\ncd HyprCap\nmake all\nsudo make install\n```\n\nFor user-level installation, you can use:\n\n```bash\ngit clone https://github.com/alonso-herreros/hyprcap.git HyprCap\ncd HyprCap\nmake all\nmake install PREFIX=\"$HOME/.local\"\n```\n\nYou're free to delete the cloned repository after copying the script.\n\n## Usage\n\nYou can get help on how to use HyprCap by running `hyprcap -h`:\n\n```\n$ hyprcap -h\nUsage: hyprcap [options...] \u003ccommand\u003e [[-s] \u003cselection\u003e] [-- [capturer_args]]\n\nHyprCap is a utility to easily capture screenshots and screen recordings on\nHyprland.\n\nPlease report bugs and issues at\nhttps://github.com/alonso-herreros/hyprcap/issues\n\nCommands:\n  shot | screenshot            Take a screenshot\n  rec | record                 Toggle screen recording\n  rec-start | record-start     Start a screen recording\n  rec-stop | record-stop       Stop a screen recording\n\nA selection can be specified after the command, with the -s or --selection\noption, or using a fuzzel (dmenu-like) menu if neither is specified.\n\nSelection:\n  monitor                   Select an entire monitor interactively.\n  monitor:active            Select the currently focused monitor.\n  monitor:\u003cname\u003e            Select the monitor with the exact given name\n\n  window                    Select a visible window interactively.\n  window:active             Select the currently focused window.\n  window:\u003ctitle\u003e            Select the first window that contains the title.\n\n  region                    Select a region manually using 'slurp'.\n  region:X,Y,WxH            Select the specified region.\n\n  * Note: Any selection will be trimmed to a single monitor when recording due\n    to limitations in 'wf-recorder'\n\n\nSelection options:\n  -s, --select \u003cselection\u003e      Alternative way to specify the selection.\n\nSaving options:\n  -w, --write                   Save the capture to a file using the default\n                                filename and directory.\n  -W, --no-write                Don't save captures to a file (default).\n  -F, --no-file                 Same as `--no-write`\n  -o, --output-dir \u003cdir\u003e        Directory in which to save captures.\n                                Default: $XDG_PICTURES_DIR/Screenshots or\n                                $XDG_VIDEOS_DIR/Captures\n  -f, --filename \u003cfilename\u003e     The file name for the resulting capture within\n                                the output directory. The file extension\n                                (everything after the last dot) is used to\n                                determine the file type, unless overridden with\n                                `--filetype`.\n                                Default:\n                                  YYYY-MM-DD-hhmmss_hyprcap.\u003cextension\u003e\n                                where \u003cextension\u003e is determined by the command\n                                (see the `--filetype` defaults).\n      --filetype \u003ctype\u003e         Force a file type for the capture. For\n                                supported types, see the documentation for grim\n                                and wf-recorder.\n                                Defaults: png for screenshots, mp4 for\n                                recordings.\n  -c, --copy                    Copy capture to clipboard with 'wl-copy'.\n\nCapture options:\n  -d, --delay \u003ctime\u003e            How long to delay starting the capture after\n                                selection is done in seconds.\n  -z, --freeze                  Freeze the screen on initialization. Only\n                                available for screenshots.\n\nNotification options:\n  -n, --notify                  Send a notification when capture is done.\n                                (default).\n  -N, --no-notify               Don't send notifications.\n  -a, --actions                 Show actions in the notification (default).\n                                Requires --notify.\n  -A, --no-actions              Don't show actions in the notification. Requires\n                                --notify.\n  -t, --notif-timeout \u003ctime\u003e    Notification timeout in milliseconds. Requires\n                                --notify\n                                Default: unspecified, up to your notification\n                                daemon's config\n\nOutput options:\n  -r, --raw                     Output raw capture data to stdout.\n  -v, --verbose                 Print extra information. Specify multiple times\n                                to increase verbosity.\n  -q, --quiet                   Print less information.\n  --disable-title               Forcefully disable setting the terminal title.\n                                Useful if the terminal title setting code is\n                                causing issues, e.g. when running in a script.\n  -V, --version                 Show the version and exit.\n  -h, --help                    Show this help message and exit.\n\nCapturer arguments:\n  Any arguments passed after a double dash ('--') will be passed directly to\n  the capture program: 'grim' in the case of screenshots, or 'wf-recorder' in\n  the case of recordings.\n\nExamples:\n  Toggle recording current monitor      `hyprcap rec monitor:active`\n  Screenshot a window (interactive)     `hyprcap shot window`\n  Toggle recording a specific region    `hyprcap rec region:100,100,400x300`\n  Stop an ongoing recording             `hyprcap rec-stop`\n  Fall back to monitor capture when selection is cancelled\n        `hyprcap shot region || hyprcap shot monitor:active`\n```\n\n## Configuration\n\nYou can add the various modes as keybindings in your Hyprland config like so:\n\n```ini\n# ~/.config/hypr/hyprland.conf\n\n...\n\n# Screenshot a region\nbind = $MOD SHIFT, S,      exec, hyprcap shot region -z -c -n\n# Screenshot current window\nbind = $MOD SHIFT ALT, S,  exec, hyprcap shot window:active -z -c -n\n# Screenshot with interactive selection\nbind = $MOD SHIFT CTRL, S, exec, hyprcap shot -z -c -n\n\n# Toggle recording a region\nbind = $MOD SHIFT, R,      exec, hyprcap rec region -c -n\n# Toggle recording current window\nbind = $MOD SHIFT ALT, R,  exec, hyprcap rec window:active -c -n\n# Toggle recording with interactive selection\nbind = $MOD SHIFT CTRL, R, exec, hyprcap rec -c -n\n```\n\n### Save location\n\nYou can save the captures by using the `--write` (`-w`) option. The `--out-dir`\n(`-o`) and `--filename` (`-f`) options can be used to specify the output\ndirectory and filename, respectively. By default, captures are saved in the\n`$XDG_PICTURES_DIR/Screenshots` directory for screenshots and\n`$XDG_VIDEOS_DIR/Captures` for recordings. If those XDG directory variables\nare not set, the defaults are `~/Pictures/Screenshots` and\n`~/Videos/Captures`, respectively.\n\n\u003e [!Note]\n\u003e\n\u003e The current capture is saved in the `$XDG_CACHE_DIR/hyprcap` dir for internal\n\u003e use.\n\n## Contributing\n\nContributions are welcome! You can help by:\n\n- Reporting bugs and issues on the [GitHub\n  repository](https://github.com/alonso-herreros/hyprcap/issues)\n- Suggesting new features or improvements\n- Submitting pull requests with fixes or new features\n- Improving the documentation\n- Testing the utility and providing feedback\n\n## Credit\n\nThis project is based on [Gustash's\nHyprshot](https://github.com/Gustash/Hyprshot)\n\n[aur-shield]: https://img.shields.io/aur/version/hyprcap?label=hyprcap\u0026logo=arch+linux\n[aur-link]: https://aur.archlinux.org/packages/hyprcap\n[aur-git-shield]: https://img.shields.io/aur/version/hyprcap-git?label=hyprcap-git\u0026logo=arch+linux\n[aur-git-link]: https://aur.archlinux.org/packages/hyprcap-git\n[release-shield]: https://img.shields.io/github/v/release/alonso-herreros/hyprcap?color=green\u0026logo=github\n[release-link]: https://github.com/alonso-herreros/hyprcap/releases/latest\n\n[fuzzel]: https://codeberg.org/dnkl/fuzzel\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falonso-herreros%2Fhyprcap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falonso-herreros%2Fhyprcap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falonso-herreros%2Fhyprcap/lists"}