tsoding / boomer Goto Github PK
View Code? Open in Web Editor NEWZoomer application for Linux
License: MIT License
Zoomer application for Linux
License: MIT License
introduced in #47
introduced in #91
introduced in #6
introduced in #6
Steps to reproduce:
nimble build -d:select
./boomer
Result:
Command output:
Using config: (scrollSpeed: 1.0, dragFriction: 6.0, scaleFriction: 4.0)
Screen rate: 60
GLX version 1.4
GLX extension: GLX_ARB_create_context GLX_ARB_create_context_no_error GLX_ARB_create_context_profile GLX_ARB_create_context_robustness GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_buffer_age GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_INTEL_swap_event GLX_MESA_copy_sub_buffer GLX_MESA_query_renderer GLX_MESA_swap_control GLX_OML_swap_method GLX_OML_sync_control GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_SGI_make_current_read GLX_SGI_swap_control GLX_SGI_video_sync
Visual 211 selected
Used WM is fluxbox
introduced in #82
introduced in #14
introduced in #89
I'm pretty sure we can avoid that if we make independent from
the size of the window as it was in the beginning. (I simply did
not expect this use case back then Kappa)
introduced in #10
The inertia should have a motion blur to give a perception of moving fast
introduced in #52
introduced in #28
introduced in #56
introduced in #82
As every proper UNIX program, boomer should have man page explaining it's functionality and providing examples.
Currently:
$ man boomer
No manual entry for boomer
Expected:
$ man boomer
<boomer man page opens up>
Would be nice to have color correction to fix videos like this https://youtu.be/FquVty-Ghpg?t=611
Also perspective correction could be nice. And since most of the use cases involve displaying text you might try doing some image to text with CV memes. Or deep neural memes to automate color/perspective correction. ๐ค ๐ค ๐ค
I have Linux Mint 19.1 Cinnamon.
Cinnamon Version 4.0.10 (no idea if that's important).
Linux Kernel 4.15.0-70-generic (also no idea if that's important).
I didn't have nim installed so i just sudo apt-get install nim
and then followed the readme.md:
$ git clone git://github.com/tsoding/boomer.git ~/boomer/
$ cd ~/boomer
$ nimble build -d:release
And I get this error:
Warning: Package 'boomer' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'boomer.nim', but a file named 'navigation.nim' was found. This will be an error in the future.
Hint: If this is the primary source file in the package, rename it to 'boomer.nim'. If it's a source file required by the main module, or if it is one of several modules exposed by 'boomer', then move it into a 'boomerpkg/' subdirectory. If it's a test file or otherwise not required to build the the package 'boomer.nim', prevent its installation by adding `skipFiles = @["navigation.nim"]` to the .nimble file. See https://github.com/nim-lang/nimble#libraries for more info.
Verifying dependencies for [email protected]
Error: Unsatisfied dependency: nim (>= 0.18.0)
What do I do? When I do nim -h
I get Nim Compiler Version 0.17.2 (2018-02-05) [Linux: amd64]
(etc...). Shouldn't apt-get install give me the latest version? ๐ค
Just an idea. Maybe we could move it around with joystick also, just like when pressing down mouse button, moving mouse and releasing button.
Since when moving boomered area you are limited to translation in x/y axis + z (zooming) you can fake intermediate frames, when FPS drops low - similar to frame interpolation but instead you will get extra frames by moving the image in 3D space ๐ค
introduced in #10
nimble build -d:live -d:mitshm -d:select -d:windowed
. -d:mitshm
is optional. A similar problem occurs without it.The application crashed with
Visual 320 selected
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 130 (MIT-SHM)
Minor opcode of failed request: 4 (X_ShmGetImage)
Serial number of failed request: 962
Current serial number in output stream: 962
in case of no -d:mitshm
Visual 320 selected
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 73 (X_GetImage)
Serial number of failed request: 684
Current serial number in output stream: 684
The application does not crash keeps displaying the tracked window.
introduced in #94
introduced in #14
introduced in #10
introduced in #22
We rely on scrolling being reported as pressing mouse buttons 3
and 4. May not work on other platforms.
introduced in #6
introduced in #40
Would lead to different motion on high refresh rate monitors.
I guess you can set it manually, but it should be queried from system by default.
introduced in #94
Derived from #64 (comment)
From this video https://www.youtube.com/watch?v=FJJTYQYB1JQ
Probably related to #21
What are the keys we can use and what does each do?
Also I want to change some settings because its zooming too fast for my liking, and I know I should have a config file in ~/.config/boomer/ but I don't know what settings I can change and what the format of the file should be.
Why not just allow the user to modify the underlying fragment and vertex shaders?
introduced in #52
introduced in #87
It's much better https://youtu.be/-O0-HEZAwg8?t=2027
Stuttering while zooming can cause autism epilepsy ๐ค
introduced in #14
introduced in #77
I tried making a config and it had an empty line in it. When I ran boomer i got
fatal.nim(39) sysFatal
Error: unhandled exception: index 1 not in 0 .. 0 [IndexError]
Then I removed the empty line, and it worked as expected.
Investigate further no how it handles animations and stuff.
introduced in #22
Dragging fills a little bit stiff. Let's try to add some inertia
with easing out.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.