Commit Graph

55 Commits

Author SHA1 Message Date
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
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
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
00efc974d7 Add paste functionality 2021-11-04 09:01:29 +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
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
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
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
Dominic Monroe
64c38dde50 Add custom key support 2020-08-28 21:01:22 +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
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
7170c93f3a menu: reset cursor at end on set_filter 2020-02-03 17:43:46 +09:00
Alyssa Ross
93cde4831b
bemenu: add --line-height / -H option
Text is displayed vertically centered in a line. If unspecified, or 0,
the previous behaviour of making the height the size of the text, plus
two pixels on either side, is used, so there will be no change in
behaviour if this option is not used.

Fixes https://github.com/Cloudef/bemenu/issues/44.
2019-05-31 23:20:54 +00:00
Ilia Bozhinov
38069992ec Add option to respect panel position (#48)
* implement option to make menu respect panel boundaries

* fixup! implement option to make menu respect panel boundaries
2019-03-25 23:21:17 +02:00
up here
9530c21be1 reference correct enum in documentation
The `bm_scrollbar_mode` constants linked to the `bm_run_result` enum in their doc comments.
2016-12-03 12:17:47 +00:00
Jari Vetoniemi
eb46ba7bdc Remove bg color option as you never see the real bg anyways. 2015-01-20 18:42:29 +02:00
Jari Vetoniemi
c2eabf2be1 Make scrollbar autohideable 2015-01-18 02:07:30 +02:00
Jari Vetoniemi
f2eaf599f6 Change default scrollbar style and make colors configurable 2015-01-18 01:38:25 +02:00
Jari Vetoniemi
9c541d0b42 Add --scrollbar option 2015-01-18 01:08:10 +02:00
Jari Vetoniemi
074b2d1b58 Remove --backend and --prioritory options, change prioritory -> priorty
and provide BEMENU_BACKEND env variable. Change API to reflect this
change.

There is no reliable way to detect when running on terminal (especially
when stdin is a pipe), so we need to make curses backend explicit with
BEMENU_BACKEND=curses or bm_menu_new("curses"), otherwise GUI backend
will be choosed automatically.
2015-01-17 18:53:29 +02:00
Jari Vetoniemi
6ac8d8c4d8 Change font functions to function on pango style font descriptions instead of size
and name.
2015-01-17 15:25:50 +02:00
Jari Vetoniemi
ada6edc175 Add X11 renderer. 2015-01-16 01:59:09 +02:00
Jari Vetoniemi
ee3c41f162 Make shift + tab the current tab behavior, and normal tab to cycle. 2014-11-02 04:08:40 +02:00
Jari Vetoniemi
a44b001e82 Mkae highlighted item prefix configurable. 2014-10-26 15:42:09 +02:00
Jari Vetoniemi
d3db039136 Single line mode, color customization, etc.. 2014-10-25 20:02:34 +03:00
Jari Vetoniemi
3f5e21a83f Cleanup wayland renderer and plugin support. 2014-10-25 01:38:30 +03:00
Jari Vetoniemi
014c20099d Refactor code to snake_style, turn renderers into plugins, and start
wayland (cairo) renderer.
2014-10-22 22:46:51 +03:00
Jari Vetoniemi
617c4ab827 Add selection wrapping (-w). 2014-04-14 19:25:16 +03:00
Jari Vetoniemi
4f72d188ad Fix documentation. 2014-04-14 19:25:04 +03:00
Jari Vetoniemi
5251ef6ac0 Fix bad syntax, and add defgroup for library. 2014-04-13 00:12:31 +03:00
Jari Vetoniemi
06972a3579 CLI interface, aka option parsing. 2014-04-12 22:12:44 +03:00
Jari Vetoniemi
01ff5f48ed The list will be copied now. 2014-04-12 20:56:00 +03:00
Jari Vetoniemi
3ad042c625 S-Return (C-t, insert in curses) should return input, C-Return is mark. (C-r, C-space in curses) 2014-04-12 18:44:03 +03:00
Jari Vetoniemi
ad4e0425a6 Make page scrolling work like it should. (Shfit+pgup/pgdwn for old
behaviour)
2014-04-12 18:42:30 +03:00
Jari Vetoniemi
8e0dd1ab39 Make it possible to set filter text manually. 2014-04-10 23:05:37 +03:00
Jari Vetoniemi
71beb7583f Make it possible filter manually, and optimized filtering. 2014-04-10 23:05:13 +03:00
Jari Vetoniemi
05212f5e44 Improve documentation. 2014-04-10 20:19:15 +03:00
Jari Vetoniemi
49fc7cd08c Include index parameter in documentation. 2014-04-10 20:12:42 +03:00
Jari Vetoniemi
9525c77f55 Setter first, then getter. 2014-04-10 20:11:41 +03:00
Jari Vetoniemi
702d808b28 Make it possible to set and get userdata pointers. 2014-04-10 20:09:34 +03:00
Jari Vetoniemi
a6d0413b97 Implement list structure, and feature for multiple selections. 2014-04-10 20:04:06 +03:00