1
0
Fork 0
mirror of https://github.com/Cloudef/bemenu synced 2024-05-26 01:16:21 +02:00
Commit Graph

116 Commits

Author SHA1 Message Date
Lucas Merritt d9ac320dd0
Add fixed height option(Addresses #270) (#326)
* added fixed height option && fixed counter
2023-02-18 18:30:55 +09:00
Lucas Merritt 77000a680c
Add Match/Page Counter(Addresses #204) (#325)
* counter with total item count

* filtered item counter

* optimized display code

* refactored overcomplicated code

* fixed warnings that failed Ubuntu test

* fixed inconsistent state

* CLI option for counter

* fixed vertical mode counter
2022-12-27 17:13:59 +09:00
Lucas Merritt 30379a88bf somewhat working, maybe fix background colors 2022-12-21 14:10:08 +09:00
Robert Günzler 0a44fb65cd Apply initial filter before evaluating accept-single
This lets us select fully non-interactive if we have a perfect match

Signed-off-by: Robert Günzler <r@gnzler.io>
2022-12-16 09:13:19 +09:00
Robert Günzler 516a2ab069 common: actually parse -F using getopt
Signed-off-by: Robert Günzler <r@gnzler.io>
2022-12-16 09:13:19 +09:00
Luca Nimmrichter 0c2bc885a1 Replace `char *key_binding` with an enum 2022-10-21 03:17:29 +09:00
Luca Nimmrichter 17481427a0 Replace --vim option with a generic --binding [name] option 2022-10-21 03:17:29 +09:00
Luca Nimmrichter bcf53bcb25 Add basic vim bindings 2022-10-21 03:17:29 +09:00
dadav d235dc38f7 Add support to disable pointer, touch and keyboard events
Sometimes you don't want the pointer/touch/keyboard to have any
influence on the menu (e.g. if you mainly use the keyboard, you don't
want the mouse to select an item by accident).

closes #299
2022-10-11 10:05:40 +09:00
Richard Kraus 22c7e3fd23 add --accept-single flag 2022-09-27 20:06:12 +09:00
Richard Kraus c6bb62389c fix accidentally inserted tabs 2022-09-27 20:06:12 +09:00
Richard Kraus 24015ef32e change functionality of --ifne
a single item will not display the menu
2022-09-27 20:06:12 +09:00
Richard Kraus 7da8796291 fix ignored --monitor in BEMENU_OPTS env var 2022-09-18 10:14:11 +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
Daniel Lublin c04a3c7220 Add options to set cursor bg/fg color 2022-07-05 10:10:26 +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
Michael Hsu 81b509155c Fix `--ch` cursor height option parsing 2022-03-11 17:56:04 +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
lunacb cd41b1b52c add missing newline 2021-11-03 17:57:18 +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
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
Maximilian Bosch 702a04c374 Ignore hidden files in `bemenu`
On most systems it's fairly uncommon to have hidden files within
`$PATH`, but in case of NixOS this is fairly regularly the case as we
have the convention to add `foo` and `.foo-wrapped` to a `bin`-directory
if `foo` is supposed to be a wrapper which sets e.g. env-vars for the
program.

These `.foo-wrapped`-executables are almost never needed, but are shown
in `bemenu` right at the start, so I modified the selection code to skip
hidden files which is also what `dmenu` does for instance.
2021-06-11 01:29:17 +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
Sören Tempel 934aa6fbb9 client: make sure the monitor index defaults to -1
This ensures that the menu spawns on the current monitor by default when
using X11 or on all monitors when using Wayland.
2021-04-27 14:24:02 +09:00
Sören Tempel 1475c3ce45 client: improve stripping of getline(3) newline
The previous version of this code operated under the assumption that
getline(3) lines are always \n\0 terminated. Unfortunately, this is not
the case as readline will return input which is not terminated with a
newline character if EOF is reached before encountering this newline. In
these cases, the code would falsely strip the last character. As an
example, consider the following bemenu invocation:

	printf foo | ./bemenu

This would start bemenu with `fo` instead of `foo` as a menu item. This
commit fixes this edge case and also hardens the loop body a bit by only
entering it if getline wrote more than zero characters to the buffer.
2021-04-04 19:03:52 +09:00
Sören Tempel 38395e92c7 client: use getline(3)
Not sure why the code didn't use this function previously, but
getline(3) is mandatory since POSIX.1-2008 and should thus be supported
by all maintstream operating systems. The proposed changes make the code
easier to read and should also make it more efficient memory-wise as it
does not necessarily cause the entire input to be copied into memory at
once.
2021-04-04 17:45:04 +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
Julian Mehne 7523af7d18 Add --filter option. 2020-11-15 11:30:03 +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 6343a658bb wayland: support showing bemenu on all monitors 2020-03-25 19:16:57 +02:00
Corey Hinshaw 42ba51857d Add no-exec option to bemenu-run 2020-02-23 01:41:50 +09:00
Jari Vetoniemi 467ac971d1 bemenu: reuse the calculated buffer end
Also assert that we don't overflow on realloc
2020-02-11 10:23:33 +02:00
Jari Vetoniemi a89799a6b5 bemenu: fix null termination of input 2020-02-11 10:19:57 +02:00
Jari Vetoniemi 2187fa8157 bemenu-run: no argument for --fork 2020-02-08 14:01:18 +02: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 178a58253a wayland: implement set_monitor (untested) 2020-02-08 10:10:58 +02:00
Jari Vetoniemi f30449738b client: set overlap in menu_with_options 2020-02-08 10:09:33 +02:00
Jari Vetoniemi dac1ffde7e clients: add BEMENU_OPTS env var support
It's possible to pass any CLI argument through BEMENU_OPTS env variable
instead.
2020-02-07 23:15:21 +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