Commit Graph

337 Commits

Author SHA1 Message Date
Luca Nimmrichter
bcf53bcb25 Add basic vim bindings 2022-10-21 03:17:29 +09:00
Stacy Harper
3039ee97db fix dangling pointer state on wayland
With this new version, the pointer click doesnt select the highlighted
element.

To fix the issue we initialize correctly the bm_pointer struct.

We also stop trying to use our pointer enums as bitflags with |=
2022-10-09 14:09:25 +09:00
Alexander Orzechowski
1ef789fea6 wayland: Bump compositor version to fix compatibility with wl_surface_damage_buffer 2022-09-09 12:49:05 +09:00
Alexander Orzechowski
f2c88017f7 wayland: Damage using buffer coordinates
The surface was being damaged based on the buffer size. It's more correct to damage using the buffer coordinates.
2022-09-07 13:35:30 +09:00
Joan Bruguera
8217ae024b Fix exiting when an unexpected Wayland error occurs.
If an unexpected error was returned from a Wayland API during rendering (e.g.
from wl_display_flush), the code did set input.sym = XKB_KEY_Escape, so that
the next call to poll_key would return BM_KEY_ESCAPE and bemenu would quit.

However, this has been broken since #135, because input.key_pending was not
set, so the "fake" XKB_KEY_Escape is just ignored, bemenu doesn't quit, but
instead, it enters an infinite loop and keeps a CPU core at 100% usage.

The "quick fix" would be to just set input.key_pending wherever input.sym was
set to XKB_KEY_Escape. However, to make error handling less error-prone,
decouple it from input handling and add an error flag to (bm_menu_)render.
2022-08-03 08:55:34 +09:00
Stacy Harper
3fc0f8a7b7 Revert "Fix pointer enter event without further motion"
This reverts commit ef1055ecce.
2022-07-11 12:14:02 +09:00
Stacy Harper
14e11e8a35 Trigger pointer selection on button release instead
This allow successive bemenu to not register the same PRESSED
successive events.
2022-07-08 18:59:20 +09:00
Daniel Lublin
4c6592ac60 Don't alternate colors by default (let ALTERNATE color be same as ITEM) 2022-07-06 17:10:36 +09:00
Daniel Lublin
c04a3c7220 Add options to set cursor bg/fg color 2022-07-05 10:10:26 +09:00
Joan Bruguera
ef1055ecce Fix pointer enter event without further motion
If the pointer suddenly enters a window but moves no further, we may only get
a POINTER_EVENT_ENTER but no further POINTER_EVENT_MOTION events, so we also
need to handle this event to properly update the selected item.

The issue can be reproduced by moving the mouse programatically, e.g. on Sway:
    swaymsg seat - cursor set 200 200
2022-07-05 10:06:57 +09:00
Joan Bruguera
04b0d83d56 Fix Wayland event loop order to avoid missed renders
After the changes of the previous commit, the event loop flow on Wayland is:
    1. Render windows if window->render_pending is set
    2. Wait for events [NOTE: this includes the frame callback]
    3. Schedule render if menu->dirty is set
    4. Handle events (return from render) and repeat

This can still miss renders since the menu->dirty flag is set in step (4),
but the menu->dirty flag is checked in step (3). So if the event loop only
does a single iteration (quite unusual as most user actions cause multiple
events), we can get stuck on step (2) for a while.

In order to avoid this problem, this changes the event loop order to:
    1. Schedule render if menu->dirty is set
    2. Wait for events [NOTE: this includes the frame callback]
    3. Render windows if window->render_pending is set
    4. Handle events (return from render) and repeat

Script (for Sway) to reproduce the issue / verify the fix:
    #!/usr/bin/env sh
    mousesety() { swaymsg seat - cursor set 200 "$1" >/dev/null; sleep 0.2; }
    { while true; do mousesety 200; mousesety 300; mousesety 400; done } &
    trap 'kill $!' EXIT
    export BEMENU_BACKEND=wayland BEMENU_OPTS='--list 40 --hb #0000FF'
    yes | head -30 | bemenu

Fixes: #274
Fixes: #275
2022-07-05 10:06:57 +09:00
Joan Bruguera
c7a5812352 Fix missed renders on Wayland on temporally close events
Despite the fix in the previous commit (3d7e47c4e6), the following command:
    { echo one; echo two; } | BEMENU_BACKEND=wayland bemenu --grab
Will likely still show the 'Loading...' text after all items are available.

A related problem (also on Wayland) is that when pressing two keys (for the
filter) almost simultaneously, sometimes only one of the keys will be rendered.
The other key will only be shown on the next render. For example:
    - Filter shows "s"
    - User presses the "o" and "n" keys simultaneously
    - Filter shows "so" ["n" appears to have been lost]
    - User presses the "g" key
    - Filter shows "song" [now the "n" has been rendered]

Both problems have the same root cause: If two events that cause a render happen
"close enough" to each other, often the second event will not cause a render.

As far as I can tell, the cause is that the "dirty && render_pending" render
check should not check the dirty flag at all, just "render_pending".

With "dirty && render_pending", if two events happen in close succession:
- On the first event, generally dirty==true, render_pending==true, a render
  will happen, the frame callback will be set, and both flags will be cleared.
- For the second event, generally dirty==true and render_pending==false.
  dirty will be unset and nothing will happen.
- When the frame triggers, render_pending is set, but no render will happen
  because dirty==false

With just "render_pending" (the change in this commit):
- On the first event, generally dirty==true, render_pending==false, the frame
  callback will be set, and dirty will be cleared.
- For the second event, generally dirty==true and render_pending==false.
  dirty will be unset and nothing will happen.
- When the frame triggers, render_pending is set, then a render will be done.
2022-06-30 09:40:08 +09:00
Joan Bruguera
6e74133876 Fix first render on Wayland after loading items with --grab
Currently, on the Wayland backend, the following command:
    { echo one; sleep 1; echo two; } | BEMENU_BACKEND=wayland bemenu --grab
Will keep showing the 'Loading...' text even after all items are available.
The items will only be shown after some input, e.g. a key press, happens.

This was a regression introduced by 5a095705d2
(versions 0.6.5+). A dirty flag was added to avoid unnecessary redraws,
however, this flag is not reset between the renders before/after the items are
loaded, so the bm_menu_render call after the items are loaded is ignored
(on Wayland, which is the only renderer that currently uses the dirty flag).

Fix the issue by setting the dirty flag when the filter changes, so it will be
reset when changing from "Loading..." to empty and cause a redraw.
2022-06-30 09:40:08 +09:00
Barbaross
8c1c29c0b9 Add option to define a border and border color 2022-06-29 15:13:09 +09:00
Barbaross
84bccc02a0 Add option to specify horizontal padding in single line mode 2022-06-03 09:20:10 +09:00
Barbaross
a8ef2457cb Add option to specify alternating entry background/foreground colors 2022-06-03 08:08:38 +09:00
Barbaross
9a76681b2c Add option to specify cursor width 2022-06-03 08:08:21 +09:00
Julian Orth
bb094fda23 wayland: map keymaps with MAP_PRIVATE
MAP_PRIVATE is required in version 7 which is used since 81195da1.
2022-02-22 08:59:40 +09:00
Julian Orth
0e43f5fb75 wayland: bind to zwlr_layer_shell_v1 version 2
zwlr_layer_shell_v1_destroy is not available in version 1 of the
interface.
2022-02-22 08:59:40 +09:00
Jari Vetoniemi
9817071f3a menu: make bm_menu_item_is_selected internal 2022-02-19 09:38:02 +09:00
Jari Vetoniemi
b427e0d35e internal: remove util.h include 2022-02-19 09:38:02 +09:00
Jari Vetoniemi
d201c48421 get rid of all the internal symbols 2022-02-19 08:00:26 +09:00
Jari Vetoniemi
c13e28f4b5 menu: make all run functions part of public API
also remove the unused unicode arguments
2022-02-19 07:41:23 +09:00
Stacy Harper
76b3c25014 Avoid by zero divisions 2022-02-08 22:23:02 +09:00
Stacy Harper
5a095705d2 Optimize redrawing
We add a dirty flag on the menu to track if the menu actually need a
redraw. With it, we will not redraw if the touch is hold on the same
entry by example.
2022-02-08 22:23:02 +09:00
Stacy Harper
9b8da12467 Add a feedback for touchscreen support
The idea is to write "Scroll up…", "Scroll down…" when the finger
touching bemenu will trigger a page scroll on release.
2022-02-08 22:23:02 +09:00
Stacy Harper
a111aa2afa mouse and touch support on wayland 2022-02-08 22:23:02 +09:00
Maxim Karasev
43255bbbe8 Add relative width option
It works on Wayland and X11 and acts as a complement to margin. Exact
behavior is as follows:
- If width factor is 0, width minus margin is used.
- If width multiplied by factor is greater than width minus margin,
  width minus is used. (so margin may be used to make sure that bemenu
  is at least N pixels away from the view border)
- Otherwise width multiplied by factor is used.

I think it's fine to disable warnings about floating point numbers
comparision. We don't do any arithmetics on them anyway, so we can't
suffer from inaccuracy.
2021-12-29 17:22:10 +09:00
Andrei E
d593ab27b6 Close clipboard file 2021-11-04 09:01:29 +09:00
Andrei E
e1a016b8a0 Adapt code style 2021-11-04 09:01:29 +09:00
Andrei E
00efc974d7 Add paste functionality 2021-11-04 09:01:29 +09:00
lunacb
21ff4e47da fixed indentation 2021-11-03 17:57:18 +09:00
lunacb
a96ed87472 redesigned vertical alignment
single enum determines if the menu is at the top, in the center,
or at the bottom. implemented in wayland and x11 renderers.
2021-11-03 17:57:18 +09:00
lunacb
bddeea05b6 created margin option
-M or --margin option sets the horizontal margin of the window
2021-11-03 17:57:18 +09:00
Sergei Trofimovich
d31164db75 lib/renderers/curses/curses.c: always use "%s"-style format for printf()-style functions
`ncuses-6.3` added printf-style function attributes and now makes
it easier to catch cases when user input is used in palce of format
string when built with CFLAGS=-Werror=format-security:

    lib/renderers/curses/curses.c:234:9:
      error: format not a string literal and no format arguments [-Werror=format-security]
      234 |         mvprintw(0, 0, menu->title);
          |         ^~~~~~~~

Let's wrap all the missing places with "%s" format.
2021-11-03 17:57:06 +09:00
rei de vries
b7f8db7128 revert to single padding variable
but with height instead of ascii_height used as the box height
2021-10-07 00:32:25 +09:00
rei de vries
2eea64ad24 convert tab to spaces 2021-10-07 00:32:25 +09:00
rei de vries
9fcc611082 fix incorrect line height due to padding quantization 2021-10-07 00:32:25 +09:00
Stacy Harper
9b2a2cabf2 Add -s to disable title spacing on entries 2021-10-07 00:25:20 +09:00
Ben Brown
0589962d1c Add option to configure cursor height
If set to 0 (the default), the height of the cursor is set to the
height of the line (as is the current behaviour).
2021-08-27 04:01:13 +09:00
Stacy Harper
a42fa97a49 add -c center mode on wayland 2021-08-16 17:46:57 +09:00
Stacy Harper
a84eeb770e fix scaling caused issue on window redimension on wayland
This caused issue when using the -b (bottom) and -l (line) arguments on
scaled outputs.

When using a scaled output, the set_size use a wrong value as height.
We generated a scalled buffer so we used a scale x too high size.

We just have to divide the scaling to use a good size.
2021-08-15 13:27:58 +09:00
Tuyen Pham
32aa05789e add contrl-c to exit 2021-07-22 09:05:41 +09:00
Tuyen Pham
81195da11c wayland: respect sway's keyboard rate settings 2021-07-06 10:29:47 +09:00
Jari Vetoniemi
ca6b903415 curses: revert alt detection
This seems to be broken at least on some terminals and the high bit
toggle corrupts input. In addition there was printf for the esc/alt key
detection that can break the UI.

Neovim seems to have noncompatible way of detecting alt, so I think
neovim should be looked for proper way for handling this.
2021-06-07 16:30:12 +09:00
Bill Doyle
69d030573c Handle multiple seats (more) correctly
Previously, any seat without a keyboard could destroy our selected
keyboard. Now, select by seat instead and only destroy the keyboard if
it vanishes from that seat. This isn't actually multi-seat support, but
at least it will allow bemenu to accept input.
2021-06-06 23:31:57 +09:00
Robert Günzler
a81c80f81f wayland: update wlr-layer-shell-unstable-v1 protocol
Signed-off-by: Robert Günzler <r@gnzler.io>
2021-05-22 04:12:59 +09:00
Robert Günzler
4612f9d327 wayland: Allow showing the menu on the focused monitor
This adds an alias 'focused' for selecting the current monitor, which
becomes the default on x11 and wayland. The previous wayland default of
displaying on all outputs moves under '-2' or 'all'.

ref: https://github.com/Cloudef/bemenu/issues/102#issuecomment-604562234

Signed-off-by: Robert Günzler <r@gnzler.io>
2021-05-22 04:12:59 +09:00
Jari Vetoniemi
4b7b483bd6 cairo: fix gnu_printf format warning 2021-05-07 23:50:45 +09:00
Jari Vetoniemi
dd276c0a15 curses: fix build for OSX 2021-05-07 23:43:11 +09:00
Jari Vetoniemi
203d79e063 curses: fix bad format string for draw_line 2021-05-07 23:40:56 +09:00
Jari Vetoniemi
ebd7338bd5 s/cairo/cairo_renderer/ and fix cairo include
The documented canonical include for cairo is #include <cairo.h>
2021-05-07 23:38:15 +09:00
Sören Tempel
2e922503e8 x11: Align -m argument interpretation with dmenu
With dmenu, monitor indices start at 0 and a value of -1 (the default)
is used to spawn dmenu on the current monitor. While bemenu strives to
be compatible with dmenu, bemenu monitor indices previously started at 1
and a value of 0 (the default) was used to spawn on the current monitor.

This commit aligns the behaviour of bemenu's x11 backend with dmenu. For
this purposes, the affected code in the x11 backend is synced with the
current dmenu implementation. While doing so the monitor type has also
been switched from a uint32_t to a int32_t.
2021-04-27 14:24:02 +09:00
Harley Swick
e74224a406 Use -m option for setting monitor name and monitor + cleanup 2021-02-05 16:53:43 +09:00
Robert Günzler
52547807b0
support hiding filter input (#150)
* support hiding filter input

"password mode"

Signed-off-by: Robert Günzler <r@gnzler.io>
2021-02-05 13:12:48 +09:00
Peter Colberg
1dfa72b8bc Fix missing definition for bm_menu_add_item_at
The function was declared in bemenu.h but defined using a different name.
2020-12-13 17:10:41 +09:00
Peter Colberg
38c2958573 Declare filter_dmenu_fun as static
This is an internal function that should not be exported from the library.
2020-12-13 17:10:07 +09:00
Peter Colberg
a9cee36e85 Support compilation with -fvisibility=hidden
When using a compiler with support for GNU C extensions (GCC, Clang),
explicitly mark functions shared across library boundaries as visible.

This is the default visibility and has no effect when compiling with the
default CFLAGS. When compiling with -fvisibility=hidden, however, this
exports only functions marked BM_PUBLIC and hides all others.

https://gcc.gnu.org/wiki/Visibility

This facilitates packaging for distributions that track shared library
symbols, e.g., Debian, which uses a symbol file to provide the minimal
version associated to each symbol exported by a library.

https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#the-symbols-system
https://manpages.debian.org/unstable/dpkg-dev/dpkg-gensymbols.1.en.html
2020-12-13 17:09:44 +09:00
fancycade
1bd40d0a44 Add key_pending field to sync wayland keyboard event loops 2020-10-10 16:22:07 +09:00
Dominic Monroe
64c38dde50 Add custom key support 2020-08-28 21:01:22 +09:00
Peter Colberg
20661aed78 Drop CMakeLists.txt for curses renderer 2020-08-23 09:41:47 +09:00
Jari Vetoniemi
65cea5e20a cairo: add BEMENU_SCALE env variable
Allows overriding the scaling factor for bemenu
2020-06-29 00:12:20 +09:00
Jari Vetoniemi
7266ebb795 cairo: fix hidpi rendering 2020-06-29 00:06:19 +09:00
Daniel Lublin
5387677720 Add --scrollbar none
Useful in aliases or scripts to override a previously enabled scrollbar
on the commandline.

Also correct documentation of bm_scrollbar_mode.
2020-06-15 15:09:42 +09:00
Jari Vetoniemi
d9f4d1bb12 cairo: don't draw left scroll indicator if empty
If there are no matches the left indicator would be still drawn as black
box. If filter string is long enough, this black box would cover part of
the filter string.
2020-05-08 12:20:35 +03:00
Tuomas Siipola
bdfc2aac84 menu: fix delete on multi-byte characters 2020-04-19 15:16:14 +03:00
Tuomas Siipola
33cec5cff6 cairo: fix cursor position on multi-byte input
`pango_layout_index_to_pos` expects byte index
2020-04-19 15:16:14 +03:00
Jari Vetoniemi
6343a658bb wayland: support showing bemenu on all monitors 2020-03-25 19:16:57 +02:00
Cole Helbling
cd53b7bb55 x11,wayland: treat keypad enter as normal enter 2020-03-19 09:23:32 +02:00
Bill Doyle
6350a4000d
Add transparency support (#96)
Add transparency support
2020-03-16 11:41:42 +09:00
Jari Vetoniemi
56231f8119 bemenu-run: add --fork option
Make terminal backends not fork by default.
Use this option to fork again on curses.
For non terminal backends this option is no-op.
2020-02-08 13:21:36 +02:00
Jari Vetoniemi
b688425bf3 menu: fix custom selection 2020-02-08 12:48:15 +02:00
Jari Vetoniemi
178a58253a wayland: implement set_monitor (untested) 2020-02-08 10:10:58 +02:00
Jari Vetoniemi
b4fc82a3aa curses: fix list indent with scrollbar 2020-02-08 00:25:08 +02:00
Jari Vetoniemi
bb7db3e2b7 cairo/curses: dmenu like indent for lists
Fixes #72
2020-02-08 00:22:52 +02:00
Jari Vetoniemi
1c487ba808 cairo: make scrollbar 1 character thick 2020-02-07 23:53:46 +02:00
Jari Vetoniemi
9110c7c42e x11: set window class and name
class is always bemenu, name is whatever is the title of the menu
2020-02-07 23:31:41 +02:00
Jari Vetoniemi
f8d025b350 x11: whitespace 2020-02-07 23:31:33 +02:00
Jari Vetoniemi
bc584cc5f0 menu: make SHIFT_RETURN handling more elegant
Don't handle this on client side. Instead have a filter item and return
it if filter text is requested.
2020-02-07 21:54:13 +02:00
Jari Vetoniemi
4534cc8c73 menu: whitespace 2020-02-07 21:53:56 +02:00
Jari Vetoniemi
fcce2e019a menu: left/right now moves always cursor
Use SHIFT + left/right to move selection
2020-02-07 18:28:48 +02:00
Jari Vetoniemi
7af8c09f10 cairo: don't draw < if there's no items displayed 2020-02-07 18:22:35 +02:00
Jari Vetoniemi
c4856d784b cairo: always have space for < at single line mode 2020-02-07 18:19:56 +02:00
Jari Vetoniemi
42eca37688 cairo: add cursor 2020-02-07 18:15:34 +02:00
Jari Vetoniemi
e7d6562046 cairo: useless memsets 2020-02-07 18:15:24 +02:00
Jari Vetoniemi
f04c5c458a cairo: use inline instead of attributes 2020-02-07 17:05:10 +02:00
Jari Vetoniemi
a53189314f cairo: remove whitespace 2020-02-07 17:03:33 +02:00
Jari Vetoniemi
ac9790b059 Fixes and docs from osx 2020-02-07 23:35:01 +09:00
Jari Vetoniemi
acb24be411 ignore_ret warns on clang *sigh* 2020-02-07 16:23:52 +02:00
Jari Vetoniemi
5a4d364d50 Nuke CMake from existance
Welcome glorious GNU Makefile
2020-02-07 16:03:08 +02:00
Jari Vetoniemi
9ff670f349 Fix gcc warnings 2020-02-07 13:05:15 +02:00
Jan Staněk
2f45c191bc
Mark global wayland constant extern
Without `extern`, the changed lines are not declarations,
but "tentative definitions"
(according to GCC man page, option `-fcommon`).
When specified in a header file
that is included in more than one `.c` file,
these result in linking failure unless `-fcommon` is specified.

GCC 10 changed the default from `-fcommon` to `-fno-common`,
and as such the previous code no longer links properly.

With `extern`, these lines are considered declarations,
and the linking proceeds successfully.
2020-02-06 17:35:20 +01:00
Jari Vetoniemi
7170c93f3a menu: reset cursor at end on set_filter 2020-02-03 17:43:46 +09:00
Jari Vetoniemi
1607215d70 Extra whitespace 2020-02-03 17:26:17 +09:00
Jari Vetoniemi
88bd960718 CMake: Compile renderers after exports 2020-02-03 17:21:19 +09:00
sleich
9ac860b817 Add Ctrl-[ shortcut to x11 and wayland
Ctrl-[ shortcut is used to quit bemenu. It already works with ncurses backend
2020-01-08 04:47:57 +03:00
Michael Vetter
0f6e1625b5 Rename stdscr to stdscreen to prevent collision
On my system I get:
```
[    3s] cd /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/build/lib/renderers/x11 && /usr/bin/cc -DPANGO_DISABLE_DEPRECATED -D_GNU_SOURCE -Dbemenu_renderer_x11_EXPORTS -I/home/abuild/rpmbuild/BUI
LD/bemenu-0.3.0/build/lib -I/home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/.. -I/home/abuild/rpmbuild/BUILD/bemenu-0.3.0/build/lib/renderers/x11 -I/usr/include/cairo -I/usr/include/g
lib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/uuid -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/inc
lude/fribidi  -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG   -Wall
-Wextra -Wno-variadic-macros -Wno-long-long -O2 -g -DNDEBUG -fPIC   -std=c99 -o CMakeFiles/bemenu-renderer-x11.dir/xkb_unicode.c.o   -c /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers
/x11/xkb_unicode.c
[    3s] [ 55%] Building C object lib/CMakeFiles/bemenu.dir/3rdparty/cdl.c.o
[    3s] cd /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/build/lib && /usr/bin/cc -D_GNU_SOURCE -Dbemenu_EXPORTS -I/home/abuild/rpmbuild/BUILD/bemenu-0.3.0/build/lib  -O2 -Wall -D_FORTIFY_SOURCE
=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG   -Wall -Wextra -Wno-variadic-macros -Wno-long-lo
ng -O2 -g -DNDEBUG -fPIC   -std=c99 -o CMakeFiles/bemenu.dir/3rdparty/cdl.c.o   -c /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/3rdparty/cdl.c
[    3s] In file included from /usr/include/ncurses.h:60,
[    3s]                  from /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/curses/curses.c:14:
[    3s] /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/curses/curses.c:27:13: error: field '_nc_stdscr' declared as a function
[    3s]    27 |     WINDOW *stdscr;
[    3s]       |             ^~~~~~
[    3s] /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/curses/curses.c: In function 'terminate':
[    3s] /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/curses/curses.c:97:19: error: lvalue required as left operand of assignment
[    3s]    97 |     curses.stdscr = NULL;
[    3s]       |                   ^
[    3s] /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/curses/curses.c: In function 'render':
[    3s] /home/abuild/rpmbuild/BUILD/bemenu-0.3.0/lib/renderers/curses/curses.c:190:28: error: lvalue required as left operand of assignment
[    3s]   190 |         if ((curses.stdscr = initscr()) == NULL)
[    3s]       |                            ^
```

`man stdscr` sais: "Upon  initializing curses, a default window called stdscr, which is the size of the terminal screen, is created.".

So it seems for some reason there happens a collision here.

Let's rename the window so this doesn't happen.
2019-12-27 14:47:06 +01:00
Jari Vetoniemi
fedb1b0ab0 Use monospace 10 instead of fixed 9 by default
Matches the dmenu default, monospace instead of font name is more
robust.
2019-12-19 16:58:59 +02:00
Linus Heckemann
03c54c1d4b scaling: require scale > 0 2019-11-05 12:59:37 +01:00
Adrian Müller
1f1aebf26a Handle HiDPI scaling on Wayland 2019-11-05 10:13:34 +01:00