https://github.com/inker0/wl-termshot
A TUI screenshot tool on Wayland
https://github.com/inker0/wl-termshot
grim hyprland linux rust screenshot tui wayland
Last synced: about 1 month ago
JSON representation
A TUI screenshot tool on Wayland
- Host: GitHub
- URL: https://github.com/inker0/wl-termshot
- Owner: inker0
- License: mit
- Created: 2025-07-13T08:30:15.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-13T10:10:32.000Z (11 months ago)
- Last Synced: 2025-07-13T10:23:00.041Z (11 months ago)
- Topics: grim, hyprland, linux, rust, screenshot, tui, wayland
- Language: Rust
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Wayland Terminal Screenshotter (wl-termshot)
A screenshot tool for Wayland that uses TUI to configure screenshot options.
## Usage
Just type `wl-termshot` and you can start taking screenshot! Screenshots would be saved to $WL_TERMSHOT_DIR, then $GRIM_DEFAULT_DIR if the previous is not set, then the picture directory (usually /home/user/Pictures/), in the case that `temporary` is not set.
## Features
- Select a specific area to take screenshot
- Option to choose if wl-termshot copy screenshot to clipboard for every screenshot
- Option to save screenshot to /tmp
- Option to customize screenshot file name (default is screen_YYYY-MM-DD-hh:mm:ss.png)
## Limitation
Only supports Linux now. Tested on Hyprland with Arch Linux.
## Roadmap
- [] Add "--help" and stuff like that
- [] Prevent panicing when dependencies are not installed
- [] Use a environment variable other than $GRIM_DEFAULT_DIR
- [] Save current directory when environment variables are not set
- [] Make error looks nicer
- [] Freeze screen using `hyprpicker`
- [] Support different image format
- [] Maybe use TUI library other than Cursive for better looking
- [] Add CLI interface, perhaps using Clap
- [] Support X11 and other platforms (low priority)
## Dependencies
- `grim` for taking screenshot
- `setsid` for generating process (should be provided on Linux)
- `libnotify` for sending notification
- `slurp` for selecting area [Optional]
- `wl-clipboard` for copying screenshot [Optional]
## Install
Currently only support building from source. Dependent on the Rust toolchain.
```bash
git clone https://github.com/inker0/wl-termshot.git
cd wl-termshot
cargo build --release
```
The executable `wl-termshot` is located at `./target/release/`.
## Tips
You can create keybinds for wl-termshot in Hyprland like this:
```
bind = SUPER SHIFT, S, exec, $terminal --class="wl-termshot.floating" -e wl-termshot # Create keybind
windowrule = float,class:wl-termshot.floating # Float window
windowrule = size 700 350,class:wl-termshot.floating # Set size
```
## Contributing
This is my personal project (just for personal use). If you find wl-termshot useful or you find a issue inside this tool, freely consider contributing through issues and pull requests.
## License
MIT License.