Hardware accelerated keyboard driven screen selection tool.
preview.mp4
Add this to the inputs of your flake.nix
seto = {
url = "github:unixpariah/seto";
inputs.nixpkgs.follows = "nixpkgs";
};Then in either environment.systemPackages or home.packages add the following:
inputs.seto.packages.${pkgs.system}.defaultClone this repo and run makepkg -si
$ git clone https://github.com/unixpariah/seto.git
$ cd seto
$ makepkg -si- Install dependencies:
- zig
- wayland
- libxkbcommon
- libGL
- freetype
- fontconfig
- ydotool (optional: tests)
- scdoc (optional: man pages)
- Clone the repository:
git clone https://github.com/unixpariah/seto.git
cd seto- Build and run
zig build -Dmax-instances=100 -Doptimize=ReleaseSafe runControls how many characters can be rendered in a single draw call. Higher values typically improve performance but may cause issues on:
- Older GPUs
- Drivers with strict shader array limits
Configuration can be done using lua. By default, seto will look for config at
~/.config/seto/config.lua.
You can also specify a custom path to your configuration directory:
seto -c <PATH>Run man 5 seto for more information
Select single point and print it to stdout:
setoSelect region instead of single point:
seto -rTake screenshot with grim
grim -g $(seto -r) - | wl-copy -t image/pngOutput just x and y positions move mouse, and click using ydotool (specific syntax for escaping newline works in bash and zsh but may not in other shells):
ydotool mousemove -a $(seto -f $'%x %y\n') && ydotool click 0xC0Took a lot of inspirations from slurp :)