Zoomer application for Linux.
- Development is done on https://twitch.tv/tsoding
- Archive of the streams: https://www.twitch.tv/collections/HlRy-q69uBXmpQ
You need Docker, Internet connection, x86_64 xfce linux system
Run from repository root bash rebuild.sh
| Control | Description |
|---|---|
| 1 | Reset the application state (position, scale, velocity, etc). |
| ESC | Quit the application. |
| 2 | Toggle flashlight effect. |
| Drag with left mouse button | Move the image around. |
| Scroll wheel or =/- | Zoom in/out. |
| Ctrl + Scroll wheel | Change the radious of the flaslight. |
Configuration file is located at $HOME/.config/boomer/config and has roughly the following format:
<param-1> = <value-1>
<param-2> = <value-2>
# comment
<param-3> = <value-3>
You can generate a new config at $HOME/.config/boomer/config with $ boomer --new-config.
Supported parameters:
| Name | Description |
|---|---|
| min_scale | The smallest it can get when zooming out |
| scroll_speed | How quickly you can zoom in/out by scrolling |
| drag_friction | How quickly the movement slows down after dragging |
| scale_friction | How quickly the zoom slows down after scrolling |
Experimental or unstable features can be enabled by passing the following flags to nimble build command:
| Flag | Description |
|---|---|
-d:live |
Live image update. See issue [#26]. |
-d:mitshm |
Enables faster Live image update using MIT-SHM X11 extension. Should be used along with -d:live to have an effect |
-d:select |
Application lets the user to click on te window to "track" and it will track that specific window instead of the whole screen. |
-
https://github.com/nim-lang/x11/blob/bf9dc74dd196a98b7c2a2beea4d92640734f7c60/examples/x11ex.nim
-
https://www.khronos.org/opengl/wiki/Programming_OpenGL_in_Linux:_GLX_and_Xlib
-
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glXIntro.xml
-
https://stackoverflow.com/questions/24988164/c-fast-screenshots-in-linux-for-use-with-opencv
