aboutsummaryrefslogtreecommitdiff
path: root/main.c
Commit message (Collapse)AuthorAgeFilesLines
* code-style: remove extra casts (#130)javad2021-10-241-1/+1
| | | | Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com>
* Add ability to bind arbitrary functions.Arthur Williams2021-10-131-7/+8
| | | | | | | | | | | | | | | | | | | | | | | 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-131-12/+0
| | | | | | | | 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.
* code-style: fix consistency issues all over the codebase (#94)Berke Kocaoğlu2021-10-111-8/+10
| | | | | | | | | | | | | | | * 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>
* add statusbar message upon key-hander activation (#98)N-R-K2021-10-071-1/+17
| | | | | | | | | 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.
* make ten_ms local to run (#101)N-R-K2021-09-291-2/+1
| | | | | ten_ms needed to be a global but after the following commit 3724d3fc17dc6135a05608cab5bdf00c6978282d this no longer holds true. it can simply be local to run, as it's not used anywhere else.
* make keyhandler abort key configurable via config.hNRK2021-09-241-1/+1
|
* fix: unable to bind anything to XK_EscapeNRK2021-09-241-1/+1
|
* Allow any set of modifiers to be used in keybindingsArthur Williams2021-09-201-1/+1
| | | | | | | | | | | | | Previous the code only allowed ShiftMask,ControlMask or Mod1Mask to be used in keybindings and the presence of any others modifiers would be ignored. Most problems generally allow certain modifiers to be be ignored but not most and certainly don't allow Super-A to be treated like A. Now users can use any modifiers they want in keybindings and can also ignore any modifiers they want. By default only ModMask2 (commonly numlock is ignored) Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com>
* Rename, Update Docs and Prepare for Release (#9)Berke Kocaoğlu2021-09-161-8/+9
| | | | | | | Co-authored-by: Guilherme Rugai Freire <41879254+GRFreire@users.noreply.github.com> Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com> Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Arthur Williams <taaparthur@gmail.com> Co-authored-by: eylles <ed.ylles1997@gmail.com>
* Exit when window is destroyedArthur Williams2021-09-161-0/+3
| | | | | | | If the user closed our window, the program won't automatically be die. It may look dead as there would be no graphical indication that it was running, but it still would be using/wasting the same resources. Now the program will abruptly exit when its window is killed.
* set title based on prefix and suffix (#23)qsmodo2021-09-161-0/+2
| | | | | | Co-authored-by: Guilherme Rugai Freire <41879254+GRFreire@users.noreply.github.com> Co-authored-by: NRK <nrk@disroot.org> Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
* Fix indentationBert Münnich2020-01-161-4/+4
|
* Do not keep track of fullscreen stateBert Münnich2019-07-161-1/+1
| | | | | There is no more need for this after the removal of the special color handling for fullscreen mode in commit 2886876.
* Fix file list indexes when deleting last imageBert Münnich2018-12-291-3/+3
| | | | Fixes issue #331
* Set window title only once at startupBert Münnich2018-10-151-9/+0
| | | | | | | Putting image info in the title predates the info bar; it no longer seems necessary. Fixes issue #318.
* Don't skip dot files when cleaning cacheKacper Gutowski2018-07-301-1/+1
|
* Set global markidx whenever a single img is (un)markedBert Münnich2018-06-091-0/+1
| | | | This also sets *markidx* when using the right mouse button in thumbnail mode.
* (Un)mark thumbnails while holding Button3 downBert Münnich2018-06-091-4/+13
|
* (Un)mark single image through generic functionBert Münnich2018-06-091-0/+12
|
* Rename variable toggledidx to markidxBert Münnich2018-06-091-3/+3
|
* Fix cg_mark_range after removing images from file listBert Münnich2018-06-091-0/+2
|
* Remove unnecessary special cases in cg_mark_rangeBert Münnich2018-06-091-1/+1
|
* Add mark range functionDaniel Lublin2018-06-091-0/+1
| | | | | Sets the marked state of all images ranging from the latest marked/unmarked image to the current image, to the state of that latest toggled image.
* Revise waiting for child processesBert Münnich2018-02-181-6/+20
|
* Close image-info explicitlyBert Münnich2018-02-181-18/+18
|
* Skip imlib cache when reloading due to inotify eventBert Münnich2018-02-181-0/+1
|
* RefactoringBert Münnich2018-01-091-9/+7
|
* Fix a potential uninitialized variableHyleus2018-01-091-2/+5
|
* Separate bar fields only by spacesBert Münnich2017-12-071-5/+7
|
* Remove obsolete files[].baseBert Münnich2017-12-071-5/+0
|
* Left bar shows file name as given by userBert Münnich2017-12-071-19/+5
|
* Try to match a fallback font if neededSquibby2017-12-061-2/+2
| | | | | | | | | | | | | | Fixes #276 Instead of rendering the entire filename at once, Xft will let us do it character by character. This will allow sxiv to query fontconfig for a font that can provide any missing codepoints, if needed. A known issue of this patch is that the "..." dots rendering will not work properly for very long multibyte filenames. That is because we cannot easily predict the final width of the rendered filename before drawing it. I couldn't figure out a clean way to deal with this, so I ended up just truncating the offending filenames.
* Fix navigating from last to previous image over invalid filesBert Münnich2017-10-261-3/+4
|
* Set LC_COLLATE for -r file list sortingBert Münnich2017-10-241-0/+3
| | | | Fixes issue #293.
* One header file for type definitions and function declarationsBert Münnich2017-10-161-15/+4
|
* Improve mouse supportBert Münnich2017-10-061-3/+27
| | | | | | | | | | | | None of the mouse mappings uses a keyboard modifier, making it possible to access the most basic features by only using the mouse. Next/previous image with left button depending on cursor position, middle button for dragging, right button for switching to thumnail mode and wheel for zooming. Users can keep the old behaviour by simply not adapting the changes to the buttons array in config.def.h to their config.h file.
* Simplify cursor reset in image modeBert Münnich2017-10-051-2/+2
| | | | | No need to give cursor name. reset_cursor() is now the only place to decide what cursor to fall back to.
* Mouse drag translates pointer position to image areaBert Münnich2017-10-041-0/+1
| | | | This makes mouse panning more direct and faster.
* Detect all file overwrites in autoreload_inotifyBert Münnich2017-05-171-1/+1
| | | | | | | | | | | | mv(1) inside the same filesystem was not detected. Supporting this case made it necessary to always watch the directory. Turns out the logic and state keeping between arl_setup() and arl_handle() is easier, when using different watch descriptors for the file and the directory and not using a oneshot descriptor for the file. Requiring an absolute canonical path for arl_setup() simplifies dir and base name splitting. No need for dirname(3) and basename(3) anymore.
* Revised autoreload interfaceBert Münnich2017-05-171-11/+20
| | | | | | | | | | | | Make the header only contain the public interface and nothing from the implementation. All functions get a handle to their self object, like the img_ and tns_ and win_ functions. All necessary data (file path) is also passed as an argument, so that no extern redeclarations are needed. Make arl_setup_dir() private, it's not called outside the module. Make arl_handle() return true if the file has changed, so that the reloading of the file can be done by the caller.
* Add autoreload support by inotify (and dummy backend nop)Max Voit2017-05-171-1/+12
|
* Properly quit when window gets closed; fixes issue #27Bert Münnich2017-05-171-1/+1
|
* Fix typoJakub Wilk2017-02-151-1/+1
|
* Pass given file names to key-handler instead of real pathsBert Münnich2017-01-071-1/+1
| | | | | | | Misbehaving command lines in the key-handler that rewrite the given files and thus replace symbolic links instead of their targets shall call realpath(1). Fixes issue #205 and reverts commit 92e3b578.
* Merge djhejna/floatdelayBert Münnich2016-12-011-3/+7
|\
| * Support for DELAY as a floating point number including less than 1Don Hejna2016-11-271-1/+1
| | | | | | | | | | second while maintaining backward compatibiitiy with integer arguments.
* | Ignore button and key events while key-handler is runningBert Münnich2016-11-301-0/+9
|/ | | | Related to issue #253, which originally asked for a non-blocking key-handler.
* Allow opening directories non-recursivelyParide Legovini2016-09-281-5/+1
|
* Use Xft for font loading and text drawingBert Münnich2016-08-061-2/+2
|