A cross plateform screen capping tool that lets you immediately explore the pixels on your monitor screen(s).
Inspiration from boomer.
- Smooth panning and precise zooming of the captured screen(s).
- Inspect pixel data of the currently hovered pixel, then copy that data to the clipboard.
- Crop out sections and/or save the capture to a PNG.
- A grid mode to better see the nice pixels.
- A flashlight mode!
This demo is heavily compressed to save space. When you run the application it will run smoother and be at your native resolution. :)
- Linux
- Windows
Cappy is built using CMake. CMake will take care of downloading all necessary dependencies. It may take a while to build because everything is built from scratch and statically linked. On Linux, you may need to install some additional packages. If you are building for X11, you need to install libx11-dev with sudo apt-get install libx11-dev. If you are building for Wayland, you need to install libsystemd-dev with sudo apt-get install libsystemd-dev. If you want to specify which one you
want to build with, you can define -DCAPPY_BUILD_X11=ON or -DCAPPY_BUILD_WAYLAND=ON in the following CMake command. It will default to X11 if neither is defined.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -G Ninja
cmake --build buildThis program is statically linked mostly, there is no external shared libraries and it can be stored anywhere on your PC. You can use the install command to move it to an appropriate folder on your OS.
cd build
cmake --install .Cappy is best used with a global keyboard shortcut so it can be launched any time you need it. The way to do this depends on the OS. Find the path to the executable.
- Open the Activities overview and start typing Settings.
- Click on Settings.
- Click Keyboard in the sidebar to open the panel.
- In the Keyboard Shortcuts section, select View and Customize Shortcuts.
- Add a keyboard shortcut by clicking the + button towards the bottom of the list.
- Set the Name to
Cappy. - Set the Command to the path of the executable.
- Set the shortcut to whatever you'd like. I like using
ctrl+left_shift+z.
You can use AutoHotKey to create a global shortcut. Just run AutoHotKey with ./scripts/cappy.ahk after installation.
- Right-click the blank area on the desktop and select New -> Shortcut. Type the location of the item and click Next. If you don’t know the path of the app, you can click the Browse button. Then you can select the target app’s executable file and click OK. Type a name for the shortcut and click Finish to create a shortcut for the app.
- Then you can right-click the app’s shortcut and select Properties.
- In the Properties window, you can click the Shortcut tab.
- Next to the Shortcut key field, you can set a keyboard shortcut that you want to use to open the app. Click OK to save the setting.
- You can click Start Menu on your Windows 10 computer. For Windows 11, you need to click the All apps icon to view all apps in the Start Menu.
- Next, you can scroll down to find the target app. Right-click the app and select Pin to taskbar or More -> Pin to taskbar to add the program to the Windows taskbar. Alternatively, you can also directly drag the app onto the taskbar to pin the program to the taskbar. You can follow the same operation to pin other apps to the taskbar.
- Then you can use the Windows key along with the corresponding number key to open the programs on the taskbar with a keyboard shortcut. Based on the position of the pinned apps on the taskbar, they get a number from 1 to 9 from the left to the right. For instance, you can press Windows + 1 keyboard shortcut to open the first pinned app on the taskbar.
A configuration file is automatically generated when the program is ran for the first time. The location depends on the platform. On Linux: $HOME/.local/share/cappy/cappy.ini, on Windows: $HOME\AppData\Roaming\cappy\cappy.ini, and on Mac: $HOME/Library/Application Support/cappy/cappy.ini. All possible configuration is as follows:
| Option | Description | Default |
|---|---|---|
| window | Sets the window to borderless or fullscreen borderless. Accepts borderless or fullscreen. |
borderless |
| window_pre_crop | Window size and pre-crop the image at initial startup. Requires 4 integers in the format: X Y WIDTH HEIGHT. If WIDTH is 0, then it is replaced with the capture width. If HEIGHT is 0, then it is replaced with the capture height. | 0 0 0 0 |
| flashlight_size | The initial flashlight radius in pixels. | 150 |
| flashlight_center_inner_color | The center color of the flashlight. Requires 4 integers between 0-255 in the format: REG GREEN BLUE ALPHA. | 255 255 204 25 |
| flashlight_center_outer_color | The center color of the flashlight. Requires 4 integers between 0-255 in the format: REG GREEN BLUE ALPHA. | 255 255 204 25 |
| flashlight_outer_color | The center color of the flashlight. Requires 4 integers between 0-255 in the format: REG GREEN BLUE ALPHA. | 51 51 0 50 |
| background_color | The center color of the flashlight. Requires 3 integers between 0-255 in the format: REG GREEN BLUE. | 50 50 50 |
| grid_size | The size of the grid in pixels. | 100 |
| grid_color | The color of the grid. Requires 3 integers between 0-255 in the format: REG GREEN BLUE. | 200 200 200 |
| font_size | The font size. | 36 |
| Key | Description |
|---|---|
| Q or ESC | Close the application |
| C | Enter/Exit color mode |
| F | Enter/Exit flashlight mode |
| R | Reset capture |
| Ctrl+R | Reset capture and camera |
| G | Toggle grid |
| M | Minimize window |
| Right Click | Enter crop drawing mode |
| Left Drag | Pan |
| Scroll Wheel | Zoom |
| Ctrl+S | Save capture |
You can hover your mouse over a pixel and a pop-up of the color information will appear near the mouse.
| Key | Description |
|---|---|
| Ctrl+D | Copy color to clipboard as a decimal number |
| Ctrl+Shift+D | Copy color to clipboard as a decimal number, each channel separated by commas |
| Ctrl+H | Copy color to clipboard as a hexadecimal number |
| Ctrl+Shift+H | Copy color to clipboard as a hexadecimal number, each channel separated by commas |
| Ctrl+B | Copy color to clipboard as a binary number |
| Ctrl+Shift+B | Copy color to clipboard as a binary number, each channel separated by commas |
You can focus in on a specific point in flashlight mode.
| Key | Description |
|---|---|
| LShift+Scroll Wheel | Increase/Decrease flashlight size |
Select a region of the capture.
| Key | Description |
|---|---|
| Release Right Click | Finish drawing crop region |
| Drag | Continue drawing region |
| Shift+Drag | Continue drawing region as a square |
| Right Click (Outside cropped area) | Exit Crop Drawing Mode |
| X | Crop capture |
