Commit Graph

987 Commits

Author SHA1 Message Date
N-R-K
c093eae971
code-style: use constant length array (#79)
currently the code-base doesn't make use of variable length array
despite being -std=c99. it was irresponsible of me to introduce VLA in
here.

since this function will be called quite often, i did not want to make
calls to malloc and free as they have some overhead.

512 should be sufficient enough and probably is far bigger than any
window title bar can display anyways.
2021-09-22 01:53:11 +06:00
NRK
9c3310b676 better document what the optional deps do
currently the README only mentions what deps are optional but has no
info on what they do. we had an issue where a user was confused about
what libexif is used for : https://github.com/nsxiv/nsxiv/issues/58

this makes it clear what each of the optional deps do so that users can
make more informed decision on weather they want something or not.
2021-09-21 17:50:23 +03:00
N-R-K
63972db743
add -0 for outputting null-terminated list (#68)
* add -0 for outputting null-terminated list

this doesn't add much, if any, additional complexity to the codebase and
can be quite handy for scripting purposes.

Closes: https://github.com/nsxiv/nsxiv/issues/67

* Fix typo

Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2021-09-20 23:11:47 +00:00
Arthur Williams
3234b0e521 Allow any set of modifiers to be used in keybindings
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>
2021-09-20 11:17:35 +06:00
NRK
24e70a99e3 Stable version 27.1 2021-09-17 05:25:19 +06:00
NRK
7244e252aa fix build when not git cloned 2021-09-17 05:20:44 +06:00
Berke Kocaoğlu
3ef355bccc Fix links in changelog and readme 2021-09-17 00:39:40 +03:00
Berke Kocaoğlu
a674cb07c5
Stable version 27 2021-09-16 23:49:20 +03:00
NRK
f37fa0975f config.def.h: change enums to static const ints 2021-09-17 02:48:15 +06:00
NRK
25a5a54010 add .mark.foreground to Xresources
since we're already allowing both window and bar colors to be
customizable, it doesn't make sense to not allow so for mark color.
2021-09-17 02:32:11 +06:00
NRK
956faac00c cleanup docs 2021-09-17 02:28:18 +06:00
Sam Whitehead
0d8dcfd521
Fix font memory leak. (#57)
* Fix font memory leak.

This memory leak has always been present in sxiv.

The font opened on window.c:58 was never closed, so I closed it, fixing a 2kB memory leak.

* document changes

Co-authored-by: NRK <nrk@disroot.org>
2021-09-16 20:27:03 +00:00
N-R-K
0b20783164 change .font to .bar.font for consistency (#48) 2021-09-16 22:55:31 +03:00
Berke Kocaoğlu
7cce7ea857 Rename, Update Docs and Prepare for Release (#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>
2021-09-16 22:55:31 +03:00
Arthur Williams
9c73646d9c Exit when window is destroyed
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.
2021-09-16 22:55:31 +03:00
TAAPArthur
25a3114709 Rework the build system (#19)
* Added simple configure script

Added simple script to autodetect if optional dependencies are installed
and enable/disable them as needed. Note this solution uses the compiler
directly instead of an external program like pkgconfig so it doesn't
require any extra dependencies. It is intended to work with any
arbitrary compiler; it has been tested with tcc and gcc.

There are some "breaking" changes hidden here
- HAVE_GIFLIB was renamed to HAVE_LIBGIF to match HAVE_LIBEXIF
- Simply typing `make` will no longer try to build with optional
  dependencies

* use implicit RM variable

* General clean-up in configure

- Use printf instead of echo
- Format style

* honor env PREFIX, use LDLIBS

* Revert "General clean-up in configure"

This reverts commit 8683c179dbf273a330f9a224a4d481a7bea42c5f.

* honor env LDFLAGS if set

* Don't set OPTIONAL_LIBS in configure

* make OBJ all caps

* follow suckless style build system

- remove configure script.
- HAVE_LIBGIF and HAVE_LIBEXIF defaults back to 1
- unload several varibales onto config.mk
- make version all-caps
- add -O2 optimization
- use CPPFLAGS for includes and defines

* Revert "follow suckless style build system"

This reverts commit 8bf75b1f68d72df349edba8d998d4659dd956dd8.

* Generate config.mk from make

* Inlined configure in Makefile

* update docs

* cleanups

- changes to config.mk should trigger a rebuild
- remove potentially confusing variables form Makefile

* Use install instead of mkdir/cp/chmod when sensible

* fixup! Inlined configure in Makefile

* Don't generate config.mk on rm -f *.o sxiv

* update docs and cleanups

- make config.mk silent
- mention editing config.mk in README

* fallback to 0 if user edits config.mk in unexpected way

* add comment on config.mk

* remove invalid comment

configure script is removed

* slight restructure

- make version all caps
- restructure variables that users may want to edit to top
- use CPPFLAGS for defines
- add some comments
- remove needless echos since we have verbose output now

* add echos back

Co-authored-by: NRK <nrk@disroot.org>
Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2021-09-16 22:55:31 +03:00
whowillbellthecat
cca7834e67 fix: out-of-bounds access when bg not in color map 2021-09-16 22:55:31 +03:00
eylles
cbec6991c2 add an editorconfig file, closes #25 2021-09-16 22:55:31 +03:00
Aman Verma
68083784b6 Advertise Webp support in desktop file. 2021-09-16 22:55:31 +03:00
qsmodo
156a53780c set title based on prefix and suffix (#23)
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>
2021-09-16 22:55:31 +03:00
NRK
91d9b3128e change gamma on -G
Closes: https://github.com/nsxiv/nsxiv/issues/30
2021-09-16 22:55:31 +03:00
N-R-K
ca692ac485 add new keybind, Ctrl-a to toggle animation (#33)
* add new keybind, Ctrl-a to toggle animation

Closes: https://github.com/nsxiv/nsxiv/issues/27

* Format consistency

This keeps in line with other actions that have multiple keybinds

Co-authored-by: eylles <ed.ylles1997@gmail.com>
Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
2021-09-16 22:55:31 +03:00
Guilherme Freire
f7557c55b5 Custom bar colors (#10)
* set bar and text colors independently

* change xresources to Program.class.resource

* rename color variables to win/bar_bg/fg

* change default bar colors to match window colors
2021-09-16 22:55:31 +03:00
eylles
d8ec6f91a9 Set the _NET_WM_PID and WM_CLIENT_MACHINE X properties (#13)
Set the _NET_WM_PID and WM_CLIENT_MACHINE X properties

Co-authored-by: Leon Kowarschick <lkowarschick@gmail.com>
Co-authored-by: Kian Kasad <kian@kasad.com>
Co-authored-by: NRK <nrk@disroot.org>
2021-09-16 22:55:31 +03:00
eylles
46a54c4b2d Fix documentation (#14)
* Update manpage for marking commands

* Fix hyphen-used-as-minus-sign and typo lintian warning in manpage
this fix was originally made by the debian mantainer for sxiv Daniel Echeverry <epsilon77@gmail.com>

Co-authored-by: Mihail Snitkovski <msnitkovski@gmail.com>
2021-09-16 22:55:31 +03:00
Berke Kocaoğlu
c7ca547b55 Fix in tabbed with alpha patch (#3)
* Fix in tabbed with alpha patch

Co-authored-by: Jared Forrest <jared_forrest@mailbox.org>
2021-09-16 22:55:31 +03:00
Arthur Williams
ba0d87fadf Added ICCCM WM_HINTS
When the window is mapped, some ICCCM WM_HINTS are set.
The input field is set to true and state is set to NormalState.

To quote the spec, "The input field is used to communicate to the window
manager the input focus model used by the client" and "[c]lients with
the Passive and Locally Active models should set the input flag to
True". sxiv falls under the Passive Input model, since it expects keyboard
input, but only listens for key events on its single, top-level window instead
of subordinate windows (Locally Active) or the root window (Globally Active).

From the end users prospective, all EWMH/ICCCM compliant WMs (especially
the minimalistic ones) will allow the user to focus sxiv, which will
allow sxiv to receive key events. If the input field is not set, WMs are
allowed to assume that sxiv doesn't require focus.
2021-09-16 22:55:31 +03:00
Berke Kocaoğlu
88f77bc59c Implement fill scale mode 2021-09-16 22:55:31 +03:00
Bert Münnich
1d28627868 Stable version 26 2020-01-16 14:30:49 +01:00
Bert Münnich
8494b43635 Document dependencies
Fixes issues #378 and #374.
2020-01-16 12:36:26 +01:00
Bert Münnich
d9e60cb4c0 Fix memory leak in win_res()
Fixes issue #372.
2020-01-16 12:36:04 +01:00
Bert Münnich
55777ba9f4 Fix indentation 2020-01-16 10:31:41 +01:00
Bert Münnich
07300da7df Do not keep track of fullscreen state
There is no more need for this after the removal of the special color handling
for fullscreen mode in commit 2886876.
2019-07-16 19:26:04 +02:00
Bert Münnich
28868767e6 Use normal win colors in fullscreen mode
Fixes issues #361 and #367
2019-07-16 19:18:13 +02:00
Bert Münnich
6511d681ac Hint to xrdb for changing X resources 2019-04-19 16:13:05 +02:00
Bert Münnich
18d63dba28 Mention supported X resources in man page 2019-04-19 15:52:44 +02:00
Bert Münnich
7bde7e618a Change colors and font only via X resources 2019-04-19 15:25:06 +02:00
vxid
4407a3de54 Add Xresources font support 2019-04-19 15:03:03 +02:00
Chris Down
a75411567e gitignore: Ignore autogenerated version.h
It looks to me like this is also worthy of ignoring, since it's
autogenerated at make time.
2019-04-14 08:29:37 +01:00
Bert Münnich
7b813ea06d Fix comparison broken by signedness
Warning generated on MacOS, reported in issue #350.
2019-03-15 13:04:15 +01:00
Foldex
278f0ce94e Match fallback font FC_SIZE to original font 2019-03-15 12:29:44 +01:00
Bert Münnich
1ef5429702 Search freetype headers under PREFIX too
Related to PR #346.
2019-02-16 12:48:27 +01:00
Bert Münnich
f88afbb277 Stable version 25 2019-01-26 14:54:40 +01:00
Bert Münnich
24cce54ea0 New colors 2019-01-26 14:39:22 +01:00
Bert Münnich
d5b8242706 Mention X resource properties in build-time color config 2019-01-26 14:12:17 +01:00
Bert Münnich
174e2dd94c Overhaul introductionary text 2019-01-26 14:11:21 +01:00
Bert Münnich
919ada1123 Align compile-time color options with X resource colors
Two colors are more than enough!
2019-01-23 21:21:15 +01:00
Bert Münnich
9d244da512 Simplify X resource retrieval
Also makes the color names in config.def.h constant again.
2019-01-23 20:13:25 +01:00
Bert Münnich
f7fc6637f3 Support X resource entries with Sxiv class name 2019-01-23 20:04:17 +01:00
Bert Münnich
e4fb084f26 Fix code style of merged code 2019-01-23 20:00:18 +01:00