mirror of
https://github.com/tsoding/boomer
synced 2024-11-14 18:12:47 +00:00
overlay | ||
src | ||
.gitignore | ||
.travis.yml | ||
boomer.nimble | ||
default.nix | ||
demo.gif | ||
LICENSE | ||
README.md |
Boomer
Zoomer application for Linux.
- Development is done on https://twitch.tv/tsoding
- Archive of the streams: https://www.twitch.tv/collections/HlRy-q69uBXmpQ
WARNING! The application is in an active development state and is not even alpha yet. Use it at your own risk. Nothing is documented, anything can be changed at any moment or stop working at all.
Dependencies
Debian
$ sudo apt-get install libgl1-mesa-dev libx11-dev libxext-dev libxrandr-dev
Quick Start
$ nimble build
$ ./boomer --help
$ ./boomer # to just start using
Developer Capabilities
For additional Developer Capabilities compile the application with the following flags:
$ nimble build -d:developer
This will enable:
- Reloading the shaders with
Ctrl+R
Controls
Control | Description |
---|---|
0 | Reset the application state (position, scale, velocity, etc). |
q or ESC | Quit the application. |
r | Reload configuration. |
Ctrl + r | Reload the shaders (only for Developer mode) |
f | Toggle flashlight effect. |
Drag with left mouse button | Move the image around. |
Scroll wheel | Zoom in/out. |
Ctrl + Scroll wheel | Change the radious of the flaslight. |
Configuration
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 |
---|---|
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 Features Compilation Flags
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 fater 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. |
NixOS Overlay
$ git clone git://github.com/tsoding/boomer.git /path/to/boomer
$ mkdir -p ~/.config/nixpkgs/overlays
$ cd ~/.config/nixpkgs/overlays
$ ln -s /path/to/boomer/overlay/ boomer
$ nix-env -iA nixos.boomer
References
bf9dc74dd1/examples/x11ex.nim
- http://archive.xfce.org/src/xfce/xfwm4/4.13/
- 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
- https://github.com/lolilolicon/xrectsel
- https://github.com/naelstrof/slop
- https://www.x.org/releases/X11R7.7/doc/xextproto/shm.html
- http://netpbm.sourceforge.net/doc/ppm.html
- https://github.com/def-/nim-syscall
- https://github.com/dreamer/scrot
Support
You can support my work via
- Twitch channel: https://www.twitch.tv/subs/tsoding
- Patreon: https://www.patreon.com/tsoding