aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* specify func argument and related cleanup (#183)N-R-K2021-12-195-40/+40
| | | | | | | | | | | | * specifies the function argument type in commands.h compared to leaving it unspecified. all the functions in cmd_t must have arg_t as it's argument. * changes to commands.h will now trigger a rebuild - this restores old behavior prior to 12efa0e * cg_quit now uses it's argument as exit status * DestroyNotify invokes cg_quit rather than calling exit directly. * Explicitly pass EXIT_SUCCESS to cgquit in keybinding Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* README: Fix version badge (#185)Sanjay Pavan2021-12-121-1/+1
|
* refactor: move shared code into a functionNRK2021-12-121-21/+19
|
* img_load_webp: close the file handler and use errnoNRK2021-12-121-3/+4
|
* img_load_webp: simplify multi-frame allocationNRK2021-12-121-4/+1
| | | | | | C89 standard specifies: If ptr is a null pointer, the realloc function behaves like the malloc function for the specified size.
* img_load_webp: remove unnecessary castingNRK2021-12-121-7/+5
|
* remove unneeded animated-webp hacksNRK2021-12-122-83/+44
| | | | | | | | now that imlib2 (v1.7.5) is able to load the first frame of an animated-webp file, we no longer need the `is_webp` check to bypass imlib2. ref: https://phab.enlightenment.org/T8964
* Release version 28N-R-K2021-12-122-1/+58
| | | Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* fix: compile error (#182)N-R-K2021-12-091-2/+2
| | | | | | | | | | | | | | | * fix compile error * use variable instead of macro * Revert "use variable instead of macro" This reverts commit a14ef0b231c50e49906761010a4d4231ce4e3e36. * use local variable instead of macro * Revert "use local variable instead of macro" This reverts commit 7e049d55d94f5c003d90e1a10187356f6a7f54b2.
* bring back zoom_levels (#156)N-R-K2021-12-012-6/+18
| | | | | | | this still keeps the shorter zoom logic, but adds back the zoom_levels array so that stay close to sxiv. for users who would like to have the zoom step behavior see: https://github.com/nsxiv/nsxiv/pull/156#issuecomment-975182631
* clarify project goals (#173)N-R-K2021-12-012-2/+7
| | | Closes: https://github.com/nsxiv/nsxiv/issues/148
* fix crash when zooming out on small images (#178)mamg222021-12-011-2/+2
| | | | | | | | When rendering images, destination image width and height may become zero due to float-to-int conversion after zoom calculation, later crashing when creating an image using those dimensions. This sets a minimum of 1 to both variables. Closes #82
* fix: send implicit_mod to process_bindings (#176)N-R-K2021-12-013-7/+10
| | | | | | | | | | | | * fix: send implicit_mod to process_bindings this solves the edge case where someone might have `ShiftMask + A` in their keybindings compared to a plain `A`. Closes: https://github.com/nsxiv/nsxiv/pull/166#issuecomment-978853136 * code-style: smuggle small style fix in win_draw_bar now mimics autoreload_nop.c functions
* Reference customization in readme (#175)Berke Kocaoğlu2021-11-261-7/+16
| | | | | | | | | | * Document customization more thoroughly * sneak a small doc change in at the request of explosion-mental: https://github.com/nsxiv/nsxiv/pull/170#issuecomment-979600811 Co-authored-by: NRK <nrk@disroot.org>
* fix: img_load_gif: out-of-bound accessNRK2021-11-261-4/+7
| | | | | according to imlib2's gif loader, bg should already be transparent black if bg > cmap->ColorCount
* Revert "fix: out-of-bounds access when bg not in color map"NRK2021-11-261-4/+0
| | | | | | | | | | | | | with this patch certain gif images will fail to play. one other problem here is that it suddenly breaks the loop without free-ing data and rows, leading to a memory leak. regardless, this needs to be investigated further. here's an example image where this happens: https://i.postimg.cc/SQf1TJJg/awoo-study.gif This reverts commit cca7834e6718c6ff64da42ed5e9770880a3e8ff6.
* allow configuring imlib2's cache size (#171)N-R-K2021-11-262-0/+7
| | | | | | | | by default imlib2 uses a 4mb cache, which is quite small. this allows users who have more memory to spare to set a bigger cache size and avoid reloading an already viewed image if it fits into the cache. Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* switch back to whitelisting modifers (#150)N-R-K2021-11-242-4/+4
| | | | | | | | | | | | | * Revert "Allow any set of modifiers to be used in keybindings" this keeps things equal with sxiv while giving users possibility to customize USED_MODMASK if they wish. This reverts commit 3234b0e521cca006a94cb135a88d146122d7f66d. Closes: https://github.com/nsxiv/nsxiv/issues/149 Closes: https://github.com/nsxiv/nsxiv/issues/123 Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* rename: keyhandler_abort -> KEYHANDLER_ABORT (#172)N-R-K2021-11-242-3/+3
| | | | | | | | with the exception of arrays, all other var names in config.h are in ALL CAPS. since keyhandler_abort is an unreleased feature, it should be okay to rename it for consistency. though.. in the future we should be more careful about naming when adding new vars to config.h (or the codebase in general.)
* add related projects and some doc fixes (#170)N-R-K2021-11-232-5/+19
| | | | | | | | | | | | * README: add related projects Closes: https://github.com/nsxiv/nsxiv/issues/169 * fix readme feature section correct animations part (we support webp animation as well) and mention key-handler * remove duplicate Contribution Guideline heading
* mark functions and vars as static (#146)N-R-K2021-11-207-41/+40
| | | | | | | | | | | | | | | | | | | | | | | | | the goal here to mark functions and variables not used outside the translation unit as static. main reason for this is cleanliness. however as a side-effect this can help compilers optimize better as it now has guarantee that a certain function won't be called outside of that translation unit. one other side-effect of this is that accessing these vars/function from config.h is now different. if one wants to access a static var/func from different translation unit in config.h, he would have to create a wrapper function under the right ifdef. for static functions one would also need to forward declare it. here's a dummy example of accessing the function `run_key_handler` from config.h under _MAPPINGS_CONFIG ``` static void run_key_handler(const char *, unsigned); bool send_with_ctrl(arg_t key) { run_key_handler(XKeysymToString(key), ControlMask); return false; } ```
* set env var NSXIV_USING_NULL for key-handler and update docsNRK2021-11-193-8/+19
| | | | Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* apply -0 to stdin/-i as wellNRK2021-11-192-6/+10
| | | | | | | | | | | | while i was initially against this since it can be done via `xargs -0`. the problem with this approach is that there's a limit to how many args a command can recieve, leading to problem like this [0] when opening large (1k~) amount of images. there's no limit on how big stdin can be, so being able to read a null-separated list from stdin doesn't have this problem. [0]: https://github.com/ranger/ranger/pull/2307#issuecomment-818683515
* use dedicated function to process key/button bindings (#166)N-R-K2021-11-192-29/+24
| | | Co-authored-by: Arthur Williams <taaparthur@gmail.com>
* Embed new nsxiv icon (#163)mamg222021-11-136-269/+457
| | | | Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr> Co-authored-by: NRK <nrk@disroot.org>
* Adding shields.io badges for Readme (#159)Sanjay Pavan2021-11-061-1/+5
| | | | | | | | | * shields.io badges for Readme * Changed up the colors a little bit * Once again a color change * Changed badge from code size to total lines
* Update FAQ regarding piping images (#158)mamg222021-11-051-1/+1
|
* make width of navigation area configurable (#155)LuXu2021-11-043-6/+22
| | | | | | | | | this allows users to configure navigation width from config.h. it also allows disabling the navigation function entirely by using a 0 width. one extra functionality this adds is being able to define an absolute width (in pixels) instead of just percentage via `NAV_IS_REL`. Co-authored-by: NRK <nrk@disroot.org>
* add links to labels in CONTRIBUTING (#154)N-R-K2021-11-031-1/+10
|
* fix: man page title for neo sxiv (#152)Guilherme Rugai Freire2021-11-011-4/+4
|
* -0 sends NULL separated file-list to key-handlerNRK2021-10-295-8/+7
| | | | | | | | with this change `-0` is turned into a more generic switch which can be used to send NULL-separated file-list to the key-handler as well. this also means `-0` no longer implicitly enables `-o` Closes: https://github.com/nsxiv/nsxiv/issues/140
* Add colors and fonts to config.h (#115)Arthur Williams2021-10-292-7/+15
| | | | | | | | Adds a set of config vars to control window fg/bg, bar fg/bg, mark color and bar font. This allows everything that can be done from .Xresources to be configurable from config.h. Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com>
* code-style: general cleanups (#137)N-R-K2021-10-299-45/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tns_clean_cache: remove unused function arg * remove malloc casting * improve consistency use sizeof(T) at the end * avoid comparing integers of different signedness * use Window type for embed and parent * remove unnecessary comparisons * remove cpp style comments * improve consistency: remove comma from the end of enumerator list * Removed useless _IMAGE_CONFIG defines * consistency: use the same order as snprintf * Resolve c89 warnings Co-authored-by: uidops <uidops@protonmail.com> Co-authored-by: Arthur Williams <taaparthur@gmail.com>
* remove unnecessary animated webp related checkN-R-K2021-10-281-6/+0
| | | | | | | | this code snippet was introduced in https://github.com/nsxiv/nsxiv/pull/20/commits/2703809a23bdf3fe426466c7a10f41d747913128 but does not seem to be needed. from what i can tell this is some sort of hack that might've been needed back when we didn't bypass imlib2 when loading webp.
* update copyright notice (#139)eylles2021-10-288-8/+16
|
* eleminate padding from struct img on 64bit systems (#136)N-R-K2021-10-281-3/+3
| | | | | | on 64bit systems this reduces the size of the struct from 104 bytes down to 96 bytes. on 32bits system this change shouldn't have any affect.
* fix: memory leak due to not destroying XrmDatabase (#134)N-R-K2021-10-281-2/+3
|
* Add default key-binding for DRAG_RELATIVE (#117)LuXu2021-10-275-3/+8
| | | | | | | | Ctrl-Button1 now has a relative drag using the XC_fleur cursor. XC_fleur is normally the cursor for "size all" action, which has 4 arrows pointing to 4 directions. Co-authored-by: NRK <nrk@disroot.org>
* fix: memory leak in img_load_webp (#135)N-R-K2021-10-261-4/+10
| | | | | | if `multi.cap` is >0 that means `multi.frames` has already been malloc-ed. by unconditionally malloc-ing again, we're losing all the old memory. this makes it so we're only malloc-ing (or realloc-ing) when needed.
* code-style: remove extra casts (#130)javad2021-10-242-5/+5
| | | | Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com>
* remove TODO.md (#127)N-R-K2021-10-192-9/+1
| | | | | | | | it's one extra file that serves no real purpose. Instead TODO.md has been converted into open issues: https://github.com/nsxiv/nsxiv/issues/126 https://github.com/nsxiv/nsxiv/issues/125 Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* README: add package manager section (#111)N-R-K2021-10-191-0/+14
| | | Closes: https://github.com/nsxiv/nsxiv/issues/72
* Revert "Fix in tabbed with alpha patch (#3)" (#121)N-R-K2021-10-161-2/+1
| | | | | | | | | This reverts commit c7ca547b55e98914264351502e581fe6ae17ae15. cd710f5 fixed the issue with embedding into a parent that has alpha and partially reverted c7ca547 this commit fully reverts c7ca547 , as these changes aren't needed for embedding into an alpha-parent.
* Add ability to bind arbitrary functions.Arthur Williams2021-10-136-70/+96
| | | | | | | | | | | | | | | | | | | | | | | Before all the predated commands where kept in an array and their indexes were used in bindings. This meant that users couldn't add their own functions from the config file. Now key/mouse bindings have been changed to to store the function ptr (wrapped in a cmd_t struct to also store the mode) directly instead. General cleanup done in this commit: Defined `MODE_ALL` instead of using magic number. For example, suppose one had bindings like: { 0, XK_q, g_quit, None }, { ShitMask, XK_q, {quit_err}, None } { ControlMask, XK_q, {quit_err, .mode=MODE_IMAGE}, None } The existing binding `q` has been left unchanged and is defined the same way. However, the new hypothetical binding `Shift-q` can be used to call the custom function quit_err in any mode (default). `Ctrl-q` on the other hand will be called only on image mode. Closes #50
* Make imgcursor a config variable.Arthur Williams2021-10-132-12/+5
| | | | | | | | Previously, the value of imgcursor was determined by where a pointer binding was set to a ci_cursor_navigate. If it was then the pointer would change to left/right arrows depending on the position relative to the window. Now the user has full control of over it which also allows them to preserve the behavior in case they wrap the function.
* Fix behaviour when TrueColor / 24 bit depth is not available (#114)miseran2021-10-114-33/+24
| | | | | | | | | | | | | * Fix regression introduced in c7ca547 which made nsxiv not start in non-TrueColor X server. * Introduce a new fix for embedding into tabbed-alpha. * Fixes a visual glitch from original sxiv when drawing transparent images in 8 bit depth. In 8 bit PseudoColor, `.pixel` is just an index into the 256 defined colors and thus trying to extract rgb bits from it would result in visual glitch. The values `.color.red` on the other hand and so on are always integers between 0 and 0xFFFF representing the color as expected. * Use XColor for win_bg/fg and mrk_fg Co-authored-by: NRK <nrk@disroot.org>
* code-style: fix consistency issues all over the codebase (#94)Berke Kocaoğlu2021-10-1111-68/+45
| | | | | | | | | | | | | | | * remove duplicate comment * remove empty tabs and blank lines * move macros and globals ontop * comment to seprate function implementation * fix alignment * switch to *argv[] similar to other suckless code * kill all empty last lines * append comment to endif * reuse existing ARRLEN macro * comment fall through * use while (true) everywhere Co-authored-by: NRK <nrk@disroot.org>
* Make statusbar optional (#95)Arthur Williams2021-10-106-34/+63
| | | | | | | | libXft and libfontconfig are now optional dependencies which can be disabled via `HAVE_LIBFONTS=0`. Disabling them means disabling the statusbar. This also does not search for freetype2 header if disabled. Co-authored-by: NRK <nrk@disroot.org>
* add statusbar message upon key-hander activation (#98)N-R-K2021-10-072-2/+19
| | | | | | | | | Currently when running the key-handler the statusbar shows a "Running key-handler..." message, but there's no indication of the prefix key being pressed. There's a slight functional benefit of this patch in the sense that users can visually tell if the key-handler is listening on input or if the key-handler has been aborted or not.
* Rework build system v2 (#71)N-R-K2021-10-034-55/+52
| | | | | | | | | | | * Remove non-POSIX extensions and commands * Drop autodetection in favor of OPT_DEP_DEFAULT * Use += for LDLIBS as some BSD distros need to add extra flags * Change DOCPREFIX -> EGPREFIX * Use ?= for MANPREFIX and EGPREFIX * Update docs With this, we should have a stable build system. No further significant changes should be needed.