You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rexim dfd4e1f551 Fix the focus problem caused by the Tiling WM
Thanks to @mohad12211 for the fix!
2 months ago
overlay Bump NixOS overlay 4 years ago
src Fix the focus problem caused by the Tiling WM 2 months ago
.gitignore Remove x11ex 5 years ago
.travis.yml (#1) Build instead of test 5 years ago
LICENSE Initial commit 5 years ago Add ability to zoom in/out with keyboard. 1 year ago
boomer.nimble Support most recent zoomer nim version and dependencies 6 months ago
default.nix (#26) Experimental MIT-SHM support 4 years ago
demo.gif (#20) Add juicy gif 4 years ago

Tsoding Build Status


Zoomer application for Linux.



$ 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. The shader files (frag.glsl and vert.glsl) should be located in the same folder as boomer.nim for this feature to work. If the shader files not found the program won't even start.

Keep in mind that the developer build is not suitable for day-to-day usage because it creates the external dependency on the shader files. Compiling the program without -d:developer "bakes" the shaders into the executable and eliminates the dependency.


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 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 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 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.

NixOS Overlay

$ git clone 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



You can support my work via