Nim Screenshot Utility (nsu)
This library/tool was made for Pomf It !
Nsu is very simple and small screenshot library / tool with very basic functionality. Its was made as replacement of external tool dependancy for pomfit ('scrot').
This library is crossplatform (Windows & Linux). On Windows it was implemented through the old win32 api. On Linux based systems, it was implemented through the x11 api. OSX support not planned unless someone donates a macbook.
Note: You can compile this library to cmd line tool.
nimblepackage manager. *(preferably nim 0.18.0 and up)
- For compiling, this library depends on
- For runtime,
nimble install nsu. Nimble will install both binary and library for you.
You can build nsu as standalone tool, a lesser(?) brother of scrot.
Use nimble to install
x11 oldwinapi png packages.
git clone https://github.com/Senketsu/nsu.git cd ./nsu nim c nsu.nim
Copy or symlink the binary into your /usr/local/bin directory.
Compiling issues: Please make sure you are using Nim >=0.18.0 If you are using older Nim compilers (0.17.x and below), please compile with '-d:deprecated' (and update your build system) Windows & libPNG You might have issues with libpng as the wrapper is more up to date then the libraries Nim is shipped with. (as of April 01 2018 | Nim 0.18.0) If you have up to date libraries from another source or you build them yourself, good on you !
Usage: nsu [options] .. [filename] Options with no arguments or group of options with only one having argument, can be put in one section. e.g: nsu -acd:5 (Takes active window screenshot with countdown of 5 seconds.) Options: [arguments] -h, --help Shows this help screen -v, --version Will print current version information. -s, --select Lets you choose area or window to capture. -a, --active Will capture active window screenshot. -f, --full Will capture full screen. -d, --delay [num] Will delay capturing by given number of seconds. -c, --count Will show textual countdown of the delay. -p, --path [text] Will use given path to save ss into. Example: nsu -fcd:5 -p:/home/senketsu/Pictures nsu_test.png This will countdown from 5 seconds to capture full screen and save it into my Pictures folder with the name nsu_test.
Simply include nsu into your project and use these calls. Every call returns file path to newly made screenshot or empty string if it fails.
The main procedure
proc nsu_take_ss*(mode: NsuMode, fileName: string = "", savePath: string = "", delay:int = 0, countDown: bool = false): string =
- @mode - NsuMode for screenshot [FULL, AREA,ACTIVE_WIN, SELECT_WIN]
- @fileName - user specified filename (optional)
- @savePath - user specified path to save into (optional)
- @delay - Delay in seconds (useful only for FULL or ACTIVE_WIN mode screen shot) (optional) [max 15sec]
- @countDown - To output countdow into stdout
Or you can call the convenience procs
proc nsu_active_win_ss*(fileName,savePath: string = "",delay: int = 0): string =
- Convenience proc for active window screenshot. Optional fileName, savePath, delay parameters.
proc nsu_select_win_ss*(fileName,savePath: string = "",delay: int = 0): string =
- Convenience proc for selected window screenshot. Optional fileName, savePath, delay parameters.
proc nsu_area_ss*(fileName,savePath: string = "",delay: int = 0): string =
- Convenience proc for area(or selected window) screenshot. Optional fileName, savePath, delay parameters.
proc nsu_full_ss*(fileName,savePath: string = "",delay: int = 0): string =
- Convenience proc to full screenshot. Optional fileName, savePath, delay parameters.